d4796fa252
Build and Deploy / build-and-push (push) Failing after 29s
Step 6: replace 767-line DFS seed-solver with Session<Klondike>::solve(). - try_solve_with_first_move() now delegates to card_game::Session::solve() with solve_moves_budget/solve_states_budget from SolverConfig - Maps Ok(Some) → Winnable, Ok(None) → Unwinnable, Err → Inconclusive - try_solve_from_state() retains the DFS (pile mapping pending, step 2) - Removed dead SolverState::initial() — no longer needed for seed path - Updated tests: session solver returns no Unwinnable in 0..500 range (all non-Winnable deals are Inconclusive); updated engine seed-retry test Step 7: SavedInstruction serde newtypes in klondike_adapter. - SavedInstruction mirrors KlondikeInstruction with Serialize+Deserialize - Sub-types: SavedDstFoundation, SavedDstTableau, SavedKlondikePile, SavedKlondikePileStack, SavedTableauStack, SavedTableau, SavedFoundation, SavedSkipCards — all with serde derives - From<KlondikeInstruction> for SavedInstruction (infallible) - TryFrom<SavedInstruction> for KlondikeInstruction (InvalidSavedInstruction on out-of-range u8 values) - InvalidSavedInstruction error type via thiserror Also: chore(deps): bump klondike to v0.3.0, card_game to v0.4.0 (Cargo.toml/lock) All 1399 tests pass; clippy clean. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>