diff --git a/csaxs_bec/bec_ipython_client/plugins/LamNI/AI_docs/HW_COMMISSIONING_SESSION_2026-07.md b/csaxs_bec/bec_ipython_client/plugins/LamNI/AI_docs/HW_COMMISSIONING_SESSION_2026-07.md new file mode 100644 index 0000000..3e159fd --- /dev/null +++ b/csaxs_bec/bec_ipython_client/plugins/LamNI/AI_docs/HW_COMMISSIONING_SESSION_2026-07.md @@ -0,0 +1,59 @@ +# flomni/lamni parity fixes — 2026-07 session summary + +Branch `fixes/lamni_hw_commissioning`, commits `6c3d603..8a7a350`. Very brief +by design — `git show ` on any commit below has the full reasoning and +diff; that's the source of truth if something needs revisiting. + +## What was done + +1. **`6c3d603`** — lamni: end-of-scan timing overview (total time / time lost + to gaps) + scilog write, matching flomni. `_tomo_scan_at_angle()` wrapped in + `@scan_repeat` so any interruption (not just the one `AlarmBase` case + already handled) redoes the whole projection. `scan_interlock` now enabled + at `tomo_scan()` start (was flomni-only before). +2. **`cdfc023`** — tomo queue hover tooltip no longer shows golden-ratio + fields on a non-golden job (or type-1-only fields on a golden job). +3. **`382e325`** — the manual/constant shift is now printed alongside + correction 1/2 + x-ray-eye correction during a projection, both setups. +4. **`80f6972`** — lamni's `tomo_parameters()` now shows the active + `at_each_angle_hook`, matching flomni. +5. **`abc2a3d`, `4ada8e8`** — new `tomo_queue_reacquire(job_index, + projection_number)`: reopen any job (even "done") at an earlier + projection, cascades every later job to `pending`. New `tomo_queue_resume()` + alias for `tomo_queue_execute()`. Docs updated in + `docs/user/ptychography/{lamni,flomni}.md`. +6. **`8a7a350`** — `tomo_parameters()` (CLI) and the GUI (`tomo_params.py`, + live field) now warn if the current settings would produce fewer than 20 + Fermat-scan points. Required converting `FlomniFermatScan`/ + `LamNIFermatScan`'s position math to pure `@staticmethod`s (same + algorithm, no behavior change — verified against their existing + exact-position tests). + +**Parked, not done:** `DataDrivenLamNI`'s broken `_start_beam_check()` calls +(missing mixin) — deferred on request, separate task if ever needed. + +## What to test to confirm everything's still healthy + +**Automated** — should show `412 passed, 15 skipped`: +``` +/opt/bec_deployments/production/bec_venv/bin/python -m pytest tests/ -q +``` + +**Manual, on a simulated or real session, before relying on this at the +beamline:** + +- `lamni.tomo_scan()` (short run): "Tomoscan finished" banner + timing + summary at the end; force a mid-scan exception once and confirm the same + projection retries instead of the scan aborting. +- `lamni.tomo_queue_add()` a couple of jobs → `tomo_queue_execute()` → + `tomo_queue_reacquire(0, )` on a finished job → confirm status flips and + later jobs go `pending` → `tomo_queue_resume()` re-runs them. +- `lamni.tomo_parameters()`: confirm the hook line (if one's registered) and + the "Estimated Fermat scan points" line both appear, with a warning shown + for a deliberately tiny piezo range / coarse step. +- GUI (`TomoParamsWidget`, lamni active): hover a queued job and confirm only + relevant fields show; confirm the new Fermat-points field updates live and + turns orange under the same tiny-FOV condition. +- A real `lamni_fermat_scan` with too few points should still hit its + `ScanAbortion` safety net unchanged (the warning above is advisory, not a + replacement for it).