1.0.0
Docs build and publish / docker (push) Successful in 12s
Build and Publish / release (push) Successful in 23s
CI / lint (push) Successful in 33s
CI / test (3.13) (push) Successful in 1m15s
CI / test (3.14) (push) Successful in 1m6s
CI / test-with-beamline-plugins (pxi_bec) (push) Successful in 1m24s
CI / test-with-beamline-plugins (pxii_bec) (push) Successful in 1m23s
CI / test-with-beamline-plugins (pxiii_bec) (push) Successful in 1m28s
CI / test-with-coverage (push) Successful in 1m33s
CI / coverage-analysis (push) Skipped
CI / test (3.12) (push) Successful in 1m6s

Automatically generated by python-semantic-release
This commit is contained in:
semantic-release committed 2026-09-16 14:17:39 +00:00
1 parent 145b94b7ef
commit 1289851bb9
2 files changed
+124 -1

No files matched your search

+123
View File
@@ -1,6 +1,129 @@
# CHANGELOG
## v1.0.0 (2026-09-16)
### Bug Fixes
- Cast the mocked daq.unmount for basedpyright on CI
([`e31b0e9`](https://gitea.psi.ch/mx/AareDAQ/commit/e31b0e9a6f7bd8adb0ce60e1cfe4b8eefecbe2d2))
CI's basedpyright (latest from the index, newer than the local venv) types win.daq as the real
DAQWorker, so assert_not_called on the patched-in MagicMock flagged the two new gate-test lines.
Note: the pytest job segfaults are NOT from this branch — plain origin/main crashes 2/4 runs under
PySide6 6.11.2 (what CI installs; uv.lock pins 6.9.0 which is stable). Needs a separate dependency
fix.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Full-length hint line on resize-bar hover/drag, short grip idle
([`750559f`](https://gitea.psi.ch/mx/AareDAQ/commit/750559fadedbdbefa09b7e8d58fbbf1475c706df))
User feedback: idle bars stay short centered grips, but hovering or grabbing a resize bar brings
back the full-length 2px line + shadow gradient so the active bar reads over its whole run. The
now-unused hint grip PNGs are removed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Give deferred singleShot callbacks a receiver context
([`26fbe2c`](https://gitea.psi.ch/mx/AareDAQ/commit/26fbe2ca421eafd550b2696173fb40c6d8114abc))
Root cause of the long-standing cross-test SystemError flake ("QPushButton returned NULL", CI
failing test_title_label after an unrelated file): TitleLabel schedules QTimer.singleShot(0,
self._apply_collapsed) at construction; when the banner is deleted before the event loop spins
(what every panel test does), the pending timer fires into the dead C++ object and poisons
whatever test runs next. Deterministic repro added as a regression test. The receiver-context
overload singleShot(0, self, ...) auto-cancels the callback when the widget dies. Same fix for the
two deferred main-window callbacks (dock split, floating-dock enlarge).
Note for the record: the LOCAL segfault storm this afternoon was the dev machine's disk hitting 100%
full (uv cache at 15G) — Bus errors from mmap on a full disk, unrelated to any code.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Pin PySide6 below 6.10 so CI stops segfaulting
([`32f98d7`](https://gitea.psi.ch/mx/AareDAQ/commit/32f98d7285e4dc78cac80085602a2d3d8385e99f))
CI installs latest index deps (it does not read uv.lock) and resolved PySide6 6.11.2, which
segfaults the unit suite in teardown on about half the runs - reproduced on PLAIN origin/main, so
it is not this branch's code. 6.9.0 (the uv.lock pin) is stable. Cap the dependency so CI resolves
a 6.9.x build; drop the cap once the teardown crash is hunted down. uv.lock re-locked (it was
stale at aaredaq 0.22.1).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Re-pin PySide6 after the beamline-plugin install in CI
([`c203a65`](https://gitea.psi.ch/mx/AareDAQ/commit/c203a657c5694cd3f67ceb079ed3a32096c7c5e9))
The bec plugin editable installs upgrade PySide6 to 6.11.x past the pyproject cap, which brings the
teardown segfault back in exactly the test-with-beamline-plugins jobs. Reinstall the capped
version after the plugin install.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Suppress takeAt override complaint from newer basedpyright stubs
([`145b94b`](https://gitea.psi.ch/mx/AareDAQ/commit/145b94b7eff87c9585681ba4c6c5acbcb5ccd613))
Qt's takeAt contract is nullptr-if-out-of-range; the newer PySide stubs on CI declare a non-Optional
return. Suppress rather than lie.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
### Chores
- Retrigger CI (pxi_bec job hit the known eventFilter teardown flake)
([`7fb9f8b`](https://gitea.psi.ch/mx/AareDAQ/commit/7fb9f8bf9cf2623591417fe7d3774f71caa10f64))
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Retrigger CI (pxi_bec job hit the known eventFilter teardown flake)
([`b29b5f1`](https://gitea.psi.ch/mx/AareDAQ/commit/b29b5f121e1cb011b22c73fe85b78b190457ddb7))
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
### Features
- Remove Playlist Mode and Automation View, unpin window minimum
([`809959d`](https://gitea.psi.ch/mx/AareDAQ/commit/809959df33fbf4f023b42347d86f73a7a03bcdae))
Why the width shrink only worked after a Playlist Mode round-trip: Qt auto-pins a top-level window's
minimum size to its layout minimum, and returning from Playlist Mode hid the Information dock (and
every side dock), which happened to drop that layout minimum. The main view now gets an explicit
small minimum (320x240) which disables the auto-pin outright, so the window shrinks directly and
the dock contents clip or scroll instead.
The Playlist Mode (Ctrl+6) and Automation View (Ctrl+5) prototypes are deleted per user decision:
panels, pages, the content stack (the standard page is the only page left), menu actions, camera
fan-out to their view copies, portrait alert interceptors (now plain runtime notification
routers), and their styles (portraitRoot, compact* cards, COMPACT_* and FONT_HERO knobs).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Status-bar readouts wrap on narrow windows instead of clipping
([`5cb57f4`](https://gitea.psi.ch/mx/AareDAQ/commit/5cb57f4737812f9a781334be88eef46bf2586868))
All readouts (sharpness ... Cryo | Fast Shutter | State | p-group | Session) now live in one
FlowLayout host: when the window gets narrow the bar grows extra rows and every value stays
readable, where QStatusBar used to clip the permanent group and hide the rest. FlowLayout is the
canonical Qt example trimmed down (Qt ships no built-in); the host pins its minimum height to the
wrapped height because QStatusBar ignores heightForWidth. The old left/right addWidget vs
addPermanentWidget split is gone with the wrap.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
### Refactoring
- Drop the camera-region splitter, side columns fixed again
([`33239bf`](https://gitea.psi.ch/mx/AareDAQ/commit/33239bf51f9cb5aa070ef7b9664e82e7a5198885))
User decision: the drag-resize bars beside the Sample camera view are not wanted - the side panels
don't need resizing. Back to the plain HBox with zoom-scaled fixed column widths; the View-menu
collapse toggles and the camera minimum-width clamp stay.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
## v0.32.1 (2026-09-16)
### Bug Fixes
+1 -1
View File
@@ -1,6 +1,6 @@
[project]
name = "aaredaq"
version = "0.32.1"
version = "1.0.0"
description = "AareDAQ (with GUI)"
readme = "README.md"
requires-python = ">=3.11"