Commit Graph
5 Commits
Author SHA1 Message Date
kyleandClaude Opus 5.5 411d9e04a0 run-plan: a session time limit, a stopped-row message, trial resume and watchdog
From the combined Ornith guidance (§6). Each session runs in its own
process group and is stopped after SESSION_LIMIT_MIN minutes (default
90), killed by group so the cargo it started goes too, never with pkill
(titan has no `timeout`, so the limit is plain shell). A task that logs
`stopped` gets its own message with the row. Two guards for a trial run:
RESUME=1 resumes a session once when it leaves work uncommitted, and
SLOTS_URL stops a session when no llama slot has been busy for
IDLE_LIMIT_MIN minutes (default 10).

Tested against a stub opencode outside a throwaway repository: a clean
task, a stopped row, a wrong trailer, an uncommitted session with and
without RESUME, a hang past a 1-minute limit (its child process killed
with it), and a session with no busy slot for 1 minute.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 00:29:30 -07:00
kyleandClaude Opus 5.5 31fe078e64 opencode.json: an implement agent for unattended runs; run-plan uses it
From the combined Ornith guidance (§8.2), checked against OpenCode
1.18.30's schema and permission docs (last matching rule wins). Reads
and edits outside the repository are denied, except OpenCode's own
tool-output and temporary directories; web access, questions, subagents
and doom-loop prompts are denied; edits to AGENTS.md, CLAUDE.md,
opencode.json, the design documents, specs, plans and tools/ are denied;
shell commands are allowed except push, reset, rebase, amend, switch,
checkout, find /, locate, sudo, rm -rf / and curl/wget. A denied call
continues the loop (experimental.continue_loop_on_deny, untested with
Ornith). steps = 400 is a backstop. No custom prompt: OpenCode already
reads AGENTS.md, and a prompt may replace its tool guidance.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 00:18:03 -07:00
kyleandClaude Opus 5.5 f98ec2a908 Local-model commits carry Co-Authored-By: <model> <agent@wntrmute.dev>
Owner's rule. The implementer often cannot know which model it is, so
run-plan.sh derives the name from OPENCODE_MODEL (the part after the
provider), gives the exact trailer and the Model column's value in the
session prompt, and stops the run when a task's commit lacks that exact
line. AGENTS.md replaces the old Implemented-By trailer and the "owner
fills in the model" rule.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 00:10:00 -07:00
kyle a32f94aead run-plan: OPENCODE_MODEL, not BOXMAKER_MODEL, names the model
It matches OPENCODE_FLAGS, and no longer clashes with BOXMAKER_MODEL, which
the device tests send to llama-server as the model name.
2026-09-25 16:41:44 -07:00
kyleandClaude Fable 5.1 db0ba081db Add tools/run-plan.sh to run a plan's tasks in fresh OpenCode sessions
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 14:02:49 -07:00