Skip to main content
Version: v2 · 2.4.0

Release qualification and known limits

Published 2.4.0​

Stable 2.4.0/build 71 is signed, notarized and published under v2.4.0. The full gate passed 3,267 Python tests (two expected skips), 312 desktop tests, documentation, deterministic payloads and managed-package checks. Both exact signed runtimes passed HTTP/stdio startup; 37 isolated native Glyphs checks passed. All six public assets matched their checksums before signed-feed promotion.

The release includes task queuing, document-scoped recovery, configurable inactive-task expiry, the typed-export instance-binding fix and Glyphs Hinting. The catalog has 22 tools and 12 managed skills, interface revision 1 and bridge protocol 1. Update the bridge and sidecar together through Setup.

No fresh full GUI updater/VM run or physical Intel test was performed; x86_64 execution used Rosetta. The installed editor and user fonts were not replaced or mutated by this release workflow. Retained static-export acceptance does not establish variable-instance acceptance. See 2.4.0 qualification and its publication evidence for exact scope.

Earlier 2.2.0 preparation​

Source targets 2.2.0/build 66, with twenty-one data/action tools plus one optional read-only card-display tool, eleven managed skills, interface revision 1 and bridge protocol 1. Tasks, native image comparisons, the Diff / Config project layout and verified font package copies are new in this candidate. Source and unsigned local checks are separate from signing, notarization, exact signed upgrade/native acceptance and publication. The published stable release and feeds remain 2.1.0. See the preparation record.

Earlier 2.3.1 published release​

Glyphs MCP 2.3.1/build 69 was the prior published stable release. Its complete gate passed 3,155 Python tests (two skipped), 305 desktop tests, documentation, deterministic payloads and skill/package checks. The app, nested payload and disk image are signed, notarized and stapled; public downloads and the signed update feed were verified. See published qualification. These results retain their 2.3.1 scope.

2.1.0 acceptance​

The full publication gate passed 2,980 Python tests (two optional skips), 270 desktop tests, deterministic payload comparison, documentation and startup checks for both private runtimes. Both final signed runtimes passed HTTP/stdio catalog, packaged-installer and card-resource checks; x86_64 executed under Rosetta.

The exact signed app passed a manual 2.0.4/build 61 → 2.1.0/build 63 app/component upgrade in the macOS 26.6.2 arm64 VM. The previous manager was backed up. Default official Glyphs Python 3.14.6 detection passed with no saved framework preference, which was restored afterward. Six static TTF/OTF outputs across plain, WOFF and WOFF2 passed table and shaping checks while Glyphs Python had no FontTools or HarfBuzz. Fixture source integrity, installed-file identities, sidecar build 63 and the 21-tool/resource catalog passed. Welcome, Setup and readable Skills titles were checked in the native signed app.

The exact Sparkle older-to-newer upgrade and a new live editor recovery cycle were not rerun. The VM editor stayed closed; this pass does not claim a loaded bridge editing test. Earlier qualification below keeps its original scope. Physical Intel and exact macOS 14.0 execution remain unverified. See the release record.

2.0.4 acceptance​

The full publication gate passed 2,952 Python tests (two optional skips), 263 desktop tests, deterministic payload comparison, documentation and offline startup of both private runtimes. The Intel runtime ran under Rosetta; physical Intel execution and exact macOS 14.0 execution were not newly qualified.

The exact signed build passed installation in the macOS 26.6.2 arm64 VM with Glyphs 4.1.1/build 4108 and official Glyphs Python 3.14.6. Detection passed with no saved Python framework preference. Six static TTF/OTF outputs across plain, WOFF and WOFF2 containers passed table and shaping checks in the private runtime while Glyphs Python had no FontTools or HarfBuzz. Loaded bridge/sidecar identities matched the receipt; live publish/discard, source integrity and fixture closure passed.

Setup now offers an installation override after a failed Python check, records correlated diagnostics and shows a copy selector only for multiple Glyphs 4 installations. Versioned ZIP and DMG downloads were verified over their public URLs before the signed update feed was promoted. Earlier updater/migration and optional-tool evidence retains its original build scope. See the release record.

Focused 2.0.3 evidence​

149 focused Python tests, synchronized skills and package consistency passed. Disposable native checks covered direct authorized Run, preview without execution, recovery preserving earlier unsaved edits, save-free Edit tabs and Curve Inspector no-change feedback. Final stable loaded identities match the installed components; Codex has a reachable twenty-tool connection and matching agent package. This task made no font Save calls.

The exact universal app and DMG passed Developer ID, notarization, stapling, Gatekeeper and nested payload checks; the update ZIP/feed signatures and public asset sizes/digests were verified. The DMG layout was visually checked. Swift implementation and distributed dependencies are unchanged from build 58; the full Swift suite, VM matrix and exact older-to-2.0.3 updater acceptance were not repeated. Earlier platform evidence retains its own build scope. See the release record.

Earlier build 58 follow-up​

The exact universal build-58 app, ZIP and DMG passed signing, notarization, stapling, Gatekeeper and payload/inventory verification. The packaged helper completed a real managed Beztrace install in an isolated home; Intel availability correctly remains disabled. The companion passed install/update/remove/reinstall in the clean macOS 26.6.2 arm64 VM, preserving explicit engine choices. Sixteen optional-control, 27 packaging and 45 publication checks passed. Full VoiceOver and dark-appearance review are deferred by the maintainer for this release.

Managed Beztrace is qualified only for Apple silicon on macOS 26.6.2 or later. Its macOS 14 and Intel qualification remains absent. Diffenator downloads stay disabled. The updater signatures match the app key. The original build-57 artifacts and tag are retained.

Accepted 2.0.2/build 57 core evidence​

The full source gate passed 2,747 Python tests (two optional skips), 256 desktop tests, deterministic payloads, documentation and both private runtime startup paths. Intel runtime execution used Rosetta.

Actual signed 2.0.1 → 2.0.2 desktop replacement and component migration passed on macOS 14.6.1 and 26.6.2 arm64, Glyphs 4.1.1/build 4108 and official Glyphs Python 3.14.6. Fresh eighteen-tool status and installation receipts matched exact signed sidecar/bridge identities. macOS 26 passed invalid feed/archive rejection, interrupted downloads, cancelled Glyphs closure, recoverable component failure, rollback/retry and quiet login startup. The white skill dialog, fixed icon Close, pill scope selector, stable panel and Escape dismissal were observed on macOS 14.

Mid-transaction rollback used installed 2.0.2 components; older-to-newer migration passed separately. At build 57, both optional downloads were disabled; the build-58 qualification above enables Beztrace only within its recorded scope. See the detailed release record. Earlier evidence below retains its original build scope.

Accepted 2.0.1 evidence​

Qualification passed 2,684 Python tests (two optional skips), 246 desktop tests, deterministic payloads, managed skill synchronization, documentation and both private runtime architectures. x86_64 startup used Rosetta.

On macOS 14.6.1 arm64, Glyphs 4.1.1/build 4108 and official Glyphs Python 3.14.6, the exact signed app passed 2.0.0/build 55 → 2.0.1/build 56 desktop replacement and rejected invalid feed signatures, invalid archive signatures and interrupted downloads. Bundled component migration completed successfully. Automated transaction tests cover replacement failure and rollback recovery.

The running bridge and sidecar hashes matched the installed receipt. Disposable native fixtures passed Open/retry/reuse, activation, native package Save/Close, TTF/OTF/UFO imports with source preservation, active-job Close guards, asynchronous discard recovery and unsaved-close handling. QA documents were closed at completion. Desktop skill checks cover catalog navigation, GitHub import, installation, export and removal with preserved backups.

Earlier 2.0.0 evidence​

The release source passed 2,573 Python tests and 233 desktop tests, package, skill, documentation, deterministic payload and private-runtime checks. Both runtime architectures passed startup; x86_64 used Rosetta.

Native signed build 55 testing on macOS 14.6.1/23G93 arm64, Glyphs 4.1.1/build 4108 trial and official Glyphs Python 3.14.6 passed fresh MCP install, Welcome/Setup Ready, loaded identities, width apply/discard/save, real signed Beta 11/build 53 → stable55 desktop replacement and invalid-feed/archive/interrupted- download rejection. Component54 → 55 migration, failed migration/automatic rollback, retry, reboot/loaded checks and signed v1.11.0 migration also passed.

Actual Claude Desktop 2.19675.0 read calls passed against signed build 55. Earlier conversation and native workflow evidence retains its original build scope; configuration checks alone do not establish every client's live behavior.

Limits​

  • Packaging declares macOS 14.0+. Exact 14.0 remains unverified; 14.6.1 and 26.6.2 execution does not prove that minimum environment.
  • Physical Intel execution is deferred. Universal binaries and Rosetta startup do not establish an Intel hardware result.
  • Current Codex status/tool access was verified locally; a separate ChatGPT session and the broader Claude Code/client matrix remain unverified. Cursor VM testing was waived based on the maintainer's reported host success.
  • Full VoiceOver, visual Reduce Motion timing, linguistic review and a new-user documentation walkthrough remain unverified. Technical localization checks and bounded native layouts are separate evidence.
  • Glyphs 3 preservation used a labelled fixture; live Glyphs 3 coexistence remains unverified. Keep its separate v1 distribution.
  • Beztrace 0.1.1 engine and the independently signed/notarized Glyphs plugin 0.1.0/build 15 have separate installation and qualification. Install All does not install that plugin.

Keep does not save. Typed recovery checks for conflicting edits. Whole-font Restore replaces later unsaved edits; save persists the whole current font. Begin with disposable work and inspect results before using the release on production fonts.