Conversation on the new loop (M2.7)
- Questions never change state (L5, #77): a message ending in "?" to a waiting project item starts a question run (reply and look-only tools, an instruction to change nothing), and the item goes back to the very wait it was in: a restatement up stays up and a go binds to it; the agent's own question stays open. - Explanations: a restatement gives its reasons and the main alternative; a revision says what changed (restate(changed), sent back without it); a milestone's summary says what was done, verified and left open. - Progress in prose (#42): the driver's and a helper's own words for a turn are posted, trimmed, at most once a minute per item; `details` shows the last tool calls; a message arriving mid-run is acknowledged at once ("Noted; ..."). - CI: the e2e job's comments and the plan no longer claim a newer push cancels the run it supersedes (Gitea here doesn't); the concurrency block goes. Tests: conversation unit tests (questions in a go-ahead and an answer wait, an unanswerable question, revisions, progress rate and trimming, details, mid-run notes), the helper's progress, the walk asking questions in every state with a questions_change_nothing property (routing questions the old way fails 32 of 48 seeds), and an e2e question while a restatement is up. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
This commit is contained in:
1 parent
5967d022b6
commit
8994b3fb4b
14 files changed
+456
-30
No files matched your search
@@ -25,9 +25,12 @@ def _tool(tool: str, description: str, /, **params: str) -> dict[str, Any]:
|
||||
RESTATE = _tool(
|
||||
"restate",
|
||||
"Put your understanding of the request to the operator, in their item's "
|
||||
"thread: what you take it to mean, how it fits the project, and your "
|
||||
"first step. Ends your turn; work starts when they agree.",
|
||||
"thread: what you take it to mean, how it fits the project, your first "
|
||||
"step, and why that way (and the main alternative you considered). Ends "
|
||||
"your turn; work starts when they agree.",
|
||||
text="Your restatement, in plain language.",
|
||||
changed="What changed from your previous restatement, and why; leave it "
|
||||
"empty for the first.",
|
||||
)
|
||||
ASK_HUMAN = _tool(
|
||||
"ask_human",
|
||||
|
||||
Reference in new issue
Block a user