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.
- Admin dashboard fallback app for monitoring KPI metrics (users, boards, lists, cards, comments)
/api/kpiendpoint returning real-time aggregated counts from Firestore- Minimal dashboard UI with manual refresh button
- Express.js + TypeScript scaffold for standalone admin reporting
- Add standalone script for JSON data backup and user listing.
- Double-click shortcut to edit list titles for faster renaming.
- Skeleton placeholders for cards and comments to create a smoother loading experience in modals.
- Feature to view "Done", "Archived", and "Deleted" cards via a new kebab menu in the board header.
- Functionality to restore cards from non-active states back to the board.
- Card-level actions to mark cards as "Done" or "Archived".
- UI toast notifications for feedback on card status changes.
- Firestore index for querying cards by status.
- Comprehensive testing documentation (
docs/reference/testing.md) with lessons learned and best practices - Full test suite coverage with 43 tests passing across 7 test files
- Enhanced Firebase mocking with proper
writeBatchandrunTransactionsupport - Authentication context mocking for component integration tests
- Intelligent word-breaking rules in global CSS (URLs break anywhere, regular text breaks normally).
- Reclaimed internal card whitespace in
CardItemandBoardCardby implementing absolute hover overlays for control elements (drag grip and kebab menu) with theme-aware gradients. - Enhanced Vitest configuration to exclude the Playwright
tests/directory, preventing test runner conflicts. - Modals are now anchored to the top of the viewport to provide a more stable position and prevent vertical layout shifts.
- Improved UI consistency by implementing
Ctrl/Cmd + Enterfor submission andEscapefor cancellation across all major data entry fields, including comments and dialog forms. - Finalized the hybrid Firestore data model by implementing and deploying comprehensive security rules. This change enforces data integrity, ownership, and valid status transitions across all collections.
- The "Delete" action now functions as a soft-delete, moving cards to a "Deleted" view instead of permanent removal.
- The delete confirmation dialog text has been updated to reflect the new soft-delete behavior.
- Updated TypeScript interfaces to use
statusfield instead ofisDeletedboolean - Improved Firebase service layer with proper hybrid data model support
- Enhanced test configuration with better mock patterns using
vi.importOriginal() - Reorganized documentation structure with dedicated
docs/reference/folder - Updated plan statuses to reflect current implementation progress
- A horizontal layout "blink" in modals caused by the appearance of a vertical scrollbar.
- Fixed a critical data integrity bug where deleting a list would orphan its cards or incorrectly change their status. Implemented a robust cascading soft-delete and smart restoration process.
- Bug where the UI did not automatically update to remove a card from a list after its status was changed to 'done', 'archived', or 'deleted'.
- Corrected multiple build errors related to missing component imports (
Toaster,DropdownMenu) and incorrect JSX syntax, including a fix forBoardCardlayout. - Firebase mock configuration issues that were causing test failures
- Type inconsistencies between Comment interface and service implementations
- Authentication mocking in board card integration tests
- Document ID generation behavior in Firebase mocks
- ✅ Done, Archived, & Deleted Views
- ✅ User Comments System (moved to
docs/plans/completed/01.user-comments.md) - ✅ URL Linking Feature (moved to
docs/plans/completed/04.url-linking-feature.md)
- Reorganized all reference documentation under
docs/reference/ - Updated testing strategy plan with completion status
- Enhanced Copilot instructions with testing requirements
- Added comprehensive testing strategy documentation with real-world insights
- Test coverage for Firebase service layer exceeds 95%
- All integration tests now properly handle authentication context
- Robust mock setup for complex Firebase operations (batch writes, transactions)
- Type-safe testing patterns established across the codebase
This changelog tracks major changes, bug fixes, and feature completions in the Driftboard project.