Add cc-ci-upgrader agent: observable one-shot weekly upgrade-run agent
The weekly upgrade run now executes inside a dedicated, remote-control agent (cc-ci-upgrader) — viewable/steerable at claude.ai/code like the Builder — rather than buried in headless cron output. - launch-upgrader.sh: spins up the cc-ci-upgrader tmux session under --remote-control with a kickoff that runs /upgrade-all (DEFAULT mode) to completion. On finish the agent STOPS and stays idle (does NOT self-terminate) so the run + summary stay reviewable in the web UI. `start` = use-or-create: leaves an in-flight (busy) run alone, else clears a finished/idle/wedged session and runs fresh; `fresh` always restarts. UPGRADER_ARGS passes flags (e.g. --dry-run); never --with-tests. - launch.sh: orchestrator_alive() now also skips the cc-ci-upgrader remote-control name, so the upgrader job isn't mistaken for the orchestrator. - upgrade-all skill: documents it runs as the cc-ci-upgrader agent; the weekly cron invokes `launch-upgrader.sh start` (not /upgrade-all inline). - Phase 5: V8a verifies the agent lifecycle (launch → run to completion → stay idle/viewable → next start clears it); V9 stops the verification session. - cron memory: weekly task = launch-upgrader.sh start at 0 3 * * 6 UTC. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -12,6 +12,14 @@ recipe, and writes one summary of every PR to review. It **never pushes upstream
|
||||
|
||||
Drives cc-ci over `ssh cc-ci`. Logs/summary go to `/srv/cc-ci/.cc-ci-logs/upgrades/`.
|
||||
|
||||
**Runs as the `cc-ci-upgrader` agent.** This skill is normally executed by a dedicated, observable
|
||||
**one-shot job agent** — `cc-ci-upgrader` — spun up under remote-control (viewable/steerable at
|
||||
claude.ai/code, like the Builder) by `cc-ci-plan/launch-upgrader.sh`. That agent runs this skill to
|
||||
completion, then **stops and stays idle** so the run + summary remain reviewable in the web UI (it does
|
||||
NOT self-terminate). The weekly cron just invokes `launch-upgrader.sh start`; the next week's run
|
||||
clears the idle session and starts fresh. You can also run `/upgrade-all` inline in any `/srv/cc-ci`
|
||||
session, but the agent is the intended path so the weekly run isn't buried in headless output.
|
||||
|
||||
## Arguments (optional `$ARGUMENTS`)
|
||||
- A space-separated list of recipe names → only those (else all enrolled recipes).
|
||||
- `--dry-run` → survey + print what WOULD upgrade; spawn nothing.
|
||||
@ -104,16 +112,18 @@ End with the report path and a reminder that **nothing was merged**.
|
||||
- **Never merges**; failures/ skips are surfaced and retried next week — safe to re-run anytime.
|
||||
|
||||
## Cron
|
||||
Designed for a weekly Claude Code scheduled task that invokes `/upgrade-all` in `/srv/cc-ci`.
|
||||
Designed for a weekly Claude Code scheduled task that runs **`cc-ci-plan/launch-upgrader.sh start`** —
|
||||
which spins up the `cc-ci-upgrader` remote-control agent to run this skill to completion (the agent
|
||||
then stays idle/viewable). The cron does NOT invoke `/upgrade-all` inline.
|
||||
|
||||
**Agreed schedule:** **Saturday 03:00 UTC** (`0 3 * * 6`) — low-traffic weekend window, PRs waiting by
|
||||
Monday.
|
||||
|
||||
**Activation trigger (operator, 2026-05-29):** do NOT activate while the build loops are still
|
||||
constructing cc-ci — it would contend with them for the shared host. **Activate this weekly cron only
|
||||
once the cc-ci build is complete (loops finished / cc-ci stable.)** Until then it's run manually /
|
||||
on-demand. When activating, create a scheduled task that runs `/upgrade-all` in `/srv/cc-ci` at
|
||||
`0 3 * * 6` UTC.
|
||||
once the cc-ci build is complete (loops finished / cc-ci stable.)** Until then run it manually /
|
||||
on-demand via `launch-upgrader.sh start` (or `fresh`). When activating, create a scheduled task that
|
||||
runs `/srv/cc-ci/cc-ci-plan/launch-upgrader.sh start` at `0 3 * * 6` UTC.
|
||||
|
||||
Re-running is idempotent: already-current recipes report `SKIPPED — up-to-date`; recipes with an open
|
||||
PR for the same branch report the existing PR rather than duplicating it.
|
||||
|
||||
Reference in New Issue
Block a user