fix: restore overview workstream mode reactivity

This commit is contained in:
2026-06-07 15:20:40 +02:00
parent 911871d1f6
commit 04366c64bc
2 changed files with 11 additions and 1 deletions

View File

@@ -252,16 +252,20 @@ _modeSelect.value = _savedChartMode;
_modeSelect.addEventListener("input", () => {
globalThis.__stateHubOverviewChartMode = _modeSelect.value;
});
_modeSelect.addEventListener("change", () => {
globalThis.__stateHubOverviewChartMode = _modeSelect.value;
});
// view() is the idiomatic Observable Framework reactive input:
// it displays the element AND returns a reactive value that re-runs dependent blocks.
const _chartMode = _modeValue(view(_modeSelect));
const _chartWsFiltered = _workstreamsForMode(_chartMode, wsAll);
```
```js
import * as Plot from "npm:@observablehq/plot";
const _chartWsFiltered = _workstreamsForMode(_chartMode, wsAll);
// Sort by domain, then repository, then most recently updated workstream.
// The axis labels show each domain/repo group once.
const chartWs = [..._chartWsFiltered].sort((a, b) => {

View File

@@ -239,6 +239,12 @@ accurate workstream counts for all mode groups.
- `npm run test` in `dashboard/` passed 11 tests.
- `npm run build` in `dashboard/` passed: Observable built 61 pages and
validated 49 links.
- 2026-06-07 follow-up: Fixed a selector reactivity regression where
`_chartWsFiltered` was computed in the same cell as `view(_modeSelect)`.
Moving `_chartWsFiltered = _workstreamsForMode(_chartMode, wsAll)` into the
downstream chart cell restored filtering when operators choose a mode other
than `active`. Added a `change` listener alongside `input` for persisted mode
selection. `npm run test` and `npm run build` both passed after the fix.
- Browser click-through remains pending because the Codex in-app browser bridge
failed to start in this session with a Windows sandbox setup failure, and no
local Playwright/Puppeteer package is installed for a headless fallback.