Skip to content

chore(ops): version wip-sync.sh — the multi-remote v2 (leave/arrive/status) #461

Description

@aarontrowbridge

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.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

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.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.
Prior Art / Patterns

Source

Metadata

Metadata

Assignees

No one assigned

    Labels

    hitlHuman-in-the-loop — needs human review/decision

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions