First start redesign (#148 step 6) #160
No reviewers
Labels
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
schaefera/utStudyBIble!160
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/redesign-first-start"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
The first-run page in the Lapis style (board E7): check squares with a short title and a detail line (name, size, what the module offers, licence), the total in the footer, one lapis Download. Language is a row opening a sheet.
New
titlefield on every preset module andModule::note, built from its features and role. Both were asked for by the owner after trying it on the phone.Also fixes the count staying stale when the language changes. Part of #148.
Blast radius
Tier: trunk
Trunk paths touched:
presets/*.toml,qt/src/installer.rs,tools/e2e/cases/starter-language.sh,tools/ci/preset-check/Testing tier: standard
Gate / rollback: no flag; revert this merge.
titleis a new required preset field, read from the bundled presets only, so no user data or migration is involved.Budgets: peak PSS 173019 kB normal, 178272 kB slow (budget 185000; #159 was 172891 and 178155). Start-up work unchanged: the page shows only on a first run.
Proof
cargo makegreen;cargo make app-dockergreen, numbers above. CI green on3154102: changes, preset-check, rust, audit, app, e2e, click.starter-language(new),starter-install,starter-failpass. preset-check tests 15 + 4 pass.has("red-letters")broken inModule::note:note_says_what_a_module_offersfails ("Strong's, morphology"against"Strong's, morphology, red letters").#[qinvokable]removed frommoduleNote:starter-languagefails,KJV row: 'King James Version' 'KJV · 4.0 MB · GPL'.selected().len() + 1inselectedCount:starter-languagefails,one tick: '2 modules · 4.0 MB'.KJV · 4.0 MB · Strong's, morphology, red letters · GPL).Review
Reviewer: claude-review. Review 409 (high,
299d38c): one low, fixed in7f71f75. Review 411 (medium,3154102, range 299d38c..3154102): no findings. Nothing deferred or open.Review-Confidence: 100
Confidence by part
Module::note: high, tested and seen on the phone. The German strings are mine and have not been read by a native speaker.starter-languagewith a mutation shown to fail it.moduleNote,moduleTitle,selectedCount): high. A missing#[qinvokable]onmoduleNoteslipped past the tests during this work and was spotted in a screenshot;starter-languagenow asserts the row.moduleTitleis asserted by the same line.🤖 Generated with Claude Code
Review level: high (blast radius: trunk; tier: standard)
Commit:
299d38c757Range: origin/main...HEAD
Files: docs/10-design.md, po/de.po, po/lectern.aps.pot, qml/controls/LapisButton.qml, qml/controls/TickRow.qml, qml/controls/qmldir, qml/pages/StarterPage.qml, qml/qml.qrc, qt/src/installer.rs, tools/e2e/cases/starter-language.sh
I followed the changes into core/src/starter.rs and presets, the ValueRow, ChoiceSheet, BottomSheet, OutlineButton and ThinProgress controls, tools/e2e/lib.sh, and the other starter e2e cases. I found no high or medium defects.
Findings outside the diff: none.
Findings on diff lines: 1 low, inline.
@ -0,0 +32,4 @@e2e_xy=$(e2e_last 'utsb: starter language-choice Français ')e2e_tap $e2e_xye2e_wait 'utsb: starter tick FreSegond1910 ' $((e2e_seen + 1))e2e_wait 'utsb: starter download .* on' 1low · this wait cannot do its job: 'starter download .* on' already has a line from before the language change (the first report), so waiting for 1 returns at once. The only real sync point is the FreSegond1910 tick wait on line 34, but in reportControls() the tick lines print before the 'language' and 'total' lines. If the poll runs between those writes,
e2e_last 'starter language 'still reads 'English' and the case fails with 'not French' (a rare flake). Takee2e_seen=$(e2e_count 'utsb: starter download .* on')before the tap and wait for$((e2e_seen + 1)), as the other steps do; the download line is the last one a report prints.Answer to review 409. The low on
tools/e2e/cases/starter-language.sh(thedownload .* onwait was already satisfied, so the language could be read mid-report) is fixed in7f71f75: the case counts those lines before the tap and waits for one more, the download line being the last of a report.starter-languagepasses locally on that commit. This touches trunk (tools/e2e/), so a medium re-review follows, together with anything the phone check changes.Review level: medium. Reviewed commit:
315410264f. Range: 299d38c..HEAD.Files: core/src/presets.rs, core/src/presets/tests.rs, docs/10-design.md, po/de.po, po/lectern.aps.pot, presets/{deutsch,english,francais,original-languages,study}.toml, qml/pages/StarterPage.qml, qt/src/installer.rs, tools/ci/preset-check/src/tests.rs, tools/ci/preset-check/tests/cli.rs, tools/e2e/cases/starter-language.sh.
Findings: none with a concrete failure scenario. Checked: every module in all five presets has a title (counts match); the only other Module constructors (preset-check tests) were updated; no leftover moduleDescription users; the new strings in po/ are sensible.
WIP: First start redesign (#148 step 6)to First start redesign (#148 step 6)Merge gate: approved on
3154102. No high or medium findings (review 409 low fixed in7f71f75, review 411 none). PR commits end at3154102. CI is green on head (7 of 7 contexts). Proof lists no unrun elevated, maximum or AI-behavior gate. Audit Review-Confidence 100.