* "docs: writing assistance redesign design spec (#5655)
Add comprehensive design doc for the WA redesign:
- AssistanceRing replaces StartIGCButton (segmented ring around Pangea icon)
- Background highlights with category colors (not red/orange error tones)
- Simplified match lifecycle: open → viewed → accepted (no ignore)
- Persistent span card with smooth transitions between matches
- Send always available, no gate on unresolved matches
Remove superseded design docs (SPAN_CARD_REDESIGN_FINALIZED.md,
SPAN_CARD_REDESIGN_Q_AND_A.md, choreographer.instructions.md)."
* feat: replace ignored status with viewed status, initial updates to span card
* resolve merge conflicts
* rebuild input bar on active match update to fix span hightlighting
* cleanup
* allow opening span cards for closed matches
* no gate on sending, update underline colors
* animate span card transitions
* initial updates to add segmented IGC progress ring
* update segment colors / opacities based on match statuses
* use same widget for igc loading and fetched
* more segment animation changes
* fix scrolling and wrap in span card
* better disabled color
* close span card on assistance state change
* remove print statements
* update design doc
* cleanup
---------
Co-authored-by: ggurdin <ggurdin@gmail.com>
* feat: client-side knock auto-accept via KnockTracker
Replace server-side AutoAcceptInviteIfKnocked (removed in
synapse-pangea-chat PR #21) with client-side KnockTracker.
- Record knocked room IDs in Matrix account data (org.pangea.knocked_rooms)
- Auto-join when invite arrives for a previously knocked room
- Migrate storage from GetStorage to Matrix account data for
cross-device sync and reinstall persistence
- Add joining-courses.instructions.md design doc
* formatting
* centralizes calls to knock-storage related functions
---------
Co-authored-by: ggurdin <ggurdin@gmail.com>
Creates .github/instructions/testing.instructions.md documenting:
- Test stack (flutter test, Playwright, axe-core)
- Current state of unit, integration, and e2e tests
- CI workflows (integrate.yaml, e2e-tests.yml)
- Commands for running tests locally
- Manual testing guidance
* feat: embed STT transcription in audio event content
Before sending the audio event, the client now fetches the STT
transcript first, then embeds it under 'user_stt' in the event
content. This mirrors the 'original_sent' pattern for text messages
and lets the bot read the transcript immediately without downloading
audio or calling choreo.
- Add ModelKey.userStt constant
- Rewrite onVoiceMessageSend to get transcript before sending audio
- Update getSpeechToTextLocal() to check userStt before botTranscription
* chore: replace inaccurate comment with TODO referencing #5730
* formatting
* fix pangea comments
* feat: make stt translations relate to pangea message events instead of stt representation events
* clean up pangea event types
---------
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
* docs: add PT v2 and token-info-feedback design docs
- Add phonetic-transcription-v2-design.instructions.md (client PT v2 migration)
- Add token-info-feedback-v2.instructions.md (client token feedback v2 migration)
* fix: update applyTo path for token info feedback v2 migration
* feat: Refactor phonetic transcription to v2 models and repository (in progress)
* feat: PT v2 migration - tts_phoneme rename, v1 cleanup, disambiguation, TTS integration
* feat: Update phonetic transcription v2 design document for endpoint changes and response structure
* docs: fix stale _storageKeys claim in pt-v2 design doc
* style: reformat PT v2 files with Dart 3.10 formatter (Flutter 3.38)
* feat: add speakingRate to TTS request model (default 0.85)
Passes speaking_rate to the choreo TTS endpoint. Default preserves
current behavior; can be overridden for single-word playback later.
* feat: use normal speed (1.0) for single-word TTS playback
The 0.85x slowdown is helpful for full sentences but makes single
words sound unnaturally slow. tts_controller._speakFromChoreo now
sends speakingRate=1.0. Full-sentence TTS via pangea_message_event
still defaults to 0.85.
* style: clean up formatting and reduce line breaks in TtsController
* fix: env goofiness
* formatting, fix linter issues
* don't return widgets from functions
---------
Co-authored-by: ggurdin <ggurdin@gmail.com>
Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com>
* 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>