This is a big one for me.
This release marks the launch of something I've been wanting to have in circumflex for a long time--native comment section view with individually collapsable comments and more control over the output.
Until this release, I've leaned on outputting the views to less, which in fairness has served very well and I even found a way to collapse replies in it by defining the lesskey schema to filter out invisible characters to collapse and show threads. However, while efficient, it was at its core hacky, hard to build upon and almost impossible to extend.
In 4.0, we never leave circumflex to another application. That means more control of folding and navigating.
The release is also saying goodbye to some very helpful packages and API's that helped circumflex to where it is today. 4.0 has fewer dependencies than before and is using the official HN APIs for all calls.
I hope you will enjoy this release.
New features
- Comment section and Reader Mode are now rendered inside
circumflexinstead ofless - Add
ukeybinding to toggle read/unread status on stories - Add support for customizing the theme
- Add
default-themesubcommand to generate a default theme config file
- Add
- Add
--pagesflag to configure the number of pages fetched per category (1-5) - Show terminal progress bar during fetching via OSC 9;4 codes
- Mod's comments are now highlighted in green
- Highlight YC Fall (F) and Spring (X) startup batches in headlines
Infrastructure
- Add support for
go install - Improve error messages for timeouts, non-200 responses, and unexpected server responses
- Fetching can now be canceled
- Normalize header levels in reader mode so articles always start at h1
Changes
- Auto-enable Nerd Fonts when running inside Ghostty
- Change
--nerdfontsflag to accepttrue/falsefor explicit control
- Change
- Rename Parent Poster (
PP) label to Grandparent Poster (GP) - Add 5-minute threshold for updating last-read time on stories
Removed
- Remove
--plain-headlines,--plain-comments,--hide-indent, and--disable-emojisflags
License
- Change license from AGPL-3.0 to MIT
Dependencies
- Removed
lessas a dependency - Use the official HN Firebase API for all requests
- Bump Bubble Tea to 2.0