github hankscafe/omnibus v1.1.0-beta.067
Omnibus v1.1.0-beta.067

latest release: v1.1.0-beta.068
2 hours ago

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

Don't miss a new omnibus release

NewReleases is sending notifications on new releases.