Home

Changelog

Current version v0.11.0, 22 servers. 12 releases below, newest first.

v0.11.0 (2026-09-05)

deposits joins as the twenty-first server (security and retainer deposits, applied to invoices through the invoice engine; audit 18/18 no defects; round 20 stdio 16/18); invoice_mark_paid now adds payments and records each one (D-R87, found by the deposits build); 23 package.json and 45 ranges at 0.11.0; 78 manifests bumped, 56 reference a bundle; release-check green on 21 servers; npm test 983 tests, 971 pass, 0 fail after the deposits contract was updated to expect its remote (it was written before hosting); 22 bundles, three boot-checked at 0.11.0 (deposits, invoice, office-suite); GitHub release with 22 assets; sha256 into 56 manifests; registry 55 of 56 on the first pass and the 56th refused as a duplicate (already landed on a timed-out first attempt); mirrors and by-name verification running in the background at loop close.

"a contract test that pins "this server is not hosted" is correct for one day and wrong the next; the check belongs on remotes.json equality (hosted) or absence (stdio-only names), which is what the other servers already assert."

GitHub release v0.11.0

v0.10.0 (2026-09-05)

billing-docs joins as the twentieth server (credit notes and purchase orders on the invoice engine; audit 18/18 with no defects; hosted round 19 16/18); 22 package.json and 41 ranges at 0.10.0; 74 manifests bumped (53 reference a bundle); release-check green with 0 gaps on 20 servers; npm test 1011 tests, 1000 pass, 0 fail, 0 cancelled; 21 bundles, three boot-checked at 0.10.0 (billing-docs, office-suite, invoice); GitHub release with 21 assets; sha256 into 53 manifests; registry 53 of 53 published on the first pass (verification by name running in the background at the loop close); mirrors syncing.

"crediting part of a mixed-VAT invoice at one rate is wrong by far more than rounding and invisible downstream because the gross matches; the VAT line on a EUR 177.00 credit of a 23 and 8 percent invoice is out by EUR 6.10."

GitHub release v0.10.0

v0.9.5 (2026-09-05)

21 package.json and 38 ranges at 0.9.5; 70 manifests bumped (three new names this loop: letterhead on docx, label on barcode, appointment on calendar); release-check green; npm test 968 tests, 957 pass, 0 fail, 0 cancelled; 20 bundles, three boot-checked at 0.9.5 (calendar, bank-statement, docx); GitHub release with 20 assets; sha256 into 50 manifests; registry 50 of 50 published on the first pass (verification by name ran in the background, see the loop close note); mirrors synced (exit 0).

"the release recipe is now stable enough that every step is a one-line command with a log file; the only variable is the registry's search latency, which decides how long the verification takes, never whether it succeeds."

GitHub release v0.9.5

v0.9.4 (2026-09-05)

21 package.json and 38 ranges at 0.9.4; 67 manifests bumped; release-check green; npm test 966 tests, 955 pass, 0 fail, 0 cancelled; 20 bundles, three boot-checked at 0.9.4 (pdf, calendar, clauses); GitHub release with 20 assets; sha256 into 47 manifests; registry 47 of 47 published first pass and verified at 0.9.4 by name; mirrors synced (sync-mirrors exit 0, mcp-zip main at the sha commit).

"the whole release is five bounded steps (bump, build+test+bundles, push+release, sha+publish, mirrors+verify)."

GitHub release v0.9.4

v0.9.3 (2026-09-05)

21 package.json and 38 internal ranges at 0.9.3; 67 manifests bumped, 47 identifier URLs moved; release-check green (0 gaps); npm test 881 tests, 869 pass, 0 fail after one date-dependent timezone test was widened to a full week (a Friday-night start left a 3-day window with no weekday); 20 bundles built, three boot-checked at 0.9.3 (zip, barcode, invoice); GitHub release v0.9.3 with 20 assets; sha256 written into the 47 bundle-referencing manifests; registry 47 of 47 verified at 0.9.3 by fully qualified name; mirrors synced (see log note below).

