Skip to content

Fix configuration persistence and add host tests - #13

Merged
PurpleSentinel merged 1 commit into
v3from
fix/issues-6-7-8-9-12
Aug 9, 2026
Merged

Fix configuration persistence and add host tests#13
PurpleSentinel merged 1 commit into
v3from
fix/issues-6-7-8-9-12

Conversation

@PurpleSentinel

Copy link
Copy Markdown
Contributor

Summary

  • make timer/session logic importable and testable on CPython
  • preserve current editor selections and safely persist a launch sensitivity of zero
  • validate, migrate, and atomically/recoverably store configuration
  • establish canonical v3.2 configuration keys and update user documentation
  • add a 23-test host suite and GitHub Actions workflow

Root cause

Configuration values were selected and updated using fixed indexes and truthiness checks, so opening an editor reset its value and SENSITIVITY=0 corrupted the in-memory settings object. JSON writes truncated the active file before serialization and unvalidated keys were injected into globals. Hardware imports also prevented normal host-side regression testing.

User impact

Track/rest selections now reopen at their saved values, Launch Mode can be disabled persistently, damaged or legacy configuration is recovered into safe canonical values, and future changes receive automated host-side coverage.

Physical LCD, touch, IMU, pinout, and real-world launch threshold behavior remain outside host test coverage.

Validation

  • python3 -m unittest discover -s tests -q — 23 tests passed
  • mocked firmware entry-point import
  • Python AST and JSON parsing
  • git diff --check

Closes #6
Closes #7
Closes #8
Closes #9
Closes #12

@PurpleSentinel
PurpleSentinel merged commit aedab92 into v3 Aug 9, 2026
2 checks passed
@PurpleSentinel
PurpleSentinel deleted the fix/issues-6-7-8-9-12 branch August 10, 2026 19:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment