Reconcile live luci-workspace checkout to origin and add clean-only auto fast-forward
Follow-up from MC-4709 recover-merge sweep. For persistent Luci to execute deliberately; do NOT auto-dispatch to a worker. The luci-workspace live checkout at ~/workspace is div...
StateDoneNext ActionClosedOwnerLuciRuntimeClosedAge9d ago
Ticket is done; runtime is closed.·profile claude_opus_1m_medium
Description
MC-4718
Follow-up from MC-4709 recover-merge sweep. For persistent Luci to execute deliberately; do NOT auto-dispatch to a worker. The luci-workspace live checkout at ~/workspace is diverged from origin master: plus 2 unpushed local commits, minus 16 origin commits, plus dirty operational files including scheduler.py. Nothing auto-reconciles this repo - git-sync targets the PKA repo and luci_autopush hook targets ~/.claude; neither touches luci-workspace. Consequence: control-room merges that push to origin master via isolated worktrees never reach the live checkout. MC-4634 scheduler auth-alert, MC-4636 radio scout task, and MC-4655 mc_ticket file input are merged to origin master and done-gate satisfied but NOT yet running in the live tree. MC-4629 source fix is already live pre-divergence. Action: quiesce and reconcile ~/workspace to origin master safely via pull rebase autostash with abort-on-conflict, with special care on scheduler.py which the cron runs every minute, then add an automated clean-only fast-forward or alert path for the luci-workspace repo analogous to the PKA git-sync self-heal so future control-room merges actually deploy. See docs/solutions/mc-4709-recover-merge-sweep.md.
Activity
done
INTERACTIVE
Luci is working...
Details —
Done
· High
· Luci
▼
SState
Done
Closed
PPeople
TTiming / Details▼
api (human)
Mission Control
9d ago
5d ago
Advanced / Operator evidence
RRouting owner
ROperator console
Ticket is done; runtime is closed.MC is visibility-only. Hermes Luci launches and gates work outside MC, then mirrors evidence/status here.
WWorkflow
Start Dev Review + QA ▾
Select phases to include:
Agents
Review Gates
Decision
WAT routing: choose an agent, review gate, or decision. Buttons use the live runtime when one is attached.
Controller triage: this is Luci-owned technical maintenance, but the ticket explicitly says not to auto-dispatch it to a worker. I moved it out of inbox into waiting/controller_deferred_quiet_window so it is visible as a deliberate maintenance-window item rather than runnable worker backlog. No MC runtime/pickup was invoked.
api5d ago
Fixed MC-4718 in luci-workspace.
Implemented the systemic guard rather than closing as obsolete:
- Extended `scripts/persistent_luci_branch_guard.py` so the existing scheduler task now fetches origin and performs a live update only when `~/workspace` is on the default branch, completely clean, behind origin, and fast-forwardable.
- Dirty, ahead, diverged, detached, or branch-drifted states are alert-only and never mutated.
- Alerts are transition-keyed so the every-15-min task does not page every tick.
- Updated `tasks/persistent-luci-branch-guard.md` to document the MC-4718 behavior.
- Added focused unit coverage in `tests/test_persistent_luci_branch_guard.py`.
Verification:
- `python3 -m pytest tests/test_persistent_luci_branch_guard.py -q` -> 4 passed.
- `python3 scripts/persistent_luci_branch_guard.py` -> `branch-guard: ok (master, origin aligned)`.
- `python3 scheduler.py run persistent-luci-branch-guard --force` -> completed in 2s.
- Commit pushed to luci-workspace master: 4b670d36 (`MC-4718: add clean fast-forward guard for live workspace`).
Note: A broader scheduler regression run hit the known/current control-room-pickup enabled assertion mismatch, unrelated to this guard change.