Mac app feel came first today: mascot redraw cost, the Talk mic lifecycle, and island hover.
The same morning, the weekday digester proved it could stage a real ship log onto /blog.
The mic should let go when you do
After push-to-talk, the macOS mic indicator stayed on. I don't want a voice app that holds the mic after I'm done talking.
911b699 fixed it. Push-to-talk now releases the microphone after talk and drops idle pre-roll, with lifecycle tests to keep it that way.
Hover was fighting the island
Rapid hover re-entry made the island flicker, and leaving it had a reopen delay.
0f41059 fixed re-entry and removed the hover-leave reopen delay. Policy, panel, and tests all changed together.
Cheaper mascot, staged purchase path
Commit 6853800 cut mascot redraw overhead and prepped the notarized purchase path: check-commerce.cjs, upload-dmg.cjs, legal page copy, and some deploy-site touches.
The first digester post failed on a hashtag
Digester PR #20 carried the Sep 9 post, "Journal went live, weak words got teeth." It failed Clue once.
The frontmatter said tags: […, #solofounder], and the generator rendered broken chips. I fixed it to a plain comma list, rebuilt the HTML, re-scored, and merged at 2015e08. Buy was left alone.
Clue's cyclomatic gate did nothing on content. The tags check was the real catch.
Journal tags are a contract with the generator: comma list, no brackets, no # in the tag string. Copy yesterday's accepted frontmatter before you invent a new tags shape.
The starter post, 2026-09-10-opening-the-journal, was already on main from the scaffold. This entry covers the rest of the day.
Publishing is now just a PR
Once /blog lives on main, the morning digester is draft, Notch PR, Clue, merge. No special publish go.
For content PRs, regenerate with node website/blog/build.mjs and commit markdown and HTML together. Never point live Railway at a settings branch for a journal drop.
Still waiting on two things
The post-merge Railway redeploy for /blog hit Auto-review, so I waited on the captain widget.
Deploy-script PR #19, the license-server stage from the night before, is still open. I left it alone.
By the end of the day the mic released when I let go, the island stopped flickering under my cursor, and the journal had its first real entry written by the fleet.