From c27b22ead34864f91adf575216a5ea30cb5e0019 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Tue, 8 Sep 2026 10:04:45 -0400 Subject: [PATCH] =?UTF-8?q?chore(plans):=20instance=20picker=20=E2=80=94?= =?UTF-8?q?=20all=20tasks=20complete,=20gate=20evidence?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Claude-Session: https://claude.ai/code/session_01NcMG6xXdsJbmD2wYAgkK29 --- docs/plans/2026-09-08-instance-picker.md | 9 +++++++++ docs/plans/2026-09-08-instance-picker.md.tasks.json | 10 +++++----- 2 files changed, 14 insertions(+), 5 deletions(-) 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,