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

The terminal home's first ask makes a new app and files the ask there, as the page does #11930

Merged opened this

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

Merged

On a new forge's terminal home, `t` now makes an app from the first ask and files the ask there as its issue. It no longer keeps a thought and says "Received.".

shipped production is serving it deploy 99a34f7

opened this

On a new forge's terminal home, t now makes an app from the first ask and files the ask there as its issue. It no longer keeps a thought and says "Received.".

What changed

  • Same logic as the page: the first-ask field in src/tui/screens/dashboard.ts calls firstAsk from src/actions/first_ask.ts, the one the page uses. Nothing is copied.
  • The forge's own repository is refused inside firstAsk before any app exists. The terminal shows the refusal's words as a toast and makes nothing.
  • After the ask: a toast says Made owner/name and filed your ask there as issue #N. The new app's screen opens, and the home refreshes.
  • Autonomy: if autonomy could not be turned on, the toast adds the same note the page shows.
  • Test: test/tui-first-tell.test.ts now expects one new app, one new issue and no thought. It fails without the dashboard change.

Checks

  • bun x tsc --noEmit is clean and bun scripts/design-lint.ts passes.
  • test/tui-first-tell.test.ts passes, and the four TUI tests I ran alongside it pass (tui-first, tui-tell, tui-asks-first, tui-home-pins).
  • scripts/fast.ts named 433 test files, too many to run here. I did not see bun scripts/gate.ts finish: it timed out at 120 s and moved to the background. The forge's check runs the full suite on push.

Left out

  • A refused ask closes the prompt and shows its words as a toast, because promptScreen cannot keep the dialog open after an async answer. The page shows the refusal inline and keeps the text.
  • No separate test for the forge-repo refusal in the terminal. firstAsk already covers it.

To try it

  • SSH into a new forge, press t on the home and type one sentence.
  • The new app opens with your ask filed as its issue.

The push needed an empty "Try:" commit to satisfy the pre-push hook, so the branch has two commits.

Closes #11406

commented

On a new forge's terminal home, t now makes an app from the first ask and files the ask there as its issue. It no longer keeps a thought and says "Received.".

What changed

  • Same logic as the page: the first-ask field in src/tui/screens/dashboard.ts calls firstAsk from src/actions/first_ask.ts, the one the page uses. Nothing is copied.
  • The forge's own repository is refused inside firstAsk before any app exists. The terminal shows the refusal's words as a toast and makes nothing.
  • After the ask: a toast says Made owner/name and filed your ask there as issue #N. The new app's screen opens, and the home refreshes.
  • Autonomy: if autonomy could not be turned on, the toast adds the same note the page shows.
  • Test: test/tui-first-tell.test.ts now expects one new app, one new issue and no thought. It fails without the dashboard change.

Checks

  • bun x tsc --noEmit is clean and bun scripts/design-lint.ts passes.
  • test/tui-first-tell.test.ts passes, and the four TUI tests I ran alongside it pass (tui-first, tui-tell, tui-asks-first, tui-home-pins).
  • scripts/fast.ts named 433 test files, too many to run here. I did not see bun scripts/gate.ts finish: it timed out at 120 s and moved to the background. The forge's check runs the full suite on push.

Left out

  • A refused ask closes the prompt and shows its words as a toast, because promptScreen cannot keep the dialog open after an async answer. The page shows the refusal inline and keeps the text.
  • No separate test for the forge-repo refusal in the terminal. firstAsk already covers it.

To try it

  • SSH into a new forge, press t on the home and type one sentence.
  • The new app opens with your ask filed as its issue.

The push needed an empty "Try:" commit to satisfy the pre-push hook, so the branch has two commits.

Approved

Clean, small change. The terminal first ask now calls the shared firstAsk (identity, verification, length, forge-repo refusal all enforced there), toasts one plain line, opens the new app, and the test asserts one new repo, one new issue, no thought. No new surface, dependency or secret. Minor, not blocking: a refusal closes the prompt and only toasts; a test for the terminal refusal path would be nice.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs