Console Mockup Backlog Triage — 2026-06-05
Triage date: 2026-06-05 UTC
Scope: 14 design directories under docs/design/ (plus one single-file sweep doc).
Out of scope: docs/design/billing-customer-dashboard-2026-05-11/ — in flight with
feature-developer, excluded per operator instruction.
Parent epic: #146 (raxx-console operator admin console)
Constraints applied
- Queue migration in flight (
project_queue_owns_customer_timeline) — any surface reading customer source-of-truth is blocked until Queue cutover (#2444). - Console nav structure locked (
project_console_nav_structure) — three top-level items: Security / Status / Issues. One canonical nav design wins. - Console env switcher retired — any mockup showing the dropdown is stale.
FLAG_CONSOLE_FLAG_PROMOTIONSis OFF —/console/flagsreturns 404 on both envs; flag-UI mockups are not operator-reachable today.- Pre-launch CI digest — Console is internal; no per-event notification surfaces.
- Hide-don't-gray — no "upgrade to unlock" affordances.
- Operator-or-CS daily workflow focus — SHIP-NOW bucket limited to items that genuinely improve operator daily use.
Summary table
| Directory | Category | Effort | Notes |
|---|---|---|---|
console-broken-or-unfinished-sweep-2026-05-13.md |
SUPERSEDED | — | All blockers/annoyances confirmed fixed or tracked by later work |
console-audit/ |
SUPERSEDED | — | Polishes from PR #1913 shipped; findings tracked on sub-cards |
console-build-status-icons/ |
SUPERSEDED | — | Explicitly superseded by console-tile-build-strip/ |
console-dashboard-overlay-diagnosis-2026-05-13/ |
SHIP-NOW | 1d | Fixes B1–B5; overlay artifacts and mobile focus bug outstanding |
console-dashboard-tile-hover-and-detail/ |
SUPERSEDED | — | P5 drawer shipped (FLAG_CONSOLE_TILE_DRAWER); hover popover already live |
console-dashboard-visuals/ |
SUPERSEDED | — | Visual language fully implemented; sentinel breathing-line, tile sort, alerts drawer all shipped |
console-deploy-flow/ |
SHIP-NOW | 2d | GH Actions log stream (FLAG_CONSOLE_DEPLOY_LOG_STREAM) is the only outstanding sub-item |
console-deploy-modal/ |
SUPERSEDED | — | Full state machine implemented in _deploy_modal.html (946 lines) |
console-favicon/ |
SUPERSEDED | — | Four favicon variants shipped; base.html already references all four |
console-nav-2026-05-09-v2/ |
SUPERSEDED | — | FLAG_CONSOLE_NAV_V2 exists and is implemented; v2 design merged |
console-nav-ia-reorg-2026-05-13/ |
STALE-DELETE | — | No spec file; single mockup HTML duplicates v2 work; no new content |
console-redesign-2026-05-16/ |
SUPERSEDED | — | Option B chosen; design doc + ADR-0096 filed; console_dashboard_v2 flag + templates shipped |
console-status-mobile/ |
SHIP-NOW | 1d | Screenshots-only dir; long-press fix (B3/B4 from overlay-diagnosis) is the substantive item |
console-tile-build-strip/ |
SHIP-NOW | 2d | Spec complete; CSS shipped in build-strip.css but log-stream wiring is pending |
console-tile-hover-proposals/ |
NEEDS-REVISION | — | Direction not chosen; P5 drawer shipped but open Qs unanswered |
Per-item detail
console-broken-or-unfinished-sweep-2026-05-13.md — SUPERSEDED
Static sweep of 16 console routes, dated 2026-05-13. Cross-referencing against current code confirms:
- Launch blockers fixed: Error handlers (404/403/500) registered in
console/app/__init__.pylines 556–591. Wrong flag name in dashboard legacy placeholder fixed (FLAG_CONSOLE_DASHBOARD_HOMEnow correct at line 175). - Annoyances fixed: Deploy-freeze Escape handlers added (#1957, lines 244–280).
Customer detail native
confirm()replaced with inline confirm (#1958, line 143). Duplicateidonalert_config.html:50— only oneid="alert-config-save-error"remains at line 50 (single<div>), so the duplicate is resolved. - Audit UTC hint: still shows
datetime-localwith label(UTC)but no inline span hint below the input. Carried into the SHIP-NOW overlay-diagnosis card as it is a 30-min fix. - Ops stub text:
FLAG_CONSOLE_CLAUDE_MENUsurface — low risk, flag-gated. Acceptable to leave until post-launch.
No remaining open items. Recommend keeping as historical reference.
console-audit/ — SUPERSEDED
Audit performed 2026-05-12. All 10 polishes shipped in PR #1913. Sub-cards #1914–#1917
filed and confirmed resolved (load skeleton #1915, Intl.NumberFormat billing #1916,
admins-online inline confirm #1917). The audit trail itself (audit_viewer.py blueprint,
audit/index.html template) is fully implemented behind console_customer_audit_viewer
flag. No new work.
console-build-status-icons/ — SUPERSEDED
The design doc itself reads:
"SUPERSEDED — historical reference only. The icon-overlay approach has been replaced by the animated bottom-edge build-strip (issue #1261)."
Retain as historical reference per the doc's own instruction.
console-dashboard-overlay-diagnosis-2026-05-13/ — SHIP-NOW
What it designed: Five specific fixes (B1–B5) to the tile hover overlay artifacts and mobile long-press experience.
Implementation status:
- B3 (mobile long-press threshold 500→350ms) and B4 (focus-return bug): both referenced
in the _status_grid.html comment and confirmed shipped per the diagnosis doc's
"minimum cleanup" guidance. However, console-status-mobile/ is screenshots-only
with no spec, suggesting mobile improvements may still be needed.
- B1 (shadow bleed reduction) and B2 (remove conflicting inline hover handlers): these
are template/CSS changes that can be verified only by runtime inspection. Static read
confirms inline onmouseover/onmouseout handlers remain at _status_grid.html
lines 446–447. Not yet fixed.
- B5 (scroll-into-view on drawer open): p5_drawer.js does not exist as a standalone
file in console/app/static/js/ — the P5 drawer JS is inlined in _status_grid.html
and the drawer is gated by FLAG_CONSOLE_TILE_DRAWER. Deferred.
- Audit UTC hint: console/app/templates/audit/index.html lines 45, 57 still show
bare datetime-local inputs with no (UTC) hint below. Same for
customers/audit_log.html. Not yet fixed.
What remains: B1 + B2 (shadow/hover), the UTC datetime hint on audit pages.
Flag: FLAG_CONSOLE_DASHBOARD_HOME (existing, no new flag needed).
B1 migration: none required. Effort: 1 day.
console-dashboard-tile-hover-and-detail/ — SUPERSEDED
Designed the hover popover (.tile-popover) and site detail page. Both are fully
implemented — hover popover is live in _status_grid.html and base.html, site
detail at _site_detail.html. The P5 drawer design was superceded by the redesign
choosing Option B. Retain as reference.
console-dashboard-visuals/ — SUPERSEDED
Sentinel breathing-line, tile sort order (DEGRADED→DOWN→UNKNOWN→HEALTHY), alerts
drawer, bottom ticker, and tickRelativeTimes() are all implemented in base.html
and _status_grid.html. The visual language from this design is the current
production look. No open work.
console-deploy-flow/ — SHIP-NOW
What it designed: Post-dispatch deploy states (Queued/Running/Validating/Done) with live log streaming from GH Actions.
Implementation status:
- State machine (Queued, Validating, health-check loop) is fully implemented in
_deploy_modal.html (946 lines). All five states (stateQueued, stateInflight,
stateValidating, stateDone, stateFreeze) are wired per the design.
- Health check loop with 6 attempts / 30s timeout: implemented (lines 1610–1618,
1347+).
- 3-stage progress bar (Build/Deploy/Verify): implemented (line 1848).
- Outstanding: GH Actions log streaming (FLAG_CONSOLE_DEPLOY_LOG_STREAM).
The design calls for server-side log fetching via the GH Actions Jobs API appended
to streaming_log. The template has the streaming_log empty-log notice (line 987)
and a logs fetch path referenced in the JS (line 1124), but no flag for log
stream exists in feature_flags.yaml and the fetch endpoint for GH Actions log
content is not yet implemented. This is the only remaining sub-item from this design.
Flag needed: FLAG_CONSOLE_DEPLOY_LOG_STREAM (new).
B1 migration: yes — new flag needs B1 migration row.
Dependency: GITHUB_API_DISPATCH_TOKEN must have actions:read scope (operator
confirmation needed per open question #3 from the design doc).
Effort: 2 days (endpoint + flag + migration).
console-deploy-modal/ — SUPERSEDED
Full state machine documented in the design is implemented in _deploy_modal.html
(946 lines). All states, type-to-confirm UX, streaming log CSS, error states, rollback
guidance, mobile collapse rules, accessibility notes, and transition triggers are
present. No remaining work.
console-favicon/ — SUPERSEDED
The design produced favicon.svg. The static directory contains
favicon.ico, favicon-32.png, favicon-180.png, and favicon.svg. The base.html
template references all four with ?v=2 cache-bust. Fully shipped.
console-nav-2026-05-09-v2/ — SUPERSEDED
FLAG_CONSOLE_NAV_V2 exists in feature_flags.yaml (line 2367, default off).
nav-v2.css exists in console/app/static/css/. The nav v2 HTML is implemented
in base.html behind the flag. Two open questions from the design (audit route canonical
URL, icon tray issues tooltip data source) are resolved by code — the audit blueprint
is at /console/audit and the tooltip data comes from server-side Flask context.
Note: v2 nav puts Security under an Ops dropdown. This conflicts with the locked
project_console_nav_structure which says Security is a top-level menu item. The
FLAG_CONSOLE_NAV_V2 code still shows the legacy v1 nav at line 1181–1213 (Security
is top-level there). Verify before enabling v2 nav: does the v2 Ops dropdown restore
Security to top-level or keep it nested? This is flagged as an operator open question.
console-nav-ia-reorg-2026-05-13/ — STALE-DELETE
This directory contains only proposed-nav.html (a mockup) and screenshots/. There
is no spec, no README, no comparison doc (the comparison.md referenced in the file
listing is actually in console-redesign-2026-05-16/). The mockup is an annotated
HTML version of the v2 nav. It adds no new content beyond console-nav-2026-05-09-v2/
and predates the confirmed nav structure lock. Safe to delete.
console-redesign-2026-05-16/ — SUPERSEDED
Three redesign options (A/B/C) with a scoring matrix recommending Option C but noting
Option B for incident response. Operator chose Option B (2026-05-16, PR #2264). ADR-0096
filed. console_dashboard_v2 flag exists in feature_flags.yaml. Templates
_status_tiles_v2.html (273 lines), _surface_panel_v2.html, and CSS/JS assets
(dashboard-v2.css, dashboard-v2-panel.js) are all shipped. The dashboard blueprint
branches on _dashboard_v2_flag_enabled(). Fully implemented behind flag.
console-status-mobile/ — SHIP-NOW
This directory is screenshots-only (no spec, no README). The screenshots show the
mobile long-press sheet behavior. The substantive mobile work is documented in
console-dashboard-overlay-diagnosis-2026-05-13/ as issues B3 and B4. Since both
directories point at the same underlying fix, this item is consolidated into the
overlay-diagnosis SHIP-NOW card rather than filed as a separate card.
Disposition: The mobile improvements are captured under the overlay-diagnosis card. This directory itself contains no independent spec. Recommend keeping as screenshot reference; do not file a separate card.
console-tile-build-strip/ — SHIP-NOW
What it designed: Animated 3–4px bottom-edge gradient strip on .tile-wrapper
encoding 7 deploy states. Replaces the icon-overlay approach.
Implementation status:
- build-strip.css exists in console/app/static/css/.
- _status_grid.html and _status_tiles_v2.html both apply _build_strip_state
CSS classes (build-dispatching, build-queued, build-running, build-validating) based
on the in-flight deploy status.
- The spec's CSS keyframes and state map are implemented in build-strip.css.
- Outstanding: The build strip is wired to the deploy state machine but the
log-stream integration (same FLAG_CONSOLE_DEPLOY_LOG_STREAM from deploy-flow)
is the dependency that completes the full cycle visualization. The strip itself
works; the "Done success → fade to neutral hairline" transition on deploy completion
needs the terminal state callback from the log-stream endpoint.
Note: The spec has open question #3: "suppress build icon when tile state is DOWN?"
The Jinja guard {% if badge != 'DOWN' %} is recommended by the spec; confirm whether
this is implemented or left open.
Flag: FLAG_CONSOLE_DEPLOY_LOG_STREAM (same as deploy-flow).
Effort: 1 day (terminal-state callback + DOWN-tile guard confirmation).
Consolidate with deploy-flow card into a single implementation card.
console-tile-hover-proposals/ — NEEDS-REVISION
What it designed: Five alternative tile hover treatments (P1 inline expand, P2 side rail, P3 glass overlay, P4 card flip, P5 detail drawer). Filed as options for operator selection.
Why it needs revision:
1. P5 (detail drawer) was implemented behind FLAG_CONSOLE_TILE_DRAWER but the
subsequent console-redesign-2026-05-16 chose Option B (split view), which removes
the P5 drawer entirely (console-dashboard-v2-option-b-2026-05-16.md §1: "No
flip, no hover popover, no bottom drawer"). The P5 drawer is now superseded by
the v2 split panel for console_dashboard_v2=on operators.
2. The hover proposals were for the v1 grid; the v2 split view has its own hover
behavior (click to pin to panel). The proposals do not apply to v2.
3. None of P1–P4 was selected. If the v1 grid is retained long-term (as a fallback
while v2 soaks), the operator needs to decide whether to invest in a hover
improvement for v1 or declare v1 grid hover "good enough until v2 fully rolls."
Operator decision needed: Should the existing hover popover (v1 grid) receive any investment before v2 fully rolls? If no, this can be closed without revision.
SHIP-NOW cards (phased rollout)
The SHIP-NOW items are three functional areas. One of them (overlay-diagnosis + status-mobile) is a direct template fix; two others (deploy-flow log stream + build-strip terminal state) share the same flag and can be shipped together.
Wave 1 (parallel — no dependencies between them)
┌─────────────────────────────────────┐
│ CARD-A: Overlay artifact fixes │ 1 day
│ (B1 shadow + B2 inline handlers │
│ + audit UTC hint) │
└─────────────────────────────────────┘
Wave 2 (after Wave 1 merges — same flag, one PR)
┌─────────────────────────────────────────────────────────────────┐
│ CARD-B: Deploy log stream + build-strip terminal state │ 2 days
│ (FLAG_CONSOLE_DEPLOY_LOG_STREAM — new flag + B1 migration │
│ + GH Actions Jobs API endpoint + build-strip fade-to-hairline │
│ + DOWN-tile strip guard) │
└─────────────────────────────────────────────────────────────────┘
Total SHIP-NOW estimated effort: 3 days
Wave 1 is pure template/CSS — no flag, no migration, no API changes. It can run in
parallel with any other active console work. Wave 2 requires the
GITHUB_API_DISPATCH_TOKEN scope confirmation (operator action) before feature-dev
can start.
SHIP-AFTER-DEPENDENCY items
None in this triage. All items that depend on the Queue cutover (#2444) or RBAC V2 are in the existing issue backlog and not in this design batch.
NEEDS-REVISION items
console-tile-hover-proposals/
The P5 drawer is superseded by dashboard v2's split panel. The hover proposal set was a pre-decision menu; no direction was formally selected. Options:
- If v2 dashboard fully rolls before launch: close this directory, no work needed.
- If v1 grid needs to survive long-term: operator picks from P1–P4 and a new card is filed. The designs themselves are still technically valid for the v1 grid.
Recommendation: wait for console_dashboard_v2 to reach GA. If the soak passes,
close without action.
SUPERSEDED items (no cards filed)
| Directory | Shipped in |
|---|---|
console-broken-or-unfinished-sweep-2026-05-13.md |
PRs #1913, #1915–#1917, #1936, #1957–#1958 |
console-audit/ |
PR #1913 + sub-cards #1914–#1917 |
console-build-status-icons/ |
console-tile-build-strip/ design + build-strip.css |
console-dashboard-tile-hover-and-detail/ |
PR #557, PR #564, FLAG_CONSOLE_TILE_DRAWER |
console-dashboard-visuals/ |
base.html + _status_grid.html |
console-deploy-modal/ |
_deploy_modal.html 946-line implementation |
console-favicon/ |
console/app/static/favicon.* + base.html |
console-nav-2026-05-09-v2/ |
nav-v2.css + base.html FLAG_CONSOLE_NAV_V2 |
console-redesign-2026-05-16/ |
ADR-0096, console_dashboard_v2 flag + templates |
STALE-DELETE items
console-nav-ia-reorg-2026-05-13/
No spec, no README, no unique content beyond console-nav-2026-05-09-v2/. Contains
only a mockup HTML and screenshots. Safe to delete.
Recommended action: git rm -r docs/design/console-nav-ia-reorg-2026-05-13/ in
a housekeeping commit.
Open questions (operator decisions required)
-
Nav v2 Security placement (before enabling FLAG_CONSOLE_NAV_V2): The locked nav structure says Security is top-level. Does the v2 nav template keep Security at top level or nest it under an Ops dropdown? Verify before flag enable.
-
Deploy log stream token scope: Does
GITHUB_API_DISPATCH_TOKENhaveactions:readscope? If not, CARD-B cannot land without a token rotation. (Perfeedback_credentials_pre_launch_posture, this is a vault-verify task, not a new-mint escalation — check Infisical before filing an operator-action card.) -
Console-tile-hover-proposals disposition: Should any v1 hover investment happen before v2 fully rolls? Suggest defer until
console_dashboard_v2exits soak. -
Build-strip DOWN-tile guard: Confirm whether the
{% if badge != 'DOWN' %}guard for the build icon (recommended by the spec) is currently in the template or still open. This affects CARD-B scope.
Billing-customer-dashboard note
docs/design/billing-customer-dashboard-2026-05-11/ is in flight with feature-developer
and was not triaged here per operator instruction.