diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 8f167b962..d334540fb 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -230,6 +230,7 @@ KolbyML Adnane Taghi Spiritual Father Emmanuel Ferdman +Sunong2008 Marvin Kopf ******************** diff --git a/build/runner/src/pyenv.rs b/build/runner/src/pyenv.rs index 82b3b49ed..934b88bbc 100644 --- a/build/runner/src/pyenv.rs +++ b/build/runner/src/pyenv.rs @@ -27,6 +27,13 @@ pub fn setup_pyenv(args: PyenvArgs) { let pyenv_python = pyenv_bin_folder.join("python"); let pip_sync = pyenv_bin_folder.join("pip-sync"); + // Ensure the venv gets recreated properly if it was created by our uv branch + let cache_tag = pyenv_folder.join("CACHEDIR.TAG"); + if cache_tag.exists() { + println!("Cleaning up uv pyenv..."); + std::fs::remove_dir_all(pyenv_folder).expect("Failed to remove pyenv folder"); + } + if !pyenv_python.exists() { run_command( Command::new(&args.python_bin) diff --git a/ftl/core/deck-config.ftl b/ftl/core/deck-config.ftl index 15507f468..6b8ebbfa5 100644 --- a/ftl/core/deck-config.ftl +++ b/ftl/core/deck-config.ftl @@ -483,6 +483,7 @@ deck-config-percent-of-reviews = *[other] { $pct }% of { $reviews } reviews } deck-config-percent-input = { $pct }% +deck-config-checking-for-improvement = Checking for improvement... deck-config-optimizing-preset = Optimizing preset { $current_count }/{ $total_count }... deck-config-fsrs-must-be-enabled = FSRS must be enabled first. deck-config-fsrs-params-optimal = The FSRS parameters currently appear to be optimal. diff --git a/python/requirements.bundle.txt b/python/requirements.bundle.txt index 1540ba074..f1af449ac 100644 --- a/python/requirements.bundle.txt +++ b/python/requirements.bundle.txt @@ -362,9 +362,9 @@ pysocks==1.7.1 \ --hash=sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5 \ --hash=sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0 # via requests -requests==2.32.3 \ - --hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ - --hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 +requests==2.32.4 \ + --hash=sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c \ + --hash=sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422 # via # -r requirements.anki.in # -r requirements.aqt.in diff --git a/python/requirements.dev.txt b/python/requirements.dev.txt index 671a8ee9b..9b96a1cd4 100644 --- a/python/requirements.dev.txt +++ b/python/requirements.dev.txt @@ -502,9 +502,9 @@ pytest==8.3.2 \ --hash=sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5 \ --hash=sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce # via -r requirements.dev.in -requests==2.32.3 \ - --hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ - --hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 +requests==2.32.4 \ + --hash=sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c \ + --hash=sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422 # via # -r requirements.anki.in # -r requirements.aqt.in diff --git a/ts/reviewer/reviewer.scss b/ts/reviewer/reviewer.scss index 019cf1a81..a2c05d3f5 100644 --- a/ts/reviewer/reviewer.scss +++ b/ts/reviewer/reviewer.scss @@ -7,6 +7,8 @@ hr { background-color: vars.palette(darkgray, 0); margin: 1em 0; + border: none; + height: 1px; } body { diff --git a/ts/routes/deck-options/FsrsOptions.svelte b/ts/routes/deck-options/FsrsOptions.svelte index af0a468ea..1787da899 100644 --- a/ts/routes/deck-options/FsrsOptions.svelte +++ b/ts/routes/deck-options/FsrsOptions.svelte @@ -207,7 +207,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html } if (!already_optimal) { $config.fsrsParams6 = resp.params; - optimized = true; + setTimeout(() => { + optimized = true; + }, 201); } if (computeParamsProgress) { computeParamsProgress.current = computeParamsProgress.total; @@ -281,7 +283,11 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html if (val instanceof ComputeRetentionProgress) { return `${pct}%`; } else { - return tr.deckConfigPercentOfReviews({ pct, reviews: val.reviews }); + if (val.current === val.total) { + return tr.deckConfigCheckingForImprovement(); + } else { + return tr.deckConfigPercentOfReviews({ pct, reviews: val.reviews }); + } } }