docs: cut v0.17.0 — solver-driven hints + replay-rate slider
Two follow-up commits on top of v0.16.0: -87275bf: H-key hint asks the v0.15.0 solver for the actual best first move, with the existing heuristic kept as fallback. -53e3b81: Settings → Gameplay slider tunes replay playback rate (0.10–1.00 s, default 0.45 s) read per frame from SettingsResource. Adds the [0.17.0] CHANGELOG section, folds the post-v0.16.0 provisional table into a v0.17.0 shipped table in SESSION_HANDOFF, prunes the now-stale "Cut v0.17.0" item from the punch list, and re-letters the resume-prompt decision options A–D. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,37 @@ project follows [Semantic Versioning](https://semver.org/).
|
|||||||
|
|
||||||
_Nothing yet._
|
_Nothing yet._
|
||||||
|
|
||||||
|
## [0.17.0] — 2026-05-06
|
||||||
|
|
||||||
|
A short follow-up round on top of v0.16.0: the H-key hint is no
|
||||||
|
longer a heuristic guess but the actual best first move suggested by
|
||||||
|
the v0.15.0 solver, and the in-engine replay player now has a
|
||||||
|
player-tunable playback rate.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- **Replay-rate slider** in Settings → Gameplay. Tunes
|
||||||
|
`replay_move_interval_secs` from 0.10 s to 1.00 s in 0.05 s steps;
|
||||||
|
default 0.45 s. `tick_replay_playback` reads the value from
|
||||||
|
`SettingsResource` per frame so the slider takes effect on the
|
||||||
|
next playback tick — no restart required.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- **Solver-driven hints.** Pressing **H** used to surface a
|
||||||
|
heuristic-best move (foundation moves preferred, then
|
||||||
|
tableau-to-tableau by depth-of-flip-revealed). It now asks the
|
||||||
|
v0.15.0 solver for the actual provably-best first move via the
|
||||||
|
new `solitaire_core::solver::try_solve_with_first_move` /
|
||||||
|
`try_solve_from_state` APIs. When the solver returns inconclusive
|
||||||
|
(rare deals where the bound runs out before a result), the old
|
||||||
|
heuristic remains the fallback. Median 2 ms per H press.
|
||||||
|
|
||||||
|
### Stats
|
||||||
|
|
||||||
|
- 1208 passing tests (was 1196 at v0.16.0 close).
|
||||||
|
- Zero clippy warnings under `--workspace --all-targets -- -D warnings`.
|
||||||
|
|
||||||
## [0.16.0] — 2026-05-06
|
## [0.16.0] — 2026-05-06
|
||||||
|
|
||||||
A modal-feel polish round. Every overlay screen now scrolls when its
|
A modal-feel polish round. Every overlay screen now scrolls when its
|
||||||
|
|||||||
+18
-22
@@ -1,14 +1,14 @@
|
|||||||
# Solitaire Quest — Session Handoff
|
# Solitaire Quest — Session Handoff
|
||||||
|
|
||||||
**Last updated:** 2026-05-06 (mid-session post-v0.16.0) — Solver-driven hints + replay-rate slider landed on top of v0.16.0. An async-solver attempt was rolled back when an agent left 3 failing tests during interruption. Test-to-work ratio noted as a quality signal — recent agents had been mandating ≥3 tests per feature including trivial Default/serde-derive coverage; future agent briefs scale that back to behaviour-level tests only.
|
**Last updated:** 2026-05-06 (post-v0.17.0) — v0.17.0 cut on top of v0.16.0 bundling the solver-driven hints (`87275bf`) and the replay-rate slider (`53e3b81`). An async-solver attempt earlier in the session was rolled back when an agent left 3 failing tests during interruption — flagged as carryover. Test-to-work ratio noted as a quality signal: future agent briefs scale back to behaviour-level tests only, not stdlib/serde-derive coverage.
|
||||||
|
|
||||||
## Status at pause
|
## Status at pause
|
||||||
|
|
||||||
- **HEAD on origin:** v0.16.0's tag commit; this session adds two follow-up commits on top.
|
- **HEAD on origin:** v0.17.0's tag commit.
|
||||||
- **Working tree:** clean apart from untracked `CARD_PLAN.md` (intentional).
|
- **Working tree:** clean apart from untracked `CARD_PLAN.md` (intentional).
|
||||||
- **Build:** `cargo clippy --workspace --all-targets -- -D warnings` clean.
|
- **Build:** `cargo clippy --workspace --all-targets -- -D warnings` clean.
|
||||||
- **Tests:** **1208 passed / 0 failed** across the workspace.
|
- **Tests:** **1208 passed / 0 failed** across the workspace.
|
||||||
- **Tags on origin:** `v0.9.0` through `v0.16.0`. v0.17.0 not yet cut.
|
- **Tags on origin:** `v0.9.0` through `v0.17.0`.
|
||||||
|
|
||||||
## Where we are
|
## Where we are
|
||||||
|
|
||||||
@@ -28,6 +28,13 @@ The post-v0.15.0 next-round candidates are still mostly open — solver-driven h
|
|||||||
|
|
||||||
`github.com/funman300/Rusty_Solitaire` is the canonical repo. Always push there.
|
`github.com/funman300/Rusty_Solitaire` is the canonical repo. Always push there.
|
||||||
|
|
||||||
|
## v0.17.0 (shipped 2026-05-06)
|
||||||
|
|
||||||
|
| Area | Commit | What landed |
|
||||||
|
|---|---|---|
|
||||||
|
| Solver-driven hints | `87275bf` | The H-key hint asks the solver for the actual best first move via `try_solve_with_first_move` / `try_solve_from_state`. Heuristic stays as fallback. Median 2 ms per H press. |
|
||||||
|
| Replay-rate slider | `53e3b81` | Settings → Gameplay slider tunes `replay_move_interval_secs` 0.10–1.00 s in 0.05 s steps; default 0.45 s. Read per frame from `SettingsResource`. |
|
||||||
|
|
||||||
## v0.16.0 (shipped 2026-05-06)
|
## v0.16.0 (shipped 2026-05-06)
|
||||||
|
|
||||||
| Area | Commit | What landed |
|
| Area | Commit | What landed |
|
||||||
@@ -38,19 +45,11 @@ The post-v0.15.0 next-round candidates are still mostly open — solver-driven h
|
|||||||
| Scrim dismiss core | `a54201e` | New `ScrimDismissible` marker on `ModalScrim` opts a modal into click-outside-to-close. `dismiss_modal_on_scrim_click` system in `ui_modal` despawns the topmost dismissible scrim on a left-mouse press whose cursor lands on the scrim and outside every `ModalCard`. Stats / Achievements / Help opted in. |
|
| Scrim dismiss core | `a54201e` | New `ScrimDismissible` marker on `ModalScrim` opts a modal into click-outside-to-close. `dismiss_modal_on_scrim_click` system in `ui_modal` despawns the topmost dismissible scrim on a left-mouse press whose cursor lands on the scrim and outside every `ModalCard`. Stats / Achievements / Help opted in. |
|
||||||
| Scrim dismiss tail | `cbf2483` | One-line opt-in (capture scrim + insert marker) for Profile / Leaderboard / Home, completing all six read-only modals. |
|
| Scrim dismiss tail | `cbf2483` | One-line opt-in (capture scrim + insert marker) for Profile / Leaderboard / Home, completing all six read-only modals. |
|
||||||
|
|
||||||
## Post-v0.16.0 (this session, unreleased)
|
|
||||||
|
|
||||||
| Area | Commit | What landed |
|
|
||||||
|---|---|---|
|
|
||||||
| Solver-driven hints | `87275bf` | The H-key hint now asks the v0.15.0 solver for the actual best first move via the new `try_solve_with_first_move` / `try_solve_from_state` APIs. Heuristic stays as the fallback for inconclusive deals. Median 2 ms per H press. |
|
|
||||||
| Replay-rate slider | `53e3b81` | Settings → Gameplay slider tunes `replay_move_interval_secs` 0.10–1.00 s in 0.05 s steps; default 0.45 s. `tick_replay_playback` reads from `SettingsResource` per frame so the slider takes effect on the next playback tick. |
|
|
||||||
|
|
||||||
## Open punch list
|
## Open punch list
|
||||||
|
|
||||||
### Release prep
|
### Release prep
|
||||||
|
|
||||||
1. **Cut v0.17.0** when ready — solver hints + replay-rate slider is a small but coherent slice on top of v0.16.0.
|
1. **Desktop packaging** per `ARCHITECTURE.md §17`. Arch PKGBUILD exists in `/home/manage/solitaire-quest-pkgbuild/` (separate repo). Pending: app icon, macOS `.icns` + notarisation cert, Windows `.ico` + Authenticode cert, AppImage recipe.
|
||||||
2. **Desktop packaging** per `ARCHITECTURE.md §17`. Arch PKGBUILD exists in `/home/manage/solitaire-quest-pkgbuild/` (separate repo). Pending: app icon, macOS `.icns` + notarisation cert, Windows `.ico` + Authenticode cert, AppImage recipe.
|
|
||||||
|
|
||||||
### Process note (raised this session)
|
### Process note (raised this session)
|
||||||
|
|
||||||
@@ -72,9 +71,8 @@ Branch: master. Direction is OPEN — v0.16.0 just shipped covering
|
|||||||
modal scroll fixes, pointer cursor, same-frame focus, and scrim-click
|
modal scroll fixes, pointer cursor, same-frame focus, and scrim-click
|
||||||
dismiss across all six read-only modals.
|
dismiss across all six read-only modals.
|
||||||
|
|
||||||
State: HEAD post-v0.16.0 with two follow-up commits (87275bf
|
State: HEAD at v0.17.0 (solver hints + replay-rate slider on top
|
||||||
solver-driven hints, 53e3b81 replay-rate slider). v0.17.0 not yet
|
of v0.16.0). Working tree clean apart from untracked CARD_PLAN.md
|
||||||
cut. Working tree clean apart from untracked CARD_PLAN.md
|
|
||||||
(intentional).
|
(intentional).
|
||||||
Build: cargo clippy --workspace --all-targets -- -D warnings clean.
|
Build: cargo clippy --workspace --all-targets -- -D warnings clean.
|
||||||
Tests: 1208 passed / 0 failed.
|
Tests: 1208 passed / 0 failed.
|
||||||
@@ -89,16 +87,14 @@ READ FIRST (in order, before doing anything):
|
|||||||
may be missing on a fresh machine)
|
may be missing on a fresh machine)
|
||||||
|
|
||||||
DECISION TO ASK THE PLAYER FIRST:
|
DECISION TO ASK THE PLAYER FIRST:
|
||||||
A. Cut v0.17.0 (solver hints + replay-rate slider on top of
|
A. Solver-on-AsyncComputeTaskPool with progress toast + cancel.
|
||||||
v0.16.0). Tag and push.
|
|
||||||
B. Solver-on-AsyncComputeTaskPool with progress toast + cancel.
|
|
||||||
A previous attempt was rolled back when an agent left 3
|
A previous attempt was rolled back when an agent left 3
|
||||||
failing tests; redoing it needs smaller pieces. Eliminates the
|
failing tests; redoing it needs smaller pieces. Eliminates the
|
||||||
worst-case 6 s UI stall — highest gameplay impact left.
|
worst-case 6 s UI stall — highest gameplay impact left.
|
||||||
C. Per-deal "won previously" HUD indicator using the rolling
|
B. Per-deal "won previously" HUD indicator using the rolling
|
||||||
replay history's seeds.
|
replay history's seeds.
|
||||||
D. Replay sharing — copyable URL via the existing web viewer.
|
C. Replay sharing — copyable URL via the existing web viewer.
|
||||||
E. Take the deferred desktop-packaging item (needs artwork +
|
D. Take the deferred desktop-packaging item (needs artwork +
|
||||||
signing certs from the user).
|
signing certs from the user).
|
||||||
|
|
||||||
WORKFLOW NOTES:
|
WORKFLOW NOTES:
|
||||||
@@ -111,5 +107,5 @@ WORKFLOW NOTES:
|
|||||||
- Every commit must pass build / clippy / test before pushing.
|
- Every commit must pass build / clippy / test before pushing.
|
||||||
- Push to GitHub (origin) — that is the canonical remote.
|
- Push to GitHub (origin) — that is the canonical remote.
|
||||||
|
|
||||||
OPEN AT THE START: ask which of A–E. Don't pick unilaterally.
|
OPEN AT THE START: ask which of A–D. Don't pick unilaterally.
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user