You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Build and test: the supervisor's asks never show in the chat as questions with options #881
At Build and test the Build supervisor's status asks the person for things under "What I need from a human", but the chat never shows those asks as a question with options the way every other stage does. The person sees two short status lines in the chat, a numbered list buried in the document pane, and no control to answer with.
Seen on the Workout Log project (tnt_85eac686524237ff1f730eaa1a558ab6), 2026-10-11: the opening status listed four numbered items under "What I need from a human" (fix the target, seed material, Anthropic key, start the attempt); the interim status two. The chat showed only each status's first paragraph. The worker then stopped on its own (exit 0, 9 turns) asking "Which approved target should govern: iPhone, withdrawing the desktop target, or desktop with an amended PRD and plan?", and that question reached the person only inside the worker's final text and QUESTIONS.md.
Why
Two things, both needed:
The chat cuts the status at its first heading and offers nothing to tap.StageConversation (apps/web/src/pages/workspace/thread.tsx) shows a specialist turn as conversationLead(body): the paragraph before the first ##. The questions a headed turn asks are after its headings, so they are gone before anything looks for them. And build.tsx passes no onAnswer, so even the last turn is rendered through MessageBody, never SpecialistTurn. Document stages pass the full body with a draft ref (lead in the chat, questions with options under it, headings in the pane); stage 5 passes onAnswer (Concept approval opens by asking who must approve, then writes each approver's package #722). Stage 8 passes neither.
The supervisor is never told how to ask.packages/specialist-build-supervisor/src/index.ts asks for a "## What I need from a human" heading and nothing about its form. The interview rules (INTERVIEW in specialist-shared) that every other asking stage carries, one plain question ending in "?" with two or three - Option: lines, are not in its prompt. So it writes numbered tasks ("1. Resolve the target now. …"), which segmentsIn (choices.ts) rightly does not read as a question: no "?", no offered list. With (1) fixed alone, the chat would still show nothing to tap.
Expected
The latest supervisor status shows in the chat as its lead, then each question it asks with its options as buttons, as a document stage's draft does. Tapping sends the answer to the supervisor, as typing it would. The status's headings stay in the pane.
The supervisor asks under "What I need from a human" in the kit's form: each a question ending in "?", with - Option: lines. Things only a button does (start, continue, record) are said as such, not asked.
When an attempt has ended with questions in its final text or QUESTIONS.md, the supervisor's status puts them to the person as questions with options, so the worker's "which target?" is answerable from the chat.
Fix
thread.tsx: for the answerable turn, hand SpecialistTurn the full body and let a headed turn without a draft ref render as lead plus questions (no text segments), so the pane stays the one place the document shows.
build.tsx: pass onAnswer that sends the tapped answer as stage mail to the supervisor, like stage 5.
specialist-build-supervisor: add the interview form to "What I need from a human", and have the record brief (composeSupervisorBrief) carry the worker's QUESTIONS.md so the status can ask them.
Tests for segmentsIn on a supervisor-shaped status, for the chat rendering, and for the brief.
Related: the frozen target itself was wrong for this project (separate issue).
At Build and test the Build supervisor's status asks the person for things under "What I need from a human", but the chat never shows those asks as a question with options the way every other stage does. The person sees two short status lines in the chat, a numbered list buried in the document pane, and no control to answer with.
Seen on the Workout Log project (
tnt_85eac686524237ff1f730eaa1a558ab6), 2026-10-11: the opening status listed four numbered items under "What I need from a human" (fix the target, seed material, Anthropic key, start the attempt); the interim status two. The chat showed only each status's first paragraph. The worker then stopped on its own (exit 0, 9 turns) asking "Which approved target should govern: iPhone, withdrawing the desktop target, or desktop with an amended PRD and plan?", and that question reached the person only inside the worker's final text and QUESTIONS.md.Why
Two things, both needed:
The chat cuts the status at its first heading and offers nothing to tap.
StageConversation(apps/web/src/pages/workspace/thread.tsx) shows a specialist turn asconversationLead(body): the paragraph before the first##. The questions a headed turn asks are after its headings, so they are gone before anything looks for them. Andbuild.tsxpasses noonAnswer, so even the last turn is rendered throughMessageBody, neverSpecialistTurn. Document stages pass the full body with adraftref (lead in the chat, questions with options under it, headings in the pane); stage 5 passesonAnswer(Concept approval opens by asking who must approve, then writes each approver's package #722). Stage 8 passes neither.The supervisor is never told how to ask.
packages/specialist-build-supervisor/src/index.tsasks for a "## What I need from a human" heading and nothing about its form. The interview rules (INTERVIEWinspecialist-shared) that every other asking stage carries, one plain question ending in "?" with two or three- Option:lines, are not in its prompt. So it writes numbered tasks ("1. Resolve the target now. …"), whichsegmentsIn(choices.ts) rightly does not read as a question: no "?", no offered list. With (1) fixed alone, the chat would still show nothing to tap.Expected
- Option:lines. Things only a button does (start, continue, record) are said as such, not asked.Fix
thread.tsx: for the answerable turn, handSpecialistTurnthe full body and let a headed turn without a draft ref render as lead plus questions (no text segments), so the pane stays the one place the document shows.build.tsx: passonAnswerthat sends the tapped answer as stage mail to the supervisor, like stage 5.specialist-build-supervisor: add the interview form to "What I need from a human", and have the record brief (composeSupervisorBrief) carry the worker's QUESTIONS.md so the status can ask them.segmentsInon a supervisor-shaped status, for the chat rendering, and for the brief.Related: the frozen target itself was wrong for this project (separate issue).