Date. 2026-08-14 · CR. change-requests/cr-2026-212-loomworks-findings-visible-and-answerable-v0_2 (the candidate-context-path version; v0.1 halted at Step 1, superseded by ruling).
State. Built and tested, BOTH repos. HALTED before tag and push. Engine main local commit 3c925ba; surface main local commit 1073267 (neither pushed; no tags). Built at the exact v0.2 baselines (engine f011c80, surface a1deb86).
Face 1 (engine) — the candidate-context path. A candidate now HAS a Companion context: the seed resolved via candidate_seed_id (not the Engagement memory object, which doesn't exist until instantiate), the open-findings block (each finding's location_in_seed + the suggestion SENTENCE verbatim), a plain drafted-not-committed state line, and the capability-honest posture (state findings when asked what blocks commit; they are answered from the project's page; do not offer — face 2 is unbuilt). Door 3's pre-seed window keeps the historical no-context behavior (SeedNotFoundError still raised; converse's catch stays meaningful). Candidates gaining full seed context is the RULED consequence (v0.2 §0.7), not a side effect.
Wrinkle B — the ruled precedent held; the halt clause was not needed. The B-77 shape widened cleanly to both admin-log lineages: the context stamps engagement_state + a candidate_marker (seed max version, finding-event count, finding max object_version); candidate cache hits re-check the marker against the admin log; active entries pay nothing; commit invalidates naturally via the working-version bump.
Face 3 (surface) — the panel. Each open finding renders on the candidate page with its suggestion sentence, behind the banner's shared fence. Answerable free-text fields get a textarea + "Answer and re-review" → amend THEN induct (the flow fact, in code comments and pinned as an ordering test) → the panel re-renders what the cycle actually returned — the cycle note says so in words: "what remains above is what the review left open." Compound locations (observed live: "initial_contributors and initial_agents") render without an inline answer, honestly. Adapters (fetchSeedFindings, inductSeed) join amendCandidateSeed in door3.ts — the same seed-ceremony spine, one more caller.
Engine: 7 new tests, 6 observed failing pre-change (the seventh is the preserved seedless-raise pin) — the suggestion sentence verbatim in context; the posture line; no block without findings; both marker lineages invalidate (a finding raise AND a seed amendment each reach a cached context); unchanged candidates keep the object-identity cache hit; active rows never enter the candidate branch. Full suite 3729 passed / 68 skipped; ruff clean; mypy at the 537 baseline exactly. Surface: 5 new panel tests (the sentence verbatim; the amend→induct ORDER; the still-open outcome rendered, no assumed close; the fence; the compound-location honesty); full suite 808/808; tsc clean.
On a disposable draft-route candidate (E0132 — turn-less at creation; [B-93] routed around deliberately, again):
POST /seed 200 then POST /seed/induct 200 — the flow fact in flight; cycle 2 returned; the panel showed 2 remaining and the honest cycle note. Screenshots kept.cr-2026-212-e0128-panel.png. E0128 untouched otherwise: its answer is the Operator's act.host_account_current_engagement_id_fkey — the eye-test's page-landing had set the focus to E0132, and the discard endpoint cannot delete a row the focus points at. The suppression property's prediction ("the first fix expects to find more of its kind") arriving before the fix. Focus cleared manually; discard 204; zero residue. For the gate: fold into [B-93] as a second named FK, or file alongside — the Operator's call.E0128's conversation pane showed "Couldn't load earlier conversation. Try sending a new message." on the dev surface (history fetch failed for the Operator persona's minted session; the focus chip showed 19 turns). An honest error line, possibly dev-transient; recorded here rather than investigated mid-CR.
Kind A as ruled (v0.2 §4): face 1 reads seed + findings into a prompt that stops at the boundary; face 3 writes only through the existing amendment ceremony with existing creator attribution. Null new-path finding recorded.
Tags both repos; push; watch both runs (engine runners: 35–45 min twice-precedented); redeploy engine + surface; the Operator's walk on E0128 — the sentence on their screen, then, if they choose, the answer in the panel and the finding's close, then the tap that was never the obstacle.
DUNIN7 — Done In Seven LLC — Miami, Florida — CR-2026-212 Checkpoint A — v0.1 — 2026-08-14 The candidate got a context; the context got the gate; the gate got a door. The Companion pointed at it, unprompted, on the first ask.