Changelog
Including what was wrong. A log of additions only is a marketing feed — on a site about checkable figures, the corrections are the part that shows somebody is checking.
2026-08-31built
- The house rule shipped: a total is a function of its receipts, and there is no way to write one otherwise.
- Desk art is generated from the token number — no image files, no metadata host, nothing anybody can repoint.
- The ticker reads symbols from the mints and prices from Jupiter, and says which is which.
- Docs §4 reads every payout asset's mint and freeze authority live, at a named slot.
2026-08-31caught
- The rule checker reported 4 of 5 with the rule not enforced at all: every probe was failing on a compiler flag (TS5097), not on the rule. Only the control case — the one that must COMPILE — could tell the difference. Without it the script would have printed a clean pass forever.
- Two of the probes then compiled when they should not have: `@ts-expect-error` and an `as` cast each suppress the very error the case exists to provoke. lib/sum.ts had been correct the whole time; the test was the broken part.
- A trait axis (bezel width) was cut after it turned out to be invisible at 64px. Rarity a holder cannot see is a number in a table pretending to be a trait.
- package.json's dev script was edited by a replace that silently matched nothing, so the server came up on port 3000 while every note said 6600.
- The first deploy released onto port 6600, which another site on the same box already held. Our app crashed sixteen times with EADDRINUSE while the release script reported “listening on 6600 after 1s” — because something answered, not because we did. Half the verifier's 200s were the other site's pages. The port was chosen by checking the projects on this laptop rather than the machine it deploys to.
- The readiness check now asks for a page and looks for this project's own name in it. A check that only proves a port is occupied cannot tell success from a collision.