feat: NemoClaw compatibility — detect and sync from OpenShell sandboxed OpenClaw#318
Draft
vivekchand wants to merge 2 commits intomainfrom
Draft
feat: NemoClaw compatibility — detect and sync from OpenShell sandboxed OpenClaw#318vivekchand wants to merge 2 commits intomainfrom
vivekchand wants to merge 2 commits intomainfrom
Conversation
- Sliding 2-min window token threshold (default: 10,000 tokens/2min) - Consecutive tool-call chain detection (default: N=20 without human turn) - Cost velocity alert (default: $0.10/min over 5-min window) - In-dashboard banner with Kill Loop + Dismiss buttons (animated, red/orange) - Background thread checks velocity every 30s - Telegram notification on new alert types - GET /api/alerts/velocity — current alert state - POST /api/alerts/velocity/config — configure thresholds - POST /api/alerts/velocity/dismiss — dismiss active alerts - Config stored in existing budget_config SQLite table (velocity_ prefix)
… JSONL data, add HTML panel to Overview - api_heatmap(): now covers 30 days (was 7); primary source is session JSONL files so historical data is richer; log-file fallback for days with no session events; each day entry now includes 'date' field alongside 'label' - loadHeatmap() JS: updated for 30-day view — sparse day labels (every 5th), 6-band colour scale, hour labels only at 00/06/12/18, safe guard when heatmap-grid element is absent - startSystemHealthRefresh(): now calls loadHeatmap() on startup and refreshes every 5 minutes via _heatmapTimer - Overview HTML (both light/dark themes): added Activity Heatmap panel inside the System Health section with heatmap-grid + heatmap-legend elements - tests/test_api.py: added TestHeatmap (7 tests) — 30-day length, 24 buckets per day, label/date keys, non-negative int counts, max field correctness; all 78 tests pass Closes #69
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #233
Summary
Adds full NemoClaw / OpenShell sandbox compatibility to the ClawMetry sync daemon.
Changes
sync.py
_is_running_in_container()— detects if ClawMetry itself is inside a Docker/OpenShell sandbox (via/.dockerenv+ cgroup check)_detect_nemoclaw()— collects NemoClaw sandbox metadata vianemoclaw status --jsonandopenshell sandbox list_find_openshell_bin()— locates the openshell CLI binary_detect_docker_openclaw()— extended to matchopenshell,nemoclaw,nvidiacontainer names/images; adds NemoClaw session paths (/sandbox/.openclaw/); tags mirrored data withcontainer_idandruntime=nemoclawdetect_paths()— adds NemoClaw sandbox path candidates +NEMOCLAW_SANDBOXenv var override; warns when running inside a sandbox with network policy guidancesync_system_snapshot()— enriches snapshot withsandbox.*,inference.*, andsecurity.*metadata when NemoClaw is detectedREADME.md
New NemoClaw / OpenShell Support section covering:
NEMOCLAW_SANDBOXenv var overrideArchitecture
All NemoClaw-specific logic is in the sync daemon only — the cloud dashboard, ingest API, and browser UI contain zero NemoClaw-specific code, consistent with the principle in #233.