This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Summary
AI summaryUpdates What's new, Bug fixes, and Auto-routed across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Low |
Adds nhentai source plugin for downloading doujinshis. Adds nhentai source plugin for downloading doujinshis. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Uses E-Hentai as metadata authority for titles with the hentai tag. Uses E-Hentai as metadata authority for titles with the hentai tag. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Implements source default_explicit flag for explicit sources (nhentai, e‑hentai). Implements source default_explicit flag for explicit sources (nhentai, e‑hentai). Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Adds title_aliases table and migration 0032 for fuzzy source matching. Adds title_aliases table and migration 0032 for fuzzy source matching. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Introduces sync_warnings flag and per‑source unmatched warnings (migration 0033). Introduces sync_warnings flag and per‑source unmatched warnings (migration 0033). Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Adds sync_log table and migration 0036 for live progress logging. Adds sync_log table and migration 0036 for live progress logging. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Adds API endpoint GET /api/titles/:id/sync-log to retrieve sync log entries. Adds API endpoint GET /api/titles/:id/sync-log to retrieve sync log entries. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Shows live sync progress on library card and title detail page. Shows live sync progress on library card and title detail page. Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Bugfix | Medium |
Fixes cover thumbnail fallback to MangaUpdates CDN when local file is missing. Fixes cover thumbnail fallback to MangaUpdates CDN when local file is missing. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Bugfix | Medium |
Fixes relative download_dir override causing covers to be written to container filesystem instead of volume. Fixes relative download_dir override causing covers to be written to container filesystem instead of volume. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Bugfix | Medium |
Fixes downloader to error on empty CBZ instead of writing an empty file. Fixes downloader to error on empty CBZ instead of writing an empty file. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Bugfix | Medium |
Prevents FK crash when a title is deleted between sync response and background processing. Prevents FK crash when a title is deleted between sync response and background processing. Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Bugfix | Low |
Handles MangaUpdates latest_releases 502 by deserializing null series_id as None. Handles MangaUpdates latest_releases 502 by deserializing null series_id as None. Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Bugfix | Low |
Migrates titles mistakenly set to doujinshi content type back to manga. Migrates titles mistakenly set to doujinshi content type back to manga. Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
Full changelog
*ARRgh v0.1.1 — nhentai + Sync Progress + Cover Resilience
Released: 2026-05-28
What's new
nhentai source plugin
New plugin for downloading doujinshis from nhentai. Requires CloakBrowser (Cloudflare bypass).
- Searches by title and gallery ID
- Full chapter page download via CloakBrowser CDP
- Auto-routed: titles with the
hentaitag will match nhentai automatically (see source routing below)
E-Hentai as hentai metadata authority
For titles with the hentai tag, E-Hentai now provides covers, descriptions, and tags instead of MangaUpdates (see ADR 0021). MangaUpdates remains the authority for all other content types.
Hentai source routing
Sources now declare default_explicit via their /info endpoint. During source matching, explicit sources (nhentai, e-hentai) are only tried for titles with the hentai tag, and non-explicit sources are skipped for them. This prevents false matches and keeps the correct sources in the pool.
Title aliases (associated names)
MangaUpdates associated names are now fetched and stored per title (title_aliases table, migration 0032). The source-matching algorithm checks all aliases — a title that's known as "Berserk" in one source and "ベルセルク" in another will now match correctly.
Sync warnings
When source matching completes but one or more sources couldn't be matched, the title gets a has_sync_warnings flag. An amber ! badge appears on the library card. Clicking the title and re-syncing (after refreshing metadata) will retry the match.
Sync progress log
Adding a title (or manually re-syncing) now shows live progress instead of a static "Building…" spinner.
- Library card — overlay updates in real time: "Searching MangaDex…", "Matched in Comick: …", "Synced 383 chapters from comick", etc. Card is always clickable while building.
- Title detail page — "Last Sync" panel shows the full step history. Collapsed by default; click to expand. Cleared at the start of each new sync.
- Synopsis — also collapsed by default to reduce visual noise.
Implementation: sync_log table (migration 0036), append-only per sync run, polled every 2 s. See ADR 0022.
Favicon + branding
Skull pirate icon now appears in browser tabs, bookmarks, and home screen shortcuts for both the web app and the docs site. The docs site hero now shows the logo above the title.
New API endpoints
| Method | Path | Description |
|--------|------|-------------|
| GET | /api/titles/:id/sync-log | Sync log entries for a title in insertion order |
Bug fixes
- Cover thumbnails after rebuild —
GET /api/media/cover/:idnow falls back to the cached MangaUpdates CDN URL when the local file is missing, then restores it to the DB. Previously a missing file would permanently null outcover_url. - Relative
download_diroverride —server_settings.download_diris ignored when it is a relative path (e.g../downloads). A relative path caused covers to land in the container filesystem layer (not the volume), disappearing on every image rebuild. - Downloader empty CBZ — downloader now fails with an error instead of writing an empty
.cbzwhen a source returns 0 pages. - Sync FK crash — if a title is deleted between the
POST /titles/:id/sync202 response and the background spawn executing, the spawn now exits cleanly instead of crashing with a FK constraint error. - MangaUpdates
latest_releases502 —releases/searchAPI can returnnullforseries_id; now deserialized asNonewithout an error. doujinshicontent_type — titles accidentally set todoujinshimigrated back tomanga(migration0034).
DB migrations
| # | Name | Change |
|---|------|--------|
| 0032 | title_aliases | Stores MangaUpdates associated names for fuzzy source matching |
| 0033 | sync_warnings | Per-title, per-source unmatched warning flags |
| 0034 | revert_doujinshi_content_type | doujinshi → manga data fix |
| 0035 | source_default_explicit | external_sources.default_explicit column |
| 0036 | sync_log | Append-only per-sync progress log |
Upgrading
docker compose pull
docker compose up -d
All 5 migrations run automatically on startup. No breaking API changes.
Fix existing broken thumbnails: covers nulled out by the old behaviour self-heal on first page load — serve_cover now redirects to the MangaUpdates CDN URL automatically.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About t2vi/arrgh](https:
All releases →Related context
Related tools
Earlier breaking changes
- v0.1.13 Removes the single `/api/discover/trending` endpoint; clients must use lane‑specific endpoints.
- v0.1.13 Removes `MangaFire` source entirely, including plugin and related code.
- v0.1.2 Rust/Axum server removed; replaced with .NET 9 ASP.NET Core Minimal API implementation.
- v.0.0.9 Drops manga.source and chapters.source_id columns from schema.
Beta — feedback welcome: [email protected]