diff --git a/docs/plans/2026-09-08-instance-picker.md b/docs/plans/2026-09-08-instance-picker.md index 1ad92970..f829190a 100644 --- a/docs/plans/2026-09-08-instance-picker.md +++ b/docs/plans/2026-09-08-instance-picker.md @@ -250,3 +250,12 @@ Text: "The instance is picked through the shared **`InstancePicker`** combobox ( ### Task 8: Gate (controller) Build solution (0 warnings), run `CentralUI.Tests` + `Commons.Tests`, `bash docker/deploy.sh`, Playwright `FlowDebuggerTests` + `DebugViewTests` + `DebugViewTreeTests`, browser check of both pages (collapsed areas, typing filter, Enter, Escape, deep link `?instanceId=`), then append gate evidence to this plan and finish via `finishing-a-development-branch`. + + +## Gate evidence (2026-09-08, branch `feat/instance-picker`) + +- Solution build: 0 warnings. `CentralUI.Tests`: 1335 passed (picker 30 + builder 12 + Flow Debugger page 29 + Debug View picker 7 among them). Playwright project builds. +- Rig rebuilt (`docker/deploy.sh`) twice. Playwright `FlowDebuggerTests` + `DebugViewTests` + `DebugViewTreeTests`: **7/7, 0 skipped** on the second build. The first build failed two of them and skipped two: the tests typed into the picker immediately after choosing a site, while the site's instances were still loading; the loaded lists then arrived as a new reference and the picker reset (its "site changed" rule), so the row never appeared. Fixed by keeping the picker **disabled until the load completes** (`_instancesLoading` on both pages, pinned by TCS-based bUnit tests) — a real race for an operator on a slow database, not just a test artefact. +- Browser (Claude-in-Chrome, `localhost:9000`): Flow Debugger deep link `?instanceId=3687` shows `DelmiaSim01` in the field without opening the tree; typing `Delmia` opens the panel with the single matching row; Escape restores the selection text and closes. Debug View: after picking Test Plant A the panel lists the three `zztest-area-*` areas first (collapsed) and the Enabled instances after them with the `(State)` suffix. +- Whole-branch review findings closed: keyboard activation now routes through `TreeView` selection (mouse + keyboard one handler; `SelectedKey` deliberately unbound to avoid the TreeView reset loop); `aria-label`/`InputId`; `aria-controls` only while open; Debug View's localStorage auto-reconnect guards a stored instance that is no longer Enabled; select-era `OrderBy` dropped; deep-link-in-area test added; design doc corrected (tab-out does not close — needs JS `relatedTarget`; explicit handlers instead of `@bind`). +- Untested on the rig: keyboard activation inside the tree in a real browser (pinned by bUnit only); `overflow: hidden` clipping (neither page has such an ancestor today; CSS comment warns integrators). diff --git a/docs/plans/2026-09-08-instance-picker.md.tasks.json b/docs/plans/2026-09-08-instance-picker.md.tasks.json index fdb93a72..8b97601a 100644 --- a/docs/plans/2026-09-08-instance-picker.md.tasks.json +++ b/docs/plans/2026-09-08-instance-picker.md.tasks.json @@ -25,7 +25,7 @@ { "id": 4, "subject": "Task 4: Wire Flow Debugger to the picker", - "status": "in_progress", + "status": "completed", "blockedBy": [ 3 ] @@ -33,7 +33,7 @@ { "id": 5, "subject": "Task 5: Wire Debug View to the picker", - "status": "in_progress", + "status": "completed", "blockedBy": [ 3 ] @@ -41,7 +41,7 @@ { "id": 6, "subject": "Task 6: Playwright tests drive the picker", - "status": "in_progress", + "status": "completed", "blockedBy": [ 3 ] @@ -49,7 +49,7 @@ { "id": 7, "subject": "Task 7: Docs", - "status": "in_progress", + "status": "completed", "blockedBy": [ 3 ] @@ -57,7 +57,7 @@ { "id": 8, "subject": "Task 8: Gate (controller)", - "status": "pending", + "status": "completed", "blockedBy": [ 4, 5,