v0.13.0
🚀 What's Changed in v0.13.0
Added
- Provider/Scanner Title Page Detection & Fallback Matching: Multi-tier perceptual cover hashing evaluating Page 1 when Page 0 visual similarity drops below 70% or confidence threshold, matching comic covers obscured by scanner credits or provider intro advertisements.
-
Natural Numeric Image Entry Sorting: High-performance zero-allocation
NaturalStringComparerfor natural numeric sorting of archive image entries (00_intro.jpg,01_cover.jpg,page1.jpg,page2.jpg,page10.jpg). -
Atomic Archive Page Stripping & Removal: Clean removal of provider intro pages (
StripFirstPage,RemoveArchivePages) with temp extraction, ZipSlip path validation, ComicInfo.xmlPageCountdecrement andPagescollection renumbering, archive repack, and.baksafety rollback. -
Bulk Auto-Tag CBR ➔ CBZ Indicators & Badges: Displayed dynamic amber
CBR ➔ CBZbadges in theArchive File / Detected Querycolumn of the Bulk Scrape queue with explanatory conversion tooltips. -
Bulk Auto-Tag Pre-Save Confirmation Dialog: Added
BulkApplyConfirmWindowwhich prompts the user before applying bulk metadata changes whenever CBR repacking or automated file renaming (AlsoRenameFiles) is enabled, showing a live summary of all converted and renamed files. -
CLI Commands & Flags:
- Added
strip-intro <file|dir> [--dry-run]to strip provider/scanner intro pages from archives. - Added
remove-page <file> --index <n> [--dry-run]to remove specific pages by 0-based index. - Added
--page <n>option tocovercommand to extract arbitrary page images. - Added
--cover-page <n>and--strip-intro-pageoptions toscrapecommand.
- Added
-
MCP Server Tools & Enhancements:
- Added
remove_comic_pagetool for AI agent page removal with dry-run support. - Enhanced
extract_cover_imagewithpageIndexparameter. - Enhanced
scrape_and_apply_metadataandbulk_scrape_and_applywithdetectIntroPage,coverPageIndex, andstripIntroPagesoptions.
- Added
-
GUI Scraper Match Page Switcher & Stripping:
- Interactive page navigation (
◀ Page X/Y ▶) inScraperMatchWindowwith live visual similarity re-ranking against candidate covers. - Added
[x] Remove provider intro page on applycheckbox inScraperMatchWindow. - Added
Page 2 Coverbadge on bulk scrape queue items where cover was matched on page 2. - Added
[x] Strip Detected Intro Pagescheckbox inBulkScrapeQueueWindowtoolbar. - Added multi-page cover bitmap and perceptual hash caching in
ArchiveCoverService.
- Interactive page navigation (
-
Full-Series Background Cover Matching & Unified Issue List in Series Wizard:
- Automatically scans across all issues/pages in a selected series in the background (up to 500 issues per volume) with early-exit upon discovering
$\ge 90%$ visual similarity, eliminating manual pagination when matching covers for later issues in long runs. - Replaces rigid page buttons in Step 2 with a unified, continuous scrollable issue list that dynamically sorts and pins high-confidence visual matches (
$\ge 70%$ ) at the top with the ⭐ Top Visual Match badge and automatically selects$\ge 85%$ matches. - Added a quick real-time filter box in Step 2 to search/filter issues by number or title across the entire series.
- Added live local comic cover preview thumbnails in the Step 2 header and bottom action bar with side-by-side comparison (
[Local Cover] vs [Selected Candidate]) and hover-to-zoom tooltips. - Added
[x] Rematch remaining unmatched comics in queuecheckbox inSeriesSearchWizardWindowwhen launched from the bulk auto-tag queue, automatically re-matching all remaining unmatched, low-confidence, or error queue items against the selected series volume. - Added direct
🧙 Series Search Wizard...context menu option inBulkScrapeQueueWindow. - Added full-content hover tooltips (
ToolTip.ShowDelay="100") across all text fields inBulkScrapeQueueWindow(including Archive File Name, Detected Query, Matched Series Title, and Matched Issue Title), allowing users to immediately inspect full untruncated strings on hover. - Added native support for Chronological & Reading-Order Pack filenames (e.g.,
YYYYMMDD - Franchise, Season X #Y - Arc Title, Part Z.cbzandYYYY-MM-DD - Series #X - Story.cbz):- Automatically strips 8-digit ISO dates (
YYYYMMDD -/YYYY-MM-DD -) and extracts the 4-digit release year. - Accurately decomposes franchise season-arc structures (e.g.
Angel, Season 5 #14 - Smile Time, Part II$\rightarrow$ Angel: Smile Time #2,Buffy, Season 0 #1 - The Origin, Part I$\rightarrow$ Buffy: The Origin #1). - Converts Roman numeral part designations (
Part I,Part II,Part III, etc.) to issue numbers. - Expands series volume searches in ComicVine scraper with arc aliases and franchise parent volumes.
- Automatically strips 8-digit ISO dates (
- Automatically scans across all issues/pages in a selected series in the background (up to 500 issues per volume) with early-exit upon discovering
Fixed
- Dynamic File Name Column Layout with Hugging Format Badges: Replaced fixed-width truncation in the DataGrid
File Namecolumn withHuggingBadgePanel, allowing filename text to expand dynamically as the column is resized while keeping format badges (CBR,CBR ➔ CBZ) hugging the right side of the text and gracefully truncating long filenames with ellipsis only when column boundaries are reached. - Bulk Scrape Queue Window Layout & Minimum Size Enforcement: Enforced responsive minimum window dimensions (
MinWidth="1160",MinHeight="580") and refactored the bottom actions bar layout into auto-sized control columns with an elastic spacer, preventing theStrip Detected Intro Pagescheckbox and adjacent controls from getting compressed or bunched together on narrower window widths. - Inspector ScrollBar Viewport Padding: Added right viewport padding (
Padding="0,0,12,0") toScrollViewercontainers across the sidebar tabs (Details,Bulk Edit,Bulk Tools), preventing textboxes and input controls from colliding with or sitting proudly beneath the vertical scrollbar. - DataGrid Column Header MinWidth Constraints: Configured explicit
MinWidthconstraints and adjusted default widths across all 35 DataGrid columns inMainWindow.axamlandBulkScrapeQueueWindow.axaml, ensuring column headers (e.g.Black & White,Age Rating,Language ISO,Page Count,Untagged,Manga (RTL)) are never truncated on initial load or during interactive column resizing. - Prevent Premature Bitmap Disposal During Cache Eviction: Removed aggressive manual
.Dispose()invocations on evicted image cache items inArchiveCoverServiceandLruImageCache, preventing UI layout passes (Image.MeasureOverride) from encountering disposed unmanaged handles during browsing and resizing. - Bulk Scrape Queue & Rename Error Tooltips: Added interactive hover tooltips (
ToolTip.Tip="{Binding StatusTooltip}") on status badges inBulkScrapeQueueWindowandRenamePreviewWindow, surfacing the exact error or collision message when hovering overErrororCollisionbadges. - Dynamic Single vs Bulk Auto-Tag Control Enabling: Automatically disables the singular
Auto-Tagtoolbar button, context menu items, and Tools menu commands whenever multiple items are selected in the main comic DataGrid with a helpful tooltip redirecting toBulk Auto-Tag, and re-enables singular auto-tagging when exactly 1 item is chosen. - Bulk Auto-Tag Retry for Errored Items: Fixed an issue in
BulkScrapeQueueViewModelwhere clickingApply Matched to Comic Archivesa second time failed to attempt saving remaining errored items due to an overly restrictive status filter. Errored items with matched candidates remain selected and are now properly re-evaluated and retried on subsequent apply clicks.
📦 Downloads & Installation Notes
🍏 macOS Installation Note
Because InkTag is currently unnotarized:
- Drag
InkTag.appinto/Applications. - Run the following command in Terminal to clear the download quarantine:
xattr -cr /Applications/InkTag.app
(Alternatively, go to System Settings > Privacy & Security and click Open Anyway).
🤖 Model Context Protocol (MCP) Server Usage
- macOS (bundled):
/Applications/InkTag.app/Contents/MacOS/InkTag.Mcp - Windows / Linux / macOS (standalone downloads): Use the dedicated
InkTag-Mcp-*packages.