Releases

Tagged releases across the mcp-tool-shop-org organization, newest first. Each entry links to the release on GitHub. Catalog data refreshed Oct 3, 2026.

InControl 2.0.1

  • InControl 2.0.1: Ollama chat for Windows, on this PC or over SSH to a GPU you rented.
  • New in this release: file and image attachments, web search behind a Web toggle, markdown replies, a reasoning model's live thinking, settings that persist, Launch at startup, and minimize to tray.
  • Install: Microsoft Store — InControl-Desktop (Windows 10 version 2004 or later, x64). The 2.0.1.0 package is in Store certification; until it is published, the Store serves the previous version. To build from source,…
  • No installer is attached to this release. The Store package is signed by Microsoft.

InControl 2.0.0

  • InControl 2.0.0: Ollama chat for Windows, on this PC or over SSH to a GPU you rented.
  • Install: Microsoft Store — InControl-Desktop (Windows 10 version 2004 or later, x64). The 2.0.0 package goes through Store certification first; until it passes, the Store serves the previous version. To build from…
  • No installer is attached to this release. The Store package is signed by Microsoft.
  • Source release of the Windows app at 0.3.0. There is no MSIX installer. Clone this tag and build with the .NET 9 SDK.
  • The rental forward listens on 127.0.0.1:11436 and stays off this PC's Ollama port. The chat stays here until /api/version answers through that forward. Look up my RunPod pods fills a direct SSH command from…
  • Codecov is connected. The failing bar is patch coverage at 90%. The repository-wide percentage is informational, and the WinUI project is outside that report. On the code commit it measured 84.25% line coverage and a…
  • NuGet is unchanged: InControl.Core 1.2.2 and InControl.Inference 1.0.2.
  • The README and handbook show how to run one AI agent over a whole organization through hk-mcp, and how housekeeping and Atlas work together.
  • homeOrgs in the config: the organizations whose projects count as your own. Unset, it is the swept organization.
  • A fork of another organization's project is exempt from ATLAS_MAP_MISSING and ATLAS_CHECK_NOT_IN_CI, as the rule now says: its workflows are the upstream's. The collector reads each fork's parent owner (collector…
  • ATLAS_ENGINE_BEHIND measures maps and CI pins against the fleet's own pin (the atlas check version most repositories pin), not npm's latest. A new Atlas release on npm no longer makes every map "behind" before a…
  • The public description, README, and handbook state RepoMesh's job: the release ledger and XRPL trust clock, separate from Attestia's event store. Cognate is the AI governance domain that calls both.
  • backprop ui starts again. On Reflex 0.9.x (0.9.3, 0.9.5 and 0.9.12 checked), reflex run in development mode raised RuntimeError: There should not be an init.py file in your app root directory, because the app root is…
  • The SSH port-forwarding examples in the README and handbook forwarded port 7860 while backprop ui listens on 7862; they now use 7862 and the banner URL.
  • Ctrl+C reliably stops backprop ui on Windows. About 1 launch in 5 to 10, Reflex's own shutdown hung, and the CLI sat in an uninterruptible wait on it, so Ctrl+C did nothing. The CLI now polls the Reflex process;…
  • docker compose up starts the web UI. It never could: compose.yaml ran ui --host 0.0.0.0 without --auth, which backprop ui refuses, and the image had no Reflex in it. The image now carries the [ui] extra and a pinned,…
  • Experimental: block-coordinate full fine-tuning (--full-ft-engine block, #237). One block trains at a time with AdamW while the rest stay frozen on the GPU, so a 7B model full-fine-tunes on a 32 GB card without…
  • ui_security.SecureSessionHandler: one CSRF slot per session, and logout now revokes. It keyed CSRF tokens and its session registry on the first 32 characters of the access token. Every HS256 JWT starts with the same…
  • CSRFProtection.validate_token returns invalid for a non-ASCII or non-string token instead of raising TypeError.
  • FileValidator.validate() given a pathlib.Path now runs the size cap and magic-byte checks (it looked up the bare file name and skipped them).
  • CI_FAILING no longer fires on a default branch whose only non-green checks are cancelled runs replaced by a green run of the same check on the same commit. GitHub's check rollup counts a cancelled run as a failure,…
  • BREAKING (security default): trust_remote_code is now off. Loading a model no longer runs Python code from the model's Hugging Face repository unless you opt in. Through v1.7.1 the default was on, and nothing in the…
  • Unsloth can no longer install system software unasked. On a machine without a built llama.cpp, Unsloth's GGUF export runs winget install (or apt / brew) for CMake, compilers and OpenSSL and accepts their licence…
  • PyJWT 2.13.0 → 2.15.1 in uv.lock; the [security] floor rises to >=2.14.0. CVE-2026-102268 (critical, fixed in 2.14.0) tripped Trivy's CRITICAL floor on main and on every open PR. The re-lock moved PyJWT only.
  • 20 Dependabot alerts fixed on 2026-09-23 (1 critical, 12 high, 7 medium). Each re-lock moved only its own package:
  • The first release on npm, as @mcptoolshop/housekeeping.
  • Publishable to npm as @mcptoolshop/housekeeping, with the hk and hk-mcp commands. A release workflow publishes it with provenance when a GitHub release is published, through npm Trusted Publishing.
  • HK_HOME: where data, reports and the config live. Unset, a clone keeps them in itself as before, and an installed package keeps them in the directory it runs from, never inside node_modules.
  • The default-branch CI findings say where a red run broke: the failed job and step, matched to the workflow file by name. One REST call per red run.

0.4.0 — the four packages

  • The first publish of the four packages. v0.3.0 remains the 27 September release.
  • Four packages publish under the npm org. @si-rpg-engine/frame, @si-rpg-engine/tick, @si-rpg-engine/host, and @si-rpg-engine/load are workspaces at 0.4.0. The root package stays private. .github/workflows/release.yml…
  • A host binds to a written socket. The world record is version 1. The frame stream, the intent door, and the blend rule are docs/host-binding.md. The session's driven actor is the world file's goal actor. A collider's…
  • A scene may name a mesh. Load accepts { positions, indices } up to 999,474 triangles and refuses a repeated index, a non-finite position, or an index out of range. The law builds one fixed trimesh. Worlds that do not…
  • The first public release of housekeeping: an operational-health warehouse for a GitHub organization. One sweep, one SQLite database, findings you can argue with.
  • Landing page: https://mcp-tool-shop-org.github.io/housekeeping/ · Handbook: https://mcp-tool-shop-org.github.io/housekeeping/handbook/
  • Keep the data private. A snapshot records private repository names, open security alerts and Actions billing. Run the tool from a private repository of your own; data/ and reports/ are ignored here for that reason.

v0.13.2 — fast-uri 3.1.8 in what ships

  • A dependency patch. Nothing a player sees changes, and no path from the cabinets reached either advisory; this release puts the patched code in what ships.
  • fast-uri 3.1.8 (GHSA-hrr3-gc8f-f4qj), bundled into both launchers, both cabinet servers and the image through the MCP SDK's ajv. The advisory is host case folding on scheme-relative URLs, which could let a…
  • ip-address 10.7.2 (GHSA-h3mg-xc3c-68pw, GHSA-j6r3-76f7-8jcv), in the lockfile only. It comes through express-rate-limit, which only the SDK's HTTP transport uses; the cabinets speak stdio and it is in no bundle.

v0.13.1 — the image's build stage on the native platform

  • A build fix for the image and a coverage upload in CI. Nothing a player sees changes; the image is rebuilt so its arm64 half no longer runs Node under emulation to get made.
  • The image's build stage runs on the builder's own platform (FROM --platform=$BUILDPLATFORM). It only emits esbuild's plain-JS bundle, so the arm64 image no longer runs pnpm install under QEMU, which died with SIGILL…
  • CI uploads coverage and test results to Codecov over OIDC, with 20 seconds per test on the coverage run only.

v2.3.5 — Linux desktop safety fix

  • Linux desktop app: a timed-out sov daemon command could SIGKILL every process the user owns. The Tauri shell killed a timed-out child's process group by running kill -KILL -<pid>. procps-ng kill (Debian, Ubuntu, and…
  • The daemon's body-size cap now answers 413 on a streamed oversized body. With no Content-Length, the cap trips while a handler reads the body; Starlette's error middleware caught that and sent a 500 before the cap…
  • Linux desktop app users: upgrade now. In 2.3.2–2.3.4, a sov daemon command that timed out could SIGKILL every process you own. macOS and Windows builds, the CLI, PyPI, npm and Docker users were not exposed to that bug.

v2.3.4 — doctor warns on a corrupt season.json

  • sov doctor now warns about a corrupt season.json. The season reader deliberately treats a corrupt file as an empty season so sov game-end can keep recording, and doctor used that same reader, so it reported "Season…

v2.3.3 — tutorial fixed, npx current, 99.9% coverage

  • npx launcher source in npm/, published by .github/workflows/release.yml after the Release carries the CLI binaries, with npm provenance and a post-publish npx smoke. The launcher had been hand-published and stopped…
  • Code coverage on Codecov (OIDC, no token): the 3.12 CI cell collects coverage and JUnit results; a separate codecov job uploads them. Baseline 72.5% line coverage.
  • sov --version crashed in every PyInstaller binary. The frozen app has no package metadata, and the --version fallback read pyproject.toml unguarded. --version now uses the same guarded resolver as self-check, the…
  • sov tutorial always crashed at step 4. Two lines each carried half of one [dim]...[/dim] span and Rich raised MarkupError, so the first command a new player runs exited 1. Every CLI print now has balanced markup…

v2.3.2 — container image, daemon wheel fix

  • Container image. ghcr.io/mcp-tool-shop-org/sovereignty (linux/amd64 + linux/arm64) carries the sov CLI and the audit/anchor daemon. Game state lives under /data/.sov; mount a volume there. The bundled compose.yaml…
  • SOV_DAEMON_HOST sets the daemon's bind address for python -m sov_daemon. Default stays 127.0.0.1. It is not forwarded to sov daemon start spawns, so a desktop daemon cannot inherit a widened bind.
  • Docker page in the handbook.
  • The PyPI wheel now ships sov_daemon. Every wheel through 2.3.1 left the package out, so pip install 'sovereignty-game[daemon]' followed by sov daemon start failed with an import error. The release smoke gate missed…

v2.7.0 — America the Beautiful

  • America the Beautiful is the folk exemplar: a public-domain arrangement in F major, melody F4–C5. The library is 109 songs. Fifteen MIDI files ship; 94 stay fetch-only.
  • SoulX-Singer sings it (four takes). Timing and pitch gates pass. The landing page keeps the three pitch warnings, and Order / one-voice / fits-timeline stay fail without a Comfy Cloud transcript. The CLI and MCP…
  • This release also records the dataset-licence fix that was already on main: jam-actions-v0 public subset 0.6.0 and jam-actions-acoustic-v0 1.1.0 no longer carry arrangements whose licence could not be established.
  • America the Beautiful does not enter the frozen jam-actions-v1 1.1.0 corpus.

si-jam-sessions v0.2.1

  • The same product as 0.2.0, published by Trusted Publishing so the registry copy carries a provenance attestation. 0.2.0 was published from a local npm session and has no attestation. The law, the goldens and the…
Roll v2.1.1

roll v2.1.1

  • At-most-for target solver — CLI --at-most-for P, bridge at_most_for, and MCP analyze_dice at_most_for. Returns the smallest T with P(result ≤ T) ≥ p. --target-for is unchanged.

0.3.0 — a driven body does not solve against a dynamic body

  • The suite from 0.2.0, with dispatch 128's law slice on it. A driven body and a dynamic body do not share a solver contact. test-instrument stays frozen. The package is not published to npm.
  • A model proposer in the bench. bench run --model --diff <file> runs one seat session per world beside the grammar, starting where the grammar goes eight admitted candidates with nothing new or runs out of budget. The…
  • A driven body does not solve against a dynamic body. A driven collider is solver group 3 and excludes group 2. A dynamic collider is group 2 and excludes group 3. Statics keep Rapier's default. Collision groups are…
  • The step-up boxes stay under 1 m/s. On the room from #121, a dynamic box that overlaps the walker, or meets its head and is not carried, used to leave near 16 m/s. That 16 m/s is the walker's own step: 0.25 m in one…

si-jam-sessions 0.1.0

  • The first release of si-jam-sessions: a music engine where an AI's playing can be graded exactly, replayed exactly, and trained on with a clean conscience. What changed is in the CHANGELOG.
  • Two arrangements of *Battle Hymn of the Republic*, one by glm-5.3 and one by kimi-k3. Both follow this project's transcription of the anonymous 1862 Ditson edition, both are dedicated CC0 1.0, and both are admitted…
  • The MP3 (192 kb/s) and Opus (128 kb/s) copies are what the landing page plays.
  • The .notes.json files are the notes the law committed (host notes).

0.2.0 — the suite, the law's fixes, and the bench

  • Phase 2 so far: the suite that measures the engine, the fixes to the law it found, and the bench that measures a change against its parent. Every change below merged from a written dispatch in docs/, was verified on…
  • A trace and the first difference. harness/trace.mjs prints one line per step with every body's numbers as exact bit patterns, under node and the three engine shells. harness/first-difference.js names the first step,…
  • Behaviour numbers beside the golden. fixtures/golden-behaviour.json records each dynamic body's sleep step, every final position, the walker's zone, and the snapshot's length and digest. npm run check verifies them,…
  • Save and restore. A world restores by replaying its inputs to a step (harness/replay-to.mjs) or by copying the physics module's memory (imageSolver, restoreImage). Both are proven to continue exactly from several…

v1.8.0 — translate_readme, Ollama Cloud, and stale-translation fixes

  • translate_readme MCP tool — translates a README.md *file* into all 7 languages and writes the README.<lang>.md files to disk, refreshing the language nav bar in the source and each translation. Returns a per-language…
  • Ollama Cloud support — OllamaClient reads OLLAMA_HOST for its base URL and attaches an OLLAMA_API_KEY Bearer header, so translation can run against https://ollama.com with no change to local use. The header is…
  • Edited segments came back with their previous translation — the fuzzy translation memory reused a cached translation verbatim for any segment more than 85% similar to a cached source, and its only guard compared…
  • The invariant-token guard is kept as a floor under that rule. It now covers every run of digits with its separators (174, 1,000, 0.2105) and inline-code placeholders as well as version tokens, and compares them in…

0.1.0 — the first release

  • The first release. Version numbers before 0.1.0 were internal slice counters and were never tagged or published.
  • The tick. A fixed timestep of 1/64 s, every quantum hashed with a two-lane FNV-1a over little-endian f64 words, NaN refused, signed zero canonicalized. Replay is the seed plus the admitted-input log; play writes one,…
  • The law in Rust. The physics step is solver/, a Rust crate on rapier3d-f64 with enhanced-determinism, compiled to one WebAssembly binary with relaxed SIMD off and source paths remapped, delivered as an ES module the…
  • Bodies in three dimensions. Position, linear velocity, a canonical unit quaternion, angular velocity, and half-extents on three axes. Dynamic boxes rotate under contact. The character is a kinematic box driven by…
  • The installed mcp-stress command can run a stress test, list patterns, and serve a demo MCP server.
  • Docker keeps checkpoints and stress reports on /var/lib/mcp-stress. Mount a named volume (-v mcp-stress-data:/var/lib/mcp-stress) so that memory survives docker run --rm.
  • The pattern library loads 68 templates. That count matches the files in the package. It is not the MCPTox paper's 1,312.
  • Current XRPL client, a published container image, and two CI fixes. The anchor network stays testnet.
Facet v0.8.1

facet v0.8.1

  • A prop gets a real size, a rig gets read rather than assumed, and the interesting result is a negative one.
  • v0.8.0 closed on a painted subject. This release is about what happens *after* paint — a character that has to be posed, and objects that have to be held. Nothing here touches the texture route.
  • A sixth subject went in to test the after-paint stage. It reconstructs cleanly and then fails auto-rigging. Four candidate causes were eliminated by measurement rather than by argument:
  • The discriminator is unidentified, and canon/BASE-FIGURE.md carries the table while declining to name a cause. That refusal is the load-bearing part: this repo *did* name a cause — arm-to-torso separation — and it…

v0.2.0 — the felt harbour

  • The felt harbour is playable. The stage walks one continuous 2:1 dimetric town, the named cast stands on cells an author chose rather than cells the client guessed, the quay is wet under the light, and the sim can…
  • Full treatment (public surfaces). Brand logo in the README, trust and threat-model section, keys and launcher flags, verify.sh (import + suite + plate re-gate + site build), landing page and Starlight handbook under…
  • CI's "every expected suite ran" manifest lists all eleven suites (it had drifted to six).
  • Felt harbour runtime. Mixer loads res://assets/felt/<cueId>.wav when present (sine stand-in otherwise). Named cast stands on occupancy cells (fixtures/harbour-occupancy.json); FrontProof/BehindProof are not the play…

v4.9.0 — the drawing contract

  • The harbour a client draws is now authored in the Forge. A world may carry a presentation block — the dimetric cells, zone anchors, floor plates, and who stands where — instead of a client measuring it by hand on the…
  • WorldProject.presentation — an optional WorldPresentation block (view, tile, span, zoneCells, floor, occupancy) describing how a client DRAWS an authored world. Additive: projects without it validate unchanged.…
  • presentationAdvisories(project) — eight advisory rules over the block: unknown zoneCells zone, occupancy zone with no anchor, cell outside its zone's span x span box, no player row, a drawn actor the sim never…
  • Salt Road carries the harbour occupancy the stage plays — six anchored zones, a wet-stone plate on the long quay, and six actors (the merchant player plus Corvane, Halle, Drell, the tally boy, and the stair…

v3.12.0 — a host that draws can hear the world

  • A host that draws can hear the world. The sidecar learns one more negotiated capability, and it is the one a pixel client needs: with capabilities.audio on, every submit, advance and matching tick carries the felt of…

v0.12.0 — the dogfood swarm whole, both cabinets on a phone

  • The dogfood swarm, whole, in one day on the Director's word: four health stages and the feature pass framed as polish, with the player's pass on every wave and his read on the served bundle between them. The record…
  • Play on a phone. Ghost's field takes a finger (hold its sides to move, the band under it to fire); the typing cabinet raises the soft keyboard on a tap of the editor; each cabinet card says how it plays on glass.…
  • A run code for the typing cabinet that replays a run on any browser, and an end card that goes on to the next product or the same one again.
  • The hosted tier is opt-in. The shooter's launcher spends an Anthropic key only when CABINET_SAY_CLAUDE=on, says which tier writes the lines and that it costs money, and stops at a ceiling. An older Node is refused in…

v0.11.1 — read by the Director: the lines make sense, and one image for both cabinets

  • A patch on the Director's read of 0.11.0, all three parts on the published page before this tag. Details in docs/vibe-typer.slice4.md (the last section) and docs/cabinet-container.md.
  • The lines that are drawn blind no longer name a piece. The agent's replies, ship lines and check-in answers, and the user's check-ins, one-more-things and generic reviews are picked with no knowledge of the request,…
  • The agent's face heads the editor pane, beside the beat word; the chat header keeps the user's face before the product.
  • One image, both cabinets. ghcr.io/mcp-tool-shop-org/mcp-arcade-cabinets:0.11.1 carries Vibe Typer's stdio server beside Ghost's; CABINET=vibe selects it and everything else stays the shooter. amd64 and arm64; both…

v1.3.2 — retract the grounded_uptake "robust by construction" claim

  • Documentation-only release. No checker logic changed — behavior is byte-identical to v1.3.1. All 198 tests, the GREEN eval pack and the planted inverted oracle are unaffected.
  • The checker source, HANDBOOK.md, the landing page and the test header all stated that *"the only way to earn verified_uptake is to actually perform the observable work."* That claim was false.
  • Measured against the 41 user-bearing cases in data/evals.jsonl:
  • The template performs no comprehension. It emits strings like *"It sounds like fired and today are part of what you're carrying right now. What do you need most at this point?"* — not grammatical English — and earns…

v2.11.0 — health pass and harness-agnostic copy

  • Dogfood swarm health pass (Stages A–D) plus harness-agnostic public copy. Feature-audit is collected and parked (Law 8); leftover MED/LOW are not in this release.
  • Public copy is harness-agnostic: GitHub/npm/README/handbook lead with a repo-native operating layer. Claude Code adapter ships; the contracts are markdown any harness can consume.
  • roleos <verb> --help / -h prints that verb's usage and exits 0 — it no longer mutates.
  • Capability-gate deny hints branch missing vs expired vs bad date.

audiobooker v3.0.0

  • Major, because five things that used to be accepted now fail instead — the m4a whole-book format, a make over an existing project, a render whose attribution is mostly guesswork, a compile() where every chapter…
  • A dogfood swarm in two passes — five health waves, then a feature pass of four build agents with disjoint file ownership. 200+ findings, tests 1468 → 1955. A confirming re-swarm (2026-09-15) closed remaining sibling…
  • The through-line is worth stating, because it shaped what got found: defect after defect was hiding behind something that reported success. A quality metric that improved as quality degraded. A cache that printed…
  • make destroyed a hand-tuned project without asking. Re-running it overwrote hand-cast voices, pronunciation overrides and edited chapter titles with a fresh auto-cast parse — and batch *.epub did it to every project…

v0.1.0 — family-diverse AI playtesting

  • First public GitHub release. Dogfood swarm #2, 2026-09-14. 84 -> 182 tests, then the Law 8 execute set. First live run against claude-rpg (proof-01, 8 turns, mistral). Stage B: 24 HIGH. Stage C: remaining MED/LOW…
  • Not on npm (package.json stays "private": true).
  • Typed actions from Observation.actions. Player replies map onto choose / key / line. A closed-set miss is a harness event (illegal-action); the runner does not step. describeActions() is appended to the player prompt.
  • Serial RPC reuses one driver. --serial on driver.kind === "rpc" starts once, calls reset() between seats, and stops once. A missing or throwing reset fails that next seat with E_RESET (no silent second client).…

v1.3.1 — library contract, fairness FPR, planted-RED

  • Patch over v1.3.0 (that tag never reached npm): tests/exports.test.ts no longer import('@mcptoolshop/synthesis'). Vite resolved that specifier at collect time, before dist/ exists, so Linux CI failed.
  • v1.3.1 is the publishable cut of the 1.3 feature pass: public library contract, fairness FPR pack, planted-RED inverted oracle, closed report schema. Checkers stay frozen. Node >=22.