Repository navigation
feat(save): save-first E-01 to E-05 let logged-out learners save and sign in later (dev) - #66
Merged
Merged
Conversation
…sign in later (dev port)
Same change as the PR into main (save-first E-01 to E-05), ported to dev:
- save-first E-01: "Learn more or Save" ("Learn" when saved, also for a
phrase saved on this browser). Help text matches.
- save-first E-02: a logged-out learner gets Save on the word card; the
phrase goes to chrome.storage.local (pendingSaves). phrase_saved gets
logged_in (false / true).
- save-first E-03: sign-in card from the 3rd local phrase, required at 50.
- save-first E-04: after sign-in, local phrases go to the account with
createPhrase and deviceId, one run at a time, stopping at the save limit.
- save-first E-05: the toolbar popup shows "N phrases waiting".
dev only (multilingual round 1): the save window keeps its language row
for signed-in learners. A local save keeps the detected phrase language,
and the sync picks the target language with resolveSaveRow (a language
not added goes to the active language). The language goes with the
bundle suggestion, the bundle and createPhrase; without language profiles
nothing is sent, as before.
Work list: subturtle-doc docs/tech/save-first-implementation.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ave" together Design change from Navid: from the first phrase on, a logged-out learner sees both choices on the word card. - "Save without login" saves on this browser (as before) and sends save-without-login_clicked (count). - "Login to save" opens the login window (source save_prompt). The existing save-login-prompt_viewed (once per word, when the choices show) and save-login-prompt_clicked events stay on it. - The soft sign-in card from the 3rd local phrase and the 50-phrase cap (only sign-in offered) are unchanged. Work list: subturtle-doc docs/tech/save-first-implementation.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
🎉 This PR is included in version 1.17.0-dev.9 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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.
The same change as #65 (into
main), ported todev. Logged-out learners can save a phrase. It is kept in the extension and sent to their account after they sign in. No server change.Why: subturtle-doc
docs/tech/save-first-implementation.md(rows save-first E-01 to E-05).save-first E-01 to E-05 (same as #65)
save-login-prompt_viewed/_clicked; the new button sendssave-without-login_clicked). The phrase goes tochrome.storage.local(pendingSaves), one copy per phrase.phrase_savedgetslogged_in: false(andtruefor signed-in saves).save-signin-card_viewed/_clicked/_dismissed.createPhraseanddeviceId, and leaves the list only when the server accepts it. One run at a time; it stops at the save limit and keeps the rest. Eventpending-saves_synced.See #65 for the details.
What is different on dev: languages
resolveSaveRow):createPhrase. One page saved in two languages gets a bundle per language.Decisions different from the work list
keep-phrase-pending), because the learner is not there to choose "Add now".How tested
pending-saves-sync.test.ts(target language per phrase, bundle in that language, one bundle per language for one page).yarn typecheck: clean.yarn test: 49 files, 437 tests pass.yarn build: OK.yarn test:e2e(CI stub settings): 22 of 22 pass.🤖 Generated with Claude Code