Problem
Rendering reads graph/pages before computing the final publication source revision. A blueprint edit during render can therefore label stale or mixed output with the current hash, defeating the dashboard's stale-publication check.
Draft #73 contains transactional publication work but is stale/conflicting and should be mined or restacked rather than merged wholesale.
Acceptance criteria
- Render captures one immutable, descriptor-bound blueprint snapshot before deriving any page.
- Every page, graph, and
publication.json is derived from that exact snapshot.
- A concurrent edit before commit makes render retry or fail without replacing the previous complete site.
- Publication replacement is transactional; readers never observe mixed generations.
- Tests mutate content, paths, and directory entries during render and verify the old site remains intact.
- Dashboard stale checks compare against the same snapshot identity used to render.
Problem
Rendering reads graph/pages before computing the final publication source revision. A blueprint edit during render can therefore label stale or mixed output with the current hash, defeating the dashboard's stale-publication check.
Draft #73 contains transactional publication work but is stale/conflicting and should be mined or restacked rather than merged wholesale.
Acceptance criteria
publication.jsonis derived from that exact snapshot.