← Journal

Mic lets go, hover stops fighting, purchase prep lands

· mac, talk, hover, journal, purchase, solofounder

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.