Skip to content

docs: README sells four backends and cross-vendor edges, GIF hero - #336

Merged
scgopi merged 3 commits into
mainfrom
docs/readme-backends
Sep 12, 2026
Merged

scgopi merged 3 commits into
mainfrom
docs/readme-backends

Conversation

@scgopi

@scgopi scgopi commented Sep 12, 2026

Copy link
Copy Markdown
Owner

What changed

  • First paragraph names the four backends a loop can run on (Claude Code, GitHub Copilot CLI, Codex, OpenCode) and says an edge never asks which agent is on either end.
  • Install asks for at least one of claude, copilot, codex, opencode on PATH instead of Claude Code alone.
  • Using it says where the agent is picked in the app (the New loop sheet, default from Settings ▸ New loops use), names --backend claudeCode | copilotCLI | codex | openCode once, and notes that a loop creating children without the flag hands them its own backend.
  • How it works stops claiming the daemon schedules nothing: Codex and OpenCode have no /loop skill, so a time-based loop on them takes a daemon heartbeat.
  • Hero is now docs/assets/graphcode-demo-hero.gif (1,290,351 bytes): 17.4 s of graphcode-demo.mp4 from 26 s, 12 fps, 960 px wide, 64 colours, gifsicle --lossy=80. It shows jumping between child sessions, the canvas fan-out, and a new loop created with its own agent and done check.

Checked against the code

Claim Evidence
Four backends, all launchable CLISessionBackendKind has exactly four cases; isSpiked is true for all
Executable names BackendCommand.executableName: claude, copilot, codex, opencode
Three edge kinds, all executed EdgeKind.isExecutable is true for handoff, message, spawn
Edges ignore the backend No backend comparison anywhere in the handoff/message firing path
--backend values and default GraphcodeCommand parses the raw enum values; GraphStore fills nil from the creator's backend
Codex/OpenCode heartbeat BackendCapabilities.supportsDaemonRecurrence and LoopNode heartbeat prompt
Settings label SettingsView picker titled "New loops use"

Not done

  • loop-messaging.mp4 was the first choice for the GIF but has a slow camera zoom on every scene, so every frame is a full redraw: 17.5 s came out at 7.2 MB, and 4.6 MB after denoise and 32 colours. Not recoverable under 1.5 MB at 960 px.
  • docs/assets/graphcode-demo.gif (4.8 MB) stays because docs/index.html uses it as the video fallback. screenshots/graph-hero.png is now unreferenced but left in place.
  • Docs-only change; no Swift touched, so the Xcode gate was not run.

scgopi and others added 3 commits September 12, 2026 15:28
12 fps, 960 px wide, 64 colours, gifsicle lossy — 1.29 MB against the
4.8 MB graphcode-demo.gif that was never referenced.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W17hZWDtbPQWadbgvMWWm1
The first paragraph, Install and Using sections now say a loop runs on
Claude Code, Copilot CLI, Codex or OpenCode, that edges fire regardless of
the agent on either end, and how --backend picks one. The hero is the new
1.29 MB GIF instead of the static PNG.

Every claim was checked against CLISessionBackendKind, EdgeKind,
BackendCapabilities and the daemon's handoff path, which has no backend
guard.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W17hZWDtbPQWadbgvMWWm1
GraphcodeCommand marks --heartbeat experimental and NodeDraft refuses it
unless Settings has Daemon heartbeat enabled, which is off by default.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W17hZWDtbPQWadbgvMWWm1
@scgopi
scgopi merged commit 425a382 into main Sep 12, 2026
1 check passed
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