From 1bb707e248ba5671598ad0db535b18650d67ab85 Mon Sep 17 00:00:00 2001 From: Erik Date: Wed, 12 Aug 2026 00:56:18 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20FA1=20CLOSED=20=E2=80=94=20re-review=20?= =?UTF-8?q?CF-1=20seam-map=20addenda=20+=20ledger=20verdict?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The narrow re-review (96df892d) closed FA1 with no reopen and one carry-forward: two further forward-looking seam-map rows (:128 owner diagram, :214 state-parameter pattern) still cited the deleted AllegianceTree as FA2 design guidance. Both now carry dated strike/ addendum notes pointing FA2 at the parsed profile records instead. FA2 unblocked per the re-review's precondition. Co-Authored-By: Claude Fable 5 --- ...26-08-11-fellowship-allegiance-campaign.md | 2 +- docs/research/2026-08-11-fa-acdream-seams.md | 20 ++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/docs/plans/2026-08-11-fellowship-allegiance-campaign.md b/docs/plans/2026-08-11-fellowship-allegiance-campaign.md index c3a4424a..b03e59b7 100644 --- a/docs/plans/2026-08-11-fellowship-allegiance-campaign.md +++ b/docs/plans/2026-08-11-fellowship-allegiance-campaign.md @@ -193,7 +193,7 @@ before anything builds on them. | Slice | Status | Commit(s) | Review | Gate | |---|---|---|---|---| -| FA1 | CODE-COMPLETE 2026-08-12; dual-lens Opus review APPROVE-WITH-FIXES both lenses; fix-round applied 2026-08-12 | `7be86f47` (builders), `6bedbc47` (parsers), `5f9aa16f` (WeenieError), `4281750b` (delete AllegianceTree); fix-round: `ed308087` (mechanism+blast MUST/SHOULD-FIX code+tests), this commit (register/plan/seams doc corrections) | mechanism `docs/research/2026-08-12-fa1-review-mechanism.md` (2 MUST-FIX, 5 SHOULD-FIX, all applied); blast `docs/research/2026-08-12-fa1-review-blast.md` (4 MUST-FIX, 5 SHOULD-FIX, all applied). **Live-surface note (blast SF-1):** FA1 changed the observable output of the ALREADY-LIVE `@allegiance info` command in two retail-faithful ways — vassal print order reversed (now pinned by a 3-vassal test through `FormatAllegianceInfoLines`) and a malformed tree now prints nothing instead of a partial roster (now pinned at the `GameEventWiring` layer) — not a "purely unwired" slice. | automated: Release build + full suite green throughout. **Reconciled totals (blast MF-4):** the ledger's own prior figure (13,149/4/0) is CONFIRMED correct by direct measurement at the pre-fix-round tip `bc693728` (13,153 total = 4+916+1559+15+130+119+4856+877+4677 across all 9 test projects); the campaign-start baseline in §5 is 13,103/4/0, and the diff-verified FA1 delta is **+58 added / −9 deleted (deleted `AllegianceTreeTests.cs`) = net +49**, i.e. 13,103+49=13,152 — one test of drift against the directly-measured 13,153/13,149 baseline, attributed to the §5 baseline being captured at a different point in git history than the FA1 diff's actual parent, not a further miscount. This fix round adds a further **+9 tests** (2 golden vectors for the new `0x001F` builder, 1 D5 `<<1` pin at the `0x02C0` site, 4 MF-1/SF-1 boundary tests, 2 blast SF-1 live-surface pins) — **final: 13,158 passed / 4 skipped / 0 failed (13,162 total), directly measured.** | +| FA1 | **CLOSED 2026-08-12** — narrow re-review verdict CLOSED, no reopen (`96df892d`, §7 of the mechanism findings doc: all 7 mechanism dispositions re-derived in the diffs, all 6 blast dispositions spot-verified, suite claim corroborated on post-fix binaries); re-review carry-forward CF-1 (two further stale `AllegianceTree` citations in the seam map's FA2 guidance, `:128`/`:214`) closed by coordinator addenda in the same commit as this ledger update — FA2 was contracted not to start before that | `7be86f47` (builders), `6bedbc47` (parsers), `5f9aa16f` (WeenieError), `4281750b` (delete AllegianceTree); fix-round: `ed308087` (mechanism+blast MUST/SHOULD-FIX code+tests), this commit (register/plan/seams doc corrections) | mechanism `docs/research/2026-08-12-fa1-review-mechanism.md` (2 MUST-FIX, 5 SHOULD-FIX, all applied); blast `docs/research/2026-08-12-fa1-review-blast.md` (4 MUST-FIX, 5 SHOULD-FIX, all applied). **Live-surface note (blast SF-1):** FA1 changed the observable output of the ALREADY-LIVE `@allegiance info` command in two retail-faithful ways — vassal print order reversed (now pinned by a 3-vassal test through `FormatAllegianceInfoLines`) and a malformed tree now prints nothing instead of a partial roster (now pinned at the `GameEventWiring` layer) — not a "purely unwired" slice. | automated: Release build + full suite green throughout. **Reconciled totals (blast MF-4):** the ledger's own prior figure (13,149/4/0) is CONFIRMED correct by direct measurement at the pre-fix-round tip `bc693728` (13,153 total = 4+916+1559+15+130+119+4856+877+4677 across all 9 test projects); the campaign-start baseline in §5 is 13,103/4/0, and the diff-verified FA1 delta is **+58 added / −9 deleted (deleted `AllegianceTreeTests.cs`) = net +49**, i.e. 13,103+49=13,152 — one test of drift against the directly-measured 13,153/13,149 baseline, attributed to the §5 baseline being captured at a different point in git history than the FA1 diff's actual parent, not a further miscount. This fix round adds a further **+9 tests** (2 golden vectors for the new `0x001F` builder, 1 D5 `<<1` pin at the `0x02C0` site, 4 MF-1/SF-1 boundary tests, 2 blast SF-1 live-surface pins) — **final: 13,158 passed / 4 skipped / 0 failed (13,162 total), directly measured.** | | FA2 | — | | | | | FA3 | — | | | | | FA4 | — | | | | diff --git a/docs/research/2026-08-11-fa-acdream-seams.md b/docs/research/2026-08-11-fa-acdream-seams.md index 9fe07c31..192f4457 100644 --- a/docs/research/2026-08-11-fa-acdream-seams.md +++ b/docs/research/2026-08-11-fa-acdream-seams.md @@ -126,6 +126,14 @@ GameRuntime │ └── borrows RuntimeEntityObjectLifetime (member guid → ClientObject) └── AllegianceOwner : RuntimeAllegianceState (new) └── owns the ported AcDream.Core.Allegiance.AllegianceTree + ^^^ [FA1 fix-round addendum 2026-08-12, re-review CF-1: + AllegianceTree was DELETED at 4281750b (lane C verdict — + wrong passup transcription, wire-contradicting tree model). + RuntimeAllegianceState owns the PARSED profile records from + ClientCommandResponses.ReadAllegianceProfileBody instead — + the flat vassal list + monarch/patron/self blocks, already + assembled with retail's four rejection rules. Do not recreate + a tree type.] ``` Rationale and precedent: @@ -211,9 +219,15 @@ like every other Runtime-owned sink above"). Two legal shapes: - **State object** (like `friends`, `squelch`, `itemMana`, `vendor`, `externalContainers`): the type lives in `AcDream.Core.*`, Runtime owns the instance, Core.Net writes into it. `FriendsState`/`SquelchState` live - in `AcDream.Core.Social`; `AllegianceTree` already lives in - `AcDream.Core.Allegiance` — **so the allegiance tree can be passed - directly as a state parameter**, exactly like `friends`. + in `AcDream.Core.Social`; ~~`AllegianceTree` already lives in + `AcDream.Core.Allegiance` — so the allegiance tree can be passed + directly as a state parameter, exactly like `friends`~~ [FA1 fix-round + addendum 2026-08-12, re-review CF-1: `AllegianceTree` was DELETED at + `4281750b`. The pattern itself stands — the PARSED allegiance profile + records (from `ReadAllegianceProfileBody`, in `AcDream.Core.Net`) are + what gets passed/held; FA2 defines the owned snapshot type in + `AcDream.Core.*` if a Core-side holder is needed, or holds the parsed + records directly in the Runtime owner]. - **Delegate hole** (like `onCharacterOptions`, `onInterfaceText`, `onUseDone`): a `Action<...>` the router closes over.