"a "publish failed" line from mcp-publisher is not evidence of a missing entry."

GitHub release v0.9.3

v0.9.2 (date not recorded in the release file)

Taken as given, not re-derived: 21 `package.json` files and 67 server manifests bumped to 0.9.2 and pushed (`30e4fdc`), GitHub release `v0.9.2` created with 20 `.mcpb` assets, sha256 of each bundle written into every manifest that references one (`e5575ff`), and registry entries for `zip` and `qr-code` confirmed at 0.9.2.

"The stall left no error to diagnose, which made "verify, don't assume" the only correct approach for both remaining unknowns (registry publish state, mirror sync state) even though the task's own starting assumption ("all 47 manifests are at 0.9.2 locally, so the registry probably is too") turned out to be right for 2 servers and untested for the rest."

GitHub release v0.9.2

v0.9.1 (date not recorded in the release file)

19 servers plus `servers/office-suite` and `packages/mcp-license` bumped to 0.9.1 (21 package.json files), and 38 internal `@theluckystrike/*` ranges rewritten to `^0.9.1`.

"v0.9.0 closed with an observation that nothing checked the reverse direction of the wiring: no reader asserted that a server with a `remotes.json` also had a variant name, or that a new server got its second registry name at all. `scripts/release-check.mjs` is that reader, and its first run found nineteen real wiring failures across 456 cells, including the exact defect predicted: `barcode` had one registry name, one server after `zip` had the same problem."

GitHub release v0.9.1

v0.9.0 (date not recorded in the release file)

19 servers plus `servers/office-suite` and `packages/mcp-license` bumped to 0.9.0 (21 package.json files), and 38 internal `@theluckystrike/*` ranges rewritten to `^0.9.0`.

"v0.7.0 and v0.8.0 both found a writer with no reader, and both added a one-line check for it."

GitHub release v0.9.0

v0.8.0 (date not recorded in the release file)

18 servers plus `servers/office-suite` and `packages/mcp-license` bumped to 0.8.0, and 37 internal `@theluckystrike/*` ranges rewritten to `^0.8.0`.

"The recurring shape in this repo is a writer with no reader. v0.7.0 found three (a version literal, a hand-maintained child list, a description length); v0.8.0 found two more in the same file, both in `servers/barcode/server.mcpb.json`, and both introduced by a commit that added a server without publishing it."

GitHub release v0.8.0

v0.7.0 (date not recorded in the release file)

17 servers plus `servers/office-suite` and `packages/mcp-license` bumped to 0.7.0, and every internal `@theluckystrike/*` range rewritten to `^0.7.0`. `servers/quotes` was excluded from the v0.6.1 bump (it was another agent's server at the time) and still carried `^0.6.0` ranges; it is in the bump now.

"`npm test` exiting 1 while every summary line says `fail 0` is the shape to watch for."

GitHub release v0.7.0

v0.6.1 (date not recorded in the release file)

`scripts/sync-versions.mjs` writes `servers/<name>/src/version.ts` from that server's own `package.json`:

"The generated-file fix is worth more than the version numbers it corrects: `src/version.ts` is the only shape that survives both build targets."

GitHub release v0.6.1

v0.6.0 (date not recorded in the release file)

`scripts`-free node pass over every manifest: 59 files changed to 0.6.0 (16 servers + office-suite `package.json`, `packages/mcp-license/package.json`, and every `server.json`, `server.mcpb.json`, `server.variant.json`). Every internal `@theluckystrike/*` range rewritten to `^0.6.0`, including office-suite's twelve child ranges, `mcp-license` -> `mcp-timezone`, bank-statement -> `mcp-spreadsheet`, calendar -> `mcp-timezone`, clauses/resume -> `mcp-docx`, recurring -> `mcp-invoice`.

"The `serverInfo.version` a server reports over the protocol is a string literal in its `src/index.ts`, not read from `package.json`, so it is not touched by a version bump."

GitHub release v0.6.0

All 22 servers and prices · Source