Changelog

Archivist Sort · Centennial Defense Systems

2.3.0 (current)

Rebuilt 2026-08-21 — Developer ID signed, notarized, stapled, Gatekeeper-accepted. 808 engine/CLI + 276 UI tests passed at the release build; one timing test ignored.

2.2.0

Shipped 2026-08-19 — Developer ID signed, notarized, stapled, Gatekeeper-accepted. 785 engine/CLI tests + 161 UI tests green at the release build.

2.1.1

Shipped 2026-08-19 — Developer ID signed, notarized, stapled, Gatekeeper-accepted. 742 engine/CLI tests + 149 UI tests green at the release build.

If you are on the 2.1.0 CLI or agent kit, replace both files. Re-download from the link in your receipt; the checksums on that page are updated.

2.1.0

Shipped 2026-08-19 — Developer ID signed, notarized, stapled, Gatekeeper-accepted. 735 engine/CLI tests + 149 UI tests green at the release build.

Engine hardening from an adversarial review (2026-08-19)

Known issue in 2.1.0 — CLI and agent kit do not run on your Mac

Found 2026-08-19, after release. The shipped CLI resolves its policy bundle to an absolute path on our build machine, and the CLI zip does not carry that bundle, so review, execute, and purge fail on any other machine with a file-not-found error. scan and simulate accept --bundle, but the zip ships no bundle to point at. The agent kit drives the same CLI and fails identically, which means the MCP tools listed under 2.0.0 below do not work in 2.1.0 either.

The desktop app is not affected: it compiles the bundle into the binary. Every capability shown on the home page and in the demo runs in the app.

Cause of the miss: every green test run, ours included, executed inside the build checkout, where the path resolves. Nobody had run the product on a machine that wasn't the one that built it. The fix is to embed or relocate the bundle, and it requires a re-notarized release.

2.0.0

Previous release: Archivist-Sort.dmg v2.0.0 — Developer ID signed, notarized, stapled, Gatekeeper-accepted. Shipped features:

0.2.0

Local-first, review-first file cleanup for macOS — scan, review, plan, quarantine, receipt, rollback. Nothing leaves your machine.

Transcription now works from the app, not just the terminal

Earlier builds could only find a whisper backend through the shell PATH, so the double-clicked app silently found nothing. 0.2.0 resolves backends the way you actually install them — Homebrew, pipx, pip --user — spawns them by absolute path, and falls through a broken install to a working one instead of stopping. Settings shows exactly which binary was found, where, and why — or the specific reason none is usable. A wedged backend can never hang the app (bounded probes). Optional override: ARCHIVIST_SORT_WHISPER=/path/to/binary.

Export search hits to your editor

Search your transcripts on the Report screen and export the matching SOURCE files as an experimental FCP7 XML (xmeml) bin — a handoff starting point for DaVinci Resolve, Premiere, and FCP7-XML importers, not a finished timeline (whole files, not trimmed hit ranges — that refinement is on the roadmap). Duplicate hits collapse to unique clips; the exporter is honest about its dialect (it is not FCPXML and does not pretend to be).

Receipts that can't collide

Two runs in the same second used to share a receipts directory and could overwrite each other's plan. Run directories are now unique by construction (<timestamp>-<id>), in both the app engine and the shell loop.

Honesty and hardening