diff --git a/csaxs_bec/bec_ipython_client/plugins/flomni/AI_docs/TOMO_QUEUE_COMMAND_JOBS_PLAN.md b/csaxs_bec/bec_ipython_client/plugins/flomni/AI_docs/TOMO_QUEUE_COMMAND_JOBS_PLAN.md index a8ebbef..5a45ec9 100644 --- a/csaxs_bec/bec_ipython_client/plugins/flomni/AI_docs/TOMO_QUEUE_COMMAND_JOBS_PLAN.md +++ b/csaxs_bec/bec_ipython_client/plugins/flomni/AI_docs/TOMO_QUEUE_COMMAND_JOBS_PLAN.md @@ -1,28 +1,32 @@ # Plan: Command Jobs in the FlOMNI Tomo Queue -**Status:** **Step 2 is implemented** in `flomni.py` (schema type-tagging, action -registry, `move` + `optimize_idgap` (stub) actions, `tomo_queue_add_command`, -`tomo_queue_show`/`tomo_queue_execute` branching, `_run_command_job` resume policy, -`tomo_queue_actions` global-var publishing) plus a small additive fix in -`flomni_webpage_generator.py` so a command job renders its step summary instead of a -blank params table. Sim-tested: `omny_e2e_tests/test_tomo_queue_command_jobs.py`, -6/6 passing (see `TOMO_QUEUE_TESTING.md` §4D for what each test covers); real device -movement was exercised against `ftray` (sim-testable stand-in), not `mokev`/`idgap` -(real front-end only — see §10). A CLI-level `tomo_queue_move(index, new_index)` has -since been added alongside `tomo_queue_add`/`_delete`/`_clear`, enforcing the same -running-job floor as §6.4. A curated, session-only `at_each_angle_hook` registry -(§3.4) has been added, sim-validated (CLI side) and now has a GUI dropdown + webpage -display too — see §3.4's "Sim-validated" note and its "GUI widget added"/"Webpage -display added" bullets; the GUI/webpage halves are not yet click-tested against a -live session. **Step 3 (the `TomoQueueDialog` GUI work) has a first -iteration built** — the command-job builder dialog (§6.5), command-job-aware queue -rendering, the status-keyed delete/clear guards from §6.3, a "Sort queue…" mode for -mid-run reorder of pending/incomplete rows (§6.4 — up/down buttons, not drag-and-drop, -see the note under §6.4 for why), and full-detail row tooltips so hovering any cell -shows the untruncated label/steps/params. **Not yet validated against a live -session** — see `TOMO_QUEUE_GUI_TESTING.md` for the manual test checklist and known -first-iteration gaps. Step 1 (executor rework) is implemented and its sim checklist -has passed (`TOMO_QUEUE_TESTING.md` §4, sections A–C). +**Status: Steps 1–3 are implemented and fully validated**, both by sim and by a +live click-through of the entire GUI checklist. **Step 2** (`flomni.py`: schema +type-tagging, action registry, `move` + `optimize_idgap` (stub) actions, +`tomo_queue_add_command`, `tomo_queue_show`/`tomo_queue_execute` branching, +`_run_command_job` resume policy, `tomo_queue_actions` global-var publishing, plus +the matching `flomni_webpage_generator.py` fix) is sim-tested: +`omny_e2e_tests/test_tomo_queue_command_jobs.py`, 6/6 passing (see +`TOMO_QUEUE_TESTING.md` §4D); real device movement exercised against `ftray` +(sim-testable stand-in), not `mokev`/`idgap` (real front-end only — see §10). Since +then: a CLI-level `tomo_queue_move(index, new_index)` alongside +`tomo_queue_add`/`_delete`/`_clear`, enforcing the same running-job floor as §6.4; +and a curated, session-only `at_each_angle_hook` registry (§3.4) with a GUI dropdown +and webpage display, sim-validated (CLI side) and click-tested (GUI side, both green +— see `TOMO_QUEUE_GUI_TESTING.md` sections 6b–6f). **Step 3** (the `TomoQueueDialog` +GUI work) — the command-job builder dialog (§6.5), command-job-aware queue +rendering, the status-keyed delete/clear guards from §6.3 (since extended with a +staleness-aware override, see below), a "Sort queue…" mode for mid-run reorder of +pending rows (§6.4 — up/down buttons, not drag-and-drop, see the note under §6.4 for +why), full-detail row tooltips, "Load into editor" (§6.8), and the +live-vs-unsaved-edit warnings on both "Add to queue" surfaces (§6.1) — **has been +fully click-tested against a live session** (`TOMO_QUEUE_GUI_TESTING.md`, items +1–55, all passing). Two real incidents were found and fixed along the way: a job +stuck at `running` forever with no live process behind it (§6.3's staleness note, +§3.4's declined-confirmation note), and the two-window live-vs-unsaved-edit +confusion (§6.1). Step 1 (executor rework) is implemented and its sim checklist has +passed (`TOMO_QUEUE_TESTING.md` §4, sections A–C). Remaining known gaps (scope cuts, +not bugs) are tracked in `TOMO_QUEUE_GUI_TESTING.md` §7. **Prerequisite (met):** the checklist in `TOMO_QUEUE_TESTING.md` has passed against the simulated flOMNI. That document is the companion to this one: it covers *what diff --git a/csaxs_bec/bec_ipython_client/plugins/flomni/AI_docs/TOMO_QUEUE_GUI_TESTING.md b/csaxs_bec/bec_ipython_client/plugins/flomni/AI_docs/TOMO_QUEUE_GUI_TESTING.md index fd793e1..ac1eaa2 100644 --- a/csaxs_bec/bec_ipython_client/plugins/flomni/AI_docs/TOMO_QUEUE_GUI_TESTING.md +++ b/csaxs_bec/bec_ipython_client/plugins/flomni/AI_docs/TOMO_QUEUE_GUI_TESTING.md @@ -5,19 +5,22 @@ building it. Section 8 explains exactly how to hand this off to a new session/chat. -**Status:** Sections 3 through 6b have now actually been clicked through -against a live session by Mirko and pass, including item 4 against the new -hard-block Submit behaviour. Real-session testing of 6b surfaced several -gaps (all fixed, see section 6c below): a confusing duplicate row-number -column, `tomo_parameters()`/the queue table/scilog/the PDF report/the -progress-ring label not showing an active hook at all, and a clarification -that `unregister_at_each_angle_hook()` doesn't clear `at_each_angle_hook` -(confirmed expected, now documented). **Sections 6c, 6d, and 6e have now also -been clicked through and pass** (37–52), including the stale-`running` -delete override, which fixed an actual stuck job found live at session -start. **Section 6f is new and not yet clicked through** — a warning added -after 6e's testing surfaced one more mixed-surface confusion (see below). -Companion docs: +**Status: fully validated.** Every item in sections 3 through 6f (1–55) has +been clicked through against a live session by Mirko and passes — the +complete GUI checklist for this iteration is green. Along the way, real +testing surfaced and got fixed: the old soft-warn Submit (now a hard +block, item 4/8); a confusing duplicate row-number column, hook visibility +gaps across `tomo_parameters()`/the queue table/scilog/the PDF +report/the progress ring (section 6c, items 37–41); a stuck-`running` +job with no live process behind it, caused by a declined confirmation +that used to silently return instead of raising (fixed at the source, +plus a staleness-aware delete/clear override — section 6e, items +48–52, confirmed against an actual stuck job found live); and a second +live-vs-unsaved-edit confusion reachable from the separate Queue +control window, not just the params panel (section 6f, items 53–55). +No open items remain from this checklist. If new GUI/queue work starts, +extend this document rather than starting a new one — the fixture/setup +sections (1, 2, 8) still apply. Companion docs: `TOMO_QUEUE_COMMAND_JOBS_PLAN.md` section 6 (the design this implements), `TOMO_QUEUE_TESTING.md` (Steps 1 & 2, already sim-validated). @@ -124,7 +127,7 @@ support on top of it: name, flagged if it isn't currently registered — the scilog entry and PDF report additionally include the hook's actual source code when it is still registered, so what a tomogram did is part of the permanent - record. See section 6c below for what's not yet click-tested. + record. Click-tested (section 6c, items 37–41) and passing. 11. **"Load into editor."** Select a single tomo job in the queue dialog (command jobs are excluded — no `params`) and click **"Load into editor"** to enter edit mode on the params panel populated from that @@ -132,7 +135,7 @@ support on top of it: anything itself — Submit/"Add to queue" from there work exactly as they already do. Confirms before discarding an in-progress edit. Disabled outside a valid single-tomo-job selection and during sort - mode. See section 6d below — not yet click-tested. + mode. Click-tested (section 6d, items 42–47) and passing. 12. **Declined-scan failure + stale "running" recovery.** Two fixes for a real stuck-queue incident: `tomo_scan_projection()` now raises instead of silently returning when the "run a fermat scan anyway?" confirmation @@ -149,8 +152,8 @@ support on top of it: live-vs-unsaved-edit confusion as item 8 could bite, since it's a different window from the panel's own (correct) "Add to queue" button. Now warns and names the correct button before proceeding if - the panel is mid-edit; no warning if it isn't. See section 6f below — - not yet click-tested. + the panel is mid-edit; no warning if it isn't. Click-tested (section + 6f, items 53–55) and passing. ---