Skip to content

t2vi/arrgh](https:

v0.1.6 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

Published 19h Media Servers
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Summary

AI summary

Updates Highlights, What's new, and New API endpoints None across a mixed release.

Changes in this release

Feature Medium

Hentai source matching upgrades titles to content_type=hentai when MU and nhentai match exactly with is_explicit=true.

Hentai source matching upgrades titles to content_type=hentai when MU and nhentai match exactly with is_explicit=true.

Source: llm_adapter@2026-06-03

Confidence: high

Feature Medium

MatchSourcesAsync now queries nhentai for manga titles with is_explicit=true, ensuring chapter data from hentai sources is never missed.

MatchSourcesAsync now queries nhentai for manga titles with is_explicit=true, ensuring chapter data from hentai sources is never missed.

Source: llm_adapter@2026-06-03

Confidence: high

Feature Medium

WuxiaWorld sync now retrieves all chapters (e.g., 1620 for ISSTH) by parsing `chapterGroups` from React Query state.

WuxiaWorld sync now retrieves all chapters (e.g., 1620 for ISSTH) by parsing `chapterGroups` from React Query state.

Source: llm_adapter@2026-06-03

Confidence: high

Feature Low

Discover UI shows animated source chips with per‑source result feedback (green/dim) during search fan‑out.

Discover UI shows animated source chips with per‑source result feedback (green/dim) during search fan‑out.

Source: llm_adapter@2026-06-03

Confidence: high

Feature Low

Full library‑flow end‑to‑end tests added for manga, hentai, manhwa, and novel authorities.

Full library‑flow end‑to‑end tests added for manga, hentai, manhwa, and novel authorities.

Source: llm_adapter@2026-06-03

Confidence: high

Performance Medium

MatchSourcesAsync HttpClient timeout reduced to 20 s from 100 s default, making CF‑protected source failures fast.

MatchSourcesAsync HttpClient timeout reduced to 20 s from 100 s default, making CF‑protected source failures fast.

Source: llm_adapter@2026-06-03

Confidence: high

Bugfix Medium

CloakBrowser Docker deployment now correctly connects using host from CLOAKBROWSER_WS_URL, fixing ECONNREFUSED errors.

CloakBrowser Docker deployment now correctly connects using host from CLOAKBROWSER_WS_URL, fixing ECONNREFUSED errors.

Source: llm_adapter@2026-06-03

Confidence: high

Bugfix Low

Sync log now writes "Sync complete" before setting `sync_status` to `ready`, fixing race condition.

Sync log now writes "Sync complete" before setting `sync_status` to `ready`, fixing race condition.

Source: llm_adapter@2026-06-03

Confidence: high

Full changelog

*ARRgh v0.1.6 — Hentai source matching, novel chapters, plugin fixes

Released: 2026-06-03


Highlights

  • Hentai source matching — titles classified as manga by MangaUpdates but confirmed by nhentai (exact title match + is_explicit=true) are automatically upgraded to content_type=hentai in discover results. Fixes the case where adding a hentai doujinshi from MU would miss nhentai chapters.
  • Explicit manga wideningMatchSourcesAsync now also queries nhentai for manga titles with is_explicit=true, so chapter data is never missed when MU mis-classifies a hentai title.
  • WuxiaWorld all chapters — now syncs all chapters (e.g. 1620 for ISSTH) instead of only chapter 1. Chapter list is derived from chapterGroups in the embedded React Query state.
  • CloakBrowser Docker fix — plugin-host now correctly connects to CloakBrowser in Docker-to-Docker deployments (was hardcoding localhost, causing ECONNREFUSED for nhentai).
  • CF source timeoutMatchSourcesAsync uses a 20 s HttpClient timeout (down from 100 s default), so CF-protected sources that lack CloakBrowser fail fast instead of blocking sync for 100 s.
  • Discover progress UI — searching now shows animated source chips (MangaUpdates, AniList, MangaDex, NovelUpdates, WuxiaWorld, nhentai) instead of a generic skeleton. When results arrive, each chip turns green (or dims if that source returned nothing), staggered one by one.
  • Sync log race condition fix — "Sync complete" is now written to the log before sync_status is set to ready.
  • Full library-flow test coverage — live end-to-end tests for all four content-type authorities (manga/MangaDex, manhwa/AsuraScans, novel/WuxiaWorld, hentai/nhentai).

What's new

Hentai upgrade in MergeFanOut

When the fan-out discovers the same title from both MangaUpdates (as manga) and nhentai, and the MU result is already is_explicit=true, the result is upgraded to hentai and the standalone nhentai entry is dropped. Exact normalized-title match only — prefix matching was intentionally avoided to prevent false upgrades for popular titles (e.g. "Berserk") that happen to have nhentai parodies.

Explicit manga widening in MatchSourcesAsync

POST /discover/add for a manga title that is is_explicit=true now queries both manga and hentai sources when syncing chapters, ensuring nhentai is always tried even if the title entered the library via a MangaUpdates result.

WuxiaWorld full chapter list

chapters() now parses all chapterGroups from the __REACT_QUERY_STATE__ embedded in the novel page, returning the complete chapter list. Chapter 1 uses the real slug (SSR-readable); remaining chapters use {novelSlug}/chapter/{N} source IDs. Volume is assigned from the chapter group order.

WuxiaWorld does not expose a public API for individual chapter slugs — those are loaded by their SPA via a private endpoint. Chapters beyond chapter 1 appear in the list but may not serve text if WuxiaWorld serves them client-side only.

CloakBrowser host rewrite fix

getBrowser() previously hardcoded localhost when rewriting the CDP WebSocket URL, which worked for local dev (plugin-host on host OS, CloakBrowser in Docker) but caused ECONNREFUSED in Docker-to-Docker deployments. The fix extracts the host from CLOAKBROWSER_WS_URL and uses it directly — localhost:3001 stays local, cloakbrowser:3000 stays Docker. Extracted as rewriteCdpHost() with 3 unit tests.

CF source timeout

Source matching now uses a named "PluginHost" HttpClient with a 20 s timeout. Previously the 100 s default caused sync to stall for 100 s when a CF-protected source (e.g. novelfull) lacked CloakBrowser access.

Discover progress UI

While a search fan-out is in progress, the discover page shows a SearchProgress component: animated source chips appear staggered (one every 120 ms) with pulsing violet dots. When results arrive, chips turn green or grey (staggered 100 ms each) based on whether that source contributed results — giving clear feedback on which authorities responded.

Library-flow live tests (api-live-tests/)

Four parallel 8-step flows, one per content-type authority:

| Flow | Authority | CF? |
|---|---|---|
| manga | MangaDex | no |
| hentai | nhentai | yes (CloakBrowser) |
| manhwa | AsuraScans | no |
| novel | WuxiaWorld | no (official API) |

Each flow tests: discover → add → sync → chapters loaded → sync log → queue download → download completes → chapter viewable. Novel flow uses the /api/chapters/{id}/text endpoint instead of the page-image endpoint.


New API endpoints

None.


Upgrading

docker compose pull
docker compose up -d

No database migrations required.

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

Track t2vi/arrgh](https:

Get notified when new releases ship.

Sign up free

About t2vi/arrgh](https:

All releases →

Related context

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]