feat: launch local-first Sudoku workbench

This commit is contained in:
2026-08-30 14:14:11 +02:00
commit 659640b231
97 changed files with 19111 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
# Security and privacy
## Local-first boundary
Sudoku Tools has no application network client, remote puzzle resolver,
telemetry or account system. File and text imports are read locally. The
Toolbox shell may fetch its same-origin catalogue when the app is launched from
the Portal; that catalogue never receives puzzle contents.
Browser developer tools, extensions, a compromised host page, or any other
script trusted on the same origin remain outside this application's security
boundary. Exported files and URL fragments are plaintext puzzle data.
## Untrusted input
Imported text, JSON, URLs and local database records are untrusted. Parsers use
explicit schemas and limits for input bytes, dimensions, cells, constraints,
metadata and saved records. Unknown variant constraints fail visibly. User text
is rendered as React text and is never inserted as HTML. Imported links are not
opened automatically.
Solver and generator searches are bounded, cancellable and run in a worker.
Solution counting stops after the requested cap—two by default for uniqueness.
The UI remains usable if a worker is cancelled or fails.
## Persistence
IndexedDB records are versioned and bounded. Saving is explicit; deleting a
project or clearing the local library removes only this application's records.
Private browsing, browser storage pressure and profile clearing may erase them,
so important puzzles should be exported.
## Reporting
Please report vulnerabilities privately to the repository owner before opening
a public issue when disclosure could expose users.