docs(observatory): record cache proof and pending activation

This commit is contained in:
DCCONSTRUCTIONS
2026-09-03 09:15:12 +03:00
parent 1e4ddc2cff
commit d777f3198b
3 changed files with 145 additions and 0 deletions
@@ -81,6 +81,39 @@ All pre-existing queue row hashes are unchanged. This repairs dispatch polling,
not published-cache verification or full recorded-workflow acceptance.
See the [repair evidence and rollback boundary](../../experiments/perception/OBSERVATORY_RECORDED_CLAIM_REPAIR_2026-09-02.md).
## Third increment: exact published-result cache (2026-09-03)
Implemented in source; activation of the matching backend/frontend release is
pending the local resource gate. This does not claim a completed recorded run.
The portable catalog now joins successful **published** queue receipts to the
current per-source catalog snapshot, immutable definition, Session publication
binding, calculation profile, package contract, central manifest and every
artifact. No matching by LAB name, operator label, or the newest 100-job page.
The queue receives two indexes, with no deletion or rewriting of history.
The existing computation identity remains the only computation key.
An exact usable result projects `existing / open-existing`, its result ID and
path-free source/definition/package identities. It disables new submission but
does not require Worker dispatch or raw-source preparation for cached review.
Missing/corrupt artifacts do not count as coverage; the older evidence remains.
The newest verified exact candidate is returned; other versions are not hidden
from the evidence catalog or mistaken for the current calculation.
Large immutable result objects are hashed in 1 MiB chunks on first use or file
metadata change. A bounded 4096-entry memo rechecks dev/inode/size/mtime/ctime;
normal refresh does not reread unchanged large objects. This is result-integrity
IO, not source upload, source decoding, model inference, or an FPS measurement.
The queue INSERT fence rechecks the published candidate atomically. It never
streams large files while holding the write lock: cold/concurrent/changed
verification returns HTTP409 requesting Refresh. Exact idempotency retries still
return the original job. Verified corruption permits a new request.
The frontend's existing portable decoder now accepts only bound, internally
consistent cached results. No per-LAB page, renderer or selector implementation
was introduced. Full selector/progress/product acceptance remains stage 2.
See [verification and activation status](../../experiments/perception/OBSERVATORY_PUBLISHED_CACHE_2026-09-03.md).
## Boundaries
No Synology deployment, hardware actuation, motor integration, new capture,