These workplans exist only in the retired local hub. Their random pre-ADR-007 identifiers are refused by C-06 as stale references, so they cannot be registered. Deriving from the canonical record id takes no identity from anything: central does not hold them and the old ids die with the cache. Records central already holds were deliberately left untouched. Refs CUST-WP-0068-T06 Assistant: claude-code Assistant-Model: opus Assistant-Process: 2583210@bnt-lap001 Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
2.9 KiB
| id | type | title | domain | repo | status | owner | topic_slug | created | updated | parent_project | parent_workplan | stream | related | state_hub_workstream_id | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RMGR-WP-0003 | workplan | Production pilot dual-run: config, bulk path, push-seal | infotech | repo-manager | finished | codex | repo-manager | 2026-08-11 | 2026-08-11 | prj-state-hub-retirement | SHR-WP-0001 | S1 |
|
17aebf4d-c36c-5202-9af3-6a2a0d6ff7d1 |
Production pilot dual-run: config, bulk path, push-seal
Goal
Make Stage B dual-run operable in production for a pilot set without relying only on ad-hoc API process env vars, and close remaining high-frequency mutation gaps (bulk status, post-writeback push) so STATE-WP-0079 can expand cutover.
Not in scope: full C-rule port, Postgres registry, MCP rewrite, Stage C host_paths SoR, dashboards.
Dual-run config file (shared RM + SH)
id: RMGR-WP-0003-T01
status: done
priority: high
state_hub_task_id: "6fd628e8-9879-566c-a0d3-4ae271b3738c"
Load dual-run settings from ~/.repo-manager/dual-run.yaml (and optional
RM_DUAL_RUN_CONFIG path), with env vars still overriding. Fields: writeback,
reconcile, pilot_repos, writeback_push, meter_path. Document and unit-test.
Result: Config loader in RM + SH dual_run modules; env overrides file.
Bulk task-status dual-run on State Hub
id: RMGR-WP-0003-T02
status: done
priority: high
state_hub_task_id: "cd10dfad-578e-55d7-9ef5-0c8ec9cd58b2"
When dual-run writeback is on for the task's repo, POST /tasks/bulk-status-sync
delegates each status change to RM (same as PATCH). Preserve progress events on
SH. Failures log and fall back to native DB-only (file via later C-15).
Result: bulk_status_sync hooks try_writeback_for_task per status change.
Push-seal after RM writeback
id: RMGR-WP-0003-T03
status: done
priority: high
state_hub_task_id: "c9c2e240-f194-5508-a7b4-d07e4e91b840"
When writeback_push: true (or RM_WRITEBACK_PUSH=1), RM writeback path pushes
after commit (best-effort, never force). SH facade passes push=true for pilot.
Meter push_ok/fail. Align with C-16/C-17 semantics (skip push issues as meter
only; do not force).
Result: writeback_push config/env; SH facade sets push=writeback_push_enabled().
Pilot defaults + operator runbook
id: RMGR-WP-0003-T04
status: done
priority: medium
state_hub_task_id: "9fbde0f7-9230-5187-8005-c437572d4eee"
Ship example config for pilot repo-manager, update docs/dual-run.md, capture
docs/evidence/wp0003-*.md with meter summary command for STATE-WP-0079.
Result: config/dual-run.pilot.example.yaml, dual-run.md, evidence note.
Acceptance
- Config file drives dual-run (env override still works)
- Bulk status uses RM writeback when flagged
- Optional push after writeback
- Evidence + runbook for pilot expansion