[work-ts1s] Preserve readable Bright ANSI wand tuning #53

Merged
keeper merged 1 commit from work-ts1s-wand-make-readable-on-bright-ansi-resets into main 2026-10-08 11:30:14 +00:00
Collaborator

When Bright ANSI already passes contrast, Make readable now preserves the selected card and effective Lift/Saturation tuning. Previously it reset controls to 22%/100% while leaving colors unchanged, so the next edit used the wrong untouched parameter. The no-op guard also preserves manual overrides; genuine repairs keep their existing behavior.

Validation: all 15 Node suites pass, generated data and diff checks are clean. Controller regressions failed on the original code and now cover picked/manual no-ops, subsequent edits, metadata exclusion and real repair. Headless Chromium verifies both slider retention directions, Cancel, Apply as one undo step, redo, saved palette metadata exclusion and Solarized Light repair/Apply/undo, with no page errors.

When Bright ANSI already passes contrast, Make readable now preserves the selected card and effective Lift/Saturation tuning. Previously it reset controls to 22%/100% while leaving colors unchanged, so the next edit used the wrong untouched parameter. The no-op guard also preserves manual overrides; genuine repairs keep their existing behavior. Validation: all 15 Node suites pass, generated data and diff checks are clean. Controller regressions failed on the original code and now cover picked/manual no-ops, subsequent edits, metadata exclusion and real repair. Headless Chromium verifies both slider retention directions, Cancel, Apply as one undo step, redo, saved palette metadata exclusion and Solarized Light repair/Apply/undo, with no page errors.
[work-ts1s] Preserve readable bright wand tuning
All checks were successful
Mossfire web app / test (pull_request) Successful in 39s
Mossfire web app / publish (tema.uhyre.dk, global) (pull_request) Has been skipped
Mossfire web app / publish (theme.home.dpis.dk, home) (pull_request) Has been skipped
f4d865c99b
keeper approved these changes 2026-10-08 11:30:06 +00:00
keeper left a comment

Keeper review — approved.

Reviewed head f4d865c99b against main. Routine UI bugfix, no data/security/lockout surface.

What I checked:

  • Diff is minimal and matches the bead design: a Bright-only early return in makeReadable() when readable() reports no failing slots, preserving w.pick (and its non-enumerable sliders metadata), w.opts, card selection and slider state instead of re-baking and clearing them. Nonempty repairs and the ramp/accents paths are untouched.
  • Confirmed the bug: without the guard, a no-op Make readable replaced the tuned pick with a plain object, cleared opts and deselected the card, so the next slider edit fell back to defaults (22%/100%).
  • Ran the new wand.test.js harness against the pre-fix app.js in a scratch copy: it fails with the expected metadata/selection/tuning assertions, so the test is not vacuous. With the fix it passes (102514 checks over 27 themes).
  • Ran all 15 CI suites: all pass. Also ran python3 studio/tools/build_data.py; studio/data is unchanged, and git diff --check is clean.
  • PR label/reviewer and bead work-ts1s carry no review:human flag and no human is a requested reviewer; repo has no AGENTS.md/CLAUDE.md human-review clause.

No blocking findings.

Keeper review — approved. Reviewed head f4d865c99b0e10f8f8db0b27920d1eb7155f781d against main. Routine UI bugfix, no data/security/lockout surface. What I checked: - Diff is minimal and matches the bead design: a Bright-only early return in makeReadable() when readable() reports no failing slots, preserving w.pick (and its non-enumerable sliders metadata), w.opts, card selection and slider state instead of re-baking and clearing them. Nonempty repairs and the ramp/accents paths are untouched. - Confirmed the bug: without the guard, a no-op Make readable replaced the tuned pick with a plain object, cleared opts and deselected the card, so the next slider edit fell back to defaults (22%/100%). - Ran the new wand.test.js harness against the pre-fix app.js in a scratch copy: it fails with the expected metadata/selection/tuning assertions, so the test is not vacuous. With the fix it passes (102514 checks over 27 themes). - Ran all 15 CI suites: all pass. Also ran python3 studio/tools/build_data.py; studio/data is unchanged, and git diff --check is clean. - PR label/reviewer and bead work-ts1s carry no review:human flag and no human is a requested reviewer; repo has no AGENTS.md/CLAUDE.md human-review clause. No blocking findings.
keeper merged commit 1fadb68517 into main 2026-10-08 11:30:14 +00:00
Sign in to join this conversation.
No reviewers
No labels
review:human
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
daniel/mossfire!53
No description provided.