You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
wip-sync.sh — the code-repo layer of the fleet model (leave/arrive/status; only commits cross machines) — lives only on the mini at ~/.amico/ops/wip-sync.sh, unversioned. It is the last ops script outside the repo: #427/#453 versioned fleet-status, fleet-alert, papers-digest, and hunt.sh, but wip-sync shipped before that sweep. Its hand-applied v2 (multi-remote resilience, born of the 2026-08-20 qldpc-challenge 403) exists only on mini disk.
Approach
Follow the #453 pattern exactly: ops/wip-sync.sh becomes the versioned source of truth (the tested v2 currently deployed on the mini), ops/install.sh deploys it, ops/README.md documents the ritual (manual cadence — no launchd) and the v2 remote semantics.
Approaches Considered
Version it in ops/ like its siblings (chosen) — same review trail, same deploy path, zero new mechanisms.
Fold it into amico CLI as a verb — rejected: it's a shell ritual over many repos, not a package; a rewrite adds risk for no gain right now.
In: versioning the script as-is (v2), install.sh row, README section, deploy reconciliation (mini copy already matches v2). Out: behavior changes beyond v2 (v2's semantics were incident-driven and sandbox-proven 2026-08-20); launchd wiring (it runs on demand, by hand); CLI-ization.
Acceptance Criteria
ops/wip-sync.sh in the repo is byte-identical to the tested v2 on the mini (bash -n clean; the 5-scenario sandbox matrix ran against this exact content)
ops/install.sh copies it to ~/.amico/ops/ idempotently, touching no state (.bak stays a mini-local recovery artifact)
ops/README.md gains the wip-sync row (on-demand cadence) + a section covering the ritual and v2 semantics: multi-remote push (origin first, then forks), re-anchor over wip-only non-FF by stacking a fresh snapshot (never force, never amend), all-remote fetch, cross-remote wip-branch discovery
After merge + deploy, repo and mini copies are in sync (they already are — the deploy is a no-op)
Key Decisions
v2's re-anchor stacks a new snapshot commit on the incoming tip (chain grows, never forks) — an --amend variant was tested and rejected: it replaces the remote snapshot and stays non-FF.
A remote carrying real (non-wip) incoming commits is genuine divergence: warn, never force — unchanged from v1.
wip-sync.sh.bak on the mini is runtime recovery state, not repo content — install never touches it.
Important
Problem
wip-sync.sh— the code-repo layer of the fleet model (leave/arrive/status; only commits cross machines) — lives only on the mini at~/.amico/ops/wip-sync.sh, unversioned. It is the last ops script outside the repo: #427/#453 versioned fleet-status, fleet-alert, papers-digest, and hunt.sh, but wip-sync shipped before that sweep. Its hand-applied v2 (multi-remote resilience, born of the 2026-08-20 qldpc-challenge 403) exists only on mini disk.Approach
Follow the #453 pattern exactly:
ops/wip-sync.shbecomes the versioned source of truth (the tested v2 currently deployed on the mini),ops/install.shdeploys it,ops/README.mddocuments the ritual (manual cadence — no launchd) and the v2 remote semantics.Approaches Considered
amicoCLI as a verb — rejected: it's a shell ritual over many repos, not a package; a rewrite adds risk for no gain right now.Scope
In: versioning the script as-is (v2), install.sh row, README section, deploy reconciliation (mini copy already matches v2). Out: behavior changes beyond v2 (v2's semantics were incident-driven and sandbox-proven 2026-08-20); launchd wiring (it runs on demand, by hand); CLI-ization.
Acceptance Criteria
ops/wip-sync.shin the repo is byte-identical to the tested v2 on the mini (bash -nclean; the 5-scenario sandbox matrix ran against this exact content)ops/install.shcopies it to~/.amico/ops/idempotently, touching no state (.bakstays a mini-local recovery artifact)ops/README.mdgains the wip-sync row (on-demand cadence) + a section covering the ritual and v2 semantics: multi-remote push (origin first, then forks), re-anchor over wip-only non-FF by stacking a fresh snapshot (never force, never amend), all-remote fetch, cross-remote wip-branch discoveryKey Decisions
--amendvariant was tested and rejected: it replaces the remote snapshot and stays non-FF.wip-sync.sh.bakon the mini is runtime recovery state, not repo content — install never touches it.Prior Art / Patterns
ops/README.mdstructure andops/install.share the templates.ops/hunt.sh— later addition following the same pattern (Fleet dispatch hardening: retire raw-nohup hunts (timeout, heartbeat, durable logs, sweep-adoptable records) #426/Fleet dispatch hardening: retire raw-nohup hunts (timeout, heartbeat, durable logs, sweep-adoptable records) #454); wip-sync slots in identically.forkremote ignored) → the 403 that motivated v2.Source