# Changelog All notable changes are documented here. ## Unreleased ## 0.2.1 - 2026-08-31 - Fixed compact solver-step cards so their explanations no longer overflow. - Fixed 75% board zoom and removed unnecessary inner scrolling at fitted and reduced board sizes. - Changed the standard digit keypad to a 3-by-3 layout with a full-width Erase key, while retaining a 4-column layout for larger grids. - Kept board and sidebar widths stable across Play, Set, Generate, Solve and Helpers, with helper controls reflowing inside the shared sidebar width. ## 0.2.0 - 2026-08-31 - Added staged guided hints that reveal focus, technique, reasoning and effects before an explicit, undoable apply action. - Added legal centre-candidate filling, invalid note pruning and optional peer note maintenance after placements; erasing a value never invents candidates. - Added Jellyfish, finned X-Wing/Swordfish, Skyscraper, Two-String Kite, Simple Colouring, W-Wing, X-Chain, XY-Chain and alternating-inference-chain logical steps with deterministic evidence. - Added Unique Rectangle only behind a completed exact uniqueness proof; a truncated search never enables uniqueness-dependent logic. - Added quick and full setter-quality audits with ambiguity witnesses, contradiction suspects, per-item critical/redundant/unknown findings, a cell heatmap and optional bounded minimality proof. - Added explicit per-check and aggregate quality budgets, cancellation and serializable check evidence so a capped search remains unknown rather than becoming a false proof. - Added minimum, odd/even, disjoint-groups, little-killer and sandwich rules across validation, candidate filtering, exact solving, rendering and setting. - Added between, German-whisper, region-sum, modular, entropic and zipper lines; clone and extra regions; double arrows; and row, column and box indexers. - Added display-only Fog of War backed by a complete locally stored solution. Only initial lights, givens and correctly entered values reveal cells; fog is never treated as an extra solution constraint. - Added optional digit-completion counts with muted complete digits and red over-completion warnings. - Added toggleable Ctrl/Command-click matching-digit highlights without turning the highlights into an editable multi-selection. - Fixed cage replacement and removal in the setter so overlapping cages cannot remain accidentally active. - Replaced ambiguous V/X pair labels on the board with numbered 5/10 badges and gave inequalities a directional chevron with a marked lesser-value tip. - Added fourteen uniquely checked built-in examples covering the original core constraint families. - Expanded bounded, seedable generation for classic and twelve variant families with mixed-family recipes, sparse/balanced/dense clue controls and additional reflection, diagonal and four-way clue symmetries. - Added explicit minimal-givens mode with proof/unknown reporting, deterministic batches of up to 12 candidates and rankings by difficulty or clue count. - Added required/forbidden/minimum/maximum logical-technique profiles and an exact hardest-technique target, accepted only against an independent complete logical path and exact uniqueness check. - Added X-sum, skyscraper, quadruple and maximum-cell constraints across the model, validator, exact solver, renderer, setter and f-puzzles interchange. - Added per-clue false semantics for liar/Wrogn puzzles, including bounded impossible decoy numbers and a setter-wide false-clue mode. - Added the original, uniquely verified “Truth and lies” example demonstrating true and false outside, inclusion, maximum, cage, line and pair clues. - Added outside-grid clue margins, combined dual X-sum/skyscraper labels, outward maximum arrows and visually distinct false clues. - Added strict, bounded local imports for SudokuPad/CTC data and supported Penpa+ long links, with a structured preview of mapped semantics, preserved drawings, metadata and compatibility warnings. - Added a bounded inert visual model for f-puzzles and SCL lines, polylines, rectangles, ellipses, circles and text; source identity, scalar metadata and drawings survive edits, explicit saves, autosaves, reopening and project/share round-trips without becoming rules, and render beneath Fog on the board. - Added SudokuPad/CTC JSON and self-contained `scl…` export with progress, regions, cages and canonical constraint drawings, while rejecting negated clues or free-form global rules it cannot preserve safely. - Added a compatibility check which never fetches SudokuPad short IDs or other server-hosted puzzle references. - Added standalone SVG, high-resolution PNG and single-page PDF visual exports for supported constraints, safe preserved drawings, givens and optional solving progress. - Added named savepoints, isolated hypothesis branches, keep/discard decisions and read-only replay of complete solving states. - Added debounced recovery snapshots for puzzle state, progress, aid-mémoire and a validated, size-bounded gameplay history, with explicit restore/discard handling after an interruption. - Upgraded the local Library with title/tag search, tag and completion filters, safe grid thumbnails, tag editing and selected export, duplication or confirmed deletion. - Added a relative-scope web app manifest and subpath-aware service worker with an offline application-shell fallback after the first successful load. - Added an optional configurable aid-mémoire whose labelled scratch cells support values, both note styles and colours without constraining the puzzle; its state is preserved in undo, replay, Library progress and project/share interchange. - Added a generalized Sum Lab with independent digit bounds, repeats, required/excluded digits, selected-cell candidates, positional assignments and reversible manual eliminations. - Added Candidate Lab filters, selected/touching/specific-house scopes, house positions, strong conjugate/bivalue links, weak links and bounded board overlays. - Added technique-targeted practice generation which mines a bounded, deterministic set of uniquely checked puzzles and verifies the requested technique in the logical solve path. - Added a persisted 75–200% board viewport, Fit and board-scoped zoom shortcuts, plus an announced Pan mode which pauses cell pointer targeting. - Added tap-toggle multi-selection and a single safe-area-aware sticky entry pad at narrow widths, with touch-sized zoom controls. - Added eight hue-and-pattern colour marks, configurable off/concise/detailed candidate narration, and fog-safe board, toolbar, helper and guided-hint boundaries. - Added real ARIA row/gridcell semantics, detailed cell descriptions and non-wrapping Arrow, Home/End, Control/Command + Home/End and Page Up/Down keyboard navigation for the puzzle and scratch grids. - Made Killer cage repeat semantics explicit in the setter and independent of whether a clue is required to be true or false. ## 0.1.0 - 2026-08-30 - Initial local-first Sudoku setting, playing, solving and analysis workbench. - Added bounded classic and variant puzzle models, validation and exact solving. - Added explainable human-style deductions and full solve-path inspection. - Added Killer combination, relation and house-analysis helpers. - Added local projects, progress, import/export and compact share fragments. - Added deterministic packaging, browser tests and Toolbox SDK integration.