Reboot survival for the Pi orchestrator host: - systemd unit cc-ci-plan/systemd/cc-ci-loops.service (installed + enabled): on boot records the reboot, starts loops+watchdog (RESUME_PHASE=1), and resumes the orchestrator session. - reboot-log.sh: boot_id-gated reboot record -> REBOOTS.md (manual restarts don't count). - launch-orchestrator.sh: injects an AGENTS.md startup nudge so an auto-resumed orchestrator announces itself (PushNotification) + reports reboots. - AGENTS.md: on-startup notify routine documented. Plans/tooling accumulated this session: - plan-phase1d (generic suite), 1e (harness corrections), phase4 (final review), sso-dep-testing, orchestrator-migration (parked), test-e2e-testme-acceptance. - launch.sh: 1d/1e/2/2b/3/4 phase sequence, machine-docs-aware state resolution, limit-stall re-nudge, INBOX side-channel detection. - plan.md §6.1/§7: artifact-layer isolation, INBOX, 5-min long-run polling, DEFERRED. - prompts: isolation discipline + INBOX + pacing. - .gitignore: harden (.sops/, cc-ci-secrets/, .claude/, *.tmp.*). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
33 lines
1.6 KiB
Desktop File
33 lines
1.6 KiB
Desktop File
[Unit]
|
|
# Canonical, version-controlled copy of the unit installed at /etc/systemd/system/cc-ci-loops.service.
|
|
# Install: sudo install -m0644 cc-ci-plan/systemd/cc-ci-loops.service /etc/systemd/system/ \
|
|
# && sudo systemctl daemon-reload && sudo systemctl enable cc-ci-loops.service
|
|
# Brings the WHOLE rig back after a reboot of the orchestrator Pi: loops + watchdog (launch.sh) AND
|
|
# the orchestrator supervisory session (launch-orchestrator.sh), plus a reboot record (reboot-log.sh).
|
|
Description=cc-ci autonomous loops + watchdog + orchestrator (reboot-resilient)
|
|
Documentation=file:///srv/cc-ci/cc-ci-plan/plan.md
|
|
After=network-online.target cc-ci-tailscaled.service
|
|
Wants=network-online.target
|
|
Requires=cc-ci-tailscaled.service
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
User=notplants
|
|
Group=notplants
|
|
Environment=HOME=/home/notplants
|
|
Environment=PATH=/home/notplants/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
|
|
# RESUME_PHASE=1 so a reboot resumes the SAVED phase (e.g. phase 2), never restarts from phase 0/1c.
|
|
Environment=RESUME_PHASE=1
|
|
# 1) record the reboot (boot_id-gated); 2) start loops + watchdog; 3) resume the orchestrator session.
|
|
ExecStartPre=/srv/cc-ci/cc-ci-plan/reboot-log.sh
|
|
ExecStart=/srv/cc-ci/cc-ci-plan/launch.sh start
|
|
ExecStartPost=/srv/cc-ci/cc-ci-plan/launch-orchestrator.sh start
|
|
# Stop only the loops + watchdog. The orchestrator session is intentionally LEFT running on a manual
|
|
# `systemctl stop` (stopping the loops shouldn't kill your steering session; it resumes from disk).
|
|
ExecStop=/srv/cc-ci/cc-ci-plan/launch.sh stop
|
|
TimeoutStartSec=180
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|