What's new
Every change, straight from the changelog. Newest first.
In progress
- Removed: a client's name from every surface and both published packages
- Added: Play is reachable from the rest of the productHeader β a Play entry in the primary nav and in the Browse panel, next to "All tools" rather
- Added: the play hub is a library you can search
- Fixed: three games had claimed shared CSS class names.play-count (Quick Count) made the hub's tally render one word per line.
- Added: Play arcade wave 13: the final ten β the catalogue reaches 100Tile Rotate is 3Γ3 and not 4Γ4 for a provable reason. A pivot turn moves the total of all nine
- Added: Play arcade wave 12: six more gamesLock Dials (deduction) β four dials pinned by published rules. The untrimmed rule pool is
- Fixed: a helper named useBay was read as a React Hook
- Added: Play arcade wave 11: six more gamesParity Bits (deduction) β eight bits, five overlapping parity checks, one flipped bit. The
- Fixed: the gear rail was unreachable by keyboard on a narrow screen
- Added: Play arcade waves 9 and 10: eleven more games
- Fixed: River Cross could reach a position that was neither won nor lost
- Added: Play arcade wave 8: six more games built in parallelWater Jugs (deduction) β three unmarked jugs and an exact target. Targets are chosen from a
- Added: Play arcade wave 7: six more games built in parallelRing Turn (tile) β three stacked turntables of 20, 12 and 4 slots; turning one carries every
- Added: Play arcade wave 6: six more games built in parallelBlock Fit (tile) β the tray is dissected into connected regions first and those regions
- Added: Play arcade wave 5: six more games built in parallelColour Lines (spatial) β the answer is built first by welding 25 single-square paths together
- Fixed: a pointer gesture could fire twice
- Added: Play arcade wave 4: six more games built in parallelFence Loop (deduction) β every closed loop on the lattice is the boundary between the cells it
- Added: Play arcade wave 3: six more games built in parallelMirror Maze (spatial) β place 45Β° mirrors to steer a beam onto a detector. The stock you get is
- Added: Play arcade wave 2: six more games built in parallelStone Drop (zen) β the pile is built backwards from empty by inserting whole collapsible
- Added: Play arcade wave 1: six games built in parallelWord Hunt (word) β six real words hidden eight ways in a letter grid. The answer key is chosen
- Fixed: a latent AA failure in the shared cell styling
- Added: scripts/wire-play-game.mjs
- Added: Grid Clues (deduction)
- Added: Mini Sudoku (number)
- Decision: the registry stays git + JSON, with no database mirror
- Added: Colour Sort (tile)The generator produced solvable deals that were already nearly solved β a histogram over 300
- Added: Play arcade batch 6: the five remaining familiesPipe Flow (spatial) β rotate tiles until the source reaches the drain. A route is carved
- Added: LoopShell, the real-time counterpart to ArcadeShell
- Fixed: the release channel could publish once and then silently stop
- Fixed: a profile test raced its own write
- Fixed: five red tests on main (pre-existing, blocking the Play work)FUNNELS enum drift β packages/registry/src/schema/enums.ts carried three funnels
- Added: npm packages, and the recipe for the rest of the catalogueFour packages prepared for publication: @demystify/play-sdk, play-runtime, play-packs
- Added: arcade batch 5: Anagram Rush and Sequence EchoAnagram Rush. The solver is a signature index β sort a word's letters and every anagram shares
- Added: arcade batch 4: Word Ladder, and the word list it neededThe word list is verified, not just written. 1,292 common four-letter words, filtered to the
- Added: arcade batch 3: Pair Flip and Target 24Pair Flip (memory). Faces are shapes, not colours β the classic game is unplayable for a
- Added: arcade batch 2: Slide Fifteen and Prime SweepSlide Fifteen (tile). Never shuffled β scrambled by making legal moves backwards from the
- Added: the arcade shell, the full-screen surface, and the tools rails on game pagesArcadeShell is the arithmetic docs/43 Β§7 rests on: seeding, the input layer, the keyboard
- Changed: truth documents reconcileddocs/REGISTRY-TRUTH.md now records all four populations and the rule that binds them: they
- Added: the pack manager, the progress page, and the outbox/play/packs. Two rules from docs/43 Β§8 shape it: a pack shows its size before you
- Fixed: three intermittent E2E failures, all at the causejson-schema-validator used a bare getByText(/problem/) that also matched the page's own MDX
- Added: Quick Quiz: the first content-driven formatThe format/content bet, proven. quick-quiz knows nothing about logic, history or GST β the
- Added: the learning engine, content packs, and the pack toolchain@demystify/play-learn β three algorithms answering three distinct questions, deliberately
- Added: the /play surface, the play skin, and the first game/play and /play/{id}. PlayPageShell mirrors ToolPageShell's anatomy so gate 12's
- Added: gate 15: the play determinism lintWalks the TypeScript AST of every game source and rejects Math.random, Date.now,
- Added: @demystify/play-sdk and @demystify/play-runtimeplay-sdk (zero runtime deps): the GameModule contract, sfc32 seeded RNG, the daily-seed
- Added: Play registry: the kind:"play" population and content packskind: "play" joins tool and playground as a registry population, routed to /play/{id}
- Added: Demystify Play: docs + the Game Forge skilldocs/43-PLAY-BUILD-PLAN.md β the play suite build plan: 20 reusable game formats Γ 20
- Added: Playgrounds surface live (kind-aware pipeline + first playground)New population kind: "playground" β the concept playables now live in the one
- Added: pgp-toolkit live (first Phase-1 client-crypto tool; 286 β 287 published)PGP toolkit (T2) β generate a Curve25519 keypair, encrypt/decrypt a message, and sign/verify β
- Added: @demystify/tools-testkit (completes the package set)A framework-agnostic test harness for tool engines β runIoCases / runSchemaCases (validates
- Added: HowTo JSON-LD on every tool page (completes the structured-data set)A new howto generator parses each tool MDX ## How to use it steps into content/howto.ts, and
- Added: @demystify/tools-sdk + a live remote MCP endpoint@demystify/tools-sdk β a tiny typed client for the REST API: new DemystifyTools().run(id, input)
- Added: PWA extras (durability, share target, update toast)navigator.storage.persist() on load so the local profile survives Safari eviction; a manifest
- Added: SEO/AEO: hub URLs in the sitemap + a direct-answer block on every tool pageThe sitemap now lists the 11 suite hubs (/suite/{id}) and 12 persona hubs (/for/{slug}) alongside
- Added: Pin / favorites (visible now)The profile already stored pinned and the launcher showed a Pinned rail, but there was no way to
- Changed: URLs moved to root on tools.demystifysystem.com (dropped the redundant /tools)The app now serves at the root of its own subdomain: a tool is tools.demystifysystem.com/<slug>,
- Changed: Compact hero + sticky header on the home pageThe home hero was eating half the screen before any tools showed. It's now compact (tighter
- Fixed: Global header collided with tool tests (E2E was red on main)The new header put an aria-label on the Search button and brand link, which collided with the
- Changed: Home page: faceted filters, suite moved to the right, scroll-to-tilesThe home left rail is now a filter panel (replacing the trivia cards): filter the whole
- Added: Feedback everywhere + expand/collapse-allEvery tool page now has "Report a bug Β· Request a change" links that deep-link the intake form
- Added: Docs hub + header/footer nav, tool-page accordions, related-tool cardsSimple docs navigation, like an npm/PyPI page. The header now carries Docs Β· API Β· MCP
- Added: Global header on tool & platform pages + home railsGlobal SiteHeader now appears on every tool page and platform page (not on embeds): brand
- Added: 6 more engine bindings (API + MCP now expose 21 tools)Bound six more pure, deterministic, test-covered engines to the shared binding manifest, so they
- Changed: Motion standardized + reduced-motion hardenedInteractive links across the new platform/launcher/embed surfaces get a consistent, subtle
- Added: Platform pages (trust Β· quality Β· mcp Β· what's-new)/tools/trust β the claimsβcontrols table: every public privacy promise mapped to the
- Added: Local MCP server (@demystify/tools-mcp)New packages/mcp β a stdio MCP server exposing the tool engines to any MCP client
- Added: Packages made publish-ready (engines Β· ui Β· registry Β· runner)The four @demystify/ packages now carry full publish metadata (version 0.1.0, repository,
- Added: Chrome extension (MV3, offline launcher)New apps/extension β a zero-tracking MV3 extension: popup search-as-you-type over the
- Fixed: Brand logos were 404ing (wrong public dir) + oversizedThe logos referenced as /tools/assets/logo/.png (hero, product family, favicon, apple-touch,
- Added: Embeddable tools (per-tool iframe lane + loader)Any published tool can now be dropped into a partner site: /tools/embed/{slug}
- Added: Launcher browse filters (privacy lane + category)The β/Ctrl-K launcher gains a browse-filter panel: with no search query you can filter the
- Changed: Side rails reframed: real value, not adsThe tool-page rails are now a value layer, not ad space. A weekly-rotating set of
- Added: Governance & Feedback DB (Supabase) β decoupled Phase 1Fully decoupled, optional DB. The tools, panels, marketing and embeds never touch it β
- Added: Brand, landing & product positioning (Demystify Systems identity)Fixed the "Tool not found" bug β the app lives under basePath:/tools, so a bare origin
- Added: REST API v1 + OpenAPI + engine-binding spine + BYOC runnerEngine-binding manifest (@demystify/tools-engines/api) β the one machine-readable
- Added: Bring Your Own Cloud (BYOC) foundationArchitecture: three privacy lanes β Local (browser/WASM, default, zero egress),
- Added: Track 1 finish + multi-model API support (10 tools β 286/357)9 more AI tools Live via the TAI shell: json-schema-from-description,
- Added: Track 0 (T0.5): PWA β installable + true offlineWeb manifest (/tools/manifest.webmanifest) + maskable SVG app icon +
- Added: Track 0 (T0.4): module gating (Finocket / Demystipai / β¦)"My modules" picker in /tools/settings β the user selects the product lines
- Added: Track 0 (T0.3): tool launcher with Recent / Most-used / PinnedLauncher (src/launcher/, mounted app-wide) β opens on click or β/Ctrl-K.
- Added: Track 0 (T0.1βT0.2): browser-local profile + BYOK key-management screenprofile.v1 β the local profile store (src/profile/): every bit of per-user
- Added: Wave-3 batch 27: BYOK AI lane (10 tools + new class TAI + serverless proxy)10 new AI tools Live (267 β 277/357): text-summarizer, paraphraser,
- Added: Wave-3 batch 26: developer power tools (10)10 new tools Live (257 β 267/357): bcrypt-generator,
- Added: Wave-3 batch 25: office, PDF forms & recorders (10)10 new tools Live (247 β 257/357): excel-to-csv, excel-to-json,
- Added: Wave-3 batch 24: image, code & media tools (10)10 new tools Live (237 β 247/357): image-converter, exif-remover,
- Added: Wave-3 batch 23: archives, PDF & security (10)10 new tools Live (227 β 237/357): create-zip, file-splitter,
- Added: Wave-3 batch 22: PDF tools (10)10 new tools Live (217 β 227/357): images-to-pdf, scan-to-pdf,
- Added: Wave-2 batch 21: image tools (10) β 200 net-new milestone reached π10 new tools Live (207 β 217/357): image-resizer, image-compressor,
- Added: Wave-2 batch 20: office documents & image tools (10)10 new tools Live (197 β 207/357): subtitle-converter, svg-optimizer,
- Added: Wave-2 batch 19: everyday calc, file tools & references (10)10 new tools Live (187 β 197/357): timesheet-calculator,
- Added: Wave-2 batch 18: HR & payroll (10)10 new tools Live (177 β 187/357): ctc-to-in-hand-calculator,
- Added: Wave-2 batch 17: India finance & gold (10, amber/pending-CA)10 new tools Live (167 β 177/357): income-tax-calculator,
- Added: Wave-2 batch 16: design & colour (10)10 new tools Live (157 β 167/357): tailwind-shade-generator,
- Added: Wave-2 batch 15: web & SEO (10)10 new tools Live (147 β 157/357): robots-txt-tester, sitemap-validator,
- Added: Wave-2 batch 14: security & crypto (10)10 new tools Live (137 β 147/357): password-strength-auditor,
- Added: Wave-2 batch 13: code transforms (10)10 new tools Live (127 β 137/357): curl-to-code, json-to-any-language,
- Added: Wave-2 batch 12: data & tabular tools (10)10 new tools Live (117 β 127/357): json-diff, json-schema-validator
- Added: Wave-1 batch 11: security, text-repair, SEO preview & cheatsheets (10)10 new tools Live (107 β 117/357) β 100 net-new tools reached since the
- Added: Wave-1 batch 10: reference tools (10)10 new tools Live (97 β 107/357): http-status-codes, mime-types,
- Added: Wave-1 batch 9: developer formatters & converters (10)10 new tools Live (87 β 97/357): css-formatter, html-formatter,
- Added: Wave-1 batch 8: India finance & HR calculators (10)10 new tools Live (77 β 87/357): emi-calculator, sip-calculator,
- Added: Wave-1 batch 7: web/SEO & colour tools (10)10 new tools Live (67 β 77/357): utm-builder, color-converter,
- Added: Wave-1 batch 6: developer encoders & inspectors (10)10 new tools Live (57 β 67/357): basic-auth-header-generator,
- Added: Wave-1 batch 5: number & unit calculators (10)10 new tools Live (47 β 57/357): percentage-calculator,
- Added: Wave-1 batch 4: date & time (10)10 new tools Live (37 β 47/357): age-calculator, date-difference,
- Added: Wave-1 batch 3: data converters (10)10 new tools Live (27 β 37/357): json-to-yaml, yaml-formatter,
- Added: Wave-1 batch 2: text tools (10)10 new tools Live (17 β 27/357): remove-line-breaks, line-tools,
- Added: Wave-1 batch 1: developer + text tools (5)5 new tools Live (17/357): word-counter, character-limit-checker,
- Added: P3 batch 1: developer text tools (6, parallel-authored)6 new T2 tools Live (12/357): base64-encode-decode, url-encode-decode,
- Added: P2 Template classes complete (T1 + T5)merge-pdfs (T1 file-in/file-out) β the file template class: a reusable
- Added: P2 Template classes & pilotsFirst four tools Live (4/357), each establishing a template class the
- Added: P1 Registry & codegen@demystify/tools-registry: isomorphic catalog loader + typed accessors, a
- Added: P0 FoundationPlanning kit (CLAUDE.md, docs/00β08, registry SSOT seed: 357 tools) and growth pack
- Verified (P0)All 12 gates green locally; codegen-drift and schema gates each proven able to fail; hello