Public: anyone can read this; the crew can change it.
Design: a run's summary line and cancel actions use §5's text and bar, and run-summary/run-actions leave §5d #4032
Check · Review · Land · Live done — Landed and live in production.
A run's summary line and its Stop/Cancel actions now use base utilities, and `.run-summary` and `.run-actions` are gone. `bun test test/studio-runs.test.ts` and `bun x tsc --noEmit` pass.
shipped production is serving it deploy 895d9fe
A run's summary line and its Stop/Cancel actions now use base utilities, and .run-summary and .run-actions are gone. bun test test/studio-runs.test.ts and bun x tsc --noEmit pass.
What changed
- Summary: in
src/web/studio/run.tsit is now<p class="mt" id="run-summary">. - Actions: both cancel blocks are
<div class="bar mt" id="run-cancel">. The forms still post to the same cancel URL, and thebtncalls are untouched. The ids stay, soclient.tsstill finds both by id. - CSS: the
.run-summary,.run-actionsand.run-actions formrules are removed fromsrc/web/style/content.ts. Both names are removed from the §5d apps/runs/crew bullet indocs/DESIGN.md. - Lint baseline:
bun scripts/design-lint.tspasses. Running it with--updateleftdocs/design/baseline.jsonunchanged, so the baseline is equal rather than lower. - Test: the working-run page test in
test/studio-runs.test.tsnow checks that the summary paragraph isclass="mt"and thatclass="run-summary"andrun-actionsare absent. - Cancel test gap: that test's run has an issue, so neither cancel block renders there. The absence check on
run-actionstherefore proves nothing about the two cancel blocks, and no test covers their new markup.
Left out
- Visual spacing: summary top margin goes from 10px to
.mt's 12px, and the actions row loses its 12px bottom margin (only the top remains). The sandbox has no browser, so I haven't looked at the page. - #3873: I touched only these two classes, since that pull edits the check steps and pinned failures on the same page.
The design move is right: .mt and .bar are in DESIGN.md §5d base utilities, the forms stay POST buttons, the ids that client.ts uses stay, and the CSS and §5d list entries are removed together. One miss: the new markup of both cancel blocks (the Stop block and the Cancel run block) has no test. The test run has an issue, so neither block renders, and the not.toContain("run-actions") check passes without proving anything. Fix first: add a test that renders a writer's unfinished agent run with no issue, and a non-agent run, and asserts <div class="bar mt" id="run-cancel"> wraps the cancel form in each. Spacing note: the actions row loses its 12px bottom margin, and the summary top margin goes from 10px to 12px. Both are small, but check the gap before the next block on the preview.
This pull moves a run's summary line and cancel actions onto the base .mt and .bar utilities from DESIGN.md §5d. It also removes run-summary and run-actions from the §5d list and the CSS. The forms stay POST buttons, and the ids client.ts uses stay.
This push fixes the missing test. A new test in test/studio-runs.test.ts renders two runs as a writer:
- Stop block: an unfinished agent run with no issue.
- Cancel run block: a non-agent (check) run.
For each, it asserts that <div class="bar mt" id="run-cancel"> wraps the cancel form for that run and contains the right label ("Stop" or "Cancel run"). The existing not.toContain("run-actions") check stays, but the new cases now carry the proof.
bun test test/studio-runs.test.ts passes and tsc --noEmit is clean. I didn't check that the new test fails against the old markup.
Spacing: the actions row loses its 12px bottom margin, and the summary's top margin goes from 10px to 12px. I couldn't view the preview from here, so I haven't checked the gap before the next block. That check is still open at https://lab--4032--forge-trevato-apps.open-platform.sh.
Does what the issue asks: the summary is a plain paragraph with .mt, both cancel blocks use .bar.mt, the two one-off classes leave the CSS and the §5d list, ids that client.ts reads are kept, and the forms remain POST buttons that work without JavaScript. The new test checks both cancel blocks and the absence of the old class names. I read the diff and the source; I did not open the preview run page (I could not reach a running run there), so spacing is judged from the CSS.
Two things I would do next:
- Spacing: .run-actions had margin 12px 0 and .bar.mt keeps only the top, so the next block after Stop/Cancel run loses 12px. Look at a running run in the preview and add .mb to the two cancel divs if the following block now sits tight.
- Confirm the new test fails against the old markup (the builder said they did not check), e.g. by stashing run.ts and running it once.
I merged main into the branch and pushed it. The only conflict was the "apps, runs, and the crew" line in docs/DESIGN.md's §5d list.
- Resolution: I kept
main's version of that line, which had dropped.check-progress,.check-stepsand.step-state. I then removed.run-actionsand.run-summaryfrom it, as this pull intends. - Checks:
tsc --noEmitis clean.bun testontest/studio-runs.test.tsand the design tests passes (57 tests across 4 files). I didn't run the whole suite; the forge's check does that on the push.
The earlier points still apply: both cancel blocks have their test, and the spacing gap on the preview is unchecked.
Summary line and both cancel blocks now use the base .mt and .bar utilities (base.ts:171-172). The forms stay POST buttons, the ids client.ts uses stay, and run-summary and run-actions are gone from both the CSS and the §5d list. Tests cover the summary markup and both cancel blocks, the Stop block for an issue-less agent run and the Cancel run block for a check run. Preview answers 200. Not verified: I read the CSS and served HTML but did not look at it in a browser. Next: (1) check the gap below the cancel row, because the old 12px bottom margin is gone and the next block may sit tighter; add .mb to the row if so. (2) The summary lost text-wrap: pretty; if long summaries now leave orphans on a 360px phone, consider putting it on the base p rule instead of a page-part class.
I merged main into the branch, resolved the docs/DESIGN.md conflict, and pushed. The design lint, run-page timing and check-running-line tests pass. I did not get a full bun test result: the run timed out in this sandbox and then disappeared without reporting.
- Conflict: it was one line in §5d, the list of classes in "apps, runs, and the crew". The two sides listed different classes, so I kept both.
- Follow-up fix: the design lint then failed because no stylesheet defines
.app-url,.run-actionsor.run-summaryany more. I struck those three from §5d. The run summary itself is unaffected: it renders as<p class="mt" id="run-summary">.
The forge will run the whole check on this push.
Approved. The summary is now <p class="mt" id="run-summary"> and both cancel blocks are <div class="bar mt" id="run-cancel">. These are the §5 base utilities, and .run-summary, .run-actions and their CSS and §5d entries are gone. The forms are still POST buttons, so cancel works with JavaScript off, and the ids client.ts reads are kept. The tests cover both the Stop block and the Cancel run block. The preview answers 200, but run pages need a session, so I could not look at the run page itself.
Two things I would do next:
- Look at the run page on a 360px phone. The actions row loses its 12px bottom margin and the summary margin goes from 10px to 12px. If the gap before the next block is tight, add
.mbto the actions row. - Confirm that the new cancel test fails against the old markup. The pull says this was not checked.
A run's summary line and its Stop/Cancel actions now use base utilities, and
.run-summaryand.run-actionsare gone.bun test test/studio-runs.test.tsandbun x tsc --noEmitpass.What changed
src/web/studio/run.tsit is now<p class="mt" id="run-summary">.<div class="bar mt" id="run-cancel">. The forms still post to the same cancel URL, and thebtncalls are untouched. The ids stay, soclient.tsstill finds both by id..run-summary,.run-actionsand.run-actions formrules are removed fromsrc/web/style/content.ts. Both names are removed from the §5d apps/runs/crew bullet indocs/DESIGN.md.bun scripts/design-lint.tspasses. Running it with--updateleftdocs/design/baseline.jsonunchanged, so the baseline is equal rather than lower.test/studio-runs.test.tsnow checks that the summary paragraph isclass="mt"and thatclass="run-summary"andrun-actionsare absent.run-actionstherefore proves nothing about the two cancel blocks, and no test covers their new markup.Left out
.mt's 12px, and the actions row loses its 12px bottom margin (only the top remains). The sandbox has no browser, so I haven't looked at the page.Closes #3960