make global

This commit is contained in:
Luc Mcgrady 2025-06-05 18:33:45 +01:00
parent d8fc152c57
commit 0db97dd1f3
No known key found for this signature in database
GPG key ID: 4F3D7A0B17CC3D9C
8 changed files with 17 additions and 6 deletions

View file

@ -193,7 +193,6 @@ message DeckConfig {
reserved 39;
float historical_retention = 40;
string param_search = 45;
bool health_check = 47;
bytes other = 255;
}
@ -236,6 +235,7 @@ message DeckConfigsForUpdate {
// only applies to v3 scheduler
bool new_cards_ignore_review_limit = 7;
bool fsrs = 8;
bool fsrs_health_check = 11;
bool apply_all_parent_limits = 9;
uint32 days_since_last_fsrs_optimize = 10;
}
@ -259,4 +259,5 @@ message UpdateDeckConfigsRequest {
bool fsrs = 8;
bool apply_all_parent_limits = 9;
bool fsrs_reschedule = 10;
bool fsrs_health_check = 11;
}

View file

@ -40,6 +40,7 @@ pub enum BoolKey {
WithScheduling,
WithDeckConfigs,
Fsrs,
FsrsHealthCheck,
LoadBalancerEnabled,
FsrsShortTermWithStepsEnabled,
#[strum(to_string = "normalize_note_text")]

View file

@ -78,7 +78,6 @@ const DEFAULT_DECK_CONFIG_INNER: DeckConfigInner = DeckConfigInner {
fsrs_params_5: vec![],
fsrs_params_6: vec![],
desired_retention: 0.9,
health_check: false,
other: Vec::new(),
historical_retention: 0.9,
param_search: String::new(),

View file

@ -400,7 +400,6 @@ impl From<DeckConfSchema11> for DeckConfig {
desired_retention: c.desired_retention,
historical_retention: c.sm2_retention,
param_search: c.param_search,
health_check: false,
other: other_bytes,
},
}

View file

@ -158,6 +158,7 @@ impl From<anki_proto::deck_config::UpdateDeckConfigsRequest> for UpdateDeckConfi
apply_all_parent_limits: c.apply_all_parent_limits,
fsrs: c.fsrs,
fsrs_reschedule: c.fsrs_reschedule,
fsrs_health_check: c.fsrs_health_check,
}
}
}

View file

@ -41,6 +41,7 @@ pub struct UpdateDeckConfigsRequest {
pub apply_all_parent_limits: bool,
pub fsrs: bool,
pub fsrs_reschedule: bool,
pub fsrs_health_check: bool,
}
impl Collection {
@ -71,6 +72,7 @@ impl Collection {
new_cards_ignore_review_limit: self.get_config_bool(BoolKey::NewCardsIgnoreReviewLimit),
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),
days_since_last_fsrs_optimize,
})
}
@ -300,6 +302,7 @@ impl Collection {
req.new_cards_ignore_review_limit,
)?;
self.set_config_bool_inner(BoolKey::ApplyAllParentLimits, req.apply_all_parent_limits)?;
self.set_config_bool_inner(BoolKey::FsrsHealthCheck, req.fsrs_health_check)?;
Ok(())
}
@ -453,6 +456,7 @@ mod test {
col.set_config_string_inner(StringKey::CardStateCustomizer, "")?;
col.set_config_bool_inner(BoolKey::NewCardsIgnoreReviewLimit, false)?;
col.set_config_bool_inner(BoolKey::ApplyAllParentLimits, false)?;
col.set_config_bool_inner(BoolKey::FsrsHealthCheck, true)?;
// pretend we're in sync
let stamps = col.storage.get_collection_timestamps()?;
@ -489,6 +493,7 @@ mod test {
apply_all_parent_limits: false,
fsrs: false,
fsrs_reschedule: false,
fsrs_health_check: true,
};
assert!(!col.update_deck_configs(input.clone())?.changes.had_change());

View file

@ -59,6 +59,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
let computingParams = false;
let checkingParams = false;
const healthCheck = state.fsrsHealthCheck;
$: computing = computingParams || checkingParams;
$: defaultparamSearch = `preset:"${state.getCurrentNameForSearch()}" -is:suspended`;
$: roundedRetention = Number($config.desiredRetention.toFixed(2));
@ -179,7 +181,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
ignoreRevlogsBeforeMs: getIgnoreRevlogsBeforeMs(),
currentParams: params,
numOfRelearningSteps: numOfRelearningStepsInDay,
healthCheck: $config.healthCheck,
healthCheck: $healthCheck,
});
const already_optimal =
@ -333,9 +335,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
<Warning warning={tr.deckConfigRescheduleCardsWarning()} />
{/if}
<SwitchRow bind:value={$config.healthCheck} defaultValue={false}>
<SwitchRow bind:value={$healthCheck} defaultValue={false}>
<SettingTitle on:click={() => openHelpModal("deckConfigHealthCheck")}>
{tr.deckConfigHealthCheck()}
<GlobalLabel title={tr.deckConfigHealthCheck()} />
</SettingTitle>
</SwitchRow>

View file

@ -62,6 +62,7 @@ export class DeckOptionsState {
readonly applyAllParentLimits: Writable<boolean>;
readonly fsrs: Writable<boolean>;
readonly fsrsReschedule: Writable<boolean> = writable(false);
readonly fsrsHealthCheck: Writable<boolean>;
readonly daysSinceLastOptimization: Writable<number>;
readonly currentPresetName: Writable<string>;
/** Used to detect if there are any pending changes */
@ -103,6 +104,7 @@ export class DeckOptionsState {
this.newCardsIgnoreReviewLimit = writable(data.newCardsIgnoreReviewLimit);
this.applyAllParentLimits = writable(data.applyAllParentLimits);
this.fsrs = writable(data.fsrs);
this.fsrsHealthCheck = writable(data.fsrsHealthCheck);
this.daysSinceLastOptimization = writable(data.daysSinceLastFsrsOptimize);
// decrement the use count of the starting item, as we'll apply +1 to currently
@ -267,6 +269,7 @@ export class DeckOptionsState {
applyAllParentLimits: get(this.applyAllParentLimits),
fsrs: get(this.fsrs),
fsrsReschedule: get(this.fsrsReschedule),
fsrsHealthCheck: get(this.fsrsHealthCheck),
};
}