All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Spec compliance reports for each spec document
-
Spec compliance implementation plan
-
Response envelope middleware (
{ data, meta }) across API responses -
CSRF protection middleware and CSRF token endpoint
-
Security headers middleware (CSP, HSTS, X-Frame-Options, etc.)
-
Audit log storage and write paths for auth/admin actions
-
GDPR delete/anonymize admin endpoint and migration
-
Redis-backed refresh token store with rotation + revoke
-
Auth route additions:
/api/v1/auth/logout,/api/v1/auth/refresh-token -
Denormalized counter triggers for categories (thread_count, post_count)
-
Enhanced thread reply_count trigger to handle soft-delete transitions
-
Data retention service with scheduled cleanup jobs (24-hour interval)
-
Admin endpoint
POST /admin/retention/runfor manual retention job trigger -
Next.js middleware for route protection (admin, settings, thread creation, DM routes)
-
Zustand UI store for sidebar, theme, mobile menu, notifications panel state
-
React Hook Form + Zod validation for auth forms (sign-in, sign-up)
-
WebSocket client hook (
useWebSocket) for real-time notifications -
Plugin settings repository with CRUD operations (
PluginSettingsRepository) -
Admin plugin settings API:
GET/PATCH/DELETE /admin/plugins/{plugin_id},GET /admin/plugins -
OpenAPI schemas for plugin settings endpoints
-
Production Docker deployment stack:
- Multi-stage backend Dockerfile with slim runtime
- Multi-stage frontend Dockerfile with Bun
- Production docker-compose.prod.yml
- Nginx reverse proxy with SSL, rate limiting, security headers
-
Backend entrypoint script with migration support and service health checks
-
Operations scripts: backup.sh, restore.sh, healthcheck.sh
-
Production environment template (.env.prod.example)
-
Deployment documentation (docs/DEPLOYMENT.md)
-
Backend test fixtures module (
tests/fixtures.rs) -
Comprehensive auth tests: JWT token pair, refresh token decoding, password hashing/verification
-
Frontend component tests: Button variants, auth schema validation, UI store state management
-
Playwright E2E test framework with config and test specs (home, auth, navigation)
-
k6 performance testing scripts (load-test.js, stress-test.js)
-
Forum hierarchy support (Category → Sub-Category → Thread → Post) across backend and frontend
-
Breadcrumb navigation component and integration on category/thread pages
-
Moderator dashboard page and route protection for moderator/admin roles
-
Admin dashboard refresh to align with design previews
-
ZapBB official logo integrated across frontend layouts
-
Seeded admin and moderator accounts for testing
-
Shared click-outside hook to deduplicate global event listeners
-
Password hash utility binary for generating Argon2 hashes
-
Plugin System (Phase 7): Build-time plugin architecture with slot-based UI injection, event handling, settings persistence, and admin management UI
-
Theme System (Phase 7): Configurable theming with light/dark color palettes, typography, layout, and CSS variable generation
-
ShadCN/Base UI Integration: Modern component library setup with Base UI primitives
-
Search & Indexing (Phase 5): Full-text search via OpenSearch with thread/post indexing
-
Core Forum Features (Phase 4): Categories, threads, posts, reactions, polls, and moderation tools
-
Authentication (Phase 3): NextAuth.js sessions for web, JWT tokens for API, role-based access control
-
Database Layer (Phase 2): PostgreSQL with sqlx compile-time checked queries, Redis caching
-
Project Scaffolding (Phase 1): Rust (Axum) backend, Next.js 16 frontend, shared types
-
Foundations (Phase 0): Specification documents, PRD, technical architecture
- Migrated to Biome for linting and formatting (replaces ESLint/Prettier)
- Stabilized backend and frontend toolchains with proper type safety
- OpenAPI schemas updated for new auth/admin/moderation endpoints
- Frontend API consumers updated to use response envelopes
- Auth login response now returns access/refresh token pair with expiry
- Category API now supports
parent_idfiltering and computed hierarchy metadata - Thread creation now enforces leaf-category validation
- Home and community pages updated for parent/sub-category navigation
- Moderator queue and admin navigation entry points added
- Frontend list rendering optimized with
content-visibilityand memoized lookups
- Hook ordering issues in plugin SlotRenderer component
- Pagination metadata integration across all list screens
- Header avatar now links to public profile route
- Initial MVP release with all Phase 0–7 features complete
- Docker development environment with PostgreSQL, Redis, and OpenSearch
- Native Windows development support
- Comprehensive specification documentation
Releases follow the format:
- vMAJOR.MINOR.PATCH (e.g.,
v0.1.0) - Optional codename for marketing/blog use only (e.g.,
v0.1.0 "Spark")
- Update this file for every merged feature or fix.
- Group changes under Added, Changed, Fixed, Deprecated, Removed, Security.