Multi-class beta polish: label summary wording + preview docs#389
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Polishes multi-class (preview) UX by making the Label Summary wording and negative-class counts multi-class-aware, and adds a dedicated user-guide page documenting multi-class semantics and known limitations.
Changes:
- Add retitlable row headers to the Label Summary widget and wire it through the main control widget.
- Update label/bout count aggregation so multi-class negative counts come from the reserved None track (instead of NOT_BEHAVIOR on the selected behavior), and retitle rows accordingly.
- Add “Multi-Class Classification (Preview)” documentation to both the published docs and in-app help, and cross-link it from classifier type docs.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/ui/test_label_count_widget.py | Adds UI tests validating default and retitled Label Summary headers. |
| src/jabs/ui/main_window/central_widget.py | Implements multi-class-aware label summary retitling and None-track negative count sourcing/caching. |
| src/jabs/ui/main_control_widget/main_control_widget.py | Exposes a control-layer method to retitle Label Summary class labels. |
| src/jabs/ui/main_control_widget/label_count_widget.py | Stores row-header QLabel instances and adds set_class_labels() for retitling. |
| src/jabs/ui/dialogs/user_guide_dialog.py | Registers the new multi-class help page in the in-app user guide tree. |
| src/jabs/resources/docs/user_guide/multi-class.md | Adds in-app user guide page for multi-class preview mode. |
| src/jabs/resources/docs/user_guide/classifier-types.md | Cross-links classifier “type vs mode” and points to the multi-class page. |
| docs/user-guide/multi-class.md | Adds published docs page for multi-class preview mode. |
| docs/user-guide/classifier-types.md | Cross-links classifier “type vs mode” and points to the multi-class page. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two beta-readiness polish items for multi-class mode (SHOULD-DOs from the multi-class plan), so the preview ships with clear, non-misleading UX and documentation.
T12 — Multi-class-aware Label Summary
Previously the Label Summary always showed "Behavior" / "Not Behavior". In multi-class mode "Not Behavior" is misleading and typically stayed at 0, because explicit negatives are stored on the reserved None track rather than as NOT_BEHAVIOR on a single behavior.
FrameLabelCountWidgetrow headers are now retitlable viaset_class_labels(positive, negative).self._none_counts, refreshed for the current video likeself._counts), and the selected behavior's NOT_BEHAVIOR counts in binary mode.Known-limitations documentation
multi-class.md) describing the mode, how to enable it, labeling/None semantics, and known limitations (no post-processing, project-level training settings, mutual-exclusivity requirement, no migration, format may change).docs/user-guide/and the in-appsrc/jabs/resources/docs/user_guide/), registered in the in-app help tree, and cross-linked fromclassifier-types.md(distinguishing classifier type from classifier mode).Tests
tests/ui/test_label_count_widget.py: default headers,set_class_labelsretitles both frame/bout rows, and restore-to-default.tests/uisuite passes (69); ruff clean.Notes
Binary mode behavior and wording are unchanged. Part of the multi-class beta-readiness work alongside #385/#386/#387 (section 10 fixes) and #388 (preview label).