All updates
frontend
backend
database
auth

CMS workflow: entry editor, status actions, and settings save

  • Full entry editor and workflowYou 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.