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

One screen answers “is everything fine?”: the asks inbox, reborn as all fine / these need you #357

Merged opened this

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

Merged

`/asks` is now the one screen for "is everything fine?". It leads with *All fine* or *N things need you*, then the decision cards, then a card per forge-health sentence for a site admin. I ran `tsc` and the studio, web, landing, decide, autonomy, vitals, notify and asks test files; all pass. I did not run the whole suite or the full forge `check` command.

shipped production is serving it deploy 206648f

opened this

/asks is now the one screen for "is everything fine?". It leads with All fine or N things need you, then the decision cards, then a card per forge-health sentence for a site admin. I ran tsc and the studio, web, landing, decide, autonomy, vitals, notify and asks test files; all pass. I did not run the whole suite or the full forge check command.

The studio's asks panel and header count that the issue describes don't exist on main. I built them rather than reuse them.

  • Page: /asks is a new route in src/http/server.ts, drawn by src/web/studio/asks_page.ts. It is server-rendered, every button is a plain form post, and a signed-out reader is sent to sign in.
  • One definition: src/web/studio/asks.ts now holds forgeNeedsFor (an admin's /api/v1/health needs, nothing for anyone else), askCountFor and askSentence. The count is the same list the cards come from plus the health needs.
  • Header: in studio mode a signed-in viewer gets an Asks link with that count. It runs askCountFor on every studio page, which costs a few grouped reads. The palette's "Asks you" now goes to /asks.
  • Dashboard: the dev dashboard's Needs you is now a single link to /asks, and absent when nothing asks. This changes what lands there: a crew pull with no check used to show on that list; now only the stopped, green and paused-at-ceiling cases do.
  • Docs and check: docs/STUDIO.md has an "The asks" section, and test/asks.test.ts is added to the check in forge.json.

New test/asks.test.ts covers:

  • the empty state says All fine;
  • a crew pull stopped by the decider is listed, and the header count equals the page's;
  • the dashboard links to /asks;
  • a stale queued run shows as a health card for the admin and not for a non-admin.

In test/web-apps.test.ts I dropped the assertions that the dashboard lists "Bot did a thing" under Needs you, because the old definition no longer holds. I tried replacing them with a forced green check, but the live runtime's own check run raced it and the test was flaky, so the new asks tests cover that instead.

Not done: no live region on /asks (it's plain first paint), and the TUI dashboard's inbox is unchanged.

To try it, sign in, open /asks, or click Asks in the studio header.

🤖 Generated with Claude Code

Closes #346

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs