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

latest releases: v1.1.0-beta.022, v1.1.0-beta.021, v1.1.0-beta.020...
7 hours ago

v1.1.0-beta.018 - feat(core): overhaul issue mapping, parser centralization, RAR extraction, and Docker architecture

✨ Features

  • Add exact issue number and issue ID override support to the /api/library/match-series route for 1:1 mapping.
  • Introduce Optional Issue Mapping to the Smart Matcher UI for both single loose files and bulk multi-selections.
  • Fetch count_of_issues and issues arrays from ComicVine and Metron during Volume lookups in /api/issue-details.
  • Implement a client-side extractIssueNumberClient to auto-fill issue mappings and cross-reference them with the API's issue list.
  • Integrate a 4-byte hex Magic Number signature check to automatically detect and rename fake .cbr files (ZIP archives) to .cbz during manual matching.
  • Connect the manual matcher directly to the CBR_CONVERSION BullMQ job to automatically queue genuine .cbr files for background extraction and repacking.

🚀 Performance & Architecture

  • Centralize issue extraction and comparison logic into a single src/lib/utils/issue-parser.ts utility file, establishing a single source of truth for the entire application.
  • Eradicate redundant, locally scoped declarations of extractIssueNumber and isSameIssue across importer.ts, automation.ts, metadata-fetcher.ts, library-scanner.ts, queue.ts, and cron.ts.
  • Replace WASM-based node-unrar-js with native node-unar to successfully process modern RAR5 compression dictionaries and bypass Node.js memory limits during .cbr extraction.
  • Migrate Docker base image from alpine3.20 to Debian bookworm-slim to natively support glibc, ensuring maximum stability for C/C++ backed packages (node-unar, sharp).

🐛 Bug Fixes & Chores

  • Overhaul extractIssueNumber regex to prevent Volume tags (V1, Vol 2) from hijacking issue mapping, and universally apply it to all background queues and scanners.
  • Improve bracket/parenthesis stripping to safely remove cross-references (e.g., (Uncanny X-Men 094)) while preserving isolated bracketed issue numbers.
  • Patch CBR_CONVERSION job to accept targeted issueId payloads, preventing massive global database scans when manually matching single files.
  • Fix WATCHED_FOLDER_SYNC vulnerability by falling back to regex filename parsing if ComicInfo.xml is missing the tag, preventing files from overwriting Issue #1.
  • Overhaul the download checker in cron.ts to use the unified parser, removing fragile inline regex logic and resolving null match edge cases for bulk packs.
  • Fix an issue where the series description was omitted from the manual lookup frontend payload.
  • Bump issue-details cache key to v12 to force fresh data retrieval for the new API payloads.
  • Bypass strict TypeScript checking for dynamic Metron properties in the issue-details route.
  • Prevent database ghost records by adding an explicit target file isolation check (isTargetFile), stopping the loop from mistakenly processing adjacent loose files.
  • Resolve silent database transaction rollbacks and missing file paths by replacing bulk updateMany queries with strict inline findFirst followed by update or create, guaranteeing raw files are properly inserted.
  • Configure next.config.mjs serverExternalPackages to prevent Next.js from failing builds when encountering native binaries or legacy java dependencies (vertx).
  • Update Dockerfile to forcefully inject node-unar binaries into the .next/standalone output folder to prevent runtime crashes.
  • Add global TypeScript declaration file (node-unrar.d.ts) to satisfy the compiler for the new vanilla JS unpacker.
  • Resolve NPM security audit warnings by applying strict package.json overrides for uuid and brace-expansion and removing deeply nested vulnerable copies during the Docker build.

🎨 UI/UX Improvements

  • Transform the Manual Match dialog into a two-step Look Up and Apply workflow.
  • Add a Series Preview card to the Manual Match dialog displaying the cover image, title, publisher, year, issue count, and a clamped description.
  • Add a dynamically routed external link to verify the matched series directly on ComicVine or Metron.

Don't miss a new omnibus release

NewReleases is sending notifications on new releases.