• v0.3.0 c45fceaf7a

    chore: cut 0.3.0 — new tuning crate, retuned lifecycle constants

    swaits released this 2026-05-07 12:32:17 +00:00 | 2 commits to main since this release

    • Adds an in-repo tuning/ crate that solves the four-knob LED-threshold
      tuning problem as a 4-objective Pareto search using published
      heuropt 0.8 (NSGA-III + a-posteriori weighted ranking), replacing
      scripts/tune_runtime.py's single-composite-score grid. just tune
      runs it; the crate is its own workspace root with a local
      .cargo/config.toml overriding the firmware's inherited
      thumbv6m-none-eabi build target so it can use std.
    • Retunes the shipping defaults from the new Pareto front:
      RUN_DURATION 4h00m → 3h51m, YELLOW_AT 30 → 22, RED_AT 25 → 11,
      FAST_RED_AT 20 → 4 (LED thresholds in minutes-remaining). Across
      1,000 simulated workdays the new combination averages 26 minutes of
      lunch sleep and lands in the 12:15–12:45 sweet spot on ~57 % of days,
      with zero mean work-time failure and ~2 min/day of after-hours waste.
    • Bumps config.device_release 0x0200 → 0x0300 to match firmware
      version 0.3.0.
    • README "Why four hours…" → "Why these timings…", rewritten for the
      new methodology with the actual run statistics. src/config.rs
      module-level + lifecycle/phase comments updated accordingly.
    • Picks up a small cargo fmt drift in src/chart.rs and src/led.rs
      that had crept in under the 0.2.0 module split.

    Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

    Downloads