Files
the-custodian/workplans/CUST-WP-0019-dashboard-ux-polish.md
tegwick 02b7d4ae62 feat(dashboard): CUST-WP-0019 — Repository nav section, config.js cleanup
T01: Restructure nav — "Repos" → collapsible "Repository" section with
     Repo Sync, SBOM, Debt as sub-pages; Debt moved out of Workstreams
T02: workstream-dod.md migrated from inline const API to config.js import
T03: todo.md suggestion filter (done in previous commit)

Closes CUST-WP-0019. Resolves UI suggestion c2fc284a.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 02:01:10 +01:00

97 lines
2.7 KiB
Markdown

---
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))`