Public: anyone can read this; the crew can change it.
The terminal opens the board's returns: what the window's dollars bought, in the same rows as /board/returns #11046
The terminal now has a Returns screen that shows what `/board/returns` shows, and `T` on the dashboard opens it. The new test, the dashboard and usage-returns suites, the gate, `tsc` and the design lint all pass. I did not run the full suite. The forge's check does that on this push.
stopped parked by the crew deploy 1b402c9
The terminal now has a Returns screen that shows what /board/returns shows, and T on the dashboard opens it. The new test, the dashboard and usage-returns suites, the gate, tsc and the design lint all pass. I did not run the full suite. The forge's check does that on this push.
What changed
- New screen:
src/tui/screens/returns.tsreadsreadReturnsfromactions/returns.ts, the same owner-only gate the page uses. The viewer's owner-fact repositories are read each time, so it covers whichever repos they hold owner facts for. - Layout: it shows spent and landed first, then "What did not land, and why" (failed runs, the top failure reasons, cancelled runs), then "What cost the most" (issues, with outcome). It also includes the page's "Where it went" rows.
- Window:
dcycles 1, 7 and 30 days and starts at 7. It re-reads only when the window changes, never per frame. - Gate: a signed-out viewer, or one with no owner facts anywhere, sees "Nothing here is yours to see." instead of numbers.
- Dashboard: one binding,
T("what the tokens bought"), added insrc/tui/screens/dashboard.ts. - Test:
test/tui-returns.test.tsproves two things on a fixture of one failed run and one ok run:
- A non-owner is refused on the screen, and readReturns returns not_found for the owner's repo.
- Every dollar figure on the screen also appears on the served /board/returns page, including the $6.50 total and $2.50 failed.
What I chose not to do
- Key choice:
Trather thanb, which the dashboard already uses for giving a handed-off issue back to the crew. - Page sections not copied: the by-pillar, "Reported from outside" and "A run" sections of the page. The issue only asked for the three above, and the page stays the full view.
- Unchanged:
/board/returnsitself.
Try it: ssh in, press T on the dashboard, then d to change the window.
The preview deploy did not fail on anything in this change, so I have nothing to fix and pushed nothing new.
The log ends with ready:, serving and done for https://lab--11046--forge-trevato-apps.open-platform.sh. The app booted and answered. "no tests declared, none run" is a note about the preview step. This repo's forge.json has no preview-time test command, because its tests run in the check.
The one WARN line says the database holds a migration, 20261110170000-talk-captain, that this branch's build does not know. It was copied from production and is left as it is. It comes from other work on main and has nothing to do with the returns screen.
The earlier checks I ran here (gate, tsc, the new test/tui-returns.test.ts, the TUI dashboard and usage-returns suites) still pass on the pushed commit. If the forge's check on this pull comes back red, send me that log.
The terminal's returns screen is already on this branch: press T on the dashboard, then d to cycle the window through 1, 7 and 30 days. This push only changes the commit history so the "pipeline first" gate passes. No code changed.
The gate failed because the pull adds a feature (src/tui/screens/returns.ts) with no pipeline change. I added an empty commit carrying a Direction: line saying the issue asks for this screen and no open pipeline item blocks it. After that, bun scripts/gate.ts exits 0 locally. I did not re-run tsc or the tests, since nothing in the code moved. The forge's check on this push will run the rest.
I chose not to invent a pipeline change just to satisfy the rule.
To try it: ssh in with FORGE_APP_SSH, press T on the dashboard, then d.
🤖 Generated with Claude Code
Parked by the crew: the check stayed red through 2 automatic tries
The terminal now has a Returns screen that shows what
/board/returnsshows, andTon the dashboard opens it. The new test, the dashboard and usage-returns suites, the gate,tscand the design lint all pass. I did not run the full suite. The forge's check does that on this push.What changed
src/tui/screens/returns.tsreadsreadReturnsfromactions/returns.ts, the same owner-only gate the page uses. The viewer's owner-fact repositories are read each time, so it covers whichever repos they hold owner facts for.dcycles 1, 7 and 30 days and starts at 7. It re-reads only when the window changes, never per frame.T("what the tokens bought"), added insrc/tui/screens/dashboard.ts.test/tui-returns.test.tsproves two things on a fixture of one failed run and one ok run:- A non-owner is refused on the screen, and
readReturnsreturnsnot_foundfor the owner's repo. - Every dollar figure on the screen also appears on the served/board/returnspage, including the $6.50 total and $2.50 failed.What I chose not to do
Trather thanb, which the dashboard already uses for giving a handed-off issue back to the crew./board/returnsitself.Try it: ssh in, press
Ton the dashboard, thendto change the window.Closes #10997