v0.4.0
What's new
Added
- Export comments - download all comments for a domain as a JSON file from the new Advanced settings tab
- Advanced settings tab - replaces the delete button in the domain list with a proper Export and Danger Zone section inside domain settings
allowed_originsper domain - one origin per line in General settings; allows local dev servers (e.g.http://localhost:4321) to post and load comments for a domain without registering a separate domain (#9)--discuss-font-familyCSS variable - pass a custom font family to the embed widget via the host page's CSS (#10)- AI usage disclosure -
AI.mddocuments which AI tools were used during development (#7)
Fixed
- Post URL trailing slash normalization -
/post/and/postnow resolve to the same thread. Existing data is migrated automatically on first server start after upgrade. - Admin post comments view: config now fetched via admin-authenticated endpoint, eliminating CORS 403 errors when viewing a post's comments from within the admin
- Admin post comments view: breadcrumb domain name now shown correctly on direct page load or browser refresh
- Admin post comments view: delete, approve, and pin actions now work correctly
- Admin posts view: post URLs now show the full domain and path (e.g.
example.com/post) rather than just the path - CORS middleware:
allowed_originsmatching now works correctly end-to-end client.jsnow served withAccess-Control-Allow-Origin: *so it can be loaded as a cross-origin script- CSS
--discuss-font-familyvariable now inherits correctly through chainedvar()references (#10) .envfile now loaded correctly via Node's native--env-fileflag (#8)
Changed
- Domain delete moved out of the domain list into Advanced > Danger Zone - reduces accidental deletion risk
- Node.js minimum version bumped to 20.6+ (required for
--env-filesupport) - Test suite expanded from 144 to 163 tests; statement coverage raised from 80% to 90%
- Pre-commit hook now runs the full test suite - any failing test blocks the commit
- CI adds a coverage gate that fails if coverage drops below 80% statements / 75% branches
Upgrading from v0.3.x
No manual database changes needed. The trailing-slash migration runs automatically on first server start.
Apache users: add AllowEncodedSlashes NoDecode to your VirtualHost and append nocanon to your ProxyPass directive, or admin pages will 404 on direct load or browser refresh. See docs/deployment.md for the full example config.
Thanks to @krisbalintona for reporting issues #7, #8, #9, and #10 that drove most of the fixes and additions in this release.