Facet Changelog - Version History
Release notes and version history
All notable changes to this project are documented here.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[1.0.0] — 2026-03-13
First stable release. The core API and template conventions are now considered stable.
Added
-
requestMethodtemplate variable — All templates now receive the HTTP method of the current
request (GET,POST,PATCH,DELETE,PUT,HEAD,OPTIONS,OTHER). Enables
conditional rendering for post-mutation feedback (e.g., showing "Created successfully!" after POST). -
Per-status-code error templates —
HtmlResponseHelper.renderErrorPage()now looks for
templates/errors/{statusCode}.htmlbefore falling back to the generictemplates/error.html.
Example 404 page added to the product-catalog example attemplates/errors/404.html. -
MongoDB count caching — Count results for
estimatedDocumentCount(),countDocuments(),
listDatabaseNames(), andlistCollectionNames()are cached with a 5-second TTL.
Eliminates extra MongoDB round-trips per rendered page. -
JUnit 5 test suite — 67 tests covering template resolution, HTMX header parsing,
authentication context building, and HTMX response helpers. -
"Handling Mutations" section in Developer's Guide — Documents three patterns for
responding to form submissions and API mutations: HTMX Fragment Swap (recommended),
Post-Redirect-Get, and inline response withrequestMethod.
Changed
- Version bumped from
0.2.0-SNAPSHOTto1.0.0inpom.xmlandcore/pom.xml. requestMethodvariable documented in Template Context Reference.
[0.2.0] — 2026-01
Added
- Parametric mongo-mount support and multi-tenant context (
tenantId,isMultiTenant,hostParams) - Custom Pebble filters:
stripTrailingSlash,buildPath,parentPath,toJson - HTMX strict mode: missing fragment template returns 500 to surface errors early
- CRUD example in product-catalog with HTMX-powered edit forms
HX-Reselectgap documented as known limitation
Changed
- Template resolver refactored to
PathBasedTemplateResolverwith full hierarchical fallback MongoHtmlResponseHandlerenriches documents with_idmetadata for URL generation
[0.1.0] — 2025
Initial release.
Added
- Core interceptor architecture (
HtmlResponseInterceptor,HtmlErrorResponseInterceptor,HtmlAuthRedirectInterceptor) - Path-based template resolution with hierarchical fallback
- Pebble template engine integration
- HTMX fragment resolution via
HX-Targetheader - MongoDB response handler with pagination
- ETag-based response caching
- Product-catalog example with Pico CSS
Known Limitations (Future Work)
These issues exist but are not blocking for 1.0.0:
HX-Reselectresponse header not implemented (minor HTMX gap)JsonHtmlResponseHandlerloads full response into memory (no streaming)- MongoDB operation timeout handling not configurable
- Thread pool size not configurable in
PebbleTemplateProcessor - Redirect query param name (
?redirect=) not configurable - Count cache TTL is hardcoded at 5 seconds (not runtime-configurable per handler)