Fixed
- Fixed a crash when registering a shape after deleting one via the annotation-list context menu (
RuntimeError: Internal C++ object (LabelListWidgetItem) already deleted); the list snapshots the selection on mouse press to support multi-selection checkbox toggles, and a context menu or drag can consume the matching release, so the snapshot outlived deleted items and is now tracked with persistent model indexes that drop removed rows (#2318) - Fixed
read_label_filesilently accepting a non-dict image-levelflagsvalue in an annotation file; the top-level flags are now validated as adict[str, bool]on load, exactly as per-shape flags already were, so a malformed file surfaces a clear read error instead of loading a bad value that crashes later (#2305) - Fixed AI Assist / AI Text Prompt in polygon output mode emitting a degenerate 2-point "polygon" for thin, near-collinear detections; such a shape is not a valid polygon and later crashed mask conversion (
shape_to_maskasserts more than 2 points), so it is now dropped like other empty detections (#2298) - Fixed two warning log messages rendering literal
%r/%dplaceholders instead of their values (the no-op point-removal warning and the empty save-path warning); loguru formats with brace-style placeholders, so the diagnostic values were silently dropped (#2293) - Fixed a startup crash when the config file contains an empty section such as a bare
shortcuts:orai:; empty sections now keep their defaults instead of raising an uncaughtAttributeError(#2295) - Fixed a startup crash when a config section is set to a non-mapping value such as
shortcuts: oops; the malformed section now surfaces in the configuration-error dialog (with an Ignore-and-use-defaults option) instead of crashing (#2300) - Fixed noisy Qt log lines flooding the terminal (notably the macOS per-keypress
qt.qpa.keymapper: Mismatch between Cocoa and Carbonwarning); Qt logging is now routed through the app logger with these harmless lines filtered out while genuine Qt warnings still surface (#2292)