Long day. Two things shipped: Eyrie v0.2.0, and this website on its own build.
On Eyrie:
- A Gemini CLI adapter, so all three CLIs are in.
- First-run setup, and a UI driven by capabilities, so it only shows what the installed CLIs can actually do.
- Packaging: a PyInstaller build of the server, Tauri app bundles, and
.dmg,.deb,.rpmand AppImage. Release CI install-tests each distro. - A one-line
install.sh, a Homebrew tap, and an MIT license. - Then I tagged and released v0.2.0.
After the release:
- Session names, and a jump that takes me to the right terminal tab.
- A recorded Playwright journey suite. It found 8 UI bugs, which I then fixed.
- ruff and coverage in CI.
- Two real bugs from a code review. CLI output was cut at 4 KB, which broke JSON parsing on bigger responses. And an empty token file quietly disabled auth.
On the website:
- Moved off Hugo and PaperMod to my own Python build, about 650 lines.
- Launched the Eyrie landing page at alenabraham.me/eyrie, plus a link-preview image for the site.
- Fixed dead Hashnode links. My Hashnode blog was pointing at a custom domain I never registered.
- Shrunk the images from about 55 MB to about 4 MB, and added a print stylesheet.
- Brought search back, on the Archives page.
- Scheduled posts and build-time diagrams.
- Cleaned up the resume.
One lesson I learned the hard way: squash-merging stacked PRs makes every next PR in the stack conflict. That one gets its own post.
Next up: writing the stacked PRs post.