J453: startup-toast 'a closing notice cannot hide its replacement' red on dev #479

Open
opened 2026-11-09 18:03:38 +00:00 by kayg · 2 comments
Owner

J453: tracer unit test startup-toast.test.ts: a closing notice cannot hide its replacement fails on clean origin/dev 547a48885 (found by J414 on #448). It stops every branch's verify fast before the browser rows.

Suspects: #427 (65a19b070, toast markMotion), #442, #440.
Plan: bisect 54a9da2a8..547a48885 on dev-02 (~20 min), decide product regression vs stale test, fix the right one, keep the test strict, run tracer bun tests + toast/startup browser specs + verify quick.
Branch: fix-startup-toast-red, base 547a48885.

J453: tracer unit test `startup-toast.test.ts: a closing notice cannot hide its replacement` fails on clean origin/dev 547a48885 (found by J414 on #448). It stops every branch's `verify fast` before the browser rows. Suspects: #427 (65a19b070, toast `markMotion`), #442, #440. Plan: bisect 54a9da2a8..547a48885 on dev-02 (~20 min), decide product regression vs stale test, fix the right one, keep the test strict, run tracer bun tests + toast/startup browser specs + verify quick. Branch: `fix-startup-toast-red`, base 547a48885.
Author
Owner

Finding (J453). Branch fix-startup-toast-red, base 547a48885.

Bisect on dev-02 (bun test apps/tracer/src/canvas/sessions/startup-toast.test.ts):

Cause: #427 made the toast stack's arrange() call markMotion(card) (packages/ui/src/input-source.ts), which reads getAttribute("data-motion") before writing it. The test double FakeElement in packages/ui/src/toast-fake-dom.ts only had setAttribute, so show() threw TypeError: element.getAttribute is not a function before any assertion. #442 and #440 are not involved.

Verdict: not a product regression (a real element has getAttribute); the test double was stale. Fix: add getAttribute to FakeElement (4055a0590). The test is unchanged and still strict. Waiting for a dev-02 slot (queue position 7) for the full run; log at ~/.cache/codex-scratch/j453/evidence/run.log on dev-02.

**Finding (J453).** Branch `fix-startup-toast-red`, base 547a48885. Bisect on dev-02 (`bun test apps/tracer/src/canvas/sessions/startup-toast.test.ts`): - 54a9da2a8 (production): pass - 65a19b070~1: pass - **65a19b070 (#427 "a window or toast a key brings appears at once"): FAIL** - 547a48885: FAIL Cause: #427 made the toast stack's `arrange()` call `markMotion(card)` (packages/ui/src/input-source.ts), which reads `getAttribute("data-motion")` before writing it. The test double `FakeElement` in packages/ui/src/toast-fake-dom.ts only had `setAttribute`, so `show()` threw `TypeError: element.getAttribute is not a function` before any assertion. #442 and #440 are not involved. Verdict: not a product regression (a real element has `getAttribute`); the test double was stale. Fix: add `getAttribute` to `FakeElement` (4055a0590). The test is unchanged and still strict. Waiting for a dev-02 slot (queue position 7) for the full run; log at ~/.cache/codex-scratch/j453/evidence/run.log on dev-02.
Author
Owner

Progress (J453). Branch fix-startup-toast-red, head ebf4d8562 (pushed, confirmed by ls-remote).

  • 4055a0590: FakeElement gets getAttribute (startup-toast cause: #427 markMotion).
  • ebf4d8562: three hand-built TerminalClient doubles get a real Osc52Scanner (10 connection tests; cause: #440 clipboardWrites). Stale doubles, not a product break.

Unit results on dev-02 (logs ~/.cache/codex-scratch/j453/evidence/ on dev-02: ts-unit-main.log, ts-unit.log, ui-unit.log):

  • gate's tracer list (ts.sh): 656 pass, 0 fail
  • ./src/connection*.test.ts: 105 pass, 0 fail
  • terminal-quer* / write-slices: 17 pass, 0 fail
  • release/server-startup: 3 pass, 0 fail
  • packages/ui: 61 pass, 0 fail

dev-02 queue blocked (disk floor), so verify quick + toast/startup browser specs are queued on compute01 (position 8). Log: ~/.cache/codex-scratch/j453/evidence/run.log on compute01.

**Progress (J453).** Branch `fix-startup-toast-red`, head ebf4d8562 (pushed, confirmed by ls-remote). - 4055a0590: FakeElement gets `getAttribute` (startup-toast cause: #427 `markMotion`). - ebf4d8562: three hand-built TerminalClient doubles get a real `Osc52Scanner` (10 connection tests; cause: #440 `clipboardWrites`). Stale doubles, not a product break. Unit results on dev-02 (logs ~/.cache/codex-scratch/j453/evidence/ on dev-02: ts-unit-main.log, ts-unit.log, ui-unit.log): - gate's tracer list (ts.sh): 656 pass, 0 fail - `./src/connection*.test.ts`: 105 pass, 0 fail - terminal-quer* / write-slices: 17 pass, 0 fail - release/server-startup: 3 pass, 0 fail - packages/ui: 61 pass, 0 fail dev-02 queue blocked (disk floor), so `verify quick` + toast/startup browser specs are queued on compute01 (position 8). Log: ~/.cache/codex-scratch/j453/evidence/run.log on compute01.
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#479
No description provided.