diff --git a/docs/source/_static/screenshots/00_getting_started/01_initial.png b/docs/source/_static/screenshots/00_getting_started/01_initial.png new file mode 100644 index 0000000..588fba3 Binary files /dev/null and b/docs/source/_static/screenshots/00_getting_started/01_initial.png differ diff --git a/docs/source/_static/screenshots/01_create_project/01_initial.png b/docs/source/_static/screenshots/01_create_project/01_initial.png deleted file mode 100644 index b39601a..0000000 Binary files a/docs/source/_static/screenshots/01_create_project/01_initial.png and /dev/null differ diff --git a/docs/source/_static/screenshots/01_settings/01_initial.png b/docs/source/_static/screenshots/01_settings/01_initial.png new file mode 100644 index 0000000..3c307c2 Binary files /dev/null and b/docs/source/_static/screenshots/01_settings/01_initial.png differ diff --git a/docs/source/_static/screenshots/01_settings/02_add_equipment.png b/docs/source/_static/screenshots/01_settings/02_add_equipment.png new file mode 100644 index 0000000..fd18d61 Binary files /dev/null and b/docs/source/_static/screenshots/01_settings/02_add_equipment.png differ diff --git a/docs/source/_static/screenshots/02_browse/01_initial.png b/docs/source/_static/screenshots/02_browse/01_initial.png new file mode 100644 index 0000000..7fc0a91 Binary files /dev/null and b/docs/source/_static/screenshots/02_browse/01_initial.png differ diff --git a/docs/source/_static/screenshots/02_browse/02_selected.png b/docs/source/_static/screenshots/02_browse/02_selected.png new file mode 100644 index 0000000..bbac1a2 Binary files /dev/null and b/docs/source/_static/screenshots/02_browse/02_selected.png differ diff --git a/docs/source/_static/screenshots/02_create_run/01_initial.png b/docs/source/_static/screenshots/02_create_run/01_initial.png deleted file mode 100644 index 02e4c25..0000000 Binary files a/docs/source/_static/screenshots/02_create_run/01_initial.png and /dev/null differ diff --git a/docs/source/_static/screenshots/03_create_project/01_initial.png b/docs/source/_static/screenshots/03_create_project/01_initial.png new file mode 100644 index 0000000..4cf8bd4 Binary files /dev/null and b/docs/source/_static/screenshots/03_create_project/01_initial.png differ diff --git a/docs/source/_static/screenshots/03_create_test_run/01_initial.png b/docs/source/_static/screenshots/03_create_test_run/01_initial.png deleted file mode 100644 index fc8d3d1..0000000 Binary files a/docs/source/_static/screenshots/03_create_test_run/01_initial.png and /dev/null differ diff --git a/docs/source/_static/screenshots/04_browse/01_initial.png b/docs/source/_static/screenshots/04_browse/01_initial.png deleted file mode 100644 index 0ef1c12..0000000 Binary files a/docs/source/_static/screenshots/04_browse/01_initial.png and /dev/null differ diff --git a/docs/source/_static/screenshots/04_create_run/01_initial.png b/docs/source/_static/screenshots/04_create_run/01_initial.png new file mode 100644 index 0000000..60465cd Binary files /dev/null and b/docs/source/_static/screenshots/04_create_run/01_initial.png differ diff --git a/docs/source/_static/screenshots/05_create_test_run/01_initial.png b/docs/source/_static/screenshots/05_create_test_run/01_initial.png new file mode 100644 index 0000000..7a938bf Binary files /dev/null and b/docs/source/_static/screenshots/05_create_test_run/01_initial.png differ diff --git a/docs/source/_static/screenshots/05_readme/01_initial.png b/docs/source/_static/screenshots/05_readme/01_initial.png deleted file mode 100644 index b39601a..0000000 Binary files a/docs/source/_static/screenshots/05_readme/01_initial.png and /dev/null differ diff --git a/docs/source/_static/screenshots/06_readme/01_initial.png b/docs/source/_static/screenshots/06_readme/01_initial.png new file mode 100644 index 0000000..4cf8bd4 Binary files /dev/null and b/docs/source/_static/screenshots/06_readme/01_initial.png differ diff --git a/docs/source/_static/screenshots/06_settings/01_initial.png b/docs/source/_static/screenshots/06_settings/01_initial.png deleted file mode 100644 index f452b4b..0000000 Binary files a/docs/source/_static/screenshots/06_settings/01_initial.png and /dev/null differ diff --git a/docs/source/_static/screenshots/07_orchestrator/01_initial.png b/docs/source/_static/screenshots/07_orchestrator/01_initial.png index 3f10dfe..26df297 100644 Binary files a/docs/source/_static/screenshots/07_orchestrator/01_initial.png and b/docs/source/_static/screenshots/07_orchestrator/01_initial.png differ diff --git a/docs/source/_static/screenshots/07_orchestrator/02_main.png b/docs/source/_static/screenshots/07_orchestrator/02_main.png index 6c3c345..5df3e20 100644 Binary files a/docs/source/_static/screenshots/07_orchestrator/02_main.png and b/docs/source/_static/screenshots/07_orchestrator/02_main.png differ diff --git a/docs/source/_static/screenshots/08_problems/01_initial.png b/docs/source/_static/screenshots/08_problems/01_initial.png index 36eb6f6..9bd2e4f 100644 Binary files a/docs/source/_static/screenshots/08_problems/01_initial.png and b/docs/source/_static/screenshots/08_problems/01_initial.png differ diff --git a/docs/source/user_guide/00_getting_started.md b/docs/source/user_guide/00_getting_started.md new file mode 100644 index 0000000..3567684 --- /dev/null +++ b/docs/source/user_guide/00_getting_started.md @@ -0,0 +1,38 @@ +# Getting Started + +## Overview + +On first launch ExLab-Wizard shows a welcome card -- the operator's +entry point into the application. From here the operator either begins +guided setup or skips straight to the main window. This page is an +orientation aid; it is not one of the eight numbered capabilities, and +the guide proper begins with {doc}`01_settings`. + +## Walkthrough + +1. **Launch ExLab-Wizard.** The tray application shows the welcome card + on a fresh install, or whenever required configuration is still + missing. +2. **Choose a start path.** *Get started* + (`data-testid="welcome-get-started"`) opens the Settings dialog in + setup-incomplete mode to walk through configuration; *Skip for now* + (`data-testid="welcome-skip-for-now"`) jumps straight to the main + window, leaving setup for later. +3. **Set the autostart preference.** The *start at login* toggle + (`data-testid="welcome-autostart-toggle"`) records whether the tray + should launch automatically; the preference is applied whichever + start path is chosen. + +## Screenshots + +```{image} ../_static/screenshots/00_getting_started/01_initial.png +:alt: First-launch welcome card +:align: center +``` + +## Related material + +- {doc}`01_settings` -- the guided setup that *Get started* opens. +- {doc}`02_browse` -- the main window that *Skip for now* opens. +- Design spec section 02 (User Interaction) -- the capability set this + guide documents. diff --git a/docs/source/user_guide/06_settings.md b/docs/source/user_guide/01_settings.md similarity index 57% rename from docs/source/user_guide/06_settings.md rename to docs/source/user_guide/01_settings.md index bc47c94..95dba73 100644 --- a/docs/source/user_guide/06_settings.md +++ b/docs/source/user_guide/01_settings.md @@ -27,13 +27,40 @@ order. See section 02 §3.6 for the authoritative contract and section The Discard button (`data-testid="settings-discard"`) abandons pending changes. +## Add Equipment wizard + +The Settings dialog edits equipment that already exists; registering a +**new** device uses the dedicated Add-Equipment wizard, opened from the +main-window toolbar's *Add Equipment* button +(`data-testid="toolbar-add-equipment"`). The wizard walks five steps -- +identity, paths, sync mode, completeness signal, and a review step -- +then posts the assembled `EquipmentConfig` to the configuration router. +Editing or removing a registered device stays in the Settings dialog's +Equipment List section, which the file-explorer tree context menus +deep-link into (Redesign decision 4A). + +1. **Open the wizard.** Click *Add Equipment* on the main-window + toolbar to navigate to `/wizard/equipment`. +2. **Step through the wizard.** Supply the equipment identity + (`data-testid="wizard-equipment-id"`), the local and NAS paths, the + sync mode (`nas` or `stage`), and the completeness signal + (`sentinel_file` or `manifest`). +3. **Confirm.** The Confirm button on the review step + (`data-testid="wizard-equipment-confirm"`) registers the device and + returns to the main window. + ## Screenshots -```{image} ../_static/screenshots/06_settings/01_initial.png +```{image} ../_static/screenshots/01_settings/01_initial.png :alt: Settings dialog with the Paths section active :align: center ``` +```{image} ../_static/screenshots/01_settings/02_add_equipment.png +:alt: Add-Equipment wizard, identity step +:align: center +``` + ## Related material - Design spec section 09 (Configuration File) -- the authoritative diff --git a/docs/source/user_guide/02_browse.md b/docs/source/user_guide/02_browse.md new file mode 100644 index 0000000..465f999 --- /dev/null +++ b/docs/source/user_guide/02_browse.md @@ -0,0 +1,71 @@ +# 3.4 Browse Existing Equipment, Projects, and Runs + +## Capability summary + +The main window is a three-region file explorer over the +equipment-first hierarchy rooted at the configured `local_root` (or NAS +mount). The left pane holds a search box, filter chips, and the +equipment / project / run tree; the centre pane shows the live file +list for the selected node; the right pane carries a Metadata / Problems +tab pair. A header toolbar opens the creation wizards and Settings, a +breadcrumb tracks the selected node, and a footer status bar reports +Sync / Validator / LIMS / Staging health. For each discovered run the +application consults `.exlab-wizard/creation.json` for `run_kind`, +template, and provenance; test runs are distinguishable from +experimental runs by a data attribute. The browse view is the +operator's home base -- every creation wizard and the Settings dialog +is launched from it. See section 02 §3.4 for the authoritative +contract. + +## Walkthrough + +1. **Land on the main window.** After setup the application opens the + file explorer. The header toolbar carries *New Project* + (`data-testid="toolbar-new-project"`), *New Run* + (`data-testid="toolbar-new-run"`), *New Test Run* + (`data-testid="toolbar-new-test-run"`), *Add Equipment* + (`data-testid="toolbar-add-equipment"`), *Refresh*, and *Settings*. +2. **Find a node in the left pane.** The left pane holds a search box + (`data-testid="main-search"`), the Active / Archived / Test-runs + filter chips, and the tree (`data-testid="main-tree"`). Each + equipment node holds projects; each project holds experimental runs + and test runs. +3. **Inspect the selection.** Selecting a node fills the centre pane + with the folder's live file list and the right pane's Metadata tab + (`data-testid="tab-metadata"`) with the node's metadata; the + Problems tab (`data-testid="tab-problems"`) lists validation + findings for the selection. The breadcrumb + (`data-testid="breadcrumb"`) above the panes tracks the path, and + each segment is clickable. The right pane can be collapsed with the + toggle (`data-testid="toggle-right-pane"`) to widen the file list. +4. **Act on a row.** Right-click a tree node for context actions -- + owned-equipment rows offer *Edit equipment* and *Remove* (both + deep-link into Settings), run rows offer *Force sync*, *Clear + verified*, and *View log*. Right-click a file-list row for *Open in + OS* or *Copy path*. +5. **Watch the footer.** The footer status bar reports the Sync, + Validator, LIMS, and Staging segments; the *Clear verified runs* + button (`data-testid="footer-clear-verified"`) bulk-clears runs the + orchestrator has verified on the NAS. + +## Screenshots + +```{image} ../_static/screenshots/02_browse/01_initial.png +:alt: File-explorer main window, no node selected +:align: center +``` + +```{image} ../_static/screenshots/02_browse/02_selected.png +:alt: File explorer with a project selected -- tree, file list, and metadata pane +:align: center +``` + +## Related material + +- {doc}`01_settings` -- the Add-Equipment wizard and the Equipment List + editor the tree context menus deep-link into. +- {doc}`08_problems` -- the Problems tab is mounted in the right pane. +- Design spec section 03 (Directory Structure) -- the on-disk layout + the tree mirrors. +- Design spec section 11 (Cache Folders) -- the `.exlab-wizard/` + subtree the browse view consults for `run_kind` etc. diff --git a/docs/source/user_guide/01_create_project.md b/docs/source/user_guide/03_create_project.md similarity index 90% rename from docs/source/user_guide/01_create_project.md rename to docs/source/user_guide/03_create_project.md index 3e853da..a5a91f4 100644 --- a/docs/source/user_guide/01_create_project.md +++ b/docs/source/user_guide/03_create_project.md @@ -33,15 +33,15 @@ The screenshots below are generated by `scripts/generate_screenshots.py` against the e2e test surface; each capture matches the corresponding NiceGUI page object under `tests/e2e/page_objects/`. -```{image} ../_static/screenshots/01_create_project/01_initial.png +```{image} ../_static/screenshots/03_create_project/01_initial.png :alt: New project wizard, initial render :align: center ``` ## Related material -- {doc}`05_readme` -- the README form is a sub-step of this wizard. -- {doc}`06_settings` -- equipment and template directory configuration. +- {doc}`06_readme` -- the README form is a sub-step of this wizard. +- {doc}`01_settings` -- equipment and template directory configuration. - Design spec section 02 §3.1 (User Interaction) -- authoritative capability contract. - Design spec section 04 (Backend Architecture) -- creation-session diff --git a/docs/source/user_guide/04_browse.md b/docs/source/user_guide/04_browse.md deleted file mode 100644 index 32e8c01..0000000 --- a/docs/source/user_guide/04_browse.md +++ /dev/null @@ -1,42 +0,0 @@ -# 3.4 Browse Existing Equipment, Projects, and Runs - -## Capability summary - -The main window reads the equipment-first hierarchy from the -configured `local_root` (or NAS mount), surfaces it as an expandable -tree, and supports per-row inspection via the Details and Problems -tabs. For each discovered run the application may consult -`.exlab-wizard/creation.json` to determine `run_kind`, template, and -provenance; test runs are distinguishable from experimental runs as a -data attribute. The browse view is also the primary entry point for -the creation wizards and for the Settings dialog. See section 02 §3.4 -for the authoritative contract. - -## Walkthrough - -1. **Open the application.** The main window renders the toolbar, the - left-pane equipment tree, the search box, and the Details and - Problems tabs (`data-testid="main-tree"`, - `data-testid="tab-details"`, `data-testid="tab-problems"`). -2. **Expand the tree.** Each equipment node holds projects; each - project node holds experimental runs and a `TestRuns/` parent - holding test runs. Sync-status icons surface per-run state. -3. **Inspect a node.** Selecting a run populates the Details tab with - the run's metadata; selecting a project populates with the - project's metadata. - -## Screenshots - -```{image} ../_static/screenshots/04_browse/01_initial.png -:alt: Main window with the equipment / project / run tree -:align: center -``` - -## Related material - -- {doc}`08_problems` -- the Problems tab is mounted alongside the - browse view. -- Design spec section 03 (Directory Structure) -- the on-disk layout - the tree mirrors. -- Design spec section 11 (Cache Folders) -- the `.exlab-wizard/` - subtree the browse view consults for `run_kind` etc. diff --git a/docs/source/user_guide/02_create_run.md b/docs/source/user_guide/04_create_run.md similarity index 88% rename from docs/source/user_guide/02_create_run.md rename to docs/source/user_guide/04_create_run.md index c010e85..6d8d7a0 100644 --- a/docs/source/user_guide/02_create_run.md +++ b/docs/source/user_guide/04_create_run.md @@ -24,15 +24,15 @@ sync. See section 02 §3.2 for the authoritative contract. ## Screenshots -```{image} ../_static/screenshots/02_create_run/01_initial.png +```{image} ../_static/screenshots/04_create_run/01_initial.png :alt: New experimental run wizard, initial render :align: center ``` ## Related material -- {doc}`03_create_test_run` -- the test-mode counterpart. -- {doc}`05_readme` -- the README form is a sub-step. +- {doc}`05_create_test_run` -- the test-mode counterpart. +- {doc}`06_readme` -- the README form is a sub-step. - Design spec section 03 (Directory Structure) -- where the rendered run lands on disk. - Design spec section 06 (Plugin System) -- plugins execute on the diff --git a/docs/source/user_guide/03_create_test_run.md b/docs/source/user_guide/05_create_test_run.md similarity index 92% rename from docs/source/user_guide/03_create_test_run.md rename to docs/source/user_guide/05_create_test_run.md index 43a8860..9183b3a 100644 --- a/docs/source/user_guide/03_create_test_run.md +++ b/docs/source/user_guide/05_create_test_run.md @@ -27,14 +27,14 @@ authoritative contract. ## Screenshots -```{image} ../_static/screenshots/03_create_test_run/01_initial.png +```{image} ../_static/screenshots/05_create_test_run/01_initial.png :alt: New test run wizard, initial render :align: center ``` ## Related material -- {doc}`02_create_run` -- the experimental counterpart. +- {doc}`04_create_run` -- the experimental counterpart. - Design spec section 03 (Directory Structure) -- the redundant folder + leaf-prefix separation that protects against miscategorisation. - Design spec section 02 §4 -- the full mode-invariant list. diff --git a/docs/source/user_guide/05_readme.md b/docs/source/user_guide/06_readme.md similarity index 86% rename from docs/source/user_guide/05_readme.md rename to docs/source/user_guide/06_readme.md index 04afad3..3e74a95 100644 --- a/docs/source/user_guide/05_readme.md +++ b/docs/source/user_guide/06_readme.md @@ -18,8 +18,8 @@ contract. ## Walkthrough The README form is a sub-step of the project wizard -({doc}`01_create_project`) and the run wizards -({doc}`02_create_run`, {doc}`03_create_test_run`). It is not a +({doc}`03_create_project`) and the run wizards +({doc}`04_create_run`, {doc}`05_create_test_run`). It is not a standalone surface; the screenshot below shows the project wizard with the README step active. @@ -34,15 +34,15 @@ the README step active. ## Screenshots -```{image} ../_static/screenshots/05_readme/01_initial.png +```{image} ../_static/screenshots/06_readme/01_initial.png :alt: README step inside the new-project wizard :align: center ``` ## Related material -- {doc}`01_create_project`, {doc}`02_create_run`, - {doc}`03_create_test_run` -- the host wizards. +- {doc}`03_create_project`, {doc}`04_create_run`, + {doc}`05_create_test_run` -- the host wizards. - Design spec section 10 (README Generation) -- the merge order, the output format, and the rendering contract. - Design spec section 11 §11.4 (`readme_fields.json`) -- the cached diff --git a/docs/source/user_guide/index.md b/docs/source/user_guide/index.md index bcb0605..c6a053d 100644 --- a/docs/source/user_guide/index.md +++ b/docs/source/user_guide/index.md @@ -1,27 +1,31 @@ # User Guide The ExLab-Wizard user guide is organised by **user-visible capability**. -Each page below corresponds to one of the eight capabilities listed in -section 02 (User Interaction) of the design specification, and is the -contract the application is expected to satisfy from the operator's -point of view. Every page embeds screenshots that are regenerated from -the live e2e test surface (`tests.e2e._test_app`) by -`scripts/generate_screenshots.py`; if a particular flow cannot be -captured in the current environment the page documents the limitation -inline. +The eight capability pages each correspond to one of the capabilities +listed in section 02 (User Interaction) of the design specification, +and state the contract the application is expected to satisfy from the +operator's point of view. They are ordered to follow the operator's +journey -- first-launch setup, then the main window, then the creation +wizards -- so a page's `NN_` filename prefix is its reading order, not +the design spec's 3.x capability number. A short {doc}`00_getting_started` +page precedes them as an orientation aid. Every page embeds screenshots +that are regenerated from the live e2e test surface +(`tests.e2e._test_app`) by `scripts/generate_screenshots.py`; if a +particular flow cannot be captured in the current environment the page +documents the limitation inline. ## Capability map -| ID | Capability | Surface | -| --- | ------------------------------------------------------------------------- | -------------------------------------- | -| 3.1 | Create a new project | New-project wizard (7 steps) | -| 3.2 | Create a new experimental run | New-run wizard (6 steps) | -| 3.3 | Create a new test run | New-test-run wizard (6 steps) | -| 3.4 | Browse existing equipment, projects, and runs | Main window (toolbar + tree + tabs) | -| 3.5 | Author a README at creation time | Embedded in 3.1 / 3.2 / 3.3 wizards | -| 3.6 | Configure equipment, paths, and integrations | Settings dialog (nine sections) | -| 3.7 | Monitor orchestrator staging | Staging dock + main-window panel | -| 3.8 | Review and resolve naming and validation problems | Problems tab + override dialog | +| ID | Capability | Surface | +| --- | -------------------------------------------------- | ------------------------------------------- | +| 3.6 | Configure equipment, paths, and integrations | Settings dialog + Add-Equipment wizard | +| 3.4 | Browse existing equipment, projects, and runs | File-explorer main window (tree/list/meta) | +| 3.1 | Create a new project | New-project wizard (7 steps) | +| 3.2 | Create a new experimental run | New-run wizard (6 steps) | +| 3.3 | Create a new test run | New-test-run wizard (6 steps) | +| 3.5 | Author a README at creation time | Embedded in 3.1 / 3.2 / 3.3 wizards | +| 3.7 | Monitor orchestrator staging | Staging dock + main-window panel | +| 3.8 | Review and resolve naming and validation problems | Problems tab + override dialog | The capability set is closed in v1: section 02 of the design spec is the authoritative source. Capabilities that require behaviour outside the @@ -31,14 +35,15 @@ covered by the screenshot pipeline. ```{toctree} :maxdepth: 1 -:caption: Capabilities - -01_create_project -02_create_run -03_create_test_run -04_browse -05_readme -06_settings +:caption: User guide + +00_getting_started +01_settings +02_browse +03_create_project +04_create_run +05_create_test_run +06_readme 07_orchestrator 08_problems ``` diff --git a/scripts/generate_screenshots.py b/scripts/generate_screenshots.py index 49cd59e..96da213 100644 --- a/scripts/generate_screenshots.py +++ b/scripts/generate_screenshots.py @@ -12,18 +12,23 @@ PNGs per user-visible capability. The capability map mirrors the ``docs/source/user_guide/`` tree: -================ ==================================================== -Capability id Source route(s) inside the test app -================ ==================================================== -01_create_project ``/wizard/project`` -02_create_run ``/wizard/run`` -03_create_test_run ``/wizard/test-run`` -04_browse ``/main`` -05_readme ``/wizard/project`` (README sub-step) -06_settings ``/settings`` -07_orchestrator ``/staging`` and ``/main?orchestrator=1`` -08_problems ``/problems?seed=hard`` -================ ==================================================== +================== ===================================================== +Capability id Source route(s) inside the test app +================== ===================================================== +00_getting_started ``/`` -- first-launch welcome card +01_settings ``/settings`` + ``/wizard/equipment`` +02_browse ``/main`` + ``/main?selected=...`` -- file explorer +03_create_project ``/wizard/project`` +04_create_run ``/wizard/run`` +05_create_test_run ``/wizard/test-run`` +06_readme ``/wizard/project`` -- README sub-step +07_orchestrator ``/staging`` + ``/main?orchestrator=1`` +08_problems ``/problems?seed=hard`` +================== ===================================================== + +The guide is ordered by the operator's journey (welcome -> setup -> +file explorer -> creation -> monitoring), not by the design spec's +3.x capability numbers; the ``NN_`` prefix is the reading order. If a capability cannot be screenshotted (for example, the test app's selector did not appear within the timeout), the script logs a WARNING @@ -209,47 +214,85 @@ def _capability_plan() -> list[tuple[str, list[dict[str, Any]]]]: """ return [ ( - "01_create_project", + "00_getting_started", [ { "step_id": "01_initial", - "route": "/wizard/project", - "wait_selector": '[data-testid="wizard-project-card"]', + "route": "/", + "wait_selector": '[data-testid="welcome-get-started"]', }, ], ), ( - "02_create_run", + "01_settings", [ { "step_id": "01_initial", - "route": "/wizard/run", - "wait_selector": '[data-testid="wizard-run-stepper"]', + "route": "/settings", + "wait_selector": '[data-testid="settings-dialog"]', + }, + { + # The Add-Equipment wizard is reached from the main + # toolbar; it backs capability 3.6 alongside the + # Settings dialog (Redesign decision 4A). + "step_id": "02_add_equipment", + "route": "/wizard/equipment", + "wait_selector": '[data-testid="wizard-equipment-id"]', }, ], ), ( - "03_create_test_run", + "02_browse", [ { "step_id": "01_initial", - "route": "/wizard/test-run", + "route": "/main", + "wait_selector": '[data-testid="main-tree"]', + }, + { + # A selected node drives the redesigned three-region + # layout (centre file list + metadata pane). Wait on a + # breadcrumb *segment* -- only rendered once a node is + # picked -- so a failed selection can't silently + # screenshot the empty state. + "step_id": "02_selected", + "route": "/main?selected=EQ1/Demo Project", + "wait_selector": '[data-testid="breadcrumb-segment"]', + }, + ], + ), + ( + "03_create_project", + [ + { + "step_id": "01_initial", + "route": "/wizard/project", + "wait_selector": '[data-testid="wizard-project-card"]', + }, + ], + ), + ( + "04_create_run", + [ + { + "step_id": "01_initial", + "route": "/wizard/run", "wait_selector": '[data-testid="wizard-run-stepper"]', }, ], ), ( - "04_browse", + "05_create_test_run", [ { "step_id": "01_initial", - "route": "/main", - "wait_selector": '[data-testid="main-tree"]', + "route": "/wizard/test-run", + "wait_selector": '[data-testid="wizard-run-stepper"]', }, ], ), ( - "05_readme", + "06_readme", [ # The README form is a sub-step of the project wizard; # the test app does not expose a deep-link query @@ -263,16 +306,6 @@ def _capability_plan() -> list[tuple[str, list[dict[str, Any]]]]: }, ], ), - ( - "06_settings", - [ - { - "step_id": "01_initial", - "route": "/settings", - "wait_selector": '[data-testid="settings-dialog"]', - }, - ], - ), ( "07_orchestrator", [ @@ -298,27 +331,6 @@ def _capability_plan() -> list[tuple[str, list[dict[str, Any]]]]: }, ], ), - # GUI/Orchestrator Redesign capability additions. - ( - "09_add_equipment_wizard", - [ - { - "step_id": "01_identity", - "route": "/wizard/equipment", - "wait_selector": '[data-testid="wizard-equipment-id"]', - }, - ], - ), - ( - "10_file_explorer", - [ - { - "step_id": "01_overview", - "route": "/main?view=explorer", - "wait_selector": '[data-testid="toolbar-add-equipment"]', - }, - ], - ), ]