* fix: emit granular IGC/IT use types instead of collapsed ga/ta
* formatting
* fix linter issues with deprecated use types
* fix: don't add match viewing update to choreo record, don't flatten token IGC uses into a single type
* break vocabAndMorphUses down into smaller functions
* filter viewed choreo steps when getting uses from choreo
---------
Co-authored-by: ggurdin <ggurdin@gmail.com>
* fix: show knock-accepted notification body when invite follows a knock (#5823)
When Synapse accepts a knock it sends an m.room.member invite event. The client
was displaying the generic 'You have been invited by X' push notification body
because the invite event alone doesn't carry prev_content on the push path.
Use KnockTracker (already used for auto-join) to detect knock-accepted invites
and show a dedicated 'Your join request was accepted!' notification body instead.
- Add knockAccepted string to intl_en.arb
- Extract condition into isKnockAcceptedInvite() pure util for testability
- Expose KnockTracker.getKnockedRoomIds() publicly (was _getKnockedRoomIds)
- Override notification body in push_helper.dart (background) and
local_notifications_extension.dart (foreground/web)
- Unit tests for all isKnockAcceptedInvite() branches (9 tests)
* formatting
* fix up pangea comments
* fix: avoid race condition with knocked room account data updates and local push notification content
* translations
---------
Co-authored-by: ggurdin <ggurdin@gmail.com>
* feat: unified use-type-aware practice scoring on ConstructUses
- Add practiceScore() and practiceTier to ConstructUses for shared
scoring across message practice and standalone practice
- Add isChatUse, isAssistedChatUse, isIncorrectPractice getters to
ConstructUseTypeEnum with exhaustive switches
- Add PracticeTier enum (suppressed/active/maintenance)
- Wire into PracticeSelectionRepo and AnalyticsPracticeSessionRepo
- 28 unit tests covering tier classification, scoring, and ordering
Closes#5700
* formatting, fix linting issue
* move some stuff around
---------
Co-authored-by: ggurdin <ggurdin@gmail.com>
Closes#5697
- Extract buildUpdatedBotOptions (pure) and applyBotOptionUpdatesInOrder
(async orchestration) as top-level @visibleForTesting functions
- Handle bot DM independently of _targetBotChats filter — the DM may
lack a botOptions state event or have a stale activityPlan, but it's
the most important room to keep current
- Update remaining rooms sequentially (not Future.wait) to avoid rate-limiting
- DM errors propagate; other room errors are logged and isolated
- Add 17 unit tests covering both extracted functions
- Add profile.instructions.md design doc for profile settings architecture
* feat: wa working full stack
* feat: writing assistance made anew
* docs: migrate copilot docs to .github/instructions/ format
- Create choreographer.instructions.md (applyTo: lib/pangea/choreographer/**)
- Create events-and-tokens.instructions.md (applyTo: lib/pangea/events/**,lib/pangea/extensions/**)
- Create modules.instructions.md (applyTo: lib/pangea/**) — full module map
- Track copilot-instructions.md (remove .gitignore rule)
- Add documentation reference table to copilot-instructions.md
Content sourced from docs/copilot/ on writing-assistance branch.
* docs: remove old docs/copilot/ (migrated to .github/instructions/)
* docs: update choreographer + modules docs for writing-assistance audit
- Mark IT (Interactive Translation) as deprecated throughout
- Document new ReplacementTypeEnum taxonomy (grammar, surface, word-choice categories)
- Add AssistanceStateEnum, AutocorrectPopup, feedback rerun flow
- Mark SpanDataRepo/span_details as dead code
- Mark SpanChoiceTypeEnum.bestCorrection/bestAnswer as deprecated
- Add new files to modules listing (autocorrect_popup, start_igc_button, etc.)
- Update API endpoints table with active/deprecated/dead status
* formatting, replace deprecated withOpacity calls
* fix linter issues from deprecated types
* use better error color
* move cloing of overlays into choreographer
* reduce duplicate code on igc_controller, update UI on feedback
* couple of adjustments
* display prompt in span card by type
* fix error in tests
* translations
* simplify span card feedback
---------
Co-authored-by: ggurdin <ggurdin@gmail.com>
* Basic setup of choreo changes
* Make unit test for basic bsdiff functionality
* Create class for efficiently storing choreo step edits
* Edited unit test to use ChoreoEdit instead of bsdiff
* Edit ChoreoRecord/Step to use ChoreoEdit
* Test and debug ChoreoRecord
* Accounting for more edge cases
* Remove empty string redundancy in choreo edit
* Save originalText to record instead of step
* Make originalText non-nullable
* Make test run properly with non-nullable originalText change
* make originalText final
* Tweak ChoreoEdit for slightly improved efficiency
* chore: fix how edits are constructed for choreo records
* fix issue with manual changes not being accounted for in fromJSON
---------
Co-authored-by: ggurdin <ggurdin@gmail.com>
Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com>