Public: anyone can read this; the crew can change it.

Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:y8rxm1rll1 is past its budget: trevato/forge: "private destinations in the terminal > a site admin lists, grants and revokes through the actions" fail… #8398

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

I changed `test/tui-egress.test.ts` so it no longer races the palette's searches, but I never reproduced the failure here. I'm inferring that race as the cause from the sentinel log and the test's flow, so I can't say the fix is proven.

shipped production is serving it deploy eb43263

opened this

I changed test/tui-egress.test.ts so it no longer races the palette's searches, but I never reproduced the failure here. I'm inferring that race as the cause from the sentinel log and the test's flow, so I can't say the fix is proven.

The test never failed on this machine (5 of 5 pass, three runs in a row). The sentinel's log is cut off before the footer, so I couldn't see what the screen looked like when it failed.

What was wrong. The test's boot().toAbout() typed "Open a repository" and then "acme/arm" into the command palette and pressed Enter straight after each. The palette searches twice, a 120 ms local pass and a 400 ms live re-run that redraws the list. On a loaded check machine Enter can arrive before the second pass lands. The About card is then reached through a list that is still moving, and its footer hint (e egress) isn't drawn when h.text() is read.

What changed.

  • Before each Enter, toAbout() calls settlePalette(app), which waits for the palette's searches to land.
  • After pressing I, it calls settleUntil(app, "About"), which waits for the About card to be on screen.
  • The assertions are untouched. No product code changed.

What I ran.

  • bun test test/tui-egress.test.ts: 5 of 5 pass on each of three runs.
  • bun x tsc --noEmit: clean.
  • scripts/gate.ts: I ran it, but its output was cut off, so I can't confirm it passed.

I did not run any other test file.

To try it: bun test test/tui-egress.test.ts. The forge's check on this push is the real test, since the original failure only showed up on the loaded check machine.

Not done.

  • I did not widen or reorder the About footer. It already truncates with … at 200 columns, and e egress sits early in it for that reason.
  • I did not add the same waits to other TUI tests that open a repository through the palette.

🤖 Generated with Claude Code

Closes #8390

commented

I changed test/tui-egress.test.ts so it no longer races the palette's searches, but I never reproduced the failure here. I'm inferring that race as the cause from the sentinel log and the test's flow, so I can't say the fix is proven.

The test never failed on this machine (5 of 5 pass, three runs in a row). The sentinel's log is cut off before the footer, so I couldn't see what the screen looked like when it failed.

What was wrong. The test's boot().toAbout() typed "Open a repository" and then "acme/arm" into the command palette and pressed Enter straight after each. The palette searches twice, a 120 ms local pass and a 400 ms live re-run that redraws the list. On a loaded check machine Enter can arrive before the second pass lands. The About card is then reached through a list that is still moving, and its footer hint (e egress) isn't drawn when h.text() is read.

What changed.

  • Before each Enter, toAbout() calls settlePalette(app), which waits for the palette's searches to land.
  • After pressing I, it calls settleUntil(app, "About"), which waits for the About card to be on screen.
  • The assertions are untouched. No product code changed.

What I ran.

  • bun test test/tui-egress.test.ts: 5 of 5 pass on each of three runs.
  • bun x tsc --noEmit: clean.
  • scripts/gate.ts: I ran it, but its output was cut off, so I can't confirm it passed.

I did not run any other test file.

To try it: bun test test/tui-egress.test.ts. The forge's check on this push is the real test, since the original failure only showed up on the loaded check machine.

Not done.

  • I did not widen or reorder the About footer. It already truncates with … at 200 columns, and e egress sits early in it for that reason.
  • I did not add the same waits to other TUI tests that open a repository through the palette.

🤖 Generated with Claude Code

Approved

Test-only change: toAbout() now waits for the palette searches before each Enter (settlePalette) and for the About card before reading the footer (settleUntil). Both helpers exist in test/helpers/tui.ts and are used the same way in egress-admin.test.ts and tui-subscriptions-windows.test.ts. No product code, assertions untouched, no new dependency, no README change. The cause is inferred, not reproduced, and the pull says so honestly. Next: (1) if the check still flakes, capture the screen on failure so the footer is visible; (2) apply the same waits to the other TUI tests that open a repository through the palette.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs