What changed, release by release.

One line per commit, in the plain English the commits were written in. Each release is a tag in the repository, and this page is generated from the tags, so it can only ever tell the truth about what shipped.

Vigilance checks its own release: every new build is diffed against the one before it, and the report is published beside it. See what the latest release gained.

next release 17 commits since 0.1.23

  • 1d14503 changelog: a release with no commits shows its version and date, blank below
  • 613d059 changelog: one live fragment, no commit links (private repo), regenerated on every release
  • 6799fb3 changelog: generator from the tags, and each release ships its own page
  • 56ed36b replay: forge transcript folds the expected-powers field into the seal id
  • 0ea2bd8 vigi: snapshots lists what the OS already keeps and names the path for diff
  • 3fd30e1 vigi: report a signed file that lost its signature, PE and Mach-O, thin or universal
  • 735d9f4 docs: the golden-image M2M check is the diff pointed at a baseline
  • f9bb68d vigi: time budget on every walk with a could-not-finish clause, 20 MB build gate
  • 31fd9c6 vigi: dpkg reads the package manager's own record and checks the files it installed
  • 3d34c27 docs: document whatis, fleet, hook, sbom, diff --json, expected.txt
  • adf5d35 vigi: sbom checks a manifest's file list against the folder
  • 4821dc3 vigi: expected-powers list, the whitelist flip, bound into the seal
  • cddaa49 ci: vigi checks its own release and publishes the diff
  • d06f6c9 vigi: hook npm brackets every install with a snapshot and a check
  • 7b20bbb vigi: fleet merge with static page, findings digest in the witness line
  • 3fcd020 vigi: timeline --dir walks a folder of old versions in version order
  • 53a92ef vigi: add whatis, diff --json, and profile coverage

0.1.23 2026-08-17 · 1 commit

  • 90a8217 vigi: add `activate` to get a license without phoning home

0.1.22 2026-08-17

0.1.21 2026-08-17 · 3 commits

  • 9e25094 Release publishes to R2 only; the site reads it live
  • 511ec0d Make releases a manual button, drop auto-release on push
  • 2f5c18d Serve downloads from vigihq.com and add a one-step release

0.1.20 2026-08-16 · 2 commits

  • d08cbe4 inv: add a walk benchmark across folder sizes
  • 37d7407 schedule: offer 15 and 30 minute checks

0.1.19 2026-08-16 · 5 commits

  • 8115745 billing: issue free from a one-time $0 checkout, no card
  • 99b2a64 billing: free tier is one device and never expires
  • d5dd7b1 billing: read the paid-through date from the subscription item
  • 057827f billing: send the license email from a Freeform template
  • 967ff0b billing: branded HTML license email

0.1.18 2026-08-16 · 3 commits

  • 22a4348 billing: move package out of internal for Vercel
  • bcdecea billing: run the webhook on Vercel
  • 06ee322 vigi: license auto-renewal and signed binary auto-update

0.1.17 2026-08-15

0.1.16 2026-08-15 · 1 commit

  • 8804b37 billing: pay in Stripe, auto-sign and mail a license

0.1.15 2026-08-15 · 2 commits

  • a18b9ef ci: release jobs must obfuscate or fail
  • 0fd3bfb Document how to rotate the signing key

0.1.14 2026-08-15 · 2 commits

  • 18429b3 Make the parallel scan test robust to folder-clock drift
  • ac4106e Scan files across the machine's cores

0.1.13 2026-08-15 · 1 commit

  • 97399a1 Licensing: offline signed files, killswitch by expiry

0.1.12 2026-08-15 · 5 commits

  • bd58cb7 Fix the OpenBSD build, and compile every platform on every push
  • 2997a4b Windows closes the check gap by looking often and reading nothing
  • 459d900 Run on change as well as on the clock, and never two runs at once
  • e384014 Catch the payload that puts the folder's timestamp back
  • 5aa027a README: put the re-stamp defence back in catch 14

0.1.11 2026-08-14 · 5 commits

  • b49af2b Update README for clarity and detail
  • 103d473 Catch a record that was rewritten in place and re-stamped
  • bd8e4c4 Docs: a maths change is a job for a code scanner
  • 7b9a04c Docs: stop calling a maths change a backdoor
  • b73d73d Docs: say where the rules stop, not just where they fire

0.1.10 2026-08-14 · 1 commit

  • 758eb22 Read container images, pair versioned archives, and make the first look fast

0.1.9 2026-08-14 · 1 commit

  • 75419db Say when a Windows disk keeps no journal, and prove the reader in CI

0.1.8 2026-08-14 · 4 commits

  • 8ec8043 Either witness passes on Windows, and the runner says which one answered
  • 251d96e The machine's record is for the scheduled job, not every elevated run
  • d3a583f Windows reads the disk's own journal for what came and went
  • 2b3f0c0 The Windows job belongs to the machine, not the account

0.1.7 2026-08-14 · 4 commits

  • ccb9f64 The come-and-went rule is a macOS and Linux signal
  • 0251e80 Close three holes found by a full pressure test
  • 2b6780d README: say when it reports, and what plain logic hides
  • e91448d State the starting position, and notice what came and went

0.1.6 2026-08-13 · 1 commit

  • 4dcac3d Walk the whole supply chain, and two things fall out

0.1.5 2026-08-13 · 1 commit

  • 50ae2fa The record belongs to the machine too, and you can point it anywhere

0.1.4 2026-08-13 · 1 commit

  • a9d3aae The timer belongs to the machine now, not to your account

0.1.3 2026-08-13 · 1 commit

  • b7c4344 Install into the administrator's folder by default

0.1.2 2026-08-13 · 3 commits

  • 6f2281c Windows answers no for every file, and the test now says so
  • 75b5746 CI: a wiped record is an alarm now, not a first look
  • b66fd4f A deleted record is an alarm, and six defects a full pressure test found

0.1.1 2026-08-05 · 7 commits

  • 89fc02c Every change that passes the gates ships, and the version moves on its own
  • efc3004 Count the calls, not just the powers
  • 6375ff7 README: twenty powers, and name the four other things that shout
  • a06beb5 README: the thesis is a gain of power, not a change of hash
  • b6eb749 README: back to the old wording, cut to the pitch
  • 4522210 README: say what a supply chain attack is, in Marcello's words
  • 8c2d986 README is the pitch. Everything else moves to DOCS.md

0.1.0 2026-08-05 · 38 commits

  • 92f7e91 Rename to Vigilance. The command is vigi
  • 2820c8b A private repo cannot be installed from by URL, so say that instead of failing
  • cccc176 A tag push never started the workflow, so a release could never be built
  • d81dda6 Take the first picture in this process, not a child one
  • 2a2a165 Say what the job can touch, and stop the record forgetting its own folder
  • 487a264 The wizard installs the schedule instead of printing a command
  • 11ab7e9 Record the decision on the last narrow case
  • b4fe992 The Windows test passed and the step still went red
  • d94f82b Build scw before the Windows hidden-stream tests run
  • f847d4f Read the bytes hidden on a Windows filename
  • 81e4b3f Say the two limits accurately
  • 1976fdb A second review pass: twelve more holes
  • 35fdd08 Note the NTFS stream gap, and stop a replay hiding an exit code
  • 153a256 DESIGN: the four decisions this review settled
  • 22cd82b The record itself could be edited to explain the payload
  • 2834831 GAPS: record the two install bugs and the six commits CI did not run
  • 362d965 An edited seal passed when no file changed
  • 2bfe13c Fix the install path, and the CI file that was silently not running
  • 7ab796a Adversarial review: nine more holes, and one comparison instead of two
  • f76aeef Three critical holes found by adversarial review
  • 1b604a5 Fuzz every parser entry point, on every push
  • ca97980 Fix a crash on hostile WebAssembly bytes
  • 3c944b3 Add an installer for every platform, and a wizard that says where to run it
  • f702d61 Windows is green. Close that gap.
  • e79ce68 Windows found two real problems, and my test script had a third
  • 4fd5f8b Test on Windows, and reject seal signing
  • 0152457 The tool now says what it is, and ships as a binary
  • a1e92d7 Read Java, .NET and WebAssembly binaries
  • d9791a5 Close the language coverage gap: 26 of 26 now, was 18 of 26
  • ab59151 A first run never exits 0
  • 6ccd4e2 Record the gate decision, and say what a gate cannot cover
  • 9ace188 Add GAPS.md: the six known gaps, ranked
  • 40d61d0 README: say what to run when you already suspect a compromise
  • 55f04ad README: lead with the thesis and cut it in half
  • f8c7172 README: rewrite in Simplified English
  • cf96ed7 README: add a plain-English 'How it works' after the thesis
  • 16b85d7 README: state the real thesis and name every attack the lab reproduced
  • 86028a7 scw: detect files an update cannot explain