Skip to content

Let finished loops answer, keep /goal armed, report done on pi and OpenCode (#346) - #351

Merged
scgopi merged 1 commit into
mainfrom
fix/346-followup-done-delivery
Sep 13, 2026
Merged

scgopi merged 1 commit into
mainfrom
fix/346-followup-done-delivery

Conversation

@scgopi

@scgopi scgopi commented Sep 13, 2026

Copy link
Copy Markdown
Owner

Follow-up to #350 (#346), from a live run of goal loops on all five backends with 0.1.70-beta2.

What the live run found

Backend Resolved? Why not
Claude Code yes, from its own goal verdict
Copilot CLI yes, from its own goal verdict
Codex no a long launch prompt moves to PROMPT.md, and /goal inside a file is prose — the goal was never armed, so Codex recorded no verdict
OpenCode no finished its work and reported to its creator, but never ran graphcode node done
pi no same as OpenCode

A follow-up question sent to a finished loop with graphcode node send was also staged to its memory instead of reaching its still-running session.

What changes

  • Follow-up questions reach finished loops. A message to a loop that succeeded or failed is typed into its session when that session is still alive. Its state and resolution do not change. Message edges and wakes still leave resolved loops alone.
  • /goal stays the command. When a prompt is too long to type and moves to a file, the typed line still opens with the backend's goal directive and the start of the condition, then points at the file.
  • OpenCode and pi are told how to finish. A goal loop on a backend whose goal verdict the daemon cannot read is told in its prompt to run graphcode node done once the goal is met. Child goal loops get the exact command, with their own id, in their memory at birth, and the briefing says it plainly.

… to report done (#346)

A live run of goal loops on all five backends with 0.1.70-beta2 found three
gaps in the #350 fix:

- `graphcode node send` to a loop that succeeded or failed was staged to
  its memory even while its session was up. A follow-up question now
  reaches a live session and changes nothing about how the loop resolved;
  edges and wakes still leave resolved loops alone.
- A long goal moves to PROMPT.md, and `/goal` inside a file is prose, so
  Codex never armed its goal and recorded no verdict. The typed pointer
  now opens with the directive and the start of the condition, shrinking
  the head before it would drop the briefing (#345).
- pi and OpenCode, whose verdict the daemon cannot read, finished their
  work and reported to their creator but never ran `graphcode node done`.
  Their goal prompt now ends with the exact command, child goal loops get
  it with their own id at birth, and the briefing says it plainly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@scgopi
scgopi merged commit 1ff0e41 into main Sep 13, 2026
1 check passed
scgopi added a commit that referenced this pull request Sep 13, 2026
PR #351 landed with one [LineLength] violation, so `make check` exited 2 on
main. Formatter output only, no semantic change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016n4hSXVu6wLR4RCfnt6PPG
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant