Commit graph

8394 commits

Author SHA1 Message Date
ggurdin
8e9a1bac24
resolve conflicts 2026-02-09 16:48:53 -05:00
ggurdin
e123cad092
merge prod into main 2026-02-09 16:12:58 -05:00
ggurdin
6b33ae6ce8
Merge main into prod (#5603)
* fix: restrict height of dropdowns in user menu popup

* chore: make sso button order consistent

* fix: use latest edit to make representations

* chore: show tooltip on full phonetic transcription widget

* chore: shrink tooltip text size

Also give it maxTimelineWidth in chat to match other widgets placement, and give slightly less padding between icons

* feat: show audio message transcripts in vocab practice

* moved some logic around

* chore: check for button in showMessageShimmer

* fix: show error message when not enough data for practice

* fix: clear selected token in activity vocab display on word card dismissed

* chore: throw expection while loading practice session is user is unsubscribed

* fix: account for blocked and capped constructs in analytics download model

* chore: save voice in TTS events and re-request if requested voice doesn't match saved voice

* Fix grammar error null error

and only reload current question upon encountering error

* fix: filter RoomMemberChangeType.other events from timeline

* chore: store font size settings per-user

* fix: oops, don't return null from representationByLanguage (#5301)

* feat: expose construct level up stream

* 5259 bot settings   language settings (#5305)

* feat: add voice to user model

* update bot settings on language / learning settings update

* use room summary to determine member count

* translations

* chore: Remove sentence-level pronunciation (#5306)

* fix: use sync stream to update analytics requests indicator (#5307)

* fix: disable text scaling in learning progress indicators (#5313)

* fix: don't auto-play bot audio message if another audio message is playing (#5315)

* fix: restrict when analytics practice session loss popup is shown (#5316)

* feat: rise and fade animation for construct levels

* fix: hide info about course editing in join mode (#5317)

* chore: update knock copy (#5318)

* fix: switch back to flutter's built in dropdown for cerf level dropdown menu (#5322)

* fix: fix public room sheet navigation (#5323)

* fix: update some Russion translations (#5324)

* feat: bring back old course pages (#5328)

* fix: add more space between text and underline for highlighted tokens (#5332)

* chore: close emoji picker on send message (#5336)

* chore: add copy asking user to search for users in invite public tab (#5338)

* chore: hide invite all in space button if everyone from space is already in room (#5340)

* fix: enable language mismatch popup for activity langs that match l1 (#5341)

* chore: remove set status button in settings (#5343)

* chore: hide option to seperate chat types (#5345)

* add translations for error questions

and some spacing tweaks to improve layout and overflow issues

* forgot to push file and formatting

* feat: enable emoji search (#5350)

* re-enable choice notifier

* fix syntax

* fix: reset audio player after auto-playing bot voice message (#5353)

* fix: set explicit height for expanded nav rail item section (#5356)

* fix: move onTap call up a level in widget tree (#5359)

* chore: increase hitbox size of mini analytics navigation buttons

* chore: clamp number of points shown in gain points animation

* chore: reverse change to cefr level display in saved activities

* chore: empty analytics usage dots display update

* simplify growth animation

remove stream, calculate manually with the analytics feedback for XP, new vocab and new morphs

* chore: update disabled toolbar button color

* cleanup

* Limit activity role to 2 lines, use ellipses if needed

* fetch translation on activity target generation

* Disable l1 translation for audio messages

* fix: use token offset and length to determine where to highlight in example messages

* Hide view status toggle in style view

* Hide status message when viewing profile

* Add tooltip to course analytics button

* feat: add progress bar to IT bar

* chore: show loading indicator on recording dialog start up

* fix: prevent out-of-date lemma loading futures from overriding new futures

* chore: If IGC change is different by a whitespace, apply automatically

* chore: prevent UI block on save activity

* chore: Darken Screen further on Activity End Popup

* chore: show shimmer on full activity role indicator

* fix: use event stream for construct level animation

* remove async function for analytics in chat

and sort imports

* chore: block notification permission request on app launch

* fix: uncomment shouldShowActivityInstructions

* feat: use image as activity background

- add switch tile in settings to toggle
- if set, remove image from activity summary widget

* feat: add alert to notification settings to enable notifications

* translations

* add back bot settings widgets

* chore: If link, treat as regular message

* feat: highlight chat with support

* fix: reset bypassExitConfirmation on session-level error

* Add default images when activity doesn't have image

* feat: Bring back language setting in bot avatar popup

* chore: better match tooltip style

* chore: update constant in level equation to make 6000 xp ~level 10

* chore: keep input focused after send

* chore: if mobile keyboard open on show toolbar, close it and still show toolbar

* fix: add padding to bottom of main chat list to make all items visible

* chore: Expand role card if needed/available space

* fix: account for smaller screens

* fix: remove public course route between find a course and public course preview

* fix: prevent avatar flickering on expand nav rail

* fix: only allow one line of text in grammar match choices

* chore: Default courses to public but restricted

* chore: Keep cursor as hand when mousing over word-card emojis

* fix: use unique storage key for morph info cache

* fix: give morph definition a fixed height to prevent other element from jumping around

* chore: Search for course filter not saved when open new course page

* fix: Prevent Grammar Practice Blank Fill-Ins (#5464)

* feat: filter out new constructs with category 'other' (#5454)

* fix: always show scroll bars in activity user summary widgets (#5465)

* fix: distinguish constuct level up animations by construct ID instead of count (#5468)

* chore: Keep Tooltip until word enters Catagory (#5469)

* feat: filter 'other' constructs from existing analytics data (#5473)

* fix: don't include error span as choice in grammar error practice if the translation contains the error span (#5474)

* chore: translation button style update

translation appears in message bubble like in chat with a pressable button and sound effect

* 5415 if invalid lemma definition breaks practice (#5466)

* skip error causing lemmas in practice

* update progress on skipping

and play audio/update value after loading question, so a skipped questions isn't displayed

* remove unnecessary line and comment

* fix: don't label room as activity room if activityID is null (#5480)

* chore: onboarding updates (#5485)

* chore: update logic for which bot chats are targeted for bot options update on language update, add retry logic (#5488)

* chore: ensure grammar category has example and multiple choices

* chore: add subtitle to chat with support tile (#5494)

* Use vocab symbol for newly collected words (#5489)

* Show different course plan page if 500 error is detected (#5478)

* Show different course plan page if 500 error is detected

* translations

---------

Co-authored-by: ggurdin <ggurdin@gmail.com>

* chore: In user search, append needed decorators (#5495)

* Move login/signup back buttons closer to center of screen (#5496)

* fix: better message offset defaults (#5497)

* chore: more onboarding tweaks (#5499)

* chore: don't give normalization errors or single choices

* chore: update room summary model (#5502)

* fix: Don't shimmer disabled translation button (#5505)

* chore: skip recently practiced grammar errors

wip: only partially works due to analytics not being given to every question

* feat: initial updates to public course preview page (#5453)

* feat: initial updates to public course preview page

* chore: account for join rules and power levels in RoomSummaryResponse

* load room preview in course preview page

* seperate public course preview page from selected course page

* display course admins

* Add avatar URL and display name to room summary. Get courseID from room summary

* don't leave page on knock

* fix: on IT closed, only replace source text if IT manually dismissed to prevent race condition with accepted continuance stream for single-span translation (#5510)

* fix: reset IT progress on send and on edit (#5511)

* chore: show close button on error snackbar (#5512)

* fix: make analytics practice view scrollable, fix heights of top elements to prevent jumping around (#5513)

* fix: save activities to analytics room for corresponding language (#5514)

* chore: make login and signup views more consistent (#5518)

* fix: return capped uses

allows all grammar error targets to be searched for recent uses and filtered out, even maxed out ones

* fix: prevent activity title from jumping on phonetic transcription load (#5519)

* chore: fix inkwell border radius in activity summary (#5520)

* fix: listen to scroll metrics to update scroll down button (#5522)

* chore: update copy for auto-igc toggle (#5523)

* chore: error on empty audio recording (#5524)

* chore: show correct answer hint button

and don't show answer description on selection of correct answer

* make grammar icons larger and more spaced

* chore: update bot target gender on user settings gender update (#5528)

* fix: use correct stripe management URL in staging environment (#5530)

* fix: update activity analytics stream on reinit analytics (#5532)

* chore: add padding to extended activity description (#5534)

* chore: don't add artificial profile to DM search results (#5535)

* fix: update language chips materialTapTargetSize (#5538)

* fix: add exampleMessage to AnalyticsActivityTarget

and remove it from PracticeTarget

* fix: only call getUses once in fetchErrors

* feat: make deeplinks work for public course preview page (#5540)

* fix: use stream to always update saved activity list on language update (#5541)

* fix: use MorphInfoRepo to filter valid morph categories

* feat: track end date on cancel subscription click and refresh page when end date changes (#5542)

* initial work to add enable notifications to onboarding

* notification page navigation

* chore: add morphExampleInfo to activity model

* fix: missing line

* fix login redirect

* move try-catch into request permission function

* fix typos, dispose value notifier

* fix: update UI on reply / edit event update

* fix: update data type of user genders in bot options model

* fix: move use activity image background setting into pangea user-specific style settings

* fix: one click to close word card in activity vocab

* fix: don't show error on cancel add recovery email

* fix: filter edited events from search results

* feat: add new parts of speech (idiom, phrasal verb, compound) and update localization (#5564)

* fix: include stt for audio messages in level summary request

* fix: don't pop from language selection page when not possible

* fix: add new parts of speech to function for getting grammar copy (#5586)

* chore: bump version to 4.1.17+7

---------

Co-authored-by: Ava Shilling <165050625+avashilling@users.noreply.github.com>
Co-authored-by: Kelrap <kel.raphael3@outlook.com>
Co-authored-by: Kelrap <99418823+Kelrap@users.noreply.github.com>
Co-authored-by: wcjord <32568597+wcjord@users.noreply.github.com>
2026-02-09 15:56:43 -05:00
wcjord
dec473d579
Writing assistance (#5598)
* 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>
2026-02-09 15:55:18 -05:00
avashilling
507fee84fe
5327 audio activities (#5596)
* feat: sentence based audio activities

WIP

* chore: fix up audio activities

- add continue button and show example message upon selecting correct answers
- token and lemma fixes
- fully fetch audio before displaying activity
- don't repeat messages in the same session

* chore: cleanup unnecessary widget

* merge conflict
2026-02-09 15:42:01 -05:00
ggurdin
8088b6a605
fix: attach room / event metadata to new token click construct uses on messages (#5607) 2026-02-09 12:18:47 -05:00
ggurdin
53091cf4a6
5515 add more to user profile (#5525)
* feat: add country and about to public profile model

* display about me and country

* translations
2026-02-09 11:14:01 -05:00
Kelrap
a5c82b2753
Make password recovery settings more similar to change password page (#5589)
Co-authored-by: ggurdin <ggurdin@gmail.com>
2026-02-09 10:42:04 -05:00
Kelrap
fbd31f1118
Make course access titles wrap (#5584) 2026-02-09 10:35:36 -05:00
Kelrap
1417d8b944
Line notifications setting button up with rest of page (#5571) 2026-02-09 10:34:52 -05:00
avashilling
27776a2896
5582 grammar tweaks (#5594)
* feat: add hint counter for grammar activities

- fade out hint button to morph info in category questions

- animated transitions for smoother hint display

* chore: copy change and variable completion message

* chore: only fetch necessary types in fetchErrors

to end up with more grammar errors, but still only use one getUses call

* translations

---------

Co-authored-by: ggurdin <ggurdin@gmail.com>
2026-02-09 10:32:50 -05:00
avashilling
27740f2967
chore: add audio on match in practice (#5580)
* chore: add audio on match in practice

* play audio for target instead of choice

* remove debugprint

---------

Co-authored-by: ggurdin <ggurdin@gmail.com>
2026-02-09 10:17:59 -05:00
avashilling
e83f76b95b
5385 explore tv static shimmer for loading (#5554)
* glitch static loading prototypes

* feat: shimmer pulse for clickable widget

---------

Co-authored-by: ggurdin <ggurdin@gmail.com>
2026-02-09 10:03:05 -05:00
ggurdin
bcf617d400
fix notification on click actions 2026-02-06 12:58:28 -05:00
ggurdin
3d62a597ed
fluffychat merge 2026-02-06 09:54:50 -05:00
ggurdin
71ccda1e47
fluffychat merge 2026-02-06 09:36:23 -05:00
ggurdin
1744f330da
fluffychat merge 2026-02-06 09:31:51 -05:00
ggurdin
130788db69
fluffychat merge 2026-02-06 09:26:36 -05:00
ggurdin
afa1c8f70b
fluffychat merge 2026-02-06 09:24:54 -05:00
ggurdin
4fd6f10464
fluffychat merge 2026-02-06 09:18:03 -05:00
ggurdin
d2f793819a
fluffychat merge 2026-02-06 09:09:41 -05:00
ggurdin
8d9c6780f0
fluffychat merge 2026-02-06 09:06:40 -05:00
ggurdin
c8e111c2b2
fluffychat merge 2026-02-05 17:00:53 -05:00
ggurdin
5d30c1da86
Merge commit '040c18d80fec095a4c6ea715a4e876a51e7332ba' into fluffychat-merge-2 2026-02-05 16:58:26 -05:00
ggurdin
d6d887b7ae
fluffychat merge 2026-02-05 16:58:11 -05:00
ggurdin
8750f116bd
fluffychat merge 2026-02-05 16:54:16 -05:00
ggurdin
bd3d4ef09d
Merge commit '1db0ecc5d4901f69e5c15fe58ab8d3f02ad888d9' into fluffychat-merge-2 2026-02-05 16:37:14 -05:00
ggurdin
e947cac301
fluffychat merge 2026-02-05 16:36:50 -05:00
ggurdin
2c75d6ff00
fluffychat merge 2026-02-05 16:34:32 -05:00
ggurdin
b4972792e1
fluffychat merge 2026-02-05 16:29:30 -05:00
ggurdin
bdbbfc1b91
fluffychat merge 2026-02-05 16:27:16 -05:00
ggurdin
b627eaaab2
fluffychat merge 2026-02-05 16:18:09 -05:00
ggurdin
615ba9fd54
fluffychat merge 2026-02-05 16:09:03 -05:00
ggurdin
e45edef6a0
fluffychat merge 2026-02-05 16:05:00 -05:00
ggurdin
bf20e4caf7
fluffychat merge 2026-02-05 16:00:42 -05:00
ggurdin
12b04e5074
Merge commit '3b181291cc91a536ea2b418171f184cf83bb9dce' into fluffychat-merge-2 2026-02-05 15:58:21 -05:00
ggurdin
45173d254f
fluffychat merge 2026-02-05 15:58:01 -05:00
ggurdin
f50351b257
fluffychat merge 2026-02-05 15:57:18 -05:00
ggurdin
17652f9f34
fluffychat merge 2026-02-05 15:52:25 -05:00
ggurdin
ca5991924c
Merge commit '75a37f3f7c68ba240551da3569a9b1fc6e1dd528' into fluffychat-merge-2 2026-02-05 13:07:17 -05:00
ggurdin
90f547f897
add missing type annotations 2026-02-05 13:06:58 -05:00
ggurdin
0adb9e1f73
fluffychat merge 2026-02-05 13:00:27 -05:00
ggurdin
eef7a7a3ba
fluffychat merge 2026-02-05 12:29:12 -05:00
ggurdin
e58cde819a
fluffychat merge 2026-02-05 12:27:58 -05:00
ggurdin
6935a9ff74
fluffychat merge 2026-02-05 12:27:25 -05:00
ggurdin
ef5513d805
fluffychat merge 2026-02-05 12:20:13 -05:00
ggurdin
8432ca8a8d
fluffychat merge 2026-02-05 12:16:54 -05:00
ggurdin
3514623e51
fluffychat merge 2026-02-05 12:15:43 -05:00
ggurdin
c871cf4c6b
fluffychat merge 2026-02-05 12:04:44 -05:00
ggurdin
da02f3ca1a
fluffychat merge 2026-02-05 12:00:21 -05:00