Spaces:
Paused
Paused
Commit History
-
fix(devdata): add missing docstring opener in is_jupyter_running
anurag008wThe docstring for is_jupyter_running() was missing its opening triple quote, so the closing """ on the last line actually opened a new string that swallowed the next function's docstring. Python failed to parse the module (SyntaxError: unterminated string literal at line 434), which silently killed the entire devdata pipeline at startup: - --restore (workspace restore) crashed - sync_loop (local -> HF dataset push) crashed - prune_remote_deleted_files (deleted-file cleanup) crashed All three share one module, so a parse-time error took down restore, sync, and prune together. Adding the missing opening triple-quote lets the module import and all paths run again.e691527 -
📝 CodeRabbit Chat: Implement requested code changes
coderabbitai[bot]Unverified signature83ef1ca -
fix(devdata): skip nested writable-base subtree in JUPYTER_ROOT snapshot
anurag008wFound by functional testing: in production HC_WRITABLE_BASE (/home/node/.huggingclaw-runtime) is NESTED inside JUPYTER_ROOT (/home/node), so iter_sync_tree(JUPYTER_ROOT) was descending into it and: 1. DOUBLE-uploading the Jupyter settings that snapshot() now also stores under the jupyter-config/ jupyter-data/ tags (once at top-level as .huggingclaw-runtime/.jupyter/... and once tagged) — pollutes the dataset 2. Risking leaking runtime junk under the writable base (pip site-packages, npm-global, ...) into the user's dataset on images where the legacy SKIP_PATH_PREFIXES (.local/lib, site-packages name) didn't catch them Fix: when HC_WRITABLE_BASE resolves to a path inside JUPYTER_ROOT, prune that whole subtree during the os.walk in iter_sync_tree. Settings there are already captured separately and tagged, so nothing is lost. Verified with a clean functional test reproducing the real nested config: - notebooks at root: uploaded - jupyter-config/ + jupyter-da…2671f86 -
fix(jupyter): persist user settings across restarts after writable-base redirect
anurag008wd085e58 redirected JUPYTER_CONFIG_DIR / JUPYTER_DATA_DIR into HC_WRITABLE_BASE (so settings stay writable on read-only-HOME base images), but two things still used the legacy /home/node locations: 1. jupyter-devdata-sync.py restore_once() wrote restored settings into JUPYTER_ROOT (/home/node), not the dir JupyterLab now reads from 2. devdata sync_loop() snapshotted only JUPYTER_ROOT, so new user settings written to HC_WRITABLE_BASE were never uploaded Net effect for the user: settings looked reset every restart, AND any changes made after the redirect were silently lost (never synced). Both directions were broken. Fix (two parts, both verified with functional tests): 1. start.sh: hc_migrate_jupyter_state() merges legacy /home/node/.jupyter and /home/node/.local/share/jupyter into HC_WRITABLE_BASE on every boot (no-clobber so existing/new settings in the writable base are kept), skipping transient trees (runtime/, nbconfig/). Called right before start_jupyt…b7ef6a7
-
fix some bugs
anurag008w1da7c35
-
Preserve venv pip behavior with Jupyter defaults
Anurag1f050ab
-
Prune DevData traversal excludes
Anuragff724b2 -
Audit DevData excludes and startup banner
Anurag4fe794e -
Sync only populated Jupyter devdata folders
Anurag28ef70e -
feat: key rotator manager UI with auth, provider drilldown, log plumbing
anurag008w58a85c0 -
fix: WhatsApp connection errors - preserve credentials during sync (PR #183-185)
anurag008w54ab8bf -
fix: prune stale files after workspace sync
anurag008w1eaaf96 -
fix: reject non-WebSocket upgrades; resilient devdata/openclaw prune on partial snapshots
anurag008we54b511
-
Fix sync robustness, devdata activation, alias cleanup, and timing-safe auth compare
Codex14fd0fa
-
Fix gateway/telegram config bugs and stabilize WhatsApp + key rotator flows
Anuragc8a2bdb
-
Exclude Python/system packages from sync
Unverified signatureAdded exclusions for Python/system package directories to prevent syncing issues.7baec40 -
Implement secret filename patterns for exclusion
Added secret filename patterns to exclude sensitive files from syncing.09e99f8
-
Implement bug fixes for file handling and JupyterLab checks
Added multiple bug fixes to handle file size limits, exclude paths correctly, and ensure JupyterLab is not running during restore.f54eaff -
Fix prune_remote_deleted_files guard and health probe status threshold
openhands- Add try/except around prune_remote_deleted_files to handle older huggingface_hub versions where delete_files() may not exist - Revert health probe statusCode threshold from <400 to <500 so 5xx errors are correctly reported as unhealthy - Add Jupyter DevData sync script for separate dataset backup - Update start.sh with Jupyter terminal startup logic0e6fb59