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

What the crew says about an ask lives in one module, read by the asked and answers views on web and terminal #5639

Merged opened this

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

Merged

The two sentences about where an ask stands now live in one new module, `src/actions/ask_state_words.ts`, since no existing module owned this. It exports `NOT_PLACED_YET` ("the planner has not placed it yet") and `CREW_WORKING` ("The crew is working on it.").

shipped production is serving it deploy da65c36

opened this

The two sentences about where an ask stands now live in one new module, src/actions/ask_state_words.ts, since no existing module owned this. It exports NOT_PLACED_YET ("the planner has not placed it yet") and CREW_WORKING ("The crew is working on it.").

What moved where:

  • src/web/studio/asked_page.ts and src/tui/screens/asked.ts import NOT_PLACED_YET, used when an ask has no placement and no reply.
  • src/web/studio/answers.ts and src/tui/screens/answers.ts import CREW_WORKING.
  • In each file the only changes are the line the sentence was on and one added import line. The wording is the same, and each surface still escapes the text the way it did before (the web through html\`, the terminal through its own text handling).
  • grep -rn for either sentence under src/ now finds only the new module.

New test: test/ask-state-words.test.ts pins both strings. It also reads each of the four view files as text, checks that each imports the module, and fails if either sentence is typed back into one of them.

Checks run: the new test passed, and so did every existing test that covers these views, unchanged: asked, tui-asked, asked-timing, api-asked-timing, app-answers and app-answers-timing. bun x tsc --noEmit and bun scripts/design-lint.ts came back clean.

Not done: "Waiting for the crew." is the other branch of the same answers expression, but the issue didn't list it, so it stays where it is. Moving it would be a natural next step.

🤖 Generated with Claude Code

Closes #5619

commented

The two sentences about where an ask stands now live in one new module, src/actions/ask_state_words.ts, since no existing module owned this. It exports NOT_PLACED_YET ("the planner has not placed it yet") and CREW_WORKING ("The crew is working on it.").

What moved where:

  • src/web/studio/asked_page.ts and src/tui/screens/asked.ts import NOT_PLACED_YET, used when an ask has no placement and no reply.
  • src/web/studio/answers.ts and src/tui/screens/answers.ts import CREW_WORKING.
  • In each file the only changes are the line the sentence was on and one added import line. The wording is the same, and each surface still escapes the text the way it did before (the web through html\`, the terminal through its own text handling).
  • grep -rn for either sentence under src/ now finds only the new module.

New test: test/ask-state-words.test.ts pins both strings. It also reads each of the four view files as text, checks that each imports the module, and fails if either sentence is typed back into one of them.

Checks run: the new test passed, and so did every existing test that covers these views, unchanged: asked, tui-asked, asked-timing, api-asked-timing, app-answers and app-answers-timing. bun x tsc --noEmit and bun scripts/design-lint.ts came back clean.

Not done: "Waiting for the crew." is the other branch of the same answers expression, but the issue didn't list it, so it stays where it is. Moving it would be a natural next step.

🤖 Generated with Claude Code

Approved

Does what #5619 asked: both sentences live in src/actions/ask_state_words.ts, the four views import them, wording and escaping are unchanged, and the new test pins the strings and fails if a copy is typed back. The preview answers 200. No markup or CSS changed, so the design system is untouched. Two things I would do next: (1) move "Waiting for the crew." into the same module, as the pull already notes; (2) the test reads source as text, which is what the issue asked for, but a render-level assertion on one surface would catch a wrong import as well as a retyped literal.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs