-
Notifications
You must be signed in to change notification settings - Fork 3.3k
feat: BROS-199: Enhanced paragraph annotation with auto-selection #8037
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
✅ Deploy Preview for label-studio-docs-new-theme canceled.
|
✅ Deploy Preview for label-studio-playground ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for heartex-docs canceled.
|
✅ Deploy Preview for label-studio-storybook ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #8037 +/- ##
===========================================
- Coverage 70.36% 66.16% -4.21%
===========================================
Files 719 505 -214
Lines 51064 33833 -17231
Branches 8640 8729 +89
===========================================
- Hits 35929 22384 -13545
+ Misses 15132 11446 -3686
Partials 3 3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
908bf12 to
44d2634
Compare
|
/git merge
|
9c77da8 to
1081ea6
Compare
- Move business logic for phrase navigation (next/previous) and "select all and annotate" from HtxParagraphs view to Paragraphs model as new model actions:
- goToNextPhrase
- goToPreviousPhrase
- selectAllAndAnnotateCurrentPhrase
- Update view to call new model methods, simplifying UI code and improving separation of concerns
- Remove over-defensive type checks for playingId and method existence; use direct calls and Math.max for index safety
- Remove redundant region/label unselection helpers in favor of built-in annotation methods
- Ensure all navigation and annotation features are test-verified and work in both audio and no-audio scenarios
This refactor improves maintainability, testability, and code clarity by centralizing business logic in the model and keeping the view focused on UI.
1081ea6 to
e96b536
Compare
|
/git merge
|
2acc7fe to
5f2d956
Compare
|
/git merge
|
- Add audio duration fallback for phrases without explicit end times - Fix hotkey navigation focus for testing - Remove redundant CSS padding logic - Fix "Show region labels" setting refresh issue - Fix "jump" glitch
|
/git merge
|
|
/git merge
|
BROS-199: Enhanced Paragraph Selection with "Select All" Functionality
Reason for Change
This PR implements an enhanced paragraph selection feature that allows users to efficiently select and annotate multiple phrases in paragraph-based annotation tasks. The implementation includes:
Key Features
FF_NER_SELECT_ALLfeature flagTechnical Changes
Frontend Changes
HtxParagraphs.jsx: Major enhancements (+307 lines) including phrase selection logic, text selection preservation, and improved event handlingPhrases.jsx: Updated phrase rendering with enhanced selection capabilities (+123 lines)model.js: Added MobX reactions for label selection changes, with proper cleanup mechanisms (+40 lines)Paragraphs.module.scss: Enhanced styling for better visual feedback (+109 lines)Configuration Updates
keymap.json: Added new keyboard shortcuts for annotation workflowsdefaults.js: Updated hotkey configurations for account settingsfeature-flags.ts: AddedFF_NER_SELECT_ALLfeature flag definitionTesting
Phrases.test.tsx: Comprehensive test coverage (+373 lines) for all new functionalityAtParagraphs.js: Added E2E test fragments for automated testingRollout Strategy
FF_NER_SELECT_ALLfeature flagTesting
✅ Unit Tests: All new functionality covered with comprehensive test suite
✅ E2E Tests: Updated automation fragments for end-to-end testing
✅ Manual Testing: Verified functionality across different annotation scenarios
✅ Performance Testing: MobX reaction cleanup prevents memory leaks
✅ Regression Testing: Existing paragraph functionality remains unaffected
Screenshots
Loom Video Reference : https://www.loom.com/share/87a82eb4a4c7469fa53440c50eaec681
Reviewer Notes
FF_NER_SELECT_ALLGeneral Notes
This implementation significantly improves the annotation experience for paragraph-based tasks, particularly for NER (Named Entity Recognition) workflows. The proactive text selection handling and automatic phrase annotation features reduce the number of clicks required for efficient labeling while maintaining precision and user control.
The feature is designed to be non-intrusive and can be safely rolled out gradually through the feature flag system.