Home / Ops / More in this area

Overnight autonomous deploy handoff (2026-07-02)

Updated Jul 02, 2026 · DEPLOY_HANDOFF.md

Summary. Two Claude Code chats on the same Mac coordinate via SHARED FILES (no human relay needed). This chat = the Profile/data + getprofile + creations tracker. Code chat = cloud-Fish + runaudio + the Mirror batch runner + send.

Overnight autonomous deploy handoff (2026-07-02)

Two Claude Code chats on the same Mac coordinate via SHARED FILES (no human relay needed). This chat = the Profile/data + get_profile + creations tracker. Code chat = cloud-Fish + run_audio + the Mirror batch runner + send.

Marker files (the handshake)

Sequence

  1. Code chat: verify cloud-Fish green + renders done → COMMIT or stash all working-tree changes (clean tree) and push your cloud-Fish commits → then echo done > .mirror_clear. (A dirty tree makes the Profile chat's git rebase fail, which stalls deploy #1.)
  2. Profile chat (watcher cron 34e3c4bb, every 5 min): on .mirror_clear and no .get_profile_live, auto-runs deploy #1: git fetch && git rebase origin/main (picks up cloud-Fish; aborts + reports on conflict, never force), git push, poll Render live, verify GET /api/profile + /api/creations, then write .get_profile_live. Held commits deploying: get_profile endpoint + function + creations tracker.
  3. Code chat (its own watcher on .get_profile_live): push deploy #2 (run_audio -> get_profile + batch runner).
  4. Test The Mirror on Jeff only, verify.
  5. HARD RULE: do NOT auto-send The Mirror to the 25 real people. Hold the full send for Jeff's explicit approval in the morning. The watcher is built to forbid the send.

Requirements

get_profile contract (what the Code chat consumes)

from api.profile_report import get_profile; get_profile(person) where person = profile id / email / name. Returns {id, email, name, birth_date, birth_time, birth_location, quick_profile, chart, transits, progressions, report_url}. Also GET /api/profile?email= / ?id=. Full JSON on R2 at profiles/<id>/report.json (public at media.affirmology.ai). Record deliveries with from api.demo_render import record_creation.