1
Fork 0
mirror of https://github.com/thegeneralist01/archivr synced 2026-07-21 18:55:36 +02:00
archivr/frontend
TheGeneralist ed1f883ff1
feat: implement entry deletion
- database: cascade_cached_bytes_after_subtree_delete — one-pass set-aware
  SQL that excludes the entire subtree simultaneously, avoiding sibling-blob
  cross-counting bug
- database: delete_entry — collects subtree IDs, runs set-aware cascade,
  NULLs archive_run_items.produced_entry_id (FK blocker), deletes children
  then root; ON DELETE CASCADE handles artifacts/tags/collections
- server: DELETE /api/archives/:archive_id/entries/:entry_uid route,
  wrapped in a transaction for atomicity
- frontend: deleteEntry API call, handleEntryDeleted callback in App.jsx
  (optimistic list removal + selection clear), Delete entry button in
  ContextRail with confirm guard
- tests: 4 database tests (unknown uid, subtree removal, run_item nulling,
  cached_bytes recalculation) + 3 route tests (204+gone, 404, 401)
2026-07-04 13:46:19 +02:00
..
.storybook feat(ui): add Storybook design system refinements 2026-06-28 21:01:50 +02:00
src feat: implement entry deletion 2026-07-04 13:46:19 +02:00
bun.lock feat(ui): add Storybook design system refinements 2026-06-28 21:01:50 +02:00
index.html feat(ui): rewrite frontend in React with Vite 2026-06-24 12:24:34 +02:00
package.json feat(ui): add Storybook design system refinements 2026-06-28 21:01:50 +02:00
vite.config.js feat(ui): add Storybook design system refinements 2026-06-28 21:01:50 +02:00