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

/resilience shows the nightly drill's output as plain lines, not a boxed card #9981

Merged opened this

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

Merged

The nightly drill's output at `/resilience/nightly/:job` now shows as plain muted mono lines instead of a boxed card, like the rest of /resilience.

shipped production is serving it deploy f21b126

opened this

The nightly drill's output at /resilience/nightly/:job now shows as plain muted mono lines instead of a boxed card, like the rest of /resilience.

  • src/web/pages/resilience.ts: pre#nightly-output now uses muted mono instead of card mono, and keeps tabindex="0" and aria-label="Output". The page now has a small style, NIGHTLY_OUTPUT_CSS, passed as styleCss the same way RESILIENCE_CSS is: max-width: 100%; overflow-x: auto; scrollbar-width: thin; margin: 0. That keeps the output from boxing and makes a long line scroll sideways inside the pre instead of the page on a phone. src/web/style/content.ts is unchanged.
  • test/resilience-language.test.ts: a new test writes a flake-hunt log with a 400-character line and fetches /resilience/nightly/flake-hunt as an admin. It checks that there is no class="card inside <main>, that the pre keeps its tabindex and aria-label and has no card class, and that the page carries the overflow-x: auto rule. With only resilience.ts reverted to main it fails, and with the change it passes. The existing /resilience test only reached the "no output yet" paragraph, so the pre was never tested before.

Checks run here, all passing: bun scripts/design-lint.ts, bun scripts/gate.ts, bun x tsc --noEmit, and the resilience tests (test/resilience*.test.ts, test/checks-resilience.test.ts, test/tui-nightly-output.test.ts, test/security-floor-routes.test.ts, test/design*.test.ts). Two tests were skipped because the sandbox listens on a port instead of a unix socket. scripts/fast.ts named 1,333 test files, far over its budget, so I picked these myself; the forge's check runs the full suite on push. The 390 px sideways scroll wasn't looked at in a browser: the test only checks that the CSS rule is on the page.

To try it: as an admin, open /resilience/nightly/flake-hunt on the preview after a night has run.

🤖 Generated with Claude Code

Closes #9974

commented

The nightly drill's output at /resilience/nightly/:job now shows as plain muted mono lines instead of a boxed card, like the rest of /resilience.

  • src/web/pages/resilience.ts: pre#nightly-output now uses muted mono instead of card mono, and keeps tabindex="0" and aria-label="Output". The page now has a small style, NIGHTLY_OUTPUT_CSS, passed as styleCss the same way RESILIENCE_CSS is: max-width: 100%; overflow-x: auto; scrollbar-width: thin; margin: 0. That keeps the output from boxing and makes a long line scroll sideways inside the pre instead of the page on a phone. src/web/style/content.ts is unchanged.
  • test/resilience-language.test.ts: a new test writes a flake-hunt log with a 400-character line and fetches /resilience/nightly/flake-hunt as an admin. It checks that there is no class="card inside <main>, that the pre keeps its tabindex and aria-label and has no card class, and that the page carries the overflow-x: auto rule. With only resilience.ts reverted to main it fails, and with the change it passes. The existing /resilience test only reached the "no output yet" paragraph, so the pre was never tested before.

Checks run here, all passing: bun scripts/design-lint.ts, bun scripts/gate.ts, bun x tsc --noEmit, and the resilience tests (test/resilience*.test.ts, test/checks-resilience.test.ts, test/tui-nightly-output.test.ts, test/security-floor-routes.test.ts, test/design*.test.ts). Two tests were skipped because the sandbox listens on a port instead of a unix socket. scripts/fast.ts named 1,333 test files, far over its budget, so I picked these myself; the forge's check runs the full suite on push. The 390 px sideways scroll wasn't looked at in a browser: the test only checks that the CSS rule is on the page.

To try it: as an admin, open /resilience/nightly/flake-hunt on the preview after a night has run.

🤖 Generated with Claude Code

commented

The nightly drill's output at /resilience/nightly/:job now shows as plain muted mono lines instead of a boxed card, like the rest of /resilience.

  • src/web/pages/resilience.ts: pre#nightly-output drops the card class and uses muted mono instead. It keeps tabindex="0" and aria-label="Output". A small page style, NIGHTLY_OUTPUT_CSS, sets max-width: 100%; overflow-x: auto, so a long line scrolls sideways inside the block, not the whole page, on a phone. It's passed to the page the same way RESILIENCE_CSS is, and src/web/style/content.ts is unchanged.
  • test/resilience-language.test.ts: a new test writes a flake-hunt log with a 400-character line and opens /resilience/nightly/flake-hunt as an admin. It checks:

- there is no class="card inside <main>; - the pre keeps its tabindex and aria-label and has no card class; - the page has the overflow-x: auto rule.

It fails when resilience.ts is put back to main's version and passes with the change. Until now the tests only reached the "no output yet" paragraph, never the pre.

  • Follow-up commit: an empty commit adds the Try: line the gate requires for page changes, because a force push to fix the first message isn't allowed.

These pass here: bun scripts/design-lint.ts, bun scripts/gate.ts, bun x tsc --noEmit, and the resilience tests (test/resilience*.test.ts, test/checks-resilience.test.ts, test/tui-nightly-output.test.ts, test/security-floor-routes.test.ts, test/design*.test.ts). Two of those were skipped because the sandbox uses a port instead of a unix socket. scripts/fast.ts named 1,333 test files, far over its time budget, so I picked these myself. The local gate passing doesn't confirm the Try: fix, since the gate failed only in the forge's check; that check runs again on this push.

The phone-width scrolling was not looked at in a browser; the test only checks that the CSS rule is on the page.

Try: as an admin, open /resilience/nightly/flake-hunt on the preview after a night has run.

🤖 Generated with Claude Code

Approved

The output is now plain muted mono lines, keeps tabindex=0 and aria-label, and scrolls inside itself (pre keeps its default no-wrap; overflow-x:auto, max-width:100%). Focus ring comes from the global :focus-visible. Works with JS off (server-rendered). No card, no new accent, no README change; no new feature so no TUI screen needed. The preview answers 303 to sign-in for the token, so I could not see the admin page; I judged from source and the test. Two things I would do next: (1) look at /resilience/nightly/flake-hunt at 360px in a browser once, since the test only proves the CSS rule is present; (2) move NIGHTLY_OUTPUT_CSS next to the other page styles or into the shared pre rule at content.ts:167 so there is one overflow rule for pre, not two.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs