The runtime leaves the repository, and a contract is frozen
Forty minutes after the first commit: a 90 MB Node binary removed from the dependency tree, and the search code nobody renders moved somewhere it can be kept honestly.
Five changes landed in the forty minutes after the repository gained a history. Two of them are worth an entry.
A runtime is not a dependency
The project required Node 24 and then shipped Node 24 itself, as the npm package node@24.21.0, adding a 90 MB binary to every install. It also broke in a way that was hard to see: the package’s POSIX shim at node_modules/.bin/node is a placeholder file with no extension, so npm scripts started from Git Bash failed with line 1: This: command not found, while the same scripts run from PowerShell went through node.cmd and worked.
The dependency is gone. The runtime comes from the environment, .nvmrc pins 24.21.0 where both nvm-windows and GitHub’s setup-node will read it, the CI workflow points at that file rather than repeating the number, and @types/node was moved to match the runtime actually in use.
A pinned version in one place is worth more than a vendored copy in every clone.
Code that is kept on purpose
The search and filter helpers had been written, tested and then postponed: the interface they belonged to was not going to ship in this shape. They sat in src/domain/atlas.ts next to the localization functions the site renders with, and nothing in the file distinguished live code from a contract waiting for a user interface that had been deferred.
That is the state in which good code gets deleted by someone tidying up, or, worse, gets described in a README as a feature that exists.
parseQuery, serializeQuery, filterEvents, normalizeSearch, queryForEvent, ensureEvent and emptyQuery moved into src/domain/deferred-search.ts, under a banner that states why they are there. The banner also records the thing that will bite later: the timeline island parses and builds the time and event parameters itself, duplicating a subset of this module, and the two should be collapsed here when search returns rather than drifting further apart. The project instructions gained a line forbidding both the deletion and the claim.
Nothing moved that the site imports. The behaviour is identical, which is the point: the change is entirely about what a later reader will be able to tell.
Alongside those, formatting became a gate rather than a habit, coverage reporting was turned on, and the bootstrap rehearsal learned to delete its own fixture when it passes.
Entry written September 20, 2026
Commits this entry accounts for
e23e09b4b5b9bc02be53f5262505e522776