Repository navigation
fix(web): show the open question card again after returning to a project - #202
TheGreatAxios wants to merge 7 commits into
Conversation
The question card came only from the live run stream, so a page opened later showed the coordinator's reply with nothing to answer. The conversation read now attaches the ask_questions call the coordinator waits on, since the person's last message, to its open input park, and the page draws the card from it when it did not watch the ask.
Nothing triage asked to change still fails, so this request no longer stands.
A run that ends on a bare ask_questions call keeps that call on the uncommitted live turn. The restored card only checked committed steps, so a watching page drew the same card twice: on the live turn and on the last committed reply. Count the live turn as already drawn.
When the mirror holds no person turn yet, every later ask is open; say so directly instead of standing in an invented earliest time.
Validate the park question with a schema rather than casting it, type the restored card as a ConversationPart, and say where the card goes: on the coordinator's latest reply.
The page reads an approval decision's note as a person turn, so it also counted as the answer to an open ask_questions call. Declining another card with a note dropped the question card on reload. Only the person's own message answers the questions.
A new message run drops a bare ask from the live turn while the page still holds the open ask from its last read. The card was put back in the steps map, but the memoized turns did not depend on that, so it stayed hidden until the next read.
| const answer = mapMirrorConversationTurns( | ||
| asked.filter((turn) => !isApprovalDecision(turn)), | ||
| "note", | ||
| ).findLast((turn) => turn.role === "person"); |
There was a problem hiding this comment.
P2 · Hub's specialist-ended notice counts as the person's answer and hides the open card
lastOpenAsk treats any mapped person turn as the answer. mapMirrorConversationTurns leaves out only workflow-run mail and approval decisions. The hub's specialist-ended notice reaches the coordinator as the person's message and is kept as a person turn (personTurnText only trims it). So an ask_questions call made before that notice is treated as answered. After a reload the card does not come back while the coordinator is still waiting for answers, and the project is stuck again.
The coordinator calls ask_questions while a specialist is running. The specialist fails, so the hub sends its "Status update: …" notice. The coordinator acknowledges it and parks for input again. The person then reloads the page.
Resolve this comment. Triage will not finish while it is open.
This pull request is no longer ready to approve, so this approval no longer stands.
|
Replaced by #212, which keeps the questions card by making the question wait for the person's answer as the call's result, instead of inferring it from the chat history. |
What changed
When the coordinator asks you a question, it shows a card to answer. If you left the project and came back, or reloaded, the card was gone: the coordinator's "choose on the card below" was there with nothing to answer, and the project was stuck. Now the card comes back, and you can answer it.
Why: the card only ever came from the live stream, so a page opened later had nothing to draw it from. The hub's conversation read now includes the question the coordinator is still waiting on, and the page draws the card from it when it didn't see the question live. Once answered, it doesn't come back.
Verification
Closes CL-12168