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.
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; placement reserves its spot for the planned cryo operation.
chore: update banner png so the letters have gaps (215 KB -> 31 KB).
Three changes on top of main:
- 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.
- 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; placement reserves its spot for the planned cryo operation.
- chore: update banner png so the letters have gaps (215 KB -> 31 KB).
Generated with [Claude Code](https://claude.com/claude-code)
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>
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>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Three changes on top of main:
Generated with Claude Code
Coverage report (automated)
Total line + branch coverage: 49%
Diff coverage vs main: 100% (minimum 80%)
Full report: coverage artifact on this run.
f69da09038to167d78db68