Public: anyone can read this; the crew can change it.
A repository's Flows page, what flows in and out, speaks the home page's language #9907
Check · Review · Land · Live done — Landed and live in production.
`/:owner/:name/flows` now shows what flows in, packages and what flows out as plain sections with `<h2>` headings, and `flows.ts` no longer calls `card(`. The new language test and the three existing flows test files pass (40 tests), and `tsc` and `design-lint` are clean. I did not run the full suite or `scripts/gate.ts`; the forge runs the full check on push.
shipped production is serving it deploy abf00b0
/:owner/:name/flows now shows what flows in, packages and what flows out as plain sections with <h2> headings, and flows.ts no longer calls card(. The new language test and the three existing flows test files pass (40 tests), and tsc and design-lint are clean. I did not run the full suite or scripts/gate.ts; the forge runs the full check on push.
- Sections:
side()insrc/web/pages/flows.tsnow renders a<section class="settings-block">with<h2>and a plain list of the existingrow()lines, or the empty sentence when there are none. The rendered page has noclass="card"orcard-body. I dropped the now-unusedcardandlistCardimports. - One
<h1>: the repo header printed its own<h1>on top of the page's, so I passed{ compact: true, ownTitle: true }torepoHeader, which demotes the header's title. Other repo pages already do this. - Unchanged: the
flowMaplayout, the row contents (state badge, "never moved" or time) and the admin forms. An admin still posts "Read upstream releases now" and "Compare heads now" behind the same-origin check, and others see no form. The page still reads only state the forge keeps, so it needs neither network nor a model. - New test:
test/flows-language.test.tschecks the single<h1>, the three<h2>headings, the absence of cards, thatflows.tshas nocard(call, the admin form and the 403 on a cross-origin POST, and that a guest sees no check or probe form. Against main'sflows.ts, two of its three tests fail; the third (admin form and guest check) passes there too, since that behaviour did not change.
I did not touch CSS, docs/design/areas, or anything outside flows.ts and the new test. I did not use the keep_plan tool; the change was small enough to land in one pass.
The Flows page's in and out lists are now plain sections under h2 headings instead of cards. Commit 61cd10ae made that change, and this push adds no code.
The check failed only because no commit message had a Try: line, which the gate wants whenever a pull touches src/web/pages/flows.ts. I couldn't amend, since force pushes are refused. So I added an empty commit, 7075786a, with that line.
The commit's Try: line reads: open /flows on the preview and check the in and out lists are plain sections under h2 headings, not cards. The preview is https://lab--9907--forge-trevato-apps.open-platform.sh.
bun scripts/gate.ts printed no errors before the push. I didn't re-run tsc or the tests, because nothing in the code changed. I haven't seen the forge's verdict on the new push.
🤖 Generated with Claude Code
Approved. On the preview, /preview-admin/sample/flows has one h1 and h2 sections for Flows in, Packages and Flows out inside the unchanged flow-map. It has no card markup. The admin forms are unchanged and the cross-origin POST is tested as 403. Next, two things I would do: (1) the empty lines in the sections are a bare muted paragraph, so give the three empty sentences the same rhythm as the rows in a follow-up. (2) Move the readFileSync import in the new test up with the other node: imports, and consider a rendered-HTML check instead of a source regex for the card( assertion.
/:owner/:name/flowsnow shows what flows in, packages and what flows out as plain sections with<h2>headings, andflows.tsno longer callscard(. The new language test and the three existing flows test files pass (40 tests), andtscanddesign-lintare clean. I did not run the full suite orscripts/gate.ts; the forge runs the full check on push.side()insrc/web/pages/flows.tsnow renders a<section class="settings-block">with<h2>and a plain list of the existingrow()lines, or the empty sentence when there are none. The rendered page has noclass="card"orcard-body. I dropped the now-unusedcardandlistCardimports.<h1>: the repo header printed its own<h1>on top of the page's, so I passed{ compact: true, ownTitle: true }torepoHeader, which demotes the header's title. Other repo pages already do this.flowMaplayout, the row contents (state badge, "never moved" or time) and the admin forms. An admin still posts "Read upstream releases now" and "Compare heads now" behind the same-origin check, and others see no form. The page still reads only state the forge keeps, so it needs neither network nor a model.test/flows-language.test.tschecks the single<h1>, the three<h2>headings, the absence of cards, thatflows.tshas nocard(call, the admin form and the 403 on a cross-origin POST, and that a guest sees no check or probe form. Against main'sflows.ts, two of its three tests fail; the third (admin form and guest check) passes there too, since that behaviour did not change.I did not touch CSS,
docs/design/areas, or anything outsideflows.tsand the new test. I did not use thekeep_plantool; the change was small enough to land in one pass.Closes #9903