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

The /packs list and a pack's page speak the home page's language #9785

Merged opened this

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

Merged

I reworked `/packs` and `/packs/:name` in `src/web/pages/packs.ts` to follow the `/apps` pass. The pack tests, `tsc` and `bun scripts/design-lint.ts` pass. I did not check the 390 px layout, the 50 ms timing, or the JavaScript-off view; none of those was run here.

shipped production is serving it deploy 4cb4bc0

opened this

I reworked /packs and /packs/:name in src/web/pages/packs.ts to follow the /apps pass. The pack tests, tsc and bun scripts/design-lint.ts pass. I did not check the 390 px layout, the 50 ms timing, or the JavaScript-off view; none of those was run here.

What changed

  • /packs: one heading, one sentence, then the packs as plain rows. The listCard box around them is gone.
  • /packs/:name: the order is now heading and sentence, then "Deploy it on your own machine" with the command first, then "What it brings" (the apps, the crew and the note on what a pack carries), then "Help build these apps".
  • Sections and rows: the three sections are plain <section class="stack"> blocks instead of cards, and the app and crew lists are bare rows.
  • Muted text: I muted the help copy.

Not changed

  • The command is still deployCommands with ctx.app.config.url, so the host is the real one, and it is still escaped.
  • The command textarea keeps wrap="off", so it scrolls inside its own box.
  • No new classes, and nothing added to the area docs.
  • No test needed changing.
  • I did not touch the terminal screen in src/tui/screens/packs.ts.

To try it, open /packs and /packs/games.

🤖 Generated with Claude Code

Closes #9776

commented

I pushed a new commit to the pull. It carries the Try: line the gate asked for, and I did not touch the code. bun scripts/gate.ts printed nothing when I ran it, which I took as passing. I did not re-run the tests or the type check. I have not seen the forge's check verdict on the new push.

The commit message says: Try: open /packs, then /packs/games on the preview; the deploy command comes first.

What changed: /packs and /packs/:name in src/web/pages/packs.ts now follow the /apps pass:

  • Lists: one heading and one sentence, then plain rows with no boxes.
  • Pack page: the deploy command comes first, then what the pack brings, then how to help build its apps.
  • Command: it still prints the forge's real host, escaped, and scrolls inside its own box.

Not done: the terminal screen in src/tui/screens/packs.ts is unchanged, and I did not check the 390 px layout or the 50 ms timing.

To try it: open /packs, then /packs/games, on the preview.

🤖 Generated with Claude Code

Changes requested — before the latest push

No security findings: output stays escaped through html``, the external links keep rel=noopener, and no write path is touched. Changes needed: (1) The pass adds no test. Putting the deploy command ahead of everything else is the one behaviour the issue asks for, and no test would fail if it moved back; add a test in test/packs.test.ts that the pack page puts #pack-command before What it brings, and that /packs renders plain rows with no card. (2) The pack page still says its purpose several times (principles 1 and 8): the sub, the BRINGS_WORDS footnote and two STRANGER_WORDS paragraphs. Cut it to one sentence per section. (3) The PR text says the 390 px layout and the 50 ms timing were not checked, so boxes 2 and 4 are unproven. Check both and say so in the pull. The preview answered /packs in 1.27 s and /packs/games in 0.77 s on a cold request, so measure a warm one. The terminal screen is unchanged, which is fine because the content is the same.

commented

This revises the /packs list and the pack page to meet the review. I measured the 50 ms timing, but I could not check the 390 px layout.

What changed

  • One sentence per section. The BRINGS_WORDS footnote and the two STRANGER_WORDS paragraphs are gone from the pack page.

- The one fact the reader needs, that no data, secrets or variables come with a pack, now sits in the page sub. - "Help build these apps" is one sentence plus the buttons: read and comment with no account, and a guest's pull waits for a person to review it. - src/packs/words.ts is untouched because the terminal screen still uses it.

  • New test in test/packs.test.ts.

- #pack-command comes before "What it brings" on the pack page. - /packs renders .row items in ul.list, with no .card. - I matched the card by class, not by the word "card", because every page carries twitter:card in its head.

  • Checks. bun x tsc --noEmit, design-lint and test/packs.test.ts pass (12 tests). scripts/fast.ts found the diff too broad to name, so I ran only the packs test file and left the full suite to the forge's check.

Measured and not measured

  • 50 ms. In a local server, the median over 20 warm requests was 2.7 ms for /packs and 2.6 ms for /packs/games. The 0.7–1.3 s the preview showed is network round trip from this sandbox, not render time. The preview also had not yet rebuilt from this push when I timed it.
  • 390 px layout. Not checked. The sandbox has no browser or screenshot tool, so box 2 is unproven. The pages use only existing .row, .list, .stack and copyField components, and I added no CSS.
Changes requested — before the latest push

The ordering is right and the preview shows it: /packs/games opens with the deploy command in a textarea (wrap=off, so it scrolls inside its own box), then plain rows, with no cards. Two things to fix, both principle 1.

  1. The page sub now says what the pack is, its version, and what does not come with it. Keep one sentence; the 'no data, secrets or variables' fact belongs next to the command, or goes.
  2. 'Help build these apps' is a whole section (heading, sentence, two buttons) that explains the forge a second time on a page whose job is to start the pack. Drop the section and the prose; if one door stays, make it a single muted link line under the rows.

Also: the 390 px check (box 2) and the 50 ms warm request are measured by the builder, not shown here; I could not check the layout either. No security, README or both-doors findings: the terminal screen reads the same content and docs/features/packs.md exists.

commented

A pack's page at /packs/:name now does one job: it starts with the command that deploys the pack, then lists the apps and crew it brings. /packs shows plain rows, not cards.

  • Sub: it is now just the pack's one-sentence description. The version line is gone from the sub; /packs still shows it at the end of each row.
  • No data, secrets or variables: this fact is now a muted line directly under the deploy command.
  • "Help build these apps": the section is gone, along with its heading, its sentence about guest pulls and the two buttons. In its place is one muted link line under the rows: "Start your own forge to help build these apps." The page no longer offers sign-up, so offersSignup and btn are no longer imported there.
  • Tests: in test/packs.test.ts, the test checking the page text used to expect "waits for a person", which is the wording this review asked me to cut. I changed that test to expect the "No data, secrets or variables" line and to check that the "Help build these apps" heading is gone. The test that the command comes before "What it brings" and that /packs has rows and no cards is unchanged.
  • Terminal screen: unchanged. It still reads its text from src/packs/words.ts, which the web page no longer uses.

bun x tsc --noEmit, bun scripts/design-lint.ts and bun test test/packs.test.ts (12 tests) pass. On a local server, the median of 20 warm requests was 2.7 ms for /packs and 2.6 ms for /packs/games, measured on the previous push. This change only removes markup. The 390 px layout is still not checked: the sandbox has no browser to view it. The page uses only existing components and adds no CSS.

To try it, open https://lab--9785--forge-trevato-apps.open-platform.sh/packs/games once the preview rebuilds.

🤖 Generated with Claude Code

Approved

Earlier asks: (1) test that the command precedes What it brings and that /packs has plain rows, no card: met. (2) one sentence per section: met; the footnote and stranger paragraphs are gone, the sub is the pack description alone. (3) 50 ms and 390 px: 50 ms was measured (2.6-2.7 ms warm locally); 390 px was not viewed, but only existing .row/.list/.stack/copyField are used and no CSS was added, so I accept it. The preview serves the command first, the no-data line and the forge link. Non-blocking: 1. The file header comment in src/web/pages/packs.ts runs past one line; rewrap it. 2. src/packs/words.ts BRINGS_WORDS and STRANGER_WORDS are now used only by the terminal screen; say so there or fold them into the screen.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs