--- id: CUST-WP-0019 type: workplan title: "State Hub Dashboard — UX Polish" domain: custodian status: done owner: custodian topic_slug: custodian created: "2026-03-18" updated: "2026-03-18" state_hub_workstream_id: "0a208032-89a1-4b67-a356-e7e3c1e28ca6" --- # State Hub Dashboard — UX Polish ## Summary Targeted UX improvements to the Observable Framework dashboard. These are all small, self-contained changes with high visible impact. Tasks are ordered by priority; each is independently deliverable. ## Sources - Submitted UI suggestion `c2fc284a` (Repos nav restructure) - TD-CUST-002 residual (remaining inline API/POLL in non-main pages) --- ## Tasks ### T01 — Repos nav: rename to "Repository" section with sub-pages ```task id: CUST-WP-0019-T01 status: done priority: high state_hub_task_id: "d7f0b3db-57d3-42b3-bc2f-1d2c4b7082e5" ``` User suggestion: rename the "Repos" nav link to "Repository" and restructure it as a collapsible section containing the three repo-related pages as sub-items. **Location:** `state-hub/dashboard/observablehq.config.js` (pages array) Target nav structure: ``` Repository ├── Repo Sync (/repos) ├── SBOM (/sbom) └── Tech Debt (/techdept) ``` Implementation: in `observablehq.config.js` replace the flat `Repos` page entry with a section group containing three children. Update any hardcoded `/repos` or `/sbom` or `/techdept` links in other pages if they break. --- ### T02 — Centralize remaining inline API/POLL constants ```task id: CUST-WP-0019-T02 status: done priority: low state_hub_task_id: "6843fa20-cea2-46ec-9c99-abaf7c561559" ``` TD-CUST-002 residual: `policy/workstream-dod.md` still has a hard-coded `const API = "http://127.0.0.1:8000"`. Migrate to import from `config.js`. (Note: `contributions.md` and `goals.md` use intentionally different POLL values — leave as-is or add named exports like `POLL_SLOW = 30_000` to `config.js` if preferred.) **Location:** `state-hub/dashboard/src/policy/workstream-dod.md:6` --- ### T03 — UI Feedback page: mark suggestion as submitted in todo filter ```task id: CUST-WP-0019-T03 status: done priority: low state_hub_task_id: "4074bace-f977-4b44-bfae-c8691fca2aca" ``` `todo.md` Suggestions section filters with `t.status === "open"` but new suggestions now enter with `status: "submitted"` (workflow redesign from CUST-WP session). Update filter to include `submitted`, `analyse`, `plan`, `implement`, `test`, `review` — i.e. any non-terminal status. **Location:** `state-hub/dashboard/src/todo.md:41` Current: `.filter(t => t.debt_type === "dashboard-improvement" && t.status === "open")` Target: `.filter(t => t.debt_type === "dashboard-improvement" && !["finished","wont_fix","resolved","deferred"].includes(t.status))`