Skip to content

review-snapshot

The server-only atomic source snapshot shared by graph assembly and paged review, retaining full rows in process while graph JSON exposes only lean summaries.

One graph build already reconciles resident local/forge Issues and current Eval timelines. At successful completion it atomically publishes those full source populations, including Eval histories needed to project one selected scenario, to process memory, replacing the previous snapshot as a unit. The first /api/issues or trunk /api/evals request waits for that first successful publication; once a snapshot exists, a request reads its atomic generation without joining an unrelated graph/session refresh, then joins current session presence separately. A newer resident-forge content revision is a relevant source change, not an unrelated refresh: the next Issue read asks graph-cache for a publication carrying at least that revision before answering. An already-running graph flight that captured older resident state may settle, but cannot satisfy that request; graph-cache retains its full rebuild obligation. Thus a background reconcile cannot leave the row snapshot permanently behind, without product-level polling. A later page revision/poll observes the replacement generation. Trunk detail projects one selected history plus its bounded lightweight neighbors from the same generation; a sessions-only graph splice leaves the snapshot valid because session presence is joined separately at request time.

The snapshot has no enumerable attachment to the board and is never included in graph JSON, SSE full frames, or delta units. Reading before a successful publish fails loudly. This is a compute-sharing boundary, not a second datastore: git/spec/eval/issue sources remain authoritative and graph invalidation remains the one refresh trigger.