docs: publish archive control design set

This commit is contained in:
2026-07-23 13:39:09 +00:00
parent 6ca94a546e
commit 7e295cff3a
12 changed files with 1960 additions and 7 deletions
+11 -7
View File
@@ -57,12 +57,11 @@ archive-client-backup --database /var/lib/archive-control/client.db \
Secrets must be regular files without group/world permissions. The daemon never
stores them in SQLite or sends the shared token after registration.
The daemon currently executes heartbeat, inventory, state-snapshot, and
route-provisioning commands. Transfer storage primitives are implemented and
tested but are not yet wired to assignment/step commands; those and eviction
commands remain durably rejected as unsupported until their orchestration and
qBittorrent executors are added. They are never falsely acknowledged as
accepted.
The daemon executes heartbeat, inventory, state-snapshot, route-provisioning,
archive/unarchive assignment and step commands, compensation, staging cleanup,
and safe cache eviction. Durable journals and job cursors make interrupted
work replayable; unsupported or invalid assignments are rejected explicitly
and never falsely acknowledged as accepted.
Run tests and build using containers:
@@ -74,7 +73,12 @@ docker build -t sodium/archive-clients:dev .
The local cross-project route test is under `e2e/`. It brings up isolated
2×2 cache/archive node stacks plus the standalone control core and verifies all
four eager-mesh routes without Telegram. See `e2e/README.md`.
four eager-mesh routes, transfer/eviction/unarchive workflows, and the
adversarial matrix without live infrastructure or Telegram. See
`e2e/README.md`.
The complete cross-project design, protocol, workflow, safety, deployment,
Telegram UX, and testing documentation is published under [`docs/`](docs/).
Generated bindings are pinned to archive-control-proto commit
`4ec852014dad74606d4078b3ae1aa208c814b033`.