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>
97 lines
2.7 KiB
Markdown
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))`
|