docs(canon): accept ADR-012 and retract the parts it supersedes
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

ADR-012 accepted 2026-08-25.

ADR-010 — partially superseded, notes added inline:
  decision 1: "a reading of the repositories" never said which copy, and the
    answer was neither the forge nor a working copy but whichever checkout last
    synced. The hub holds no repository files and never reads one.
  decision 5: "central derives, does not accept pushes" was policy while the
    workstation pushed everything.
  decision 6: "preliminary" was named but never built.

ADR-003 — partially superseded:
  decision 2: fingerprints composed from filesystem mtime are invalidated in
    part. mtime is a property of one workstation, differs across clones, and
    says nothing about content. Evidence: git_fingerprint for the-custodian
    held the initial commit while last_state_synced_at was minutes old.
  decision 5: the rebuild principle was correct but never exercised, and its
    "without data loss" claim holds only while nothing exists solely in the hub
    — which was false for 111 records on 2026-08-25.

ADR-001, ADR-005, ADR-007 and ADR-011 reviewed and unaffected; ADR-007 is
reinforced, since derived identifiers let an overlay and a forge-derived
projection compute the same identity.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
codex 2026-08-25 21:44:14 +02:00
parent 8c2825f4c3
commit c0cead2169
3 changed files with 59 additions and 5 deletions

View file

@ -2,9 +2,9 @@
id: CUST-ADR-012
type: architecture-decision-record
title: "What the Hub Projects: Forge as Projection Source, Working Copies as Preliminary Overlay"
status: proposed
status: accepted
owner: the-custodian
revision: "draft-1"
revision: "1.0"
last_reviewed: "2026-08-25"
review_interval: 6m
decided_by: Bernd Worsch
@ -16,7 +16,7 @@ tags: ["architecture", "state-hub", "forgejo", "projection", "provenance", "auth
## Status
Proposed. Supersedes `ADR-010` decision 1's phrase "authoritative as a reading of
**Accepted 2026-08-25** by Bernd Worsch. Supersedes `ADR-010` decision 1's phrase "authoritative as a reading of
the repositories" by making the reading concrete, and implements decision 6's
unbuilt notion of "preliminary".
@ -227,6 +227,11 @@ built. Those belong to implementation.
- **`ADR-010`** — decisions 1 and 5 are sharpened, not reversed: central still
derives and still does not accept pushes of derived state. Decision 6's
"preliminary" gains a mechanism. The local-cache-versus-database framing stands.
- **`ADR-003`** — partially superseded. Decision 2 composes fingerprints from
filesystem `mtime`, which is a property of one workstation rather than of the
source; under decision 1 here the input is the commit. Decision 5 already
stated the rebuild principle correctly but had never been exercised; decision 7
here makes it an operation with a source, a scope and a verification.
- **`ADR-007`** — derived identifiers become more valuable here: a forge-derived
projection and a preliminary overlay compute the same identifier for the same
record, so absorbing an overlay entry needs no reconciliation.