Stop the handoff carrying the write Orchestra asked for
Handoff.Command is the last command observed in the pane. The handoff prompt tells the agent to write .orchestra-handoff-report.md and stop, so that write is almost always the last command there. Validate then rejects it as circular: "must not point to a handoff or report". Every phase rotation therefore failed on Orchestra's own instruction. Live on run 5, one stage past F36. lastObservedCommand now skips commands the validator would call circular, so the successor gets the last command that was real work. The rule stays in continuity and is asked, not restated, which is how F36 happened. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011xsXyr5J1RACo71YeKG3Pu
This commit is contained in:
@@ -538,9 +538,19 @@ func (a CLIAdapter) lastObservedCommand(s Session) string {
|
||||
return ""
|
||||
}
|
||||
for i := len(calls) - 1; i >= 0; i-- {
|
||||
if calls[i].Kind == "command" {
|
||||
return calls[i].Key
|
||||
if calls[i].Kind != "command" {
|
||||
continue
|
||||
}
|
||||
// Skip the write Orchestra itself asked for. The handoff prompt tells
|
||||
// the agent to write HandoffReportFile and stop, so that write is
|
||||
// almost always the last command in the pane. Carrying it into
|
||||
// Handoff.Command made every rotation fail its own circularity check
|
||||
// with "must not point to a handoff or report" (F37). The successor
|
||||
// wants the last command that was real work.
|
||||
if continuity.IsCircularCommand(calls[i].Key) {
|
||||
continue
|
||||
}
|
||||
return calls[i].Key
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user