Tasks page ops-view redesign: problems-first default + single scroll (MC-4912)
From MC-4912 roadmap (Elmar-approved 2026-06-11). ALSO AN ORCHESTRATION TEST: this ticket is deliberately left to the board-manager -> internal-Kanban -> worker pipeline; the or...
StateDoneNext ActionClosedOwnerLuciRuntimeClosedAge2d ago
Ticket is done; runtime is closed.·profile claude_opus_1m_high
Description
MC-4965
From MC-4912 roadmap (Elmar-approved 2026-06-11). ALSO AN ORCHESTRATION TEST: this ticket is deliberately left to the board-manager -> internal-Kanban -> worker pipeline; the orchestrator only monitors and gates. Worker: follow this brief exactly, commit on a branch, leave a review-required handoff.
SCOPE — /tasks ops-view redesign (templates/tasks.html + minimal app.py tasks_page context; NO other templates, NO models.py):
1. Problems-first default: when problems count > 0, land on the Problems view with healthy tasks collapsed below ('N healthy tasks — show'); when 0 problems, current healthy-first behavior. Tab pills stay.
2. Single scroll container: remove the 480px inner scrollbox (max-height on .tasks-table-wrapper) so the PAGE is the only scroller; preserve the MC-4619 sticky header semantics against page scroll (position: sticky against viewport now); 'Showing X of N / Load more' bar stays reachable at the table end.
3. PRESERVE every U10/U12 behavior unchanged: cross-tab search + live counts, one status vocabulary + legend, plain-language copy, delegated tag click handler, profile column honesty, mobile card collapse at 768px.
GATES (must all pass before handoff): python3 -m pytest tests/test_mc4942_u10_tasks_ux.py tests/test_mc4056_tasks_hardening.py tests/test_tasks_warning_status.py (one flex-wrap failure in mc4056 is pre-existing on master — do not chase); py_compile; sticky-header + single-scroll DOM contract test added. NOT board templates — board canary battery not required; Tessa pass happens at the orchestrator gate after landing.
DO NOT: delete templates, touch /runs or task_detail, restart services, merge to master (handoff only).
Expected check-in: within 2h of dispatch.
Activity
done
INTERACTIVE
Luci is working...
Details —
Done
· Medium
· Luci
▼
SState
Done
Closed
PPeople
TTiming / Details▼
api (human)
Mission Control
2d ago
2d 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.
[visibility-only] Queued message recorded for Hermes Luci. MC did not claim the ticket or spawn a runtime.
api2d ago
CLOSED done + verified — AND the orchestration test PASSED.
THE WORK: /tasks ops-view redesigned per brief — problems-first landing (server default_bucket reused, not duplicated), healthy-collapse toggle ('N healthy tasks — show', hides under search/profile-filter), single page scroller (480px inner scrollbox removed), sticky header against page scroll, window bar reachable by normal scrolling. All U10/U12 behaviors preserved. Tests 14/14 green (one documented pre-existing mc4056 failure unchanged). Deployed + live-verified. Tessa: APPROVED FOR ELMAR (desktop+mobile, data cross-checked vs disk).
THE TEST (pipeline lifecycle, orchestrator hands-off until gate):
1. Dispatch: ticket todo -> board-manager routed to kanban card t_741a981c in isolated worktree — 8 min, autonomous. PASS.
2. First worker run: stopped at read-only recon, card stamped 'completed' with no commit — FALSE-STOP (finding).
3. Controller self-correction: rejected the recon-only handoff, reopened card with explicit implementation authorization — 14 min, autonomous, no orchestrator involvement. PASS (the gate discipline holds without me).
4. Implementation run: real commit 1178337, tests included, terminal handoff. PASS.
5. Orchestrator gate: diff review + gate tests + merge + deploy + Tessa + done_sha stamp — by design the only human-side stage.
VERDICT: the board + orchestration WORK end-to-end. One systemic finding: codexbuilder's first-run recon-stop pattern recurred (also MC-4913 yesterday) — the controller catches it but burns a cycle; consider folding 'implementation authorization' into the FIRST card dispatch wording. done_sha stamped, deploy-verified.
Controller decision
luci-board-manager2d ago
[visibility-only controller] Routed this Luci-owned technical ticket to internal Kanban card `t_741a981c` (assignee `codexbuilder`) in isolated worktree `/home/lucienne/workspace/_mc_internal_worktrees/MC-4965-tasks-ops-view`. MC remains ledger-only: no MC pickup/runtime/send/harvest endpoint was used. Next gate: worker must commit/push branch and leave a review-required handoff with tests/evidence; controller will independently gate before closing.
luci-board-manager2d ago
[visibility-only controller] Internal Kanban card `t_741a981c` reached terminal status, but the handoff was only read-only reconnaissance, not the requested implementation/commit/test evidence. Rejected that false-stop and reopened the same internal card with explicit implementation authorization. MC stays waiting on `kanban_active:t_741a981c`; no MC pickup/runtime/send/harvest endpoint was used.
luci-board-manager2d ago
[visibility-only controller] Independent gate accepted internal implementation `t_741a981c` (SHA `11783377d56a6c4573104ec4f79dd7c9ace56076`, scoped files/tests verified). Routed the remaining landing/live-smoke step to internal Kanban `t_b1181c94`. MC remains ledger-only; no MC pickup/runtime/send/harvest endpoint was used.
luci-board-manager2d ago
[visibility-only controller] Terminal metadata repair after verified close. Comment 24472 already recorded the completed MC-4965 gate; this tick re-verified `122f516408e916b560d74dc6eee3847e37e72449` is on `origin/master`, `luci-dashboard.service` is active on port 3001, and `/api/health` + `/tasks` return HTTP 200. Clearing stale `kanban_active:t_b1181c94` waiting fields and marking the exact MC row done. MC remained ledger-only; no MC pickup/runtime/send/harvest endpoint was used.