From f5285f359a50bc4614c93fedf824adeef105cee7 Mon Sep 17 00:00:00 2001 From: Luc Mcgrady Date: Fri, 4 Jul 2025 09:32:09 +0100 Subject: [PATCH] Feat/Add legacy evaluate config bool (#4149) * Feat/Add legacy evaluate config bool * Minor tweaks based on PR suggestions (dae) New enabling command: from anki.config import Config mw.col.set_config_bool(Config.Bool.FSRS_LEGACY_EVALUATE, True) --- proto/anki/config.proto | 1 + proto/anki/deck_config.proto | 1 + qt/aqt/mediasrv.py | 2 +- rslib/src/backend/config.rs | 1 + rslib/src/config/bool.rs | 1 + rslib/src/deckconfig/update.rs | 1 + ts/routes/deck-options/FsrsOptions.svelte | 9 ++++----- ts/routes/deck-options/lib.ts | 2 ++ 8 files changed, 12 insertions(+), 6 deletions(-) diff --git a/proto/anki/config.proto b/proto/anki/config.proto index d61f139d6..ea115f0fc 100644 --- a/proto/anki/config.proto +++ b/proto/anki/config.proto @@ -56,6 +56,7 @@ message ConfigKey { RENDER_LATEX = 25; LOAD_BALANCER_ENABLED = 26; FSRS_SHORT_TERM_WITH_STEPS_ENABLED = 27; + FSRS_LEGACY_EVALUATE = 28; } enum String { SET_DUE_BROWSER = 0; diff --git a/proto/anki/deck_config.proto b/proto/anki/deck_config.proto index 831283931..9dae49c6a 100644 --- a/proto/anki/deck_config.proto +++ b/proto/anki/deck_config.proto @@ -236,6 +236,7 @@ message DeckConfigsForUpdate { bool new_cards_ignore_review_limit = 7; bool fsrs = 8; bool fsrs_health_check = 11; + bool fsrs_legacy_evaluate = 12; bool apply_all_parent_limits = 9; uint32 days_since_last_fsrs_optimize = 10; } diff --git a/qt/aqt/mediasrv.py b/qt/aqt/mediasrv.py index c6e53f997..f08be4cef 100644 --- a/qt/aqt/mediasrv.py +++ b/qt/aqt/mediasrv.py @@ -651,7 +651,7 @@ exposed_backend_list = [ "compute_fsrs_params", "compute_optimal_retention", "set_wants_abort", - "evaluate_params", + "evaluate_params_legacy", "get_optimal_retention_parameters", "simulate_fsrs_review", # DeckConfigService diff --git a/rslib/src/backend/config.rs b/rslib/src/backend/config.rs index 349f2d9af..b6e81ce2a 100644 --- a/rslib/src/backend/config.rs +++ b/rslib/src/backend/config.rs @@ -39,6 +39,7 @@ impl From for BoolKey { BoolKeyProto::RenderLatex => BoolKey::RenderLatex, BoolKeyProto::LoadBalancerEnabled => BoolKey::LoadBalancerEnabled, BoolKeyProto::FsrsShortTermWithStepsEnabled => BoolKey::FsrsShortTermWithStepsEnabled, + BoolKeyProto::FsrsLegacyEvaluate => BoolKey::FsrsLegacyEvaluate, } } } diff --git a/rslib/src/config/bool.rs b/rslib/src/config/bool.rs index 39273b931..c76787cb0 100644 --- a/rslib/src/config/bool.rs +++ b/rslib/src/config/bool.rs @@ -41,6 +41,7 @@ pub enum BoolKey { WithDeckConfigs, Fsrs, FsrsHealthCheck, + FsrsLegacyEvaluate, LoadBalancerEnabled, FsrsShortTermWithStepsEnabled, #[strum(to_string = "normalize_note_text")] diff --git a/rslib/src/deckconfig/update.rs b/rslib/src/deckconfig/update.rs index 128e43770..9eb3b595f 100644 --- a/rslib/src/deckconfig/update.rs +++ b/rslib/src/deckconfig/update.rs @@ -74,6 +74,7 @@ impl Collection { apply_all_parent_limits: self.get_config_bool(BoolKey::ApplyAllParentLimits), fsrs: self.get_config_bool(BoolKey::Fsrs), fsrs_health_check: self.get_config_bool(BoolKey::FsrsHealthCheck), + fsrs_legacy_evaluate: self.get_config_bool(BoolKey::FsrsLegacyEvaluate), days_since_last_fsrs_optimize, }) } diff --git a/ts/routes/deck-options/FsrsOptions.svelte b/ts/routes/deck-options/FsrsOptions.svelte index 5ee3a5d17..706407889 100644 --- a/ts/routes/deck-options/FsrsOptions.svelte +++ b/ts/routes/deck-options/FsrsOptions.svelte @@ -10,7 +10,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import { SimulateFsrsReviewRequest } from "@generated/anki/scheduler_pb"; import { computeFsrsParams, - evaluateParams, + evaluateParamsLegacy, getRetentionWorkload, setWantsAbort, } from "@generated/backend"; @@ -244,10 +244,10 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html const search = $config.paramSearch ? $config.paramSearch : defaultparamSearch; - const resp = await evaluateParams({ + const resp = await evaluateParamsLegacy({ search, ignoreRevlogsBeforeMs: getIgnoreRevlogsBeforeMs(), - numOfRelearningSteps: $config.relearnSteps.length, + params: fsrsParams($config), }); if (computeParamsProgress) { computeParamsProgress.current = computeParamsProgress.total; @@ -361,8 +361,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html {tr.deckConfigOptimizeButton()} {/if} - {#if false} - + {#if state.legacyEvaluate}