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

5 hours ago

v1.1.0-beta.031 - feat(convert/paths): add CB7 support, centralize shared constants, utilities, and path fallbacks

Add comprehensive support for converting 7-Zip (.cb7) comic archives, centralize heavily duplicated file-format constants and filesystem paths to eliminate behavior drift, and deduplicate utility functions into shared modules.

🗜️ CB7 Comic Archive Support

  • Accept .cb7 in convertCbrToCbz, relying on unar's native 7z extraction fallback path.
  • Wire up .cb7 files for conversion during watched-folder ingest, post-import, and smart-match.
  • Update the CBR Auto-Converter job's library query to include .cb7/.CB7.
  • Handle .cb7 gracefully in the Reader by showing the waiting to be converted message instead of failing out.
  • Add full CB7 routing and end-to-end fallback tests with custom child_process mocks.

📦 File-Format Centralization & Drift Fixes

  • Create src/lib/utils/formats.ts as the single source of truth for comic and image extensions.
  • Replace 17 scattered extension lists and regexes across 14 files to fix system-wide behavior drift:
    • Library scanner now ingests .rar, .cb7, and .epub (previously restricted to cbz/cbr/zip).
    • Diagnostics deep-scan now audits all six supported formats.
    • Ghost-series cleanup no longer accidentally deletes folders containing only .rar/.epub files.
    • Reader and OPDS can now display preserved GIF/BMP pages; importer page counts now include .bmp.
    • Smart-match now properly accepts and queues .rar files instead of silently skipping them.
  • Explicitly separated intentionally narrow lists (Hoster link-detection/cover picker) and appended PDF exceptions with intent comments.

📁 Filesystem Paths Centralization & Drift Fixes

  • Create src/lib/utils/paths.ts to act as the single source of truth for all system paths (CONFIG_DIR, CACHE_DIR, LOGS_DIR, BACKUPS_DIR, WATCHED_DIR, UNMATCHED_DIR).
  • Replace 16 inline process.env fallbacks scattered across 14 files with these new shared constants.
  • Standardize system fallbacks to fix critical data-retention drift:
    • Logs fallback moved from the ephemeral container path (/app/config/logs) to the persistent volume (/config/logs), ensuring consistency across logger, download, and reporting routes.
    • Backups fallback standardized to /config/backups (was /backups).
    • Fixed a missed repackArchive cache-path edit in converter.ts.
  • Add environment validation to ensure watched and unmatched directories exist and are writable, logging proactive warnings to prevent silent data loss in the container's ephemeral layer.

🧰 Utility Deduplication & Code Cleanup

  • Centralized shared helpers into single-source utility modules, removing 12+ redundant copies:
    • utils/defaults.ts: Consolidates release-scoring defaults for the engine and settings UI.
    • utils/search-terms.ts: Unifies stop words and keywords for download providers.
    • utils/xml.ts: Shares escapeXml between OPDS feeds and ComicInfo writing.
    • utils/safe-parse.ts: Centralizes JSON array parsing for library API routes.
    • utils/sanitize.ts: Shares sanitizeFilename to ensure imports and renames build identical paths.
    • metadata/providers/metron-cover.ts: Deduplicates the Metron fallback cover lookup.

Don't miss a new omnibus release

NewReleases is sending notifications on new releases.