Skip to content

Omnibus v1.1.0-beta.067

Choose a tag to compare

@github-actions github-actions released this 27 Jun 17:56
· 2 commits to main since this release

v1.1.0-beta.067 - feat: move issues to another series + bulk-match merge guard

πŸ”€ "Move" β€” re-file issues under the correct series (admin)

  • When a bulk Custom-ID match (or any double-assignment) collapses two different comics onto one series, there was no way to separate them β€” issue.seriesId was never user-editable anywhere. Added a per-series "Move" action: enter Select mode, pick one or more issues, and move them to another series. Each issue's file is relocated into the destination series' folder on disk (no-clobber; " (n)" suffix on a name clash) and its seriesId is re-pointed.
  • The destination can be an EXISTING series (searchable picker) or a NEW unmatched series created from a name (which you then match in the Smart Matcher) β€” so issues from a series that was deleted during a merge can still be recovered.

πŸ›‘οΈ Smart Matcher: confirm before a bulk Custom-ID merges separate folders

  • Applying one Custom ID to a multi-select silently assigned the same series to every selected item β€” for FOLDERS that merges them into one series (the reported bug). The bulk apply now warns ("Merge these folders into one series?") when more than one selected item is a folder, and proceeds only on confirm. Loose-file selections (issues of a single series, the intended bulk use that auto-maps issue numbers) are unaffected.

πŸ”Œ New endpoint: POST /api/library/issue/move (admin-only)

  • Body { issueIds[], targetSeriesId? | newSeriesName? }. Relocates files, re-points seriesId, audit-logs MOVE_ISSUES. A file-move conflict leaves that issue in place (DB stays in sync with disk) and is reported in the response.

πŸ§ͺ Tests

  • issue-move: admin guard, empty-selection guard, move-to-existing (re-points seriesId + relocates file), create-new-unmatched-series, destination-required.

βœ… Verification

  • tsc clean; eslint . 0 errors; vitest 293 passed (+5); next build clean