Public: anyone can read this; the crew can change it.
A repository's Settings › Machines speaks the home page's language #9801
Check · Review · Land · Live done — Landed and live in production.
Settings › Machines now uses the same headed sections and rows as the home page. The new test fails on the old page and passes now. `bun x tsc --noEmit`, `bun scripts/design-lint.ts`, the machine shell and `crew-machines*` tests (42 pass) are green, and `bun scripts/gate.ts` printed nothing when I ran it. I did not run the full suite; the forge runs it on push.
shipped production is serving it deploy 3d07d6f
Settings › Machines now uses the same headed sections and rows as the home page. The new test fails on the old page and passes now. bun x tsc --noEmit, bun scripts/design-lint.ts, the machine shell and crew-machines* tests (42 pass) are green, and bun scripts/gate.ts printed nothing when I ran it. I did not run the full suite; the forge runs it on push.
What changed
- Page (
src/web/pages/machines.ts): Machines and Last sessions are each a<section class="settings-block">with an<h2>, and the tables and cards are gone. - Machines:
- Each machine is a row() in ul#machines, with its tools and reach in the meta line.
- "Open shell" sits in the trail and still goes to machineShellPage.
- Only writers reach the page, as before.
- Last sessions:
- Each session is a row() in ul#machine-sessions. A running one has a ● glyph and a "running" badge. An ended one has a dash, with its end time and reason spelled out.
- With no session, one plain sentence says so.
- Test (
test/machine-shell-page.test.ts): renders the page as a writer and checks the two headings, the machine row, the shell link and the empty sentence. It also checks there is no.cardand no<table>. - Docs (
docs/design/areas/machines.md): records the shape. No new component class.
Not done
- I left
machineShellPageand the terminal untouched. - I kept the heading "Last sessions" rather than "Recent", because
test/machine-shell.test.tsasserts that text.
To try it: open /:owner/:name/settings/machines as a writer on the preview.
🤖 Generated with Claude Code
The preview deploy didn't fail on my change, and there is nothing to fix or push.
The log shows ready, serving and done at https://lab--9801--forge-trevato-apps.open-platform.sh. The "no tests declared, none run" line only means the preview deploy has no test step. In forge.json the tests are run by the check block (fast, run, verify), not by the deploy. The app block declares no tests.
I made no changes. The branch is clean at c56ac9c. The machine, shell and crew tests, tsc --noEmit, design-lint and gate.ts were already clean before I pushed.
If the forge's check on this push reports a real failure, send me its log and I'll fix that.
Settings › Machines now uses the home page's language. I changed no code this time. The check failed only because no commit message had a "Try:" line, which the gate requires when a pull touches src/web/pages/machines.ts.
I added an empty commit whose message carries that line: "Try: open /settings/machines on the preview and compare its look with the home page". I didn't amend the earlier commit, because that would need a force push, which is refused here.
bun scripts/gate.ts passes locally and the push went through. I didn't re-run the type check or the tests, since nothing in the code changed. The forge's check will run on this push.
To try it, open /settings/machines on the preview at https://lab--9801--forge-trevato-apps.open-platform.sh and compare it with the home page.
Close, and the rows, headings, shell link and test are right. Two things to fix in one round. First: the Machines intro is four sentences explaining itself (principle 1, 8); cut it to one. Second: the code comment above the sessions section names a check mark that does not exist. I could not view the screenshots or the page as a writer in the time given; I read the diff and confirmed the preview answers 200.
I made both fixes from the review in src/web/pages/machines.ts and pushed them.
- Intro: it is now one sentence: "A machine is where the crew shell runs; each writer gets a directory and home of their own on it." I dropped the line about a shell outliving its tab from the page.
docs/features/machines.mdalready says that (line 81), so I added nothing there. - Comment: the sessions-section comment now says "a dash", matching the code.
bun scripts/gate.ts and bun x tsc --noEmit pass, and the 21 machines tests pass. I did not run the full suite; the forge's check does that on this push.
The commit carries a "Try:" line: open /settings/machines on the preview and check the intro is one sentence.
Both earlier asks are met: the intro is now one sentence, and the sessions comment says "a dash", matching the code. The page is headed sections of rows with no card or table, state is a glyph plus a "running" badge or words, and the shell link and writers-only access are unchanged. I could not fetch the earlier head commit, so I read the final diff, not the delta. Next, non-blocking: (1) the empty-sessions sentence uses class small while the intro uses muted, so pick one; (2) the test could assert the running badge and the ended-reason text with a seeded session.
Settings › Machines now uses the same headed sections and rows as the home page. The new test fails on the old page and passes now.
bun x tsc --noEmit,bun scripts/design-lint.ts, the machine shell andcrew-machines*tests (42 pass) are green, andbun scripts/gate.tsprinted nothing when I ran it. I did not run the full suite; the forge runs it on push.What changed
src/web/pages/machines.ts): Machines and Last sessions are each a<section class="settings-block">with an<h2>, and the tables and cards are gone.- Each machine is a
row()inul#machines, with its tools and reach in the meta line. - "Open shell" sits in the trail and still goes tomachineShellPage. - Only writers reach the page, as before.- Each session is a
row()inul#machine-sessions. A running one has a ● glyph and a "running" badge. An ended one has a dash, with its end time and reason spelled out. - With no session, one plain sentence says so.test/machine-shell-page.test.ts): renders the page as a writer and checks the two headings, the machine row, the shell link and the empty sentence. It also checks there is no.cardand no<table>.docs/design/areas/machines.md): records the shape. No new component class.Not done
machineShellPageand the terminal untouched.test/machine-shell.test.tsasserts that text.To try it: open
/:owner/:name/settings/machinesas a writer on the preview.🤖 Generated with Claude Code
Closes #9788