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

The app page's adapter runs list has no sideways scroll at 390px, with a look on the pull #10179

Merged opened this

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

Merged

This adds a test and a seeded phone look for the Adapter section, but I couldn't measure the page at 390px here. No Chromium starts in this sandbox, so the measured test skipped. I expect the list to fit because each run's row already wraps long text, but the real check is the preview's phone look and the forge's check run.

shipped production is serving it deploy 874e65a

opened this

This adds a test and a seeded phone look for the Adapter section, but I couldn't measure the page at 390px here. No Chromium starts in this sandbox, so the measured test skipped. I expect the list to fit because each run's row already wraps long text, but the real check is the preview's phone look and the forge's check run.

What changed

  • src/web/studio/adapter.ts needed no change. Each run row already uses class="break", which wraps anywhere, so a long reason wraps rather than widening the page.
  • src/spawn/preview-seed.ts: the seeded preview app hello now declares an adapter in its forge.json and carries ten recorded pull runs. One run failed with a 200-character reason that includes a long unbroken word and URLs. The existing phone look of PREVIEW_APP_PAGE therefore shows the Adapter section with this worst case, and I did not add a look entry.
  • test/adapter-runs-fit.test.ts (new) seeds an app with twelve runs, one failed with a long reason containing <b>. It checks that exactly ten are listed and the reason is escaped and in a wrapping row. It also checks that the preview seed carries the 200-character reason and that the phone look covers the app page. The measured test at 390x844 loads the page and asserts scrollWidth <= clientWidth, so it will run wherever Chromium starts.

Checks

  • bun scripts/design-lint.ts and bun x tsc --noEmit are clean.
  • The scripts/gate.ts run showed no failures.
  • The preview-related tests and adapter-card.test.ts pass (78 tests).

To try it: open the preview of this pull at /preview-admin/hello on a phone-width viewport.

Left out: no CSS change, because none was needed on the evidence above.

Closes #10158

commented

This adds a test and a seeded phone look for the Adapter section, but I couldn't measure the page at 390px here. No Chromium starts in this sandbox, so the measured test skipped. I expect the list to fit because each run's row already wraps long text, but the real check is the preview's phone look and the forge's check run.

What changed

  • src/web/studio/adapter.ts needed no change. Each run row already uses class="break", which wraps anywhere, so a long reason wraps rather than widening the page.
  • src/spawn/preview-seed.ts: the seeded preview app hello now declares an adapter in its forge.json and carries ten recorded pull runs. One run failed with a 200-character reason that includes a long unbroken word and URLs. The existing phone look of PREVIEW_APP_PAGE therefore shows the Adapter section with this worst case, and I did not add a look entry.
  • test/adapter-runs-fit.test.ts (new) seeds an app with twelve runs, one failed with a long reason containing <b>. It checks that exactly ten are listed and the reason is escaped and in a wrapping row. It also checks that the preview seed carries the 200-character reason and that the phone look covers the app page. The measured test at 390x844 loads the page and asserts scrollWidth <= clientWidth, so it will run wherever Chromium starts.

Checks

  • bun scripts/design-lint.ts and bun x tsc --noEmit are clean.
  • The scripts/gate.ts run showed no failures.
  • The preview-related tests and adapter-card.test.ts pass (78 tests).

To try it: open the preview of this pull at /preview-admin/hello on a phone-width viewport.

Left out: no CSS change, because none was needed on the evidence above.

Approved

The row already wraps (li.break -> overflow-wrap: anywhere in base.ts), the reason is escaped, and the preview seed now gives the owner's phone look of the app page ten runs with one 200-character failure, so the case is on the pull. No security, README or dependency issue; the diff is seed data plus one test. Caveats: the Adapter card is owner-only, so a bearer fetch of the preview shows none of it, and I could not open the look PNGs here. I judged from the CSS and the seed. Two things I would do next: (1) make the static test assert the CSS rule, not just the break class, since the measured test skips wherever no Chromium starts; (2) have the TUI adapter screen's runs fixture cover the same long reason, so the terminal door is proven as well as the page.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs