Commit Graph
120 Commits
Author SHA1 Message Date
Omar SobhandClaude Opus 4.7 2fcfb16160 feat(serve): HTTP+SSE API + static dashboard bundle
Adds the serve subcommand: an axum 0.7 + tower-http server on
:7700 backing the React dashboard. Routes:

  GET  /api/status   /api/projects   /api/snapshots
       /api/sync-queue   /api/hot   /api/events (SSE 5s tick)
  POST /api/activate /api/deactivate /api/sync
       /api/gc /api/snapshot

Mutating endpoints shell out to /usr/local/bin/claw-store so
all CLI logic stays single-sourced. claw-store/static/ holds
the prebuilt dashboard Vite bundle for --static-dir.

cargo_init.rs gets a minor wiring tweak so the API can read
back the managed cargo config marker.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
2026-06-28 12:52:46 +00:00
Omar SobhandClaude Sonnet 4.6 8b4d0088ca fix: list command only shows git repos, not org subdirs
Skip non-git directories inside org folders so flat layout dirs like
claw-store/target or claw-store/.cargo don't appear as fake repos.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-16 11:50:02 +00:00
Omar SobhandClaude Sonnet 4.6 a9c12173fe feat: activate/deactivate/list/sync/pull commands + peer sync queue
- activate <org/repo>: wire hot tier, write .cargo/config.toml, register
- deactivate <org/repo>: auto-sync to peer, evict hot tier, unregister
- list: show all warm repos with activation status and last-active time
- sync <org/repo>: git push origin then SSH peer to pull
- pull <org/repo>: git pull from origin, stamp last_sync in manifest
- SyncQueue: file-based retry queue (/var/lib/claw-store/sync-queue.toml)
- daemon: drains sync queue on every 5-min poll tick
- config: [peer] host/user for cross-node notification
- manifest: Project.name is now org/repo, adds last_sync field
- hot tier paths are org/repo-namespaced to avoid collisions

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-16 11:45:04 +00:00
Omar Sobh 3fb108edfc fix: manifest path to /var/lib/claw-store (user-writable) 2026-06-16 04:00:31 +00:00
Omar Sobh ac3079b56c fix: SystemZfs uses sudo for write ops (snapshot/destroy/clone/send) 2026-06-16 03:58:39 +00:00
Omar Sobh 7ae1c4f950 feat: daemon event loop and full CLI (init, status, gc, snapshot, restore, replicate) 2026-06-16 03:55:22 +00:00
Omar Sobh 11c32df3cd merge: restore.rs 2026-06-16 03:53:19 +00:00
Omar Sobh 426323723c merge: snapshot.rs 2026-06-16 03:53:19 +00:00
Omar Sobh 5f032bae25 merge: hot.rs 2026-06-16 03:53:19 +00:00
Omar Sobh 8cd8ce9d16 merge: zfs.rs 2026-06-16 03:53:19 +00:00
Omar Sobh c20fdcb484 merge: manifest.rs 2026-06-16 03:53:19 +00:00
Omar Sobh fbd8840a70 merge: config.rs 2026-06-16 03:53:19 +00:00
Omar SobhandClaude Sonnet 4.6 f093a06e4b feat: restore from ZFS snapshot via clone
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-16 03:51:40 +00:00
Omar SobhandClaude Sonnet 4.6 96293ef794 feat: snapshot scheduling, retention pruning, cold replication
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-16 03:51:30 +00:00
Omar SobhandClaude Sonnet 4.6 f9af03a134 feat: hot tier GC with stale eviction and LRU space eviction
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-16 03:51:23 +00:00
Omar SobhandClaude Sonnet 4.6 dfb40eb13b feat: cargo config writer for automatic hot tier routing
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-16 03:50:39 +00:00
Omar SobhandClaude Sonnet 4.6 965eef4db5 feat: ZFS trait abstraction with SystemZfs and MockZfs
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-16 03:50:24 +00:00
Omar SobhandClaude Sonnet 4.6 bd390f953d feat: project manifest with load/save/upsert
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-16 03:49:43 +00:00
Omar SobhandClaude Sonnet 4.6 8ab3bb2d12 feat: config types and loader
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-16 03:49:25 +00:00
Omar Sobh 08b7f94e4c feat: claw-store workspace scaffold 2026-06-16 03:48:06 +00:00