hephaestus/crates/heph-core/src
Erich Blume 5d54e913c2
Some checks failed
Build / validate (pull_request) Failing after 4s
hephd: client mode + RemoteStore (sync 9b)
Add the online-only escape hatch — a no-replica daemon that proxies every
Store call to a server over HTTP (tech-spec §3.1).

- Daemon is now generic over the backing store (Arc<Mutex<dyn Store +
  Send>>), so the same unix-socket surface fronts either a LocalStore
  (local/server) or a RemoteStore (client). sync::router/sync_once and the
  Ctx follow suit.
- New POST /rpc route on the hub router runs the full rpc::dispatch over
  HTTP (result-xor-error body, always 200). dispatch gains task.get and
  links.add so the proxied API is complete.
- RemoteStore (hephd): implements heph_core::Store by forwarding each call
  to /rpc via a blocking reqwest client (Store is sync; the daemon only
  calls it from the blocking pool). Error::Remote for transport failures;
  NOT_FOUND is preserved as Error::NodeNotFound. Sync primitives are
  stubbed (a client keeps no op-log).
- main: --mode client + --server-url; client skips the file lock and opens
  no LocalStore.
- tests/client_mode.rs: a RemoteStore drives node/task/search/list/health
  against a real HTTP server, and not-found maps back correctly.

102 tests green; clippy -D warnings + fmt + prek clean. Next: OIDC auth.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 15:29:28 -07:00
..
sqlite hephd: network sync over HTTP — hub + spoke (sync 9a) 2026-06-01 15:14:20 -07:00
clock.rs Scaffold cargo workspace + heph-core foundation 2026-05-31 18:52:15 -07:00
crdt.rs heph-core: body text-CRDT via yrs (sync 8d) 2026-06-01 09:06:17 -07:00
error.rs hephd: client mode + RemoteStore (sync 9b) 2026-06-01 15:29:28 -07:00
export.rs heph CLI + export 2026-05-31 20:33:59 -07:00
extract.rs heph-core: markdown extraction (wiki-links + checkboxes) 2026-05-31 18:56:59 -07:00
hlc.rs heph-core: real HLC + persistent device origin (sync 8a) 2026-05-31 21:13:55 -07:00
lib.rs hephd: network sync over HTTP — hub + spoke (sync 9a) 2026-06-01 15:14:20 -07:00
model.rs hephd: network sync over HTTP — hub + spoke (sync 9a) 2026-06-01 15:14:20 -07:00
oplog.rs heph-core: body text-CRDT via yrs (sync 8d) 2026-06-01 09:06:17 -07:00
ranking.rs hephd local mode: file lock + JSON-RPC over unix socket 2026-05-31 20:28:15 -07:00
recurrence.rs heph-core: recurrence (roll-forward in place) + per-task logs 2026-05-31 19:14:22 -07:00
store.rs hephd: network sync over HTTP — hub + spoke (sync 9a) 2026-06-01 15:14:20 -07:00