These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)
Commit: | 1f95d03 | |
---|---|---|
Author: | Yaoliang Chen | |
Committer: | GitHub |
feat(scheduler): add from_queue flag to CardAnswer (#3976) Co-authored-by: Yaoliang <yaoliang.ch@gmail.com>
The documentation is generated from this commit.
Commit: | ad073ab | |
---|---|---|
Author: | Luc Mcgrady | |
Committer: | GitHub |
Feat/CMRR uses simulate config (#3947) * Added: simulate_request_to_config * Use SimulateConfig for CMRR * ./check * Fix: ComputingRetention * Use actual cards for optimal_retention
Commit: | e096c46 | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Feat/FSRS-6 (#3929) * Feat/FSRS-6 * update comment * add decay to Card * ./ninja fix:minilints * pass check * fix NaN in evaluation * remove console * decay should fallback to 0.5 when it's None. * Update SimulatorModal.svelte * Update a few comments * Update FSRS decay defaults to use constants for better maintainability and clarity * Update rslib/src/storage/card/data.rs
Commit: | efaaae8 | |
---|---|---|
Author: | Arthur Milchior | |
Committer: | GitHub |
Cloze button get disabled outside of cloze field (#3879) * NF: replace `disabled` by `enabled` This allows to remove the negations and, in my opinion, make the code easier to understand and edit. * Cloze button get disabled outside of cloze field More specifically, if the user focus in a field that is not a cloze field, the button are still there but appear as disabled. The shortcut instead of adding the cloze context shows an alert explaining why this can't be done. While this message is already displayed when the user tries to add a note with cloze in non-cloze field, I suspect it will save time to stop the user as soon as possible from making mistake. This should make very clear what is authorized and what is not. It'll also be a reminder of whether the current field is a cloze or not. In order to do this, I added a back-end method (that I expect we may reuse in ankidroid) to get the index of the fields used in cloze. This set is sent to the note editor, which propagates it where needed. In mathjax, the cloze symbol is removed when the selected field is not a cloze field.
Commit: | 781a23c | |
---|---|---|
Author: | Luc Mcgrady | |
Committer: | GitHub |
Feat/Ignored before card count (#3910) * GetIgnoredBeforeCount * get_card_count_with_ignore_before * Included / total * Respect search * Get frontend hooked up * Fix: Malformed sql and search * Variable names * Added: Alert colours * i18n * ./check * Remove console.log * Fix: Tooltip showing for default value * Update ftl/core/deck-config.ftl Co-authored-by: user1823 <92206575+user1823@users.noreply.github.com> * Fix: Multiple backend calls * Message: (Approximately) * Fix: Bouncing info message * Added: Change delay * Added: ignore_before_updated * ./check * Fix typing, camelCase and improve wording * Temporarily enable the check on startup --------- Co-authored-by: user1823 <92206575+user1823@users.noreply.github.com>
Commit: | ccab18b | |
---|---|---|
Author: | llama | |
Committer: | GitHub |
Modify card rendering output to specify if rendered card is empty (#3890) * modify render_card to return whether card was empty * plumbing * add flag to proto message * plumbing: pass flag along to PartiallyRenderedCard * add tests * Use a custom return type for clarity (dae)
Commit: | acdf486 | |
---|---|---|
Author: | Yuki | |
Committer: | GitHub |
Refactor: Make Load Balancer Optional Throughout Codebase (#3860) * Refactoring: load balancer * Update about.py * Refactoring: load balancer * Update about.py * Clean the code * Remove config check from get_scheduling_states * Backend method for the load balancer * Refactor backend method for the load balancer
Commit: | 0e31efa | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Feat/grade now (#3840) * Feat/grade now * pass ci * fix from_queue * Refactor card answering to support from_queue flag - Add `from_queue` field to `CardAnswer` struct and proto message - Modify `answer_card_inner` to handle queue updates based on `from_queue` - Remove `grade_card` method and consolidate card answering logic - Update related test cases to set `from_queue` flag * fix current_changes() called when no op set * Optimize queue updates for batch card processing - Refactor `grade_now` to collect processed card IDs first - Add new `update_queues_for_processed_cards` method for efficient batch queue updates - Improve queue management by removing entries and updating counts in a single pass - Remove individual queue update method in favor of batch processing * pass ci * keep the same style * remove ineffective code * remove unused imports
Commit: | 79b6f65 | |
---|---|---|
Author: | Luc Mcgrady | |
Committer: | GitHub |
Feat: Simulator suspend after lapse count (#3837) * Added: Leech suspend to simulator * Added: leech threshold spin box * Update git rev * Added: Save to preset options * ./check * Added: "Advanced settings" dropdown * Removed: Indent * Added: Easy days * Added: Sticky header * Removed: Easy Day updating without saving * un-nest disclosure * bump fsrs * Update a VSCode setting to match recent releases * Move Easy Days above the Advanced settings I think it's a bit more logical to have Advanced come last. * Ensure graph fits inside screen height * Bump fsrs version
Commit: | a6426be | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Feat/support load balance and easy days in FSRS simulator (#3829) * Feat/support load balance and easy days in FSRS simulator * format * consider LoadBalancerEnabled * use fsrs::PostSchedulingFn * add load balance and easy days to compute_optimal_retention * move simulator to a pop-over * fix incorrect simulationNumber when error 500 * Feat: Save to Preset Options * update tabs when update newPerDay & reviewsPerDay * don't reset deckSize & daysToSimulate when save options * fix missing easy days * plan to support review priority * Fix graph line rendering with non-scaling stroke * simplify review priority function with helper wrapper * fallback to default ReviewPriority for Added & ReverseAdded * Update ts/routes/deck-options/SimulatorModal.svelte Co-authored-by: Luc Mcgrady <lucmcgrady@gmail.com> * Wrap review priority function in Arc for thread-safe sharing * more granularity for R sorting * Add graph smoothing option to FSRS simulator * Improve graph resize handling in FSRS simulator * simplify review priority calculation * Add review order selection to FSRS simulator modal * Refactor review priority function using macro for conciseness * Add copyright and license header to SimulatorModal.svelte * cargo clippy * ./ninja fix:eslint * update fsrs-rs * Update FSRS dependencies and refactor load balancing functions - Update fsrs-rs dependency to latest commit - Modify retention and simulator modules to use Arc instead of Box - Update function signatures and imports in simulator module - Simplify review card order handling with direct enum usage * resolve reviewed changes * replace .unwrap() with ? * move simulating into SimulatorModal * add (crate) to interval_to_weekday * Update FsrsOptions.svelte * format --------- Co-authored-by: Luc Mcgrady <lucmcgrady@gmail.com>
Commit: | 43e8607 | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Fix/re-optimize FSRS if short-term param is weird (#3742) * Fix/re-optimize FSRS if short-term param is weird * Reset progress when another run is required (dae) * only count the same-day steps * Fix flicker when optimizing again (dae)
Commit: | 1b5b685 | |
---|---|---|
Author: | Damien Elmes |
Remove unused proto import
Commit: | b6d7bb1 | |
---|---|---|
Author: | llama | |
Committer: | GitHub |
Fix IO editor always starting in "hide all, guess one" mode (#3709) * update backend * set hideAllGuessOne in mask editor instead
Commit: | c4ad27a | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Feat/support new cards ignore review limit in simulator (#3707) * Feat/support new cards ignore review limit in simulator * ./ninja fix:minilints & ./ninja format * use published crate * make newCardsIgnoreReviewLimit reactive * format --------- Co-authored-by: Damien Elmes <gpg@ankiweb.net>
Commit: | d7fc98d | |
---|---|---|
Author: | Arthur Milchior | |
Committer: | GitHub |
Deck options without bridge (#3571) * NF: Modify CONTRIBUTORS Just so that I stop getting the warning * NF: Create `deckOptionsReady` * NF: rename _close to require_close The method will have to be used outside of this class, so can't be private * NF: simplify slightly some code * NF: remove bridge command from deck options * Remove unused import * Remove superfluous comment with a typo
Commit: | cee04bf | |
---|---|---|
Author: | OuOu2021 | |
Committer: | GitHub |
Apply gradient effect to forgetting curve (#3604) * Add gradient color for forgetting curve * Add desiredRetention prop for CardInfo * update CONTRIBUTORS * Formatting * Tweak range of gradient * Tweak: salmon -> tomato * Get desired retention of the card from backend * Add a reference line for desired retention * Fix: Corrected the steel blue's height & Hide desired retention line when yMin is higher than desiredRetentionY * Add y axis title * Show desired retention in the tooltip * I18n: improve translation and vertical text display * Revert rotatation&writing-mode of vertical title * Tweak font-size of y axis title * Fix: delete old desired retention line when changing duration * Update ftl/core/card-stats.ftl --------- Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
Commit: | 01c3686 | |
---|---|---|
Author: | Damien Elmes |
Remove remaining remnants of unused error; fix CI
Commit: | ba1f5f4 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Flag server messages so AnkiDroid can handle them separately
Commit: | b646f09 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | GitHub |
Add descending retrievability (#3559) * "relative overdueness" -> "retrievability ascending" * Add 'retrievability descending'
Commit: | 6adbd92 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Rename remaining 'weights' references to 'params'
Commit: | c45fa51 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Use separate field to store FSRS params Will allow the user to keep using old params with older clients
Commit: | 26ae51f | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Create a new kind of revlog entry for reschedule cards on change (#3508) * create a new kind of revlog entry for Reschedule cards on change * add comments * exclude the rescheduled case in reviews graph
Commit: | b0eb2a2 | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Feat/Estimated Total Knowledge By Note & Daily Load (#3507) * Feat/Estimated Total Knowledge By Note & Daily Load * Update rslib/src/stats/graphs/retrievability.rs * Update rslib/src/stats/graphs/future_due.rs
Commit: | 6ff309e | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Feat/option to enable FSRS short-term scheduler when (re)learning steps run out && speed up features based on simulation (#3505) * Update to FSRS-rs v1.3.2 * add fsrs_short_term_with_steps_enabled to config * ./ninja fix:minilints * fix defaults_for_testing * if current parameters are invalid, skip comparison fix #3498 * fix redundant_field_names * cargo clippy --fix * Update to FSRS-rs v1.3.3 * Update to FSRS-rs v1.3.4 * Avoid an extra config lookup on each card answer (dae)
Commit: | b09326c | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Feat/export dataset for research (#3511) * Feat/export dataset for research * add comment Co-authored-by: Damien Elmes <dae@users.noreply.github.com> * target_path is required * format * improve efficiency to look up parent_id * move `use` down
Commit: | f00211d | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
add get_revlogs API && fix the style of tooltipText of ReviewsGraph (#3490) * add get_revlogs API * fix tooltipText of ReviewsGraph the style of true-retention shouldn't affect the style of tooltipText of ReviewsGraph * More verbose wording (dae)
Commit: | a982720 | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Feat/Easy Days (#3442) * Feat/Easy Days * format * add easy_days_percentages to deck_config * configure Easy Days via table * remove unused code * add translatable strings & add default of easy days * don't check easy_days_percentages when deserialize * pass test::all_reserved_fields_are_removed * consider next_day_at when interval_to_weekday * remove y-axis-title created in last simulation * EstimatedTotalKnowledge should be integer * Reorder deck option sections (dae) - Move FSRS to bottom left, to move it closer to the top, and so the left and right columns appear roughly balanced when FSRS is enabled. - Move Easy Days above Advanced * Don't crash if wrong number of days (dae) * Use lower field number (dae) Repeated fields are more compactly stored in the first 15 fields.
Commit: | e2124cd | |
---|---|---|
Author: | a.r | |
Committer: | GitHub |
typeanswer: [type:nc] – ignores combining characters (#3422) * typeanswer: fix cleanup Fix: Add prepare_expected back in for the 'nothing typed' & 'correctly typed' cases. This also makes expected_original redundant again. Style: %s/provided/typed/g Style: rename one ch → c Testcase: whitespace_is_trimmed: added a check for the "correctly typed" path and renamed it to tags_removed (there's no whitespace?) Testcase: empty_input_shows_as_code: changed to also check that tags get trimmed * [type:nc] – ignores combining characters Adds a comparison variant to [type] which ignores when combining characters of the expected field are missing from the provided input. It still shows these characters in the 'expected' line for reference. It's useful for languages with e.g. diacritics that are required for reference (such as in dictionaries), but rarely actually learned or used in everyday writing. Among these languages: Arabic, Hebrew, Persian, Urdu. The bool 'combining' controls it as new final parameter of both relevant compare_answer functions. On the Python side, it's set to true by default. Use on the note templates: [type:nc:field] (only the front needs to include :nc) This also removes the need to have both variants of words/sentences present as separate fields, to show them redundantly, etc. * typeanswer: simplify by using nfkd throughout Requires adjusting two testcases, but both render exactly the same in Anki itself. On NFC vs. NKFD: https://stackoverflow.com/a/77432079 * typeanswer: 'simplify' by removing normalize_typed (requiring a bool parameter) I'd prefer to keep this extra method. * typeanswer: micro-optimize vectors Should get rid of most relocations, at the expense of over-allocating. On Vec's (String's) behavior: https://stackoverflow.com/a/72787776 * Mark `combining` as private typeCorrect is not marked as private either, but we can at least do the right thing for newly-added code. * Revert "typeanswer: micro-optimize vectors" This reverts commit 9fbacbfd196f159cbcf339aab6d8aa0830a455a5. * Revert "typeanswer: 'simplify' by removing normalize_typed (requiring a bool parameter)" This reverts commit df2dd3394eedab4b6a53acfac44db52d5728105f.
Commit: | 7959273 | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Feat/forgetting curve in card info (#3437) * add elapsed time into revlog-table * add stability into revlog-table * add Graph of forgetting curve * fix eslint * add radio buttons of timeRange * add revlog filter && return [] for new card * format * translatable string & disable if using SM-2 * elapsedTime should skip manual or filtered review * add HoverColumns * fix eslint * add stability to tooltip & use timeSpan * reuse translatable strings * distinguish daysSinceFirstLearn and elapsedDaysSinceLastReview * Date x-axis & toLocaleString * Temporarily hide elapsed/stability columns (dae) https://github.com/ankitects/anki/pull/3437#issuecomment-2378851900
Commit: | 3912db3 | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Feat/true retention stats (#3425) * Feat/true retention stats * ./ninja fix:minilints * use translatable strings & update style * remove card couts & add more translatable strings * Update statistics.ftl Co-authored-by: user1823 <92206575+user1823@users.noreply.github.com> * add Estimated total knowledge (cards) --------- Co-authored-by: user1823 <92206575+user1823@users.noreply.github.com>
Commit: | 77fb0fb | |
---|---|---|
Author: | Ben Nguyen | |
Committer: | GitHub |
Possible to show “last” subdeck name in Browser? (#3387) * elide middle of deck names * Update CONTRIBUTORS * made elide mode enum * add elide mode field * fix enum number * remove dataclass decorator * Update CONTRIBUTORS * format rust code * Update CONTRIBUTORS * formatting * Update CONTRIBUTORS * fix type hint * Update CONTRIBUTORS
Commit: | 880c7d3 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Fix graph averages (#3406) * Fix graph averages * Fix formatting
Commit: | ce2f413 | |
---|---|---|
Author: | Arthur Milchior | |
Committer: | GitHub |
Empty cards become undoable (#3386) * Empty cards is undoable If there was a reason for this operation not to be undoable, I can't easily guess it. My main hyposhesis was that the number of deleted card may be too big. But I realized that deleting a deck is undoable and may delete as many note. As you may know, I realized that only the undoable operations triggered notification in AnkiDroid that we may have to update the UI. And while I just wanted to trigger more notifications, some reviewers thought it would be nicer if the operation were returning a OpChanges. So here it's done. If you would please consider merging it. I decided to introduce a new string because the closest strings I could find currently are "Empty cards..." and the trailing commas don't seem nice in "undo". And the title, which we may not be able to reuse in all language * Don't count cards that have already been removed (dae)
Commit: | c6cb4e4 | |
---|---|---|
Author: | Jake Probst | |
Committer: | GitHub |
load balancer! (#3230) * start of load balancer * add configuration options; option to load balance per deck * formatting * clippy * add myself to contributors * cleanup * cargo fmt * copyright header on load_balancer.rs * remove extra space * more formatting * python formatting * ignore this being None only doing this cause python has awful lambdas and can't loop in a meaningful way without doing this * only calculate notes on each day if we are trying to avoid siblings * don't fuzz intervals if the load balancer is enabled * force generator to eval so this actually happens * load balance instead of fuzzing, rather than in addition to * use builtin fuzz_bounds rather than reinvent something new * print some debug info on how its load balancing * clippy * more accurately load balance only when we want to fuzz * incorrectly doublechecking the presence of the load balancer * more printfs for debugging * avoid siblings -> disperse siblings * load balance learning graduating intervals * load balancer: respect min/max intervals; graduating easy should be at least +1 good * filter out after-days under minimum interval * this is an inclusive check * switch load balancer to caching instead of on the fly calculation * handle case where load balancer would balance outside of its bounds * disable lb when unselecting it in preferences * call load_balancer in StateContext::with_review_fuzz instead of next to * rebuild load balancer when card queue is rebuilt * remove now-unused configuration options * add note option to notetype to enable/disable sibling dispersion * add options to exclude decks from load balancing * theres a lint checking that the link actually exists so I guess I'll add the anchor back in later? * how did I even update this * move load balancer to cardqueue * remove per-deck balancing options * improve determining whether to disperse siblings when load balancing * don't recalculate notes on days every time * remove debug code * remove all configuration; load balancer enabled by default; disperse siblings if bury_reviews is set * didn't fully remove caring about decks from load balancer sql query * load balancer should only count cards in the same preset * fuzz interval if its outside of load balancer's range * also check minimum when bailing out of load balancer * cleanup; make tests happy * experimental weight-based load balance fuzzing * take into account interval when weighting as it seems to help * if theres no cards the interval weight is just 1.0 * make load balancer disableable through debug console * remove debug prints * typo * remove debugging print * explain a bit how load balancer works * properly balance per preset * use inclusive range rather than +1 * -1 type cast * move type hint somewhere less ugly; fix comment typo * Reuse existing deck list from parent function (dae) Minor optimisation
Commit: | 520564d | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Integrate AnkiHub Sign-in (#3232) * Add AnkiHub section to preferences screen * Add short intro for AnkiWeb and AnkiHub to syncing section * Add AnkiHub login screen * Implement login methods in backend * Set minimum dialog width * Add missing colon * Respect the ANKIHUB_APP_URL env var This is used by the add-on. * Simplify login error reporting * Fix from_prefs_screen not passed to subcall * Add missing ankihub_pb2 import * Install AnkiHub add-on after sign-in * Avoid .exec() * Update ftl/core/sync.ftl Co-authored-by: Damien Elmes <dae@users.noreply.github.com> * Split translation string * Support login by username/email * Fix entered username/email not being passed back to on_done * Remove unused import * Move to 'Third-party services' section * Tweak login dialog's heading * Remove 'third-party' from intro text * Tweak copy * Prefix profile keys * Tweak strings * Remove description from login dialog * Remove signup links * Clear credentials in ankihub_logout() * Call .adjustSize() * Title Case * Add padding to third-party services, and fix tab order from other PR
Commit: | 52ce6e6 | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Feat/FSRS-5 (#3298) * Feat/FSRS-5 * adapt the SimulatorConfig of FSRS-5 * update parameters from FSRS-4.5 * udpate to FSRS-rs v1.1.0 * ./ninja fix:minilints * pass ci * update cargo-deny to 0.14.24 * udpate to FSRS-rs v1.1.1 * update to fsrs-rs v1.1.2
Commit: | 06f7aa3 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Add a preference to toggle LaTeX generation (#3218) * Add a preference to toggle LaTeX generation * Fix test * Remove LaTeX security restrictions * Show existing LaTeX images regardless of preference * Lift config check out of loop (dae) * Shift option to review settings; display warning when disabled (dae)
Commit: | 9e3a34f | |
---|---|---|
Author: | Voczi | |
Committer: | GitHub |
Add support for custom certificates (#3203) * Add support for custom certificates * Update lints * Update licenses * Changes after feedback * More changes
Commit: | 22ac778 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Show review count for Evaluate/Optimize button (#3170) * Revert "Show review count with FSRS evaluation results (#3165)" This reverts commit b7e782c7e1b41445750bf8dd9eaefef57ae28688. * Show review count for Evaluate/Optimize button
Commit: | b7e782c | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Show review count with FSRS evaluation results (#3165)
Commit: | d8f2782 | |
---|---|---|
Author: | Loudwig | |
Committer: | GitHub |
Feature Show Reminder before answer (#3064) (#3119) * Feature Question Action Show Reminder (#3064) Added a option in the deck config that allow the user to choose in Autoupdate mode between showing a reminder or revealing the card. Also added my name to the contributors * Update ftl/core/deck-config.ftl
Commit: | 10d567f | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Update to FSRS-rs v0.6.1 (#3106) * update to FSRS-rs 0.6.0 * update to crates.io version * format * update to FSRS-rs v0.6.01 * ./ninja fix:minilints * update python backend code
Commit: | 1550632 | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
rename sm2 retention to historical retention (#3101) * rename sm2 retention to historical retention * ninja format * keep sm2_retention in DeckConfSchema11 * update wording * Update schema11.rs
Commit: | 8d197a1 | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
Feat/fsrs simulator backend part (#3075) * [WIP] FSRS simulator * add desired_retention as input * cargo fmt * fix format * add standard copyright header * support existing cards * fix format * pass days_elapsed into Card::convert & return None
Commit: | e9d3b46 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Shift FSRS optimization into top level; shown optimize all tip after 30 days
Commit: | 8c9d7d6 | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
refactor optimal retention to minimize workload per memorization & fix progress goes backwards (#3065) * Feat/optimal retention for minimal workload per memorization * ./ninja fix:minilints * update to FSRS-rs 0.5.2 * update to FSRS-rs 0.5.3 * ./ninja fix:minilints * 'estimated retention' -> 'predicted optimal retention'; add warning (dae)
Commit: | 055b6e3 | |
---|---|---|
Author: | Jarrett Ye | |
Committer: | GitHub |
update FSRS-rs to 0.5.0 & export benchmark API (#3056) * update fsrs to 0.4.5 * update to fsrs 0.4.6 * add benchmark API * update fsrs to 0.5.0 * cargo fmt * ./ninja fix:minilints * ./ninja format * Add a brief comment about the new method (dae)
Commit: | 9228c87 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Show preset and original deck in card info (#3055) * Show preset and original deck in card info * Make original_deck optional
Commit: | 60f8399 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Show total review count when optimizing FSRS parameters (#3027) * Show total review count when optimizing FSRS parameters * Do not expose items
Commit: | 6843d65 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Check required review count for FSRS after filtering (#3019) * Check for required review count for FSRS after filtering * Remove unreachable check * Update minimum review count in optimal retention calculation * Fix review check in optimal retention routine too
Commit: | 8b18a08 | |
---|---|---|
Author: | Luc Mcgrady | |
Committer: | GitHub |
FSRS - Ignore revlogs before date while optimizing (#2922) * Added: Date input button * Added: ignoreDate to config * Added: Backend * Optimize function passes value * Fix: Spelling * Moved: filter logic from revlog_for_srs to update_memory_state * fmt * Copyright header * ./check * Fix: Test * Renamed: Ignore_date -> Ignore_before_date * Neaten parameters * evaluate weights * ./check * Optimize all presets * Added: Label localizations * Removed globe label * Added: Tooltip * Changed error type * fmt * Moved filter to own function * missing function call replacement * Fix: Typo * Apply suggestions from code review Co-authored-by: Damien Elmes <dae@users.noreply.github.com> * timestamp * 1000 -> timestamp_millis * ignoreBefore -> ignore_before * clarified ignore_before variables * i64 -> TimestampMillis * Un-traitified remove_revlogs_before * Added: ms == 0 guard * Added: Ignore_before affects scheduling * Moved filter to fsrs_items_for_training * removed filter from revlog_for_srs * Tuple -> UpdateMemoryStateEntry * Removed unused function * Removed superfluous _ms from variables * cid -> id * Different ignore method * Added: Unit test * cid -> id * Test: Exact ms edge case * ./check * Fix: re-learns could be before ignore date in cards without learning steps * getignoreRevlogsBeforeMs -> getIgnoreRevlogsBeforeMs * Removed pub(crate) * Clarified unit test * last_learn_entry -> first_of_last_learn_entries * @user1823's method * IOS fix * ./check * Fix: width defined twice
Commit: | 4ef389b | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Keep previous FSRS parameters if they get worse when optimizing (#2996) * Update to fsrs-rs 0.3.0 * Keep previous FSRS parameters if they get worse when optimizing
Commit: | 80c14aa | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Maintain original IO cloze order in editing mode (#2987) * Maintain original IO cloze order in editing mode * Fix ordinal propery name
Commit: | eab5c02 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Add by creation date review sort order (#2957) * Add by creation date review sort order * Order by template after nid in ReverseAdded of filtered decks too
Commit: | bf06020 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | GitHub |
Use card.reps - 1 when calculating fuzz (#2933) https://github.com/open-spaced-repetition/fsrs4anki-helper/issues/343#issuecomment-1879584562 https://forums.ankiweb.net/t/reschedule-is-inconsistent-with-normal-schedule-in-fuzz/39363
Commit: | 4678b0c | |
---|---|---|
Author: | Damien Elmes |
Use seconds instead of minutes for preview delay Since this is not compatible with older clients, preview_delay has been brought back so the configured value will still sync.
Commit: | e778cba | |
---|---|---|
Author: | Damien Elmes |
Allow user to configure hard/good buttons when rescheduling off Closes #2858
Commit: | 6326063 | |
---|---|---|
Author: | Gustaf-C | |
Committer: | GitHub |
Include elapsed_secs in learning card state (#2862) * Include elapsed_time in learning card state * Suggested updates, elapsed_time -> elapsed_secs * Remove outdated comment
Commit: | 063b6f6 | |
---|---|---|
Author: | Damien Elmes |
Rework error dialog - Hide traceback - Include full add-on info in 'copy debug info' button, like about screen - Link to troubleshooting page - Use non-modal pop-up in the common case, to avoid potential conflicts with other modals. Closes #2830
Commit: | 8b6abd3 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Switch FSRS reschedule to a global option; don't persist A global is easier to use in conjunction with the 'optimize all' action. The value is no longer persisted, as doing so makes it too easy for users to generate a lot of revlog entries when playing with different FSRS weights/retention settings, such as in https://forums.ankiweb.net/t/possible-syncing-limitation-by-fsrs-manual-scheduling-data-accumulation/37610
Commit: | 452e012 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Add option to calculate all weights at once
Commit: | be1f889 | |
---|---|---|
Author: | Mani | |
Committer: | GitHub |
fixes: remove unfinished shapes, remove selectable and make shapes remain inside canvas (#2809) * remove unfinished polygon and remove selectable for shapes in polygon mode * make group and polygon position remain inside canvas area * click through transparent area in grouped object * add some shortcuts for basic usages * tools button icon in center & switch mode border * fix load svg image * basic rtl support, panzoom have issues in rtl mode * better zoom option both in ltr and rtl * handle zoom event in mask editor * add h button to handle toggle mask * add more mime type * use capital M (shift+m) for toggle mask * allow io shortcuts in mask editor only * make other shapes also remain in canvas bound area * better zoom implementation, zoom from center add zoom to resize event listener * add a border to corner to handle blend of control * add refresh button to go to selection menu * add tooltip to shortcuts and also add shortcut for other tools * make opacity remain in same state when toggled on * opacity for group/ungroup objects * update shortcuts implementation
Commit: | 366f787 | |
---|---|---|
Author: | Damien Elmes |
Include next_day timestamp in revlog export
Commit: | a9d73fc | |
---|---|---|
Author: | Damien Elmes |
Add a method for exporting revlogs in binary
Commit: | 390935d | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Persist FSRS weights search in preset (#2827)
Commit: | 39a60bc | |
---|---|---|
Author: | RumovZ | |
Committer: | GitHub |
Allow applying limits of inactive parents (#2824) * Allow applying limits of inactive parents * Tweak label/help text (dae)
Commit: | f200d62 | |
---|---|---|
Author: | RumovZ | |
Committer: | GitHub |
Allow im-/exporting with or without deck configs (#2804) * Allow im-/exporting with or without deck configs Closes #2777. * Enable webengine remote debugging in launch.json * Reset deck limits and counts based on scheduling Also: - Fix `deck.common` not being reset. - Apply all logic only depending on the source collection in the gathering stage. - Skip checking for scheduling and only act based on whether the call wants scheduling. Preservation of filtered decks also depends on all original decks being included. - Fix check_ids() not covering revlog. * Fix importing legacy filtered decks w/o scheduling * Disable 'include deck options' by default, and fix tab order (dae) * deck options > deck presets (dae)
Commit: | ae7b14b | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Add auto-advance options to deck preset (#2765) * Move stop-timer-on-answer strings to correct section * Add auto-advance options to deck preset * Implement answer actions * Fix error when last card is answered before timeout * Fix deserialization of answerAction * Add answerAction to reserved key list * Fix inverted boolean * Add option to wait for audio to finish * Add auto-advance toggle * Add shortcut * Disable auto-advance when main window state changes * Start auto-advance timer after option is toggled * Disable auto-advance when main window loses focus * Use existing translations * Add Answer Hard and Show Reminder
Commit: | 6a2d1f9 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Move anki.utils.html_to_text_line() to backend (#2816)
Commit: | 9268dce | |
---|---|---|
Author: | Damien Elmes |
Expose fuzz delta for FSRS add-on
Commit: | e071fb4 | |
---|---|---|
Author: | Gustaf-C | |
Committer: | GitHub |
Allow creation of empty filtered decks (#2788) * Add new button to UI * Add bool to allow creating empty filtered in back end * Implement logic into front end for passing on bool * Hide option on old decks * Show option again if any settings are changed * Revert "Show option again if any settings are changed" This reverts commit 094acd9c65936823fa206594da5c1f3e4eb09248. * Revert "Hide option on old decks" This reverts commit d20a9a240b4fd85d080e8cc52d94318416ca753f. * Update string * Update ftl/core/decks.ftl --------- Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
Commit: | 633d246 | |
---|---|---|
Author: | Damien Elmes |
Don't lock collection while generating TTS
Commit: | 14940a6 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Fix IO groups breaking upon editing (#2766) * Fix IO groups breaking upon editing * Emit change signal after group/ungroup
Commit: | 9bbc6c9 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Add image occlusion to stock notetypes
Commit: | c828a2e | |
---|---|---|
Author: | Aristotelis | |
Committer: | GitHub |
Add APIs for IO card rendering (#2739) * Refactor: Add index to shapes package * Add shape draw callback API to setupImageCloze * Expose IO drawing API, switch away from image cloze naming We currently use "image occlusion" in most places, but some references to "image cloze" still remain. For consistency's sake and to make it easier to quickly find IO-related code, this commit replaces all remaining references to "image cloze", only maintaining those required for backwards compatibility with existing note types. * Add cloze ordinal to shapes * Do not mutate original shapes during (de)normalization Mutating shapes would be a recipe for trouble when combined with IO API use by external consumers. (makeNormal(makeAbsolute(makeNormal())) is not idempotent, and keeping track of the original state would introduce additional complexity with no discernible performance benefit or otherwise.) * Tweak IO API, allowing modifications to ShapeProperties * Tweak drawShape parameters * Switch method order For consistency with previous implementation * Run Rust formatters * Simplify position (de)normalization --------- Co-authored-by: Glutanimate <glutanimate@users.noreply.github.com>
Commit: | bba67fd | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Fix misleading warning when changing notetype from/to cloze (#2744)
Commit: | 5cde4b6 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Remove v1/v2 support from the backend (#2727) * Remove v1/v2 support from deck list * Remove v1/v2 support from most routines and show error * Remove scheduler_version from preferences * Fix formatting * Remove v1/v2 conditionals from Python code * Fix legacy importer * Remove legacy hooks * Add missing scheduler checks * Remove V2 logic from deck options screen * Remove the review_did_undo hook * Restore ability to open old options with shift (dae)
Commit: | 003cdfd | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Use sm2 retention when deriving memory state Closes #2702
Commit: | 9e147c6 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Add text tool to image occlusion (#2705) * Add text tool to IO * Remove unnecessary parentheses * Fix text objects always grouped * Remove log * Fix text objects hidden on back side * Implement text scaling * Add inverse text outline * Warn about IO notes with only text objects This will result in a different error message than the case where no objects are added at all though, and the user can bypass the warning. Maybe this is better to avoid discarding the user's work if they have spent some time adding text. * Add isValidType * Use matches! * Lock aspect ratio of text objects * Reword misleading comment The confusion probably comes from the Fabric docs, which apparently need updating: http://fabricjs.com/docs/fabric.Canvas.html#uniformScaling * Do not count text objects when calculating current index * Make text objects respond to size changes * Fix uniform scaling not working when editing * Use Arial font * Escape colons and unify parsing * Handle scale factor when restricting shape to view * Use 'cloned' * Add text background * Tweak drawShape's params
Commit: | c052be9 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Add a backend method to extract static media references (#2716) * Add a backend method to extract static media references * Extract into Notetype.gather_media_names()
Commit: | 23f29a6 | |
---|---|---|
Author: | RumovZ | |
Committer: | GitHub |
Invalid sorting (#2709) * Rollback if toggling state fails Previously, if the search triggered by a state toggle failed, the switch and the model would move to the new state, while the table would remain in the previous state. * Fix reversed sort orders of FSRS columns * Add sep. default sort orders for notes and cards * Add test for consistent default sort orders * Add launch config for debugging in VSC * Extend launch config for macOS and Linux
Commit: | 9fd8a8b | |
---|---|---|
Author: | Damien Elmes |
Add stability graph
Commit: | 072cd37 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Support rescheduling on weight/retention change
Commit: | 50c8a1b | |
---|---|---|
Author: | Damien Elmes |
Update FSRS - up to 10x performance increase in optimal retention - expose loss aversion - use SpinBoxes
Commit: | b8390d0 | |
---|---|---|
Author: | Damien Elmes |
Shift weight calculation to backend so it can be run in parallel
Commit: | 1f55ad1 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | GitHub |
Expose the ability to train weights from items (#2687)
Commit: | ab7e648 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Implement "stop timer on answer" as a preset option (#2686) * Implement "stop timer on answer" as a preset option * Hide timer setting on AnkiMobile (dae)
Commit: | baae685 | |
---|---|---|
Author: | Damien Elmes |
UI tweaks https://forums.ankiweb.net/t/anki-23-10-beta-1/34912/19
Commit: | e6aaeb8 | |
---|---|---|
Author: | Damien Elmes |
Expose memory state computation to Python Closes #2676
Commit: | 9cc4720 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Support fetching new cards by deck then random note https://forums.ankiweb.net/t/feature-request-option-for-new-card-gather-order-that-prioritizes-subdecks-closer-to-top-but-gathers-cards-randomly-from-each-subdeck/23178
Commit: | 2126ff9 | |
---|---|---|
Author: | Damien Elmes |
Gate graph display on fsrs status
Commit: | 03edb7b | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Store desired retention in card data If we want to be able to factor the desired retention into a sort based on relative overdueness, having the values accessible on the card makes things easier.
Commit: | c78de23 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Convert FSRS to a global option Allowing some decks to be FSRS and some SM-2 will lead to confusing behavior when sorting on SM-2 or FSRS-specific fields, or when moving cards between decks.
Commit: | f78c591 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Add an option to stop the timer on answer (#2673) * Add an option to stop the timer on answer * Fix tab order
Commit: | c2b1ab5 | |
---|---|---|
Author: | Abdo | |
Committer: | GitHub |
Skip template checks in Fields screen (#2670)
Commit: | 6074865 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Calculate parameters automatically Logic derived from https://github.com/open-spaced-repetition/fsrs-rs/commit/d8e2f6a0ffe4f5e8a3ffd0a387089be32a6adc47 Closes #2661
Commit: | a7b4c90 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Use field tags instead of hard-coding occlusion fields + Don't protect the comments field It's not required by our current code. We can remove the protection from Header and Back Extra in the future too, once we no longer depend on them. Closes #2621
Commit: | f0be697 | |
---|---|---|
Author: | Damien Elmes |
Protect image occlusion fields and cloze field
Commit: | 1e37c80 | |
---|---|---|
Author: | Damien Elmes | |
Committer: | Damien Elmes |
Add support for tagging + protecting fields
Commit: | 59759b4 | |
---|---|---|
Author: | Damien Elmes |
Start on a 'get params' button