Add dual-run flags/meter, harden task-status (idempotency, UUID, head, push), State Hub adapter for PATCH /tasks and C-15/reconcile proxy, pilot evidence, and finish RMGR-WP-0002.
1.4 KiB
1.4 KiB
RMGR-WP-0002 completion evidence
Date: 2026-08-09
Stage: ArchitectureBlueprint Stage B (dual-run)
Delivered
| Task | Result |
|---|---|
| T01 flags + meter | src/repo_manager/dual_run.py, docs/dual-run.md |
| T02 hardened command | idempotency, expected_head_sha, UUID match, optional push |
| T03 SH facade | state-hub/api/services/repo_manager_dual_run.py + PATCH /tasks hook |
| T04 reconcile proxy | fix_repo calls rmgr reconcile when RM_RECONCILE + pilot |
| T05 pilot | Fixture + SH facade call → applied + git_sha; meter lines |
| T06 package | this file + wp0002-pilot.json + mutation-meter-pilot.jsonl |
Operator enable (pilot)
export RM_WRITEBACK=1
export RM_RECONCILE=1
export RM_PILOT_REPOS=repo-manager
# ensure SH can import/run rmgr:
export REPO_MANAGER_SRC=$HOME/repo-manager/src # optional; adapter defaults to ~/repo-manager/src
Restart State Hub API process so env is picked up for PATCH dual-run.
Rollback
unset RM_WRITEBACK RM_RECONCILE RM_PILOT_REPOS
# restart SH API
Tests
cd ~/repo-manager && pytest -q # includes test_dual_run.py
STATE-WP-0079 handoff
Expand RM_PILOT_REPOS fleet-wide after meter shows RM writebacks healthy.
Meter path: ~/.repo-manager/mutation-meter.jsonl (or RM_METER_PATH).
Strangler exit: zero source=state-hub checkout mutations for pilot set under load.