frontend
backend
database
auth
CMS workflow: entry editor, status actions, and settings save
- Full entry editor and workflow — You can now open a full entry editor (split-pane Markdown editor + live preview, editable title, metadata sidebar, and status action bar) at /app/projects/[slug]/entries/[id]. Project settings were also wired so General and Changelog tabs save, and the Danger Zone delete flow is functional.
New Features
- Added a full entry detail editor at /app/projects/[slug]/entries/[id] with an editable title, split-pane Markdown editor (live preview), metadata sidebar, status action bar (Approve/Reject/Publish/Archive), and a Reject dialog.frontend
- Added status filter tabs (All/Draft/Pending/Published/Archived/Rejected) to the entry list and an inline Approve quick-action for pending_approval entries.frontend
- Wired the Project Settings UI so General and Changelog tabs persist changes and Danger Zone supports project deletion with slug confirmation.frontend
API
- Added entry API routes: GET and PATCH /api/projects/[slug]/entries/[id] and POST routes for approve, reject (optional reason), publish, and archive.backend
- Added project settings and management routes: PATCH /api/projects/[slug]/settings, PATCH /api/projects/[slug] (update name), and DELETE /api/projects/[slug] (hard delete).backend
Improvements
- Updated entry list and hooks: useEntries accepted a status filter and query keys were scoped per tab to avoid flash and improve caching.frontend
- Added client-side entry hooks and mutations (useEntry, useEntryMutations) that update caches and invalidate lists after changes.frontend
- Used react-markdown + remark-gfm for the live preview and added a debounced auto-save in the editor (1.5s).frontend
- Seeded server-rendered entry data into TanStack Query to remove loading flashes when opening the editor.frontend
Database
- Extended ChangelogEntryRepository.updateMetadata to include the title so metadata edits could be saved without touching content.database
- Added ProjectRepository.update(id, fields) to allow updating mutable project fields (name); DELETE now hard-deletes projects and related data via API.database
Testing
- Added 13 tests covering action bar logic and settings schema validation; all web and database tests passed.