126 lines
7.4 KiB
Markdown
126 lines
7.4 KiB
Markdown
# 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.
|