DUNIN7 · LOOMWORKS · RECORD
record.dunin7.com
Status Current
Path current-status/current-status-manifest-v0_70-amendment-v0_1.md

Current-status manifest — v0.70 amendment instructions — v0.1

Document: current-status-manifest-v0_70-amendment-v0_1 Version: v0.1 (amendment-instruction document; the product is manifest v0.70) Date: 2026-06-28 For: Claude Code — apply these splices to current-status-manifest-v0_69.md and save the result as current-status-manifest-v0_70.md (add-new-file, never git mv — every manifest version is a standing sibling). Purpose: Absorb the Companion-surface session of 2026-06-28 (later than the morning's mobile-Companion absorption in v0.69). Four things changed the recorded state and one of them supersedes a v0.69 §5 residue: (1) the whole Companion-surface arc merged to Operator-Layer main — the feat→main merge v0.69 §5 named as "unscheduled" is DONE; (2) the seed viewer was built, pushed, and live-verified; (3) create-restore (the create button on the lens-home) shipped; (4) the create-stage three-door design was scoped, alongside four CRs filed. The OL lint debt that landed with the merge is named. All SHAs verified against the live repos at absorption, not the session summary.


Plain-language summary

v0.69 recorded the Companion work as living on the feat-companion-surface branch, not on main, and named the merge as a future Operator decision. That decision was made today: the whole arc — thirty-six commits across nine pieces — merged to Operator-Layer main. On top of that merge, three more things happened: a seed viewer was built and proven against real data, a create button was restored to the home, and the whole "how an engagement gets created" question was worked into a settled three-door design (talk it through, a quick generator, or hand over your own specification — all ending in one committed seed). Four change requests were filed. This amendment brings the manifest current, supersedes the "not merged" residue, and honestly names a new standing condition: the merge landed code that fails the linter (a pre-existing repo condition the merge added to, never the project's push gate).


How to apply

Splice list against v0.69. Apply in order, then update version/date/header throughout (v0.69 → v0.70, date 2026-06-28).


Splice 1 — Version, date, status header (top of file)

Prepend a new status sentence-block at the very front of the Status: value, before the existing v0.69 "Two Companion/Operator-Layer arcs absorbed…" text:

> Status: Working draft. The entire Companion-surface arc is now MERGED to Operator-Layer main (3f2fca8, a --no-ff merge; 36 commits across nine pieces — CR-2026-125 focus, dev-env fixes, Companion surface integration, list-loading CR-2, voice panel + timestamps, add-side rework, mobile Companion, create-restore, seed viewer; all were already on origin/feat-companion-surface, nothing local-only). This SUPERSEDES the v0.69 §5 residue "OL Companion work on the feat branch only, no merge to main" — the merge v0.69 named as unscheduled is DONE; OL main advanced bafdb07 → 3f2fca8 and is in sync on origin. Merged-whole verification: tests 451/451 green, tsc clean of merge regressions (the 4 known pre-existing errors only — 3 TagChipArea + 1 RefreshFocusOnIntent — no new), vocabulary-wall green; lint red (25 errors / 14 warnings) — a standing repo condition, not merge breakage (pre-merge main already carried 15 lint errors; the merge added 10, all from feat's own new Companion-surface files; lint has never been this repo's push gate — tests/tsc/vocab are). Named as debt in §5. Three more pieces landed on top of the merge this session: the seed viewer (built, pushed, and LIVE-VERIFIED against E0007/Goosey's real seed — seed_version 9, all five commitments rendered from live data, no UUID leak, 403 error-path proven), create-restore (the create-engagement button restored to the lens-home, both layouts), and the scoped create-stage three-door design (Entry 116). Four CRs filed to the record this session (Entries 115–116). Engine main unchanged at 5ccc3d7; OL main 3f2fca8; record main 461f09a. [then the existing v0.69 status text continues unchanged: "Two Companion/Operator-Layer arcs absorbed in v0.69…"]


Splice 2 — §1 "Current live build front" — update the second-strand note

The v0.69 second-strand paragraph (added by the v0.69 amendment, ending "…the add-side arc is Entry 113") describes the Companion strand as living on feat-companion-surface. Append one sentence-block to the END of that paragraph (before "### Loomworks engagement seed"):

> Update (2026-06-28, later session): this strand is now MERGED to OL main. The feat-companion-surface integration line — carrying the add-side OL half, the mobile Companion surface, and (added this session) create-restore and the seed viewer — merged to Operator-Layer main at 3f2fca8 (--no-ff, 36 commits, merged-whole suite green, lint red as standing baseline). The Companion surface and OL main no longer diverge. The feat-companion-surface branch is fully contained in main and retained pending a confirmation the merged main runs live (then retire-able). The Companion-surface work has additionally turned to the engagement create stage — the seed lifecycle's authoring step — now scoped as a three-door design (Entry 116); the seed viewer is its lifecycle sibling (view), the seed-editor CR (cr-seed-editor-v0_1) its edit sibling.


Splice 3 — §1 Substrate state — refresh the Operator-Layer line

In §1 "Substrate state," the "Frontend state — Operator Layer (loomworks):" line records HEAD 4ffb3ff (2026-06-11). Append:

> Updated for v0.70 (2026-06-28). OL main is now 3f2fca8 — the merged Companion-surface arc (see header status). Suite 451/451; tsc 4 known pre-existing errors (3 TagChipArea + 1 RefreshFocusOnIntent), no merge regressions; vocabulary-wall green; lint 25 errors / 14 warnings (standing baseline — see §5). The arc includes: CR-2026-125 focus/current-engagement, the Companion surface integration (mockups 1–4, in-engagement + lens-home), list-loading CR-2 (keyset pagination on rooms/lenses/conversation), voice panel + per-bubble timestamps, the add-side rework (Entry 113), the mobile Companion surface (Entry 114), create-restore (the lens-home create button), and the seed viewer (live-verified). Engine main unchanged at 5ccc3d7; alembic unchanged.


Splice 4 — §3 Entries — add Entry 115 (this session's surface work) and Entry 116 (the create-stage design)

Insert at the end of Section 3 (after Entry 114, before Section 4):


Entry 115 — Companion-surface arc merged to main; seed viewer + create-restore landed (new v0.70; 2026-06-28)

Provenance. OL main 3f2fca8 (--no-ff merge of feat-companion-surface; parents bafdb07 + 86663aa; 36 commits; 92 files +8,674/−7,715; origin/main in sync). Seed-viewer commits 30be73541ba22686663aa; create-restore 9667d60; both on the feat branch before the merge, now on main. SHAs verified against the live repos at absorption.

The merge. The whole Companion-surface arc consolidated onto main after the heaviest remaining piece (the seed editor) was CR'd — the deliberate "merge before the heaviest build" sequencing, so the editor builds on a clean main base. Merged-whole verification ran before the push (tests 451/451, tsc 4-known-only, vocab green, lint 25/14 standing — every gate that has been the gate is green; lint is named debt, §5). Nothing was local-only; every commit had already lived on origin/feat-companion-surface.

create-restore (9667d60, CR cr-restore-engagement-creation-affordance-v0_1). The create-engagement entry point was dropped in the lens-home rebuild (the page existed and worked; only the way in was missing). Restored as a shared CreateEngagementButton in both layouts (desktop lens-tab right cluster; mobile header), doing router.push("/operator/create-engagement") — the card-button idiom minus focus-set (no engagement to focus yet). The grounding corrected the scoping note's "try-prompt" assumption (the home's "open a project · what needs me" is static text, not an interactive prompt seam — so the affordance is a button, not a prompt). HOME.voiceHint dropped on desktop (no mic there → misleading), kept on mobile. Frontend-only; suite 445/83.

Seed viewer (30be735/41ba226/86663aa, CR cr-seed-viewer-v0_1). A read-only viewer of the committed seed (the five commitments + version), opened from the in-engagement header (IconFileText, desktop right cluster + mobile), rendered below the header via the VoiceListeningPanel panel precedent (no new overlay machinery). Frontend-only — the grounding found the engine route already exists (GET /engagements/{id}/seed, seed_view.py, returning a structured plain-terms SeedPayloadResponse with Operator-vocabulary labels, engagement-scoped auth via get_current_contributor). fetchSeed projects only the five rendered fields (no engagement_id/UUID — vocab-wall-clean by projection). DraftSpecification.tsx was NOT reused (create-bound blob renderer); a new structured field/value renderer was built. Suite 451/85. LIVE-VERIFIED: the real component fed E0007/Goosey's live seed (seed_version 9, all five commitments populated, no UUID in the DOM, deferred fields absent, 403 error-path proven through the catch). The one un-exercised link (a literal Chrome click of the header button) is covered by the surface open-the-viewer component test.

The seed lifecycle. The seed viewer is the view stage of a single object's lifecycle: create → view → edit. The seed editor (CR'd, cr-seed-editor-v0_1) is the edit stage; the create stage (Entry 116) is the author stage. The create conversation and the edit conversation are the same conversational mechanism (propose → Operator approves → commit → prior-preserved, via the considerations machinery) pointed at a forming vs. an existing seed. The moment a seed is committed it is official, and therefore viewable and editable — no limbo; "only show what's available" governs the lifecycle (view/edit affordances appear when a committed seed exists).

Entry 116 — CRs filed + the engagement create-stage three-door design (new v0.70; 2026-06-28)

Four CRs filed to loomworks-record this session (all .md, Claude-Code-facing; pushed):

The engagement create-stage three-door design (scoping-notes/loomworks-create-stage-three-doors-scoping-note-v0_1, record 461f09a). Began as "the create page doesn't invite activity" (a screenshot of the deprecated create page — old menu-bar shell, not the new lens-home chrome) and developed through correction into a settled design shape. Two Operator conditions govern it: (1) the paths in are identified clearly; (2) the path out is one merged resultant seed. Three doors, each matched to an Operator state, with the finishing step matched to the door:

All three converge on one merged resultant seed, Operator-committed, official-and-therefore-editable. The empty-create-conversation regression dissolves into door 1: the grounding found it's a frontend wiring gap over a ready engine (the create_engagement_entry template is built to speak first — greet + first elicitation question — but ChatView never fires the opening converse call on mount; the old Workshop surface's static greeting was also dropped in the rebuild). The conversation is the common finishing room doors 2/3 fall back to when a result is thin. Build staging (lean, per-CR to confirm): door-1 fix (fire the opening greeting) → door-2 bridge (carry the generator draft across the boundary into the create conversation) → door-3 converter (document upload + extraction + mapping-review surface). Each its own CR with its own Step-0 grounding.


Splice 5 — §4 — update the queued Companion directions block; add the create-stage and source-model directions

The v0.69 amendment added a "Queued Companion directions (filed 2026-06-27/28)" block to §4. Append to it:

> Update (2026-06-28, later session). Conversation search remains queued (its mobile dependency cleared by Entry 114). Command/settings discoverability and recordable-facts/topic remain as filed. Added this session: > - The engagement create stage (loomworks-create-stage-three-doors-scoping-note-v0_1, Entry 116) — three doors to one seed, staged door-1 → door-2 → door-3. The parent design for the coming create CRs. The door-1 fix also closes the empty-create-conversation regression. > - Source-model legibility (cr-reply-source-legibility-v0_1, Entry 116) — gap 1 of the three-gap source model (structural reply source-marking; then gap 2 a content-origin provenance type; then gap 3 web egress). The CR's source enum is designed to extend (web slots in as a value). The recordable-facts/topic investigation converges here. > - Seed lifecycle (Entry 115) — view (built), edit (cr-seed-editor-v0_1, ready to build), author (the create stage). One object, three tools.


Splice 6 — §5 Open questions and known issues — supersede the merge residue; carry the completion-record residue; add the lint debt

In §5, the v0.69 residue "OL Companion work preserved on the feat branch only — no merge to main" is now resolved. Replace that item's body with:

> OL Companion work — MERGED to main (2026-06-28). [RESOLVED] The v0.69 residue named the feat→main merge as an unscheduled Operator decision. It was made: feat-companion-surface merged to OL main at 3f2fca8 (--no-ff, 36 commits, merged-whole suite green). OL main and the live Companion surface no longer diverge. The feat-companion-surface branch is fully contained in main, retained pending a live-run confirmation of merged main (then retire-able). Kept here as a resolved-residue record, not an open item.

Keep the "Add-side arc — no completion record" residue unchanged (still owed; still deliberately not backfilled — the same reconstruct-from-summary caution applies, now compounded by the merge). Add two new items:

> OL lint debt on main (named 2026-06-28). The merged main carries 25 lint errors / 14 warnings, all react-hooks/react-compiler rules at severity=error (15× setState-in-effect, 6× refs-during-render, 2× components-during-render, 2× rules-of-hooks). This is a standing repo condition, not merge breakage: pre-merge main already carried 15 (in files the merge never touched — ChatView, security components, filters/page.tsx); the merge added 10, all from the arc's own new Companion-surface files (SeedViewer, MobileSurface, InEngagementSurface, ConversationPane, useConversation, Home, useHomeData, useVoiceListening, usePagedList, VoiceListeningPanel). Lint has never been this repo's push gate (tests/tsc/vocab are). Two deferred-work pieces: (a) the 10 new Companion-surface react-hooks errors — the arc's own debt, the most worth cleaning (these rules flag real render-bug patterns), a focused cleanup CR; (b) the 15 standing main errors — a broader repo-lint-health question, lower priority. Named, not absorbed silently. > > Push-confirmation discipline reinforced (2026-06-28). Twice this session a push Claude.ai authorized did not execute and surfaced later as "ahead of origin" (create-restore 9667d60; the create-stage scoping note 461f09a, where Claude.ai mis-stated an unexecuted push as landed). Both were caught by ground-truth checks before harm. Standing rule reaffirmed: a push is not done until origin is confirmed at the expected SHA — "I authorized it" and "it landed" are different facts; confirm the SHA, do not assume.


Splice 7 — Changelog — add the v0.70 entry at the top of the changelog list

Insert immediately after ## Changelog and before the - v0.69 line:

> - v0.70 (2026-06-28, later session): The entire Companion-surface arc MERGED to Operator-Layer main (3f2fca8, --no-ff, 36 commits across nine pieces; merged-whole verification — tests 451/451, tsc 4-known-only, vocab green, lint 25/14 standing) — superseding the v0.69 §5 "not merged to main" residue. OL main bafdb07 → 3f2fca8. On top of the merge, three pieces landed: create-restore (the lens-home create-engagement button, both layouts, 9667d60) and the seed viewer (read-only committed-seed viewer from the in-engagement header, frontend-only over the existing GET …/seed route, 86663aa, LIVE-VERIFIED against E0007's real seed), plus the scoped engagement create-stage three-door design (talk-it-through / generator / PRD-converter → one merged resultant seed; the empty-create-conversation regression dissolves into door 1). Four CRs filed to the record (create-restore + seed-viewer built; source-model legibility gap-1 and conversational seed-editor CR'd, not yet built — both base off merged main). Adds §3 Entries 115–116; updates §1 live-front/second-strand and Substrate-state OL line; §4 create-stage + source-model + seed-lifecycle directions; §5 — resolves the merge residue, carries the add-side completion-record residue, adds the OL lint-debt item and the push-confirmation-discipline note. The seed lifecycle (create → view → edit) named as one object's three tools. Engine main unchanged 5ccc3d7; record main 461f09a. Otherwise carries v0.69 forward.


Splice 8 — Footer

The tagline line stays unchanged.


Verification checklist for CC after applying


DUNIN7 — Done In Seven LLC — Miami, Florida Current-status manifest — v0.70 amendment instructions — v0.1 — 2026-06-28 Splice list to turn v0.69 into v0.70: absorbs the feat→main merge of the whole Companion-surface arc (superseding the v0.69 not-merged residue), the seed viewer (live-verified) and create-restore, the create-stage three-door design and four filed CRs, and names the OL lint debt. SHAs verified against live repos.