Repository navigation
test(editor): verify mastery slider end to end on editor-saved packs (#36) - #67
Merged
Merged
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (1 file)
Previous Review Summary (commit 1526d41)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 1526d41)Status: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (2 files)
Reviewed by free · Input: 60.1K · Output: 1.7K · Cached: 136.7K |
cchacs
approved these changes
Oct 10, 2026
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.
What
Verifies the mastery slider works end to end on an editor-saved pack, closing issue #36 (sub-issue 4/4 of #3).
The editor authors per-phrase tiers (
src/tiers.js— "Simplify phrase at cursor"), the save path writes them to each phrase's on-disklevels[](_repopulate_phrase_levels, from #33), and feedBack core's highway consumes them —static/highway.js_rebuildMasteryFilterpicks one level per phrase from the master-difficulty slider. Core owns that consumer, so this suite mirrors its semantics (phraseLevelTiers/phraseLevelIndexForMastery/_rebuildMasteryFilter) and drives the mirror over the save path's real output — exactly what lands in a saved.feedpak.Acceptance criteria covered
test_authored_tier_changes_the_rendered_note_set,test_cascade_ladder_keeps_every_derived_rung_distinct).test_untiered_pack_shows_the_same_notes_at_every_slider_position,test_fresh_phrase_with_empty_levels_contributes_nothing).[Unreleased]entry describes the verification, and the 1.4.3 note is amended so its no-op framing is scoped to the version it described.A mirror-lock test pins the ported mapping against the contract core documents next to the function (full ladder ==
floor(mastery * n)whenmax_difficultyisn-1, sparse-ladder band coverage, positional fallback on malformed ladders, and the intentional divergence when a ladder's top tier sits belowmax_difficulty). A mutation check confirmed the tiered-pack tests fail when the save path's authored-tiers branch is disabled.Tested
python3 -m pytest tests— 502 passed, 5 skippednpm test— 400/400 passnpm run lint— 0 errors, 3 pre-existing warnings (baseline)No product code changed. Manual host-side check documented in the suite docstring:
Alt+Pa phrase, save, load in the host, drag the master-difficulty slider.big-pickle(free) | 𝕏