v4.0.0 - The Keyboard Era
We're expanding beyond keysets and entering the Keyboard Era โ with full support for keyboards, richer collection tracking, and a stronger foundation for everything ahead.
โจ What's New
- Introduced a new Keyboard module with support for Brands, Keyboards, Releases, and Variants, including design lineage tracking and standardized technical specifications.
- Enabled keyboard collection management, allowing users to track the boards they own and how they relate to keysets and other items.
- Added a dedicated User Management page for managing user access and roles.
- Added designer autocomplete to the keyset form, with suggestions from existing designers while still allowing free-text input.
- Added collection editing and revision autocomplete to the artisan sculpt form.
- Introduced shared
useCollectionItemanduseCollectioncomposables to centralize collection operations across collection pages.
๐ Bug Fixes
- Fixed artisan sculpt page not jumping to the correct pagination page when
cidis present in the query string; the colorway card modal now opens automatically on load and closes cleanly. - Fixed default values in the keyset form for smoother create/edit flow.
โ ๏ธ Breaking Changes
- Renamed the Keycap domain to Keyset across database schema/types, API paths, app routes/components, and related UI copy for consistent naming.
๐ Improvements
- Redesigned the keyset detail page with an archivist-inspired aesthetic and added a thumbnail strip for kit navigation.
- Migrated application-level enums to native PostgreSQL types to improve data accuracy and prevent mismatches between the code and database.
- Hardened POST API payload handling with shared database-based field filtering so only schema-defined fields are accepted and persisted.
- Combined full-text search with partial matching to better handle incomplete or slightly misspelled queries; for example, searching "gundam" now finds "GUNDAMHAKU".
- Improved page headers by moving profile details into a drawer in the navbar across maker, brand, sculpt, and keyboard pages for a cleaner layout.
- Applied a shared logo card across all modules and improved card layout consistency with an equal-height grid.
