Commit Graph
1703 Commits
Author SHA1 Message Date
duan_jandClaude Fable 5 3df3683b75 chore: sync uv.lock with 0.12.5 version bump
CI / lint (pull_request) Successful in 1m0s
CI / test (3.12) (pull_request) Successful in 1m4s
CI / test (3.11) (pull_request) Successful in 1m8s
CI / test (3.13) (pull_request) Successful in 1m6s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m7s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m19s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m20s
CI / test-with-coverage (pull_request) Successful in 1m38s
CI / coverage-analysis (pull_request) Successful in 4s
CI / lint (push) Successful in 36s
Docs build and publish / docker (push) Successful in 19s
CI / test (3.11) (push) Canceled after 41s
CI / test (3.12) (push) Canceled after 39s
CI / test (3.13) (push) Canceled after 36s
CI / test-with-beamline-plugins (pxi_bec) (push) Canceled after 34s
CI / test-with-beamline-plugins (pxii_bec) (push) Canceled after 31s
CI / test-with-beamline-plugins (pxiii_bec) (push) Canceled after 29s
CI / test-with-coverage (push) Canceled after 26s
CI / coverage-analysis (push) Canceled after 0s
Build and Publish / release (push) Successful in 29s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 19:55:26 +02:00
duan_j d52a31be54 chore: fix wording 2026-08-20 19:54:50 +02:00
duan_jandClaude Fable 5 0cff706a11 chore: sync uv.lock with 0.12.4 version bump
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 19:54:50 +02:00
duan_jandClaude Fable 5 36675e0204 feat: auto-centering row with apply-after-mount, grid button raster-only
Auto Centering moves out of the experiment tabs to its own row between
Manual sample and Exp. Config., with an apply-after-mount checkbox that
re-runs it on every detected sample mount (guarded against firing on GUI
startup). Draw a Grid now only shows on the Raster scan tab.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 19:54:50 +02:00
duan_j 1af38fcbd3 fix: dialog not going away after getting baton, and the accept/cancel too small 2026-08-20 19:54:50 +02:00
duan_jandClaude Fable 5 3b2fa597a6 chore: sync uv.lock with 0.12.0 version bump
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 19:54:50 +02:00
duan_j 4fbda86631 feat: allow non-staff to change energy 2026-08-20 19:54:50 +02:00
duan_j a37d622e0a fix: update staff linux group 2026-08-20 19:54:50 +02:00
duan_jandClaude Fable 5 64058ae6c8 feat: fold expanded help cheatsheet when mouse leaves the box
Click is no longer the only way back to the "?" badge: moving the
pointer off the expanded box, or out of the widget entirely, folds it.
Checked before the interaction gate so it works in viewing mode too.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 19:54:50 +02:00
duan_j 47f2939d47 chore: enhance contract between input box and button 2026-08-20 19:54:50 +02:00
duan_j d5c66afba9 fix: combined view only when state is moving or when in robotsampleexchange 2026-08-20 19:54:50 +02:00
duan_j 4917b62e53 chore: rename button to make it more sensible 2026-08-20 19:54:50 +02:00
duan_jandClaude Fable 5 5f068a6305 feat: hover HUD with pixel coords and grey scale bar on sample camera
Bottom-right corner shows the hovered pixel coordinates with a grey
1-2-5 scale bar above them, derived from geom.pixel_in_mm and the
current zoom. Works in viewing mode (before the interaction gate),
clears on leave, and skips drawing outside the image.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 19:54:50 +02:00
duan_j ef4bc011ab chore: do not use the special red tooltip, stay consistent 2026-08-20 19:54:50 +02:00
duan_jandClaude Fable 5 8b6ae51ce6 fix: satisfy lint and diff-coverage gates for admin gating
basedpyright requires _admin_tip_anchor to exist after __init__, so the
anchor is created eagerly instead of lazily. Cover the red-tip branch and
the status-bar menu gate; the menu test swaps in a QMenu subclass with a
no-op exec because PySide method lookup ignores class-attr monkeypatches.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 19:54:50 +02:00
duan_jandClaude Fable 5 569b024456 feat: admin-gate beam diagnostics states, warn via passive red tip
Beam location, Beamstop alignment and Flux measurement grey out for
non-staff in the state strip and the status-bar transitions menu. All
"not admin" denials now show as an auto-dismissing QToolTip on a
Catppuccin red wash instead of a click-to-close QMessageBox.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 19:54:50 +02:00
semantic-release 4e64040d6b 0.12.5
CI / lint (push) Successful in 38s
Docs build and publish / docker (push) Successful in 20s
Build and Publish / release (push) Successful in 22s
CI / test (3.11) (push) Successful in 1m5s
CI / test (3.13) (push) Successful in 1m2s
CI / test (3.12) (push) Successful in 1m4s
CI / test-with-beamline-plugins (pxi_bec) (push) Successful in 1m21s
CI / test-with-beamline-plugins (pxii_bec) (push) Successful in 1m21s
CI / test-with-beamline-plugins (pxiii_bec) (push) Successful in 1m26s
CI / test-with-coverage (push) Successful in 1m33s
CI / coverage-analysis (push) Skipped
Automatically generated by python-semantic-release
v0.12.5
2026-08-20 14:37:21 +00:00
perl_d d29ace156e fix: aerotech position update
CI / lint (pull_request) Successful in 40s
CI / test (3.12) (pull_request) Successful in 1m4s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m9s
CI / test (3.13) (pull_request) Successful in 1m16s
CI / test (3.11) (pull_request) Successful in 1m22s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m15s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m24s
CI / test-with-coverage (pull_request) Successful in 1m33s
CI / coverage-analysis (pull_request) Failing after 3s
CI / lint (push) Successful in 35s
Docs build and publish / docker (push) Successful in 17s
CI / test (3.11) (push) Canceled after 40s
CI / test (3.12) (push) Canceled after 38s
CI / test (3.13) (push) Canceled after 35s
CI / test-with-beamline-plugins (pxi_bec) (push) Canceled after 33s
CI / test-with-beamline-plugins (pxii_bec) (push) Canceled after 30s
CI / test-with-beamline-plugins (pxiii_bec) (push) Canceled after 28s
CI / test-with-coverage (push) Canceled after 25s
CI / coverage-analysis (push) Canceled after 0s
Build and Publish / release (push) Successful in 24s
2026-08-20 16:30:56 +02:00
perl_d a39e97469f fix: magnet position sensor timeout
CI / lint (push) Skipped
CI / test (3.11) (push) Skipped
CI / test (3.12) (push) Skipped
CI / test (3.13) (push) Skipped
CI / test-with-beamline-plugins (pxi_bec) (push) Skipped
CI / test-with-beamline-plugins (pxiii_bec) (push) Skipped
CI / test-with-beamline-plugins (pxii_bec) (push) Skipped
2026-08-20 16:12:59 +02:00
semantic-release ef59ca36a9 0.12.4
Docs build and publish / docker (push) Successful in 7s
Build and Publish / release (push) Successful in 16s
CI / lint (push) Successful in 52s
CI / test (3.12) (push) Successful in 1m5s
CI / test-with-beamline-plugins (pxi_bec) (push) Successful in 1m5s
CI / test (3.13) (push) Successful in 1m12s
CI / test (3.11) (push) Successful in 1m18s
CI / test-with-beamline-plugins (pxiii_bec) (push) Successful in 1m24s
CI / test-with-beamline-plugins (pxii_bec) (push) Successful in 1m26s
CI / test-with-coverage (push) Successful in 1m44s
CI / coverage-analysis (push) Skipped
Automatically generated by python-semantic-release
v0.12.4
2026-08-20 13:59:49 +00:00
perl_d 4f5cb08319 fix: pitch scan message for correct beamline
CI / lint (pull_request) Successful in 44s
CI / test (3.11) (pull_request) Successful in 1m4s
CI / test (3.13) (pull_request) Successful in 1m1s
CI / test (3.12) (pull_request) Successful in 1m8s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m7s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m14s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m26s
CI / test-with-coverage (pull_request) Successful in 1m33s
CI / coverage-analysis (pull_request) Failing after 3s
CI / lint (push) Successful in 35s
Docs build and publish / docker (push) Successful in 18s
CI / test (3.11) (push) Canceled after 46s
CI / test (3.12) (push) Canceled after 42s
CI / test (3.13) (push) Canceled after 41s
CI / test-with-beamline-plugins (pxi_bec) (push) Canceled after 37s
CI / test-with-beamline-plugins (pxii_bec) (push) Canceled after 36s
CI / test-with-beamline-plugins (pxiii_bec) (push) Canceled after 32s
CI / test-with-coverage (push) Canceled after 31s
CI / coverage-analysis (push) Canceled after 0s
Build and Publish / release (push) Successful in 37s
2026-08-20 15:47:55 +02:00
semantic-release 3ac0087c30 0.12.3
CI / lint (push) Successful in 33s
Docs build and publish / docker (push) Successful in 16s
Build and Publish / release (push) Successful in 19s
CI / test (3.11) (push) Failing after 45s
CI / test (3.12) (push) Successful in 1m3s
CI / test (3.13) (push) Successful in 1m5s
CI / test-with-beamline-plugins (pxii_bec) (push) Successful in 1m14s
CI / test-with-beamline-plugins (pxi_bec) (push) Successful in 1m16s
CI / test-with-beamline-plugins (pxiii_bec) (push) Successful in 1m18s
CI / test-with-coverage (push) Successful in 1m28s
CI / coverage-analysis (push) Skipped
Automatically generated by python-semantic-release
v0.12.3
2026-08-20 10:13:49 +00:00
perl_d 1756caba69 fix: do not multiply screening request by steps
CI / lint (push) Successful in 32s
Docs build and publish / docker (push) Successful in 14s
CI / test (3.11) (push) Canceled after 36s
CI / test (3.12) (push) Canceled after 34s
CI / test (3.13) (push) Canceled after 14s
CI / test-with-beamline-plugins (pxi_bec) (push) Canceled after 11s
CI / test-with-beamline-plugins (pxii_bec) (push) Canceled after 26s
CI / test-with-beamline-plugins (pxiii_bec) (push) Canceled after 24s
CI / test-with-coverage (push) Canceled after 21s
CI / coverage-analysis (push) Canceled after 0s
Build and Publish / release (push) Successful in 20s
2026-08-20 12:13:05 +02:00
perl_d dd04a2fc89 fix: read beamline state from BEC on server startup
CI / lint (push) Canceled after 12s
CI / test (3.11) (push) Canceled after 10s
CI / test (3.12) (push) Canceled after 7s
CI / test (3.13) (push) Canceled after 5s
CI / test-with-beamline-plugins (pxi_bec) (push) Canceled after 2s
CI / test-with-beamline-plugins (pxii_bec) (push) Canceled after 0s
CI / test-with-beamline-plugins (pxiii_bec) (push) Canceled after 0s
CI / test-with-coverage (push) Canceled after 0s
CI / coverage-analysis (push) Canceled after 0s
Build and Publish / release (push) Canceled after 0s
Docs build and publish / docker (push) Successful in 8s
2026-08-20 12:12:50 +02:00
semantic-release 809818f9fa 0.12.2
CI / lint (push) Successful in 34s
Docs build and publish / docker (push) Successful in 19s
Build and Publish / release (push) Successful in 22s
CI / test (3.11) (push) Successful in 1m2s
CI / test (3.13) (push) Successful in 1m3s
CI / test (3.12) (push) Successful in 1m9s
CI / test-with-beamline-plugins (pxi_bec) (push) Successful in 1m18s
CI / test-with-beamline-plugins (pxii_bec) (push) Successful in 1m8s
CI / test-with-beamline-plugins (pxiii_bec) (push) Successful in 1m18s
CI / test-with-coverage (push) Successful in 1m36s
CI / coverage-analysis (push) Skipped
Automatically generated by python-semantic-release
v0.12.2
2026-08-20 09:25:27 +00:00
perl_d 002dba7742 fix: save collimator positions
CI / lint (pull_request) Successful in 41s
CI / test (3.11) (pull_request) Successful in 1m6s
CI / test (3.12) (pull_request) Successful in 1m4s
CI / test (3.13) (pull_request) Successful in 1m6s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m15s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m20s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m19s
CI / test-with-coverage (pull_request) Successful in 1m40s
CI / coverage-analysis (pull_request) Failing after 3s
CI / lint (push) Successful in 31s
Docs build and publish / docker (push) Successful in 14s
CI / test (3.11) (push) Canceled after 38s
CI / test (3.12) (push) Canceled after 33s
CI / test (3.13) (push) Canceled after 33s
CI / test-with-beamline-plugins (pxi_bec) (push) Canceled after 28s
CI / test-with-beamline-plugins (pxii_bec) (push) Canceled after 28s
CI / test-with-beamline-plugins (pxiii_bec) (push) Canceled after 23s
CI / test-with-coverage (push) Canceled after 23s
CI / coverage-analysis (push) Canceled after 0s
Build and Publish / release (push) Successful in 23s
2026-08-20 11:19:20 +02:00
semantic-release ffff1e8c2d 0.12.1
CI / test (3.11) (push) Failing after 11s
CI / test (3.13) (push) Failing after 5s
CI / test (3.12) (push) Failing after 12s
CI / lint (push) Successful in 41s
CI / test-with-beamline-plugins (pxii_bec) (push) Failing after 23s
CI / test-with-beamline-plugins (pxiii_bec) (push) Failing after 21s
CI / test-with-beamline-plugins (pxi_bec) (push) Failing after 27s
CI / test-with-coverage (push) Failing after 18s
CI / coverage-analysis (push) Skipped
Docs build and publish / docker (push) Successful in 3s
Build and Publish / release (push) Successful in 7s
Automatically generated by python-semantic-release
v0.12.1
2026-08-20 08:06:07 +00:00
perl_d a36a051a2b fix: update bs x and y instead of z
CI / lint (pull_request) Successful in 54s
CI / test (3.11) (pull_request) Successful in 1m4s
CI / test (3.13) (pull_request) Successful in 1m4s
CI / test (3.12) (pull_request) Successful in 1m13s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m25s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m27s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m31s
CI / test-with-coverage (pull_request) Successful in 1m38s
CI / coverage-analysis (pull_request) Failing after 6s
CI / test-with-beamline-plugins (pxiii_bec) (push) Failing after 19s
CI / test-with-beamline-plugins (pxi_bec) (push) Failing after 23s
CI / test (3.12) (push) Failing after 30s
Docs build and publish / docker (push) Successful in 13s
CI / lint (push) Successful in 37s
CI / test (3.11) (push) Canceled after 49s
CI / test (3.13) (push) Canceled after 44s
CI / test-with-beamline-plugins (pxii_bec) (push) Canceled after 39s
CI / test-with-coverage (push) Canceled after 34s
CI / coverage-analysis (push) Canceled after 0s
Build and Publish / release (push) Successful in 22s
2026-08-20 09:58:39 +02:00
semantic-release eb80370124 0.12.0
Docs build and publish / docker (push) Successful in 4s
Build and Publish / release (push) Successful in 8s
CI / test (3.12) (push) Successful in 1m1s
CI / test (3.13) (push) Successful in 1m2s
CI / test-with-beamline-plugins (pxi_bec) (push) Successful in 1m14s
CI / test-with-beamline-plugins (pxii_bec) (push) Successful in 1m10s
CI / test-with-beamline-plugins (pxiii_bec) (push) Successful in 1m15s
CI / test-with-coverage (push) Successful in 1m22s
CI / coverage-analysis (push) Skipped
CI / lint (push) Successful in 33s
CI / test (3.11) (push) Successful in 57s
Automatically generated by python-semantic-release
v0.12.0
2026-08-19 15:37:26 +00:00
perl_d de0445efdd feat: connect beam steering routine to GUI
CI / lint (pull_request) Successful in 52s
CI / test (3.12) (pull_request) Successful in 1m1s
CI / test (3.11) (pull_request) Successful in 1m3s
CI / test (3.13) (pull_request) Successful in 1m5s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m11s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m15s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m18s
CI / test-with-coverage (pull_request) Successful in 1m49s
CI / lint (push) Successful in 33s
Docs build and publish / docker (push) Successful in 19s
CI / coverage-analysis (pull_request) Failing after 6s
CI / test (3.11) (push) Canceled after 51s
CI / test-with-beamline-plugins (pxiii_bec) (push) Canceled after 37s
CI / test (3.12) (push) Canceled after 47s
CI / test-with-beamline-plugins (pxii_bec) (push) Canceled after 41s
CI / test (3.13) (push) Canceled after 46s
CI / test-with-beamline-plugins (pxi_bec) (push) Canceled after 42s
CI / test-with-coverage (push) Canceled after 36s
CI / coverage-analysis (push) Canceled after 0s
Build and Publish / release (push) Successful in 26s
2026-08-19 17:34:15 +02:00
semantic-release cac3136ee6 0.11.0
Docs build and publish / docker (push) Successful in 19s
Build and Publish / release (push) Successful in 23s
CI / lint (push) Successful in 57s
CI / test (3.12) (push) Successful in 1m3s
CI / test-with-beamline-plugins (pxi_bec) (push) Successful in 1m6s
CI / test (3.11) (push) Successful in 1m23s
CI / test (3.13) (push) Successful in 1m18s
CI / test-with-beamline-plugins (pxii_bec) (push) Successful in 1m15s
CI / test-with-beamline-plugins (pxiii_bec) (push) Successful in 1m22s
CI / test-with-coverage (push) Successful in 1m40s
CI / coverage-analysis (push) Skipped
Automatically generated by python-semantic-release
v0.11.0
2026-08-18 07:28:26 +00:00
duan_jandClaude Fable 5 167d78db68 style: collapse multiline _status calls for ruff format
CI / lint (pull_request) Successful in 52s
CI / test (3.11) (pull_request) Successful in 1m1s
CI / test (3.13) (pull_request) Successful in 1m3s
CI / test (3.12) (pull_request) Successful in 1m3s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m11s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m18s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m19s
CI / test-with-coverage (pull_request) Successful in 1m29s
CI / coverage-analysis (pull_request) Successful in 4s
CI / lint (push) Successful in 32s
Docs build and publish / docker (push) Successful in 15s
CI / test (3.11) (push) Canceled after 45s
CI / test (3.12) (push) Canceled after 42s
CI / test (3.13) (push) Canceled after 40s
CI / test-with-beamline-plugins (pxi_bec) (push) Canceled after 37s
CI / test-with-beamline-plugins (pxii_bec) (push) Canceled after 35s
CI / test-with-beamline-plugins (pxiii_bec) (push) Canceled after 32s
CI / test-with-coverage (push) Canceled after 30s
CI / coverage-analysis (push) Canceled after 0s
Build and Publish / release (push) Successful in 34s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 09:25:14 +02:00
duan_j 0f12b688fe chore: update png so they have gaps 2026-08-18 09:25:14 +02:00
duan_jandClaude Fable 5 7a01a866ef feat: status bar splits passive left / operable right
Operable controls (Fast Shutter, State, p-group, Session) group right
via addPermanentWidget and share one hover affordance - hand cursor +
underline - now owned by ClickableLabel; ValueLabel opts out for the
passive readouts, and the unwired busy label becomes a plain QLabel.
Cryo sits first in the operable group but stays passive: a cryo
operation is planned (TODO in status_bar.py), the placement just
reserves its spot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 09:25:14 +02:00
duan_jandClaude Fable 5 16b61b886b fix: no BEAMLINE BUSY overlay during Sample alignment
Same exception as the motion watch: busy in Sample alignment is the
alignment itself, and the sample motion is watched in these very
views - the curtain hid exactly what the user needed to see. Gated
at both style call sites (sample camera and the Axis views); the
session-driven 'In viewing mode' badge is unaffected.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 09:25:14 +02:00
semantic-release 37bb25e705 0.10.0
Docs build and publish / docker (push) Successful in 4s
Build and Publish / release (push) Successful in 7s
CI / lint (push) Successful in 1m6s
CI / test (3.13) (push) Successful in 1m3s
CI / test (3.11) (push) Successful in 1m24s
CI / test-with-beamline-plugins (pxii_bec) (push) Successful in 1m38s
CI / test-with-beamline-plugins (pxiii_bec) (push) Successful in 1m53s
CI / test-with-beamline-plugins (pxi_bec) (push) Successful in 2m8s
CI / test (3.12) (push) Successful in 1m52s
CI / test-with-coverage (push) Successful in 2m5s
CI / coverage-analysis (push) Skipped
Automatically generated by python-semantic-release
v0.10.0
2026-08-17 16:20:00 +00:00
duan_jandClaude Fable 5 e9428ca64d test: pin the Sample-alignment motion-watch exception
CI / test (3.11) (pull_request) Successful in 1m12s
CI / test (3.12) (pull_request) Successful in 1m13s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m12s
CI / lint (pull_request) Successful in 1m30s
CI / test (3.13) (pull_request) Successful in 1m25s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m21s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m27s
CI / test-with-coverage (pull_request) Successful in 1m43s
CI / coverage-analysis (pull_request) Successful in 4s
CI / lint (push) Successful in 28s
Docs build and publish / docker (push) Successful in 8s
CI / test (3.11) (push) Canceled after 35s
CI / test (3.12) (push) Canceled after 31s
CI / test (3.13) (push) Canceled after 30s
CI / test-with-beamline-plugins (pxi_bec) (push) Canceled after 26s
CI / test-with-beamline-plugins (pxii_bec) (push) Canceled after 25s
CI / test-with-beamline-plugins (pxiii_bec) (push) Canceled after 21s
CI / test-with-coverage (push) Canceled after 20s
CI / coverage-analysis (push) Canceled after 0s
Build and Publish / release (push) Successful in 24s
Robot motion switches to the combined view; alignment beginning
switches straight back while busy is still set, and staying busy in
alignment never re-triggers. Piggybacks on the init test's window -
extra MainWindow constructions feed the PySide teardown flake.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 17:00:26 +02:00
duan_j adcc63d45c chore: clarify move to mounting position in smargon movement 2026-08-17 16:54:19 +02:00
duan_jandClaude Fable 5 cb5837d90f fix: no auto-switch to beamline view during Sample alignment
CI / lint (push) Skipped
CI / test (3.11) (push) Skipped
CI / test (3.12) (push) Skipped
CI / test (3.13) (push) Skipped
CI / test-with-beamline-plugins (pxi_bec) (push) Skipped
CI / test-with-beamline-plugins (pxii_bec) (push) Skipped
CI / test-with-beamline-plugins (pxiii_bec) (push) Skipped
CI / test (3.11) (pull_request) Successful in 1m3s
CI / test (3.13) (pull_request) Successful in 1m9s
CI / test (3.12) (pull_request) Successful in 1m16s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m13s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m17s
CI / lint (pull_request) Successful in 1m33s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m32s
CI / test-with-coverage (pull_request) Successful in 1m42s
CI / coverage-analysis (pull_request) Successful in 3s
Busy in Sample alignment IS the alignment (centring moves) - yanking
the view away to the combined beamline tab hid exactly what the user
was doing. The motion-watch switch now skips that state; robot
exchange and other busy transitions still switch as before.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 16:50:49 +02:00
duan_jandClaude Fable 5 b58c23d0f6 feat: sample camera starts in scale-to-fit
CI / lint (push) Skipped
CI / test (3.11) (push) Skipped
CI / test (3.12) (push) Skipped
CI / test (3.13) (push) Skipped
CI / test-with-beamline-plugins (pxi_bec) (push) Skipped
CI / test-with-beamline-plugins (pxii_bec) (push) Skipped
CI / test-with-beamline-plugins (pxiii_bec) (push) Skipped
CI / test (3.11) (pull_request) Successful in 1m8s
CI / test (3.12) (pull_request) Successful in 1m11s
CI / test (3.13) (pull_request) Successful in 1m9s
CI / lint (pull_request) Canceled after 1m20s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Canceled after 1m10s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Canceled after 1m7s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Canceled after 1m5s
CI / test-with-coverage (pull_request) Canceled after 1m2s
CI / coverage-analysis (pull_request) Canceled after 0s
_autoscale now defaults on, so the view fits from the first layout
(the constructor's placeholder already carries the camera size and
resizeEvent refits on every resize). update_pixmap additionally
refits when the frame size changes - the real stream resolution can
differ from the placeholder, and only a view resize refit before.
Right-click 'Scale to fit' still toggles back to 1:1.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 16:49:30 +02:00
duan_jandClaude Fable 5 6ace1fcbcf feat: queue controls live only in the Queued view
CI / lint (push) Skipped
CI / test (3.11) (push) Skipped
CI / test (3.12) (push) Skipped
CI / test (3.13) (push) Skipped
CI / test-with-beamline-plugins (pxi_bec) (push) Skipped
CI / test-with-beamline-plugins (pxii_bec) (push) Skipped
CI / test-with-beamline-plugins (pxiii_bec) (push) Skipped
CI / test (3.11) (pull_request) Successful in 1m6s
CI / test (3.12) (pull_request) Successful in 1m7s
CI / lint (pull_request) Successful in 1m15s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m24s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m24s
CI / test (3.13) (pull_request) Successful in 1m32s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m28s
CI / test-with-coverage (pull_request) Successful in 1m48s
CI / coverage-analysis (pull_request) Successful in 4s
Run/Remove selected/Clear list act on the queue, whose order only the
Queued chip view shows - in other views they are greyed out with a
tooltip pointing at the chip. Run stays enabled while automation runs
so pausing is always possible. Applies to the docked trio and the
pop-out clones alike.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 16:24:09 +02:00
duan_jandClaude Fable 5 344888dac0 feat: Queued chip view shows the actual run order
The queue engine keeps insertion order and Run pops its head, but the
Queued view sorted by the dewar table's header sort - the top row was
not what runs next. set_queued_ids now keeps the order it is fed (the
queue model's order) and the Queued view displays exactly that; header
clicks no longer reorder it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 16:24:09 +02:00
duan_jandClaude Fable 5 1fef28231b feat: current energy readout in Exp. Config energy row
Mirrors the Beamline setup live readout above Set Energy, fed by the
same DAQ tick with the zero-energy guard and repaint skip.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 16:24:09 +02:00
duan_jandClaude Fable 5 03ae77fa74 fix: pyright-style ignore for setGraphicsEffect(None)
CI / lint (push) Skipped
CI / test (3.11) (push) Skipped
CI / test (3.12) (push) Skipped
CI / test (3.13) (push) Skipped
CI / test-with-beamline-plugins (pxi_bec) (push) Skipped
CI / test-with-beamline-plugins (pxii_bec) (push) Skipped
CI / test-with-beamline-plugins (pxiii_bec) (push) Skipped
CI / test (3.11) (pull_request) Successful in 58s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m3s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m16s
CI / test (3.13) (pull_request) Successful in 1m25s
CI / lint (pull_request) Successful in 2m6s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m56s
CI / test (3.12) (pull_request) Successful in 2m7s
CI / test-with-coverage (pull_request) Successful in 2m34s
CI / coverage-analysis (pull_request) Successful in 4s
basedpyright disables mypy-style 'type: ignore' comments by default, so
the diff-quality gate still counted the violation; match the existing
'pyright: ignore[reportArgumentType]' convention from main_window.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 15:34:58 +02:00
duan_jandClaude Fable 5 32a835b661 style: wrap shutter flag f-strings for ruff format
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 15:34:58 +02:00
duan_jandClaude Fable 5 8f91f1ed2e feat: fast shutter open/close row in Beamline setup
Status flag on the left (same rich-text scheme as the status bar,
theme-aware via set_theme), Open/Close buttons on the right, wired
to the same daq.open_shutter/close_shutter slots staff-gated in
main_window.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 15:34:58 +02:00
duan_jandClaude Fable 5 3053aaae93 style: expanded help overlay opens top center, under the badge
The '?' badge moved to the top middle but the cheat sheet still
opened bottom-left, sending the mouse across the view to close it.
The overlay now drops in where the badge was.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 15:34:58 +02:00
duan_jandClaude Fable 5 4a728baf79 feat: clicking the '#' header selects all rows
The status column holds no sortable data, so its header click slot
was free: it now does Ctrl+A, pairing with the Unmeasured chip to
grab everything still to be done in one motion. The sort indicator
is put back afterwards - the click drags it onto '#' even though
the model ignores sorting there.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 15:34:58 +02:00
duan_jandClaude Fable 5 2909182bb1 fix: measured threshold is rotation count >= 1
Confirmed by Dawn: any rotation data counts as measured; unmeasured
is exactly rotation count 0. The old > 1 rule left single-rotation
samples looking like still-to-do work in the Unmeasured view.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 15:34:58 +02:00
duan_jandClaude Fable 5 a0baa2b54d style: help badge at center top, More link right-aligned
The '?' badge sat in a corner, which drifts oddly when the view is
scaled to fit; the top middle stays put and out of the sample's way.
Transparency unchanged - visible enough to find, not disturbing.
'More... (F1)' moves to the overlay's right edge, reading like a
dialog's action button.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 15:34:58 +02:00