Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit ff5be52a3f2ef254c8cfb6fd8dbc778e5ac2edde
parent ecc096ccc5f507f7342acc5f9a688f7278f4d48b
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Wed, 26 Aug 2026 17:36:27 -0400

plans: record the collision the move created

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Diffstat:
Mplans/STATE.md | 19++++++++++++++++---
Mplans/editor-operations-ia.md | 14++++++++++++--
2 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/plans/STATE.md b/plans/STATE.md @@ -159,8 +159,9 @@ nothing renders. ### 2026-08-26 (evening) — editor IA slice 3: an operation's settings are on its page -Three commits: `9515083` (the plan, with the two uncommitted doc files), `f14ceb5` (the -seams), `43bb519` (the move). The as-shipped record is in `editor-operations-ia.md` +Five commits: `9515083` (the plan, with the two uncommitted doc files), `f14ceb5` (the +seams), `43bb519` (the move), `b303817` (copy, the `/settings` pointer, docs) and `7c34bc5` +(the one collision the move created — see 6 below). The as-shipped record is in `editor-operations-ia.md` ("Slice 3, as shipped") and the new file paths are in `FACTS.md` under the seams census; this entry is the decisions. @@ -186,10 +187,22 @@ this entry is the decisions. new `operation-settings.spec.ts` also proves structurally what the markers used to buy: saving the diarization form beside the lane form leaves `backfill.enabled` alone. 7/7. +6. **Moving a component moves its SENTENCES into someone else's selectors.** The lane form's + paragraph still said "…so it lives with the plan it produces", and `The plan` is the + heading of the sweep console now directly above it inside the same `section[data-lane]`. + `backfill.spec.ts:484` scopes `getByText("The plan")` there and `getByText` matches + substrings, so it resolved to two elements. Reworded, with a comment marking the phrase + off-limits in that file. (The same commit keys the two server-built settings slots: an + element created in a Server Component and rendered by a client component warns on React's + dev key validation, naming a render method that did not create it.) + Verified: tsc in all six packages, `common` 828/828, editor units 85/85, the new spec 7/7, and a fixture check of every operation page (digest → one form; diarization and both attribution pages → operation form then lane form; download/transcode/transcription → none; -`/settings` down to its four remaining fieldsets and one `<form>`). +`/settings` down to its four remaining fieldsets and one `<form>`, carrying the pointer). +The affected e2e specs ran twice: 104/107 then, after the fix, 28/28 on the three that had +failed — two of those three (`auto-subs-replace.spec.ts:394`, `cadence-ui.spec.ts:212`) were +timeouts and passed on a re-run untouched. Deliberately not done: the three other file-local `Field` copies; `WorkersField` (slice 8); the pause trio (slice 7); `/actionable` (slice 4). No persisted key or field `name` changed, diff --git a/plans/editor-operations-ia.md b/plans/editor-operations-ia.md @@ -252,8 +252,18 @@ id set the runner has no parameter for). ## Slice 3, as shipped -Three commits, `9515083` (the plan) → `f14ceb5` (the seams) → `43bb519` (the move), plus the -copy and doc pass. The plan is [`editor-ia-slice-3.md`](editor-ia-slice-3.md). +Five commits: `9515083` (the plan) → `f14ceb5` (the seams) → `43bb519` (the move) → +`b303817` (copy, the `/settings` pointer, docs) → `7c34bc5` (one collision the move created). +The plan is [`editor-ia-slice-3.md`](editor-ia-slice-3.md). + +**The one thing the move broke, and it is worth knowing why.** Putting a form inside +`section[data-lane]` puts its PROSE in that section's scope too. The lane form's paragraph +still said "…so it lives with the plan it produces", and `The plan` is the heading of the +sweep console now sitting directly above it — `backfill.spec.ts:484` scopes +`getByText("The plan")` to that section, `getByText` matches substrings, and two matches is a +strict-mode violation rather than a near miss. Moving a component moves its sentences into +someone else's selectors; the file now carries a comment saying that phrase is off-limits +there. **The markers were the whole deletion.** Each of the four blocks in `saveSettingsAction` was gated on a hidden `<input name="*FormPresent">`, and every one existed for a single reason: an