Repository navigation
v0.22.1 — cloud scheduled runs reach the default branch, CI runs the loop-notice tests
Two consumer-proposed fixes (#63, #64).
Fixed
- Scheduled cloud runs never reached the default branch (#64). A Claude Code cloud routine session can push only to the
claude/*branch it was assigned, and the cloud proxy blocks GraphQL, sogh pr create/gh pr mergefail there too. Everyreview-historyandauto-syncrun on thecloudruntime therefore left its record and edits on a session branch that a human had to merge by hand. The newshared/cloud-integration.mddefines the fallback. A new step 0 records the session branch before anything else. After a refused push to the default branch, the run pushes that branch, opens a PR and merges it over REST (gh api). The committed record saysintegration: pending, andreview-historyreconciles it against the merged PR. If the merge is refused, the PR stays open and a follow-up commit setsintegration: pr-open <url>. If no PR can be opened, the record sayslocal-only. A record that is on the default branch counts as integrated, whatever itsintegration:value says. Anauto-syncrun that hits conflicts never pushes to the default branch and never opens a PR: it pushes only its session branch and files the conflict issue, as on other runtimes. An open conflict issue holds later runs, but an unmerged record PR never does.review-historyalso reads records still sitting on open PRs from earlier runs. The command manifests gain only three narrow REST write patterns (-X POST repos/*/pulls,-X POST repos/*/issues,-X PUT repos/*/pulls/*/merge) plusgit remote get-url, never a bare-X POST repos/*, and a test asserts that./schedule-processnow writes the fallback instruction into the cloud routine prompt it composes. Existing cloud routines need two additions to their prompt by hand: those patterns in the allowed-command list, and the fallback sentence. A routine prompt is not a framework file, socopier updatecannot change it. See "Existing routines" inshared/cloud-integration.md. - CI did not run the stalled-loop notice tests (#63).
shared/scripts/scheduler-rearm-notice.test.mjs, shipped with v0.22.0's[opos-loop]notice, is now in CI'snode --testlist.