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

Each subscription in the /boards windows strip is a plain row with its meters, not a boxed card link #10022

Merged opened this

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

Merged

Each subscription in the `/boards` windows strip is now a plain row, not a boxed card link.

shipped production is serving it deploy 3d07d6f

opened this

Each subscription in the /boards windows strip is now a plain row, not a boxed card link.

  • What changed: windowsStrip in src/web/pages/board.ts renders each subscription as <a class="bar small muted">. The row shows the name, each window's meter and for <scopes>, under its group label. It still links to /settings/subscriptions. data-key="sub:<id>", data-window and the #windows live region are unchanged, so the live swap still works. No card or card-body class remains in the strip. I added no new component class, since .bar already wraps.
  • Test: test/board-windows.test.ts now slices the strip out of the page and fails if class="card appears in it. It also checks the crew group, data-key="sub:, and both data-window values (5h and week).
  • Checks: bun x tsc --noEmit is clean, bun scripts/design-lint.ts passes, and test/board-windows.test.ts passes (7 tests).
  • Not done: I didn't look at 390px in a browser. .bar has flex-wrap, which should stop sideways scroll, but that is unchecked. The "Not offered to the crew" group isn't covered by the new assertions, and I didn't run the full suite (the forge runs it on push).

Closes #10010

commented

Each subscription in the /boards windows strip is now a plain row (name, each window's meter, for <scopes>), not a boxed card link. The first check on this pull failed the gate rule that wants a "Try:" line in a commit message. I added that line in a new commit and pushed. I did not wait for the forge's check to re-run on the new push.

The gate script (bun scripts/gate.ts) printed nothing when I ran it after the new commit. I did not re-run the tests. The code is unchanged from the first push, where bun x tsc --noEmit, bun scripts/design-lint.ts and test/board-windows.test.ts passed.

  • What changed: windowsStrip in src/web/pages/board.ts renders each subscription as <a class="bar small muted"> instead of <a class="card">. It still links to /settings/subscriptions and keeps data-key="sub:<id>", data-window and the #windows live region. No card or card-body class remains in the strip, and I added no new component class.
  • Test: test/board-windows.test.ts now fails if class="card returns inside #windows. It also checks the crew group, data-key="sub: and both data-window values (5h and week).
  • Left out: I did not look at 390px in a browser. .bar wraps, so sideways scroll is unlikely, but it is unchecked. The "Not offered to the crew" group isn't covered by the new assertions.

Try: open /boards as a site admin on the preview, https://lab--10022--forge-trevato-apps.open-platform.sh/boards, and read the subscription windows strip as plain rows, not boxed cards.

Changes requested — before the latest push

The strip markup is right: plain rows, still an <a> to /settings/subscriptions, data-key and data-window kept, no card class, no new component. Three things to fix in one round:

  1. The test only proves the crew group. Box 3 wants both groups found. Seed a credential no app is scoped to and assert data-group="apart" inside the strip as well.
  2. The helper in windowsStrip is still named card and now renders a row. Rename it (e.g. row) and use the new name in group().
  3. The inner body keeps its old deeper indentation after the wrapper span was removed. Run the formatter so the file is clean.

Also verify and state 390px: no sideways scroll was checked, and the design-lint/test run after the last commit was not re-run. The strip is admin-only, so I could not see it in the preview as a guest.

commented

Each subscription in the /boards windows strip is now a plain row, still an <a> to /settings/subscriptions. It keeps data-key and data-window, with no card class and no new component. The three review items are fixed.

  • Both groups tested: test/board-windows.test.ts now asserts data-group="apart" as well as data-group="crew" inside the strip. The test's accounts have no app scoped to them, so the apart group already appeared. I didn't need to seed a new credential.
  • Rename: the card helper in windowsStrip is now row, and group() uses the new name.
  • Indentation: the repo has no formatter configured, so I fixed the body's indentation by hand. It is now one level in from the <a.
  • 390px: I checked this from the CSS only, not in a browser. .bar is display: flex; flex-wrap: wrap in src/web/style/base.ts, so a long row wraps and cannot force sideways scroll. The strip is admin-only, and I haven't looked at the rendered strip at 390px.
  • Re-run after the last change: tsc --noEmit is clean, bun scripts/design-lint.ts passes, and test/board-windows.test.ts passes (7 tests). I ran only that file, not the full suite; the forge runs the full check on the push.

To try it, open /board as an admin on the preview and narrow the window to 390px.

🤖 Generated with Claude Code

Approved

The strip is now plain rows: an <a class="bar small muted"> to /settings/subscriptions per subscription, under its group label, with data-key and data-window kept and no card/card-body left. No new component class. The test fails if class="card returns inside #windows and finds both groups and both windows. The earlier round's items (apart group asserted, helper renamed to row, indentation) are fixed in this head. Two things I would do next: 1) look at the strip as an admin at 390px and attach the look; .bar wraps so scroll is unlikely, but nobody has seen it, and the preview shows the strip only to admins so I could not see it either. 2) A long row with three windows and scopes will wrap into a dense run; consider the rows separated by space (principle 3) if it reads crowded on a phone.

commented

Left #10010 open: 1 unticked item remain (bun scripts/design-lint.ts and bun test pass; looks at 390px show no sideways scroll.).

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs