weeb.ltd
Changelog

What's new

Every release, with notes. Pulled from GitHub.

v0.27.0

26 Sept 2026View on GitHub

0.27.0 (2026-09-26)

Features

  • rebrand to StoryHoard (#90) (8e4d5eb)
  • resolver: manual Find source + adopt (slice 3) (#88) (8fe33f8)

v0.26.0

26 Sept 2026View on GitHub

0.26.0 (2026-09-26)

Features

  • import: Mangayomi format + ci: decouple AMO submission (#85) (90d4ed7)
  • resolver: source-resolver core (slices 0-2, read-only) (#86) (667fc32)

v0.25.0

25 Sept 2026View on GitHub

0.25.0 (2026-09-25)

Features

  • import: import Mihon/Tachiyomi libraries for tracking (#83) (6be373a)

v0.24.0

25 Sept 2026View on GitHub

0.24.0 (2026-09-25)

Features

  • library: carry optional canonical workId on library rows (#81) (fb3d441)

v0.23.0

25 Sept 2026View on GitHub

0.23.0 (2026-09-25)

Features

  • **privacy:**usage analytics + canonical privacy policy (#79) (3693775)

v0.22.0

21 Sept 2026View on GitHub

0.22.0 (2026-09-21)

Features

  • sync: sync notes, tags, flags and per-title reader overrides across devices (b9b7a4e)
  • tracking: mark chapters read when opened on the source site (129508e)

Bug Fixes

  • discover: search a suggestion's alternate titles so romaji-only manhwa resolve (295096d)
  • reader: read downloaded chapters offline instead of erroring (d12044e)
  • sync,library: stamp updatedAt on edits so they push; caught-up un-pauses (6669283)
  • updates: bucket retired/unlinked/unparseable sources as 'needs relink', not eternal failures (59479df)

v0.21.1

17 Sept 2026View on GitHub

0.21.1 (2026-09-17)

Bug Fixes

  • build: Miss number update for minor change (0c9ee5d)

v0.21.0

16 Sept 2026View on GitHub

0.21.0 (2026-09-16)

Features

  • account: link a weeb.ltd account and sync the library (9e2f739)
  • account: link the community id to the weeb.ltd account (3dcfb42)
  • app: IA refresh - Discover replaces Home, Activity tab, start-page setting (4965cfc)
  • app: move the weeb.ltd account link into Settings so the site's instructions match (b2a56e9)
  • app: nicer placeholder covers for titles with no/broken image (49c5a82)
  • app: settings hub with section rail, find-a-setting filter, and card grid (2b85d24)
  • app: unify On Hold and Paused; detail modal status cleanup (272e9d3)
  • app: weeb.ltd Community nav + footer link, gated on setting and reachability (cdeb65f)
  • community: affiliate click tracking + admin aggregate (75c4699)
  • community: consent-gated data collection, GDPR controls, and install counts (094647b)
  • community: owner announcements + admin dashboard API (9f48bd9)
  • community: per-chapter read counts, genre backfill across events, and source-suffix title cleanup (7ca6242)
  • data: optional passphrase-encrypted backups (AES-GCM) (a190efe)
  • discover: add community-trending rail (2385322)
  • discover: add continue-the-series rail from AniList sequels (6574d7f)
  • discover: backfill thin suggestion pools with top-genre picks (0640cb7)
  • discover: confirmation toast on quick-add (mark read / plan-to-read) (c81f674)
  • discover: Find + More menu to log a suggestion as read or plan-to-read (2ad6ec5)
  • discover: source search in a popover, clearable, self-timing add notice (92df068)
  • discover: weight by AniList rec strength, add hidden-gems rail (fa8ab49)
  • discover: weight recs by rating/status, add not-interested + mix-it-up (f5a9a2a)
  • library: bulk set status in Select mode (e80e0aa)
  • library: escalate the filter box to an all-source search (e0f6949)
  • library: manual genre/metadata backfill; tags vs genres finalized (0a1adc3)
  • library: updates-first default, status counts, New/New-ch badges, Tools menu (d3da2a1)
  • popup: unread-first library overview in the toolbar popup (330f48e)
  • reader: default view setting, per-title page-width override, fix fast-click page jump (ab652cd)
  • sources: add DragonTea with novel URLs and per-site Ko-fi links (6a5fe74)
  • sources: add Nyanu Kafe (nyanukafe.com) (a309361)
  • sources: tip links for LHTranslation, MangaSushi, Nyanu Kafe, Tritinia, Flame Comics (4ff95f0)

Bug Fixes

  • app: center Community nav entry to match other sidebar items (27b1e22)
  • community: allowlist title normalization, safe chapter dedup, rating alignment (b119269)
  • community: guard /events shape, serialize tombstones, fix sync boundary, guard json_each (8532287)
  • deps: bump hono 4.13.5 + @hono/node-server 1.19.17 (moderate CVEs) (4f8001a)
  • discover,library,updates: podium sizing, select-mode checkbox + bulk caught-up, de-conflate bot-block skips (2e0186e)
  • discover: don't blank the page when a refresh can't reach AniList (acd3764)
  • discover: fixed-size centered podium, full-width layout, centered top controls (00a41cd)
  • discover: keep quick-added titles out of suggestions (no stale-cache flash-back) (d732952)
  • discover: quick-add sent a Svelte $state proxy array (unclonable) - spread genres to a plain array (fbc1b0d)
  • discover: stop full-width main overflowing the shell horizontally (625c0e4)
  • discover: visible Mix it up toggle, editor-picks cold-start empty state (0dc64c2)
  • library: don't flag already-read Discover adds as needing a source (61921cf)
  • library: responsive duplicate merge + keep-source picker (9327468)
  • nyanukafe: parse the full chapter anchor (real inners are ~1.4KB, not <400) (07a5544)
  • privacy: point policy URL at the live host privacy.weeb.ltd (2613b11)
  • reader,discover: bughunt fixes - preserve per-title width, show empty search, onboarding on cold start (989dcda)
  • reader: capture JS-injected pages in tab render (MangaHub truncation) (1ddfd44)
  • reader: immersive top bar so it stops limiting image size (6888a54)

Performance Improvements

  • suggestions: cache AniList recommendations per seed to stop hammering AniList (e6726f4)

v0.20.0

23 Aug 2026View on GitHub

The biggest release since 0.19.0: a reworked Discover tab, a much better reader, AniList two-way status sync, and a long tail of source, tracking, and data-safety fixes. 49 user-facing changes.

Highlights

Discover (was Suggestions)

  • The Suggestions tab is now Discover: it leads with a "Top picks for you" podium based on the genres and authors you read, plus a genre-chip filter and a "because you read X, try Y" rail.
  • Find-similar from any title (card button + drawer), and filter suggestions by genre, title, community, and sort order.
  • Loading the sample data now populates Discover, so you can see what it does before building a library.

Reader

  • Fit width now actually fills the screen, with a Page-width slider for fine control.
  • New Actual-size fit (native resolution) and a configurable double-page gap.
  • Double-page is now a proper paged flip view (arrow keys + mouse wheel), not a scroll.
  • Chapter list and prev/next can be filtered by your preferred language.

AniList

  • Bidirectional reading-status sync (push and pull, last-writer wins).
  • Import completed titles as completed, with an opt-out for planning entries.

Library & updates

  • New Updates filter for titles that have new chapters.
  • The merge tool now detects rotated-slug duplicates (Asura-style domain hoppers).
  • In-app download button for the matching browser build when an update is available.

Fixes

Sources

  • comix.to: next-chapter now works both on-page and in the reader (the chapter list is populated from the page and chapter ids are canonicalised so prev/next line up).
  • MangaHub: resolves every chapter page instead of only the lazy-load preload window; heals locally-poisoned chapter numbers and drops a phantom "next" chapter that broke tracking and sync.
  • MangaDex: dedupes chapters to one row per number and threads the reading language.
  • Asura: stops duplicate/renamed library entries under slug rotation and tracks reader progress correctly.
  • Thunderscans: follows the site's path move (/manga -> /comics).
  • Recovers ts-variant chapter lists via an anchor fallback; retired 4 dead adapters.

Reading data & safety

  • Fixes the "lost progress" mislabels: correct New-chapter badge and the real chapter number in the reader.
  • Backs up before a library merge; closed four paths that could orphan rows after a concurrent remove.
  • Reader now captures chapter identity before offline export/remove, fixing stale-chapter races.
  • Bookmarks star the right page/chapter, guard against orphans, and toggle atomically.

Stats & diagnostics

  • The Stats tab no longer goes dead when you leave and come back.
  • The diagnostic log now records update-check runs and embeds a library/unread snapshot, so an export reflects what's actually in your library; the public community username is no longer redacted, and the log holds more entries.

Other

  • Reader page-fit: double-page completion, page-index clamp, and a single-page broken-image banner.
  • Search counts source settlements (not matches) in the progress indicator and guards the chapter list against stale responses.
  • AniList/Webtoons: dedupes custom-list import entries and scopes the Webtoons next-page.
  • Metadata: treats AniList's 404 as a genuine no-match; rejects combining-mark-only usernames.

Hardening

  • Network requests are stream-bound and fail closed on an unverifiable redirect.
  • Source-controlled tab opens are funneled through an http(s) scheme gate.
  • Concurrent downloads of the same chapter are de-duplicated.
  • The metadata and community read endpoints are rate-limited and free-text input is capped.

Both the Chrome and Firefox zips plus SHA256SUMS.txt are attached automatically by the release workflow.

v0.19.0

8 Aug 2026View on GitHub

What's new in 0.19.0

Reader

  • New Strip / Single / Double view control with scrollable double-page spreads and page navigation.
  • Seamless 0-gap continuous toggle, fit-height clipping, and a top-bar autohide hotkey.
  • Original-size pages are now centered instead of hugging a corner.
  • A failed page image retries with backoff before falling back to alt text.

Library & reading status

  • Per-title status: paused / dropped / planning, with AniList status mapping and optional auto-pause after N idle days.
  • Status filters (default Ongoing). "Completed" now requires a genuinely finished and caught-up series, so caught-up ongoing titles stay under Ongoing.
  • Wider detail modal (no more scrolling to reach controls) and a reorganized toolbar.

Search & mirrors

  • Primary-click a search result to add it straight to your library from any source; modifier-click opens the site.
  • Preferred mirrors: per-source search toggle on the Sources tab.
  • Unicode-aware title matching; bulk-search timeout raised so it stops missing sources a manual search finds.

Suggestions & Stats

  • Stats now shows a genre breakdown of what you read.
  • Suggestions shows a genre-weighted top-3 podium built from your library.
  • Paginated infinite-scroll with lazy cover images; cached list served instantly, then revalidated.

New / fixed sources

  • Added mangak.io, GD Scans (Madara, volume-path URLs), and Tritinia (ch- prefix + old-domain alias).
  • Adapter parsing fixes: MangaDex, Comix, Fanfox, Manganato, Mgeko, WeebCentral, Asura, plus dash-decimal chapter numbers.
  • MangaHub: internal-id chapter numbers rejected and healed, so the Updates page shows real chapter numbers.

AniList

  • Import by romaji title first, so more mirrors match.
  • Reconcile hardened: it never mass-drops the library and only removes titles you genuinely removed on AniList.

Community

  • Reserved-name blocklist (admin/root/mod/staff/... including spaced and separator-obfuscated forms) and emoji-safe usernames, enforced on both the client and the server.

Reliability & security

  • v11 DB migration heals Infinity / poisoned chapter numbers and clears dangling read ids on source switch.
  • Diagnostic-log secret/JWT redaction, http(s)-only URL guard, control-char stripping in cbz filenames.
  • Daily automatic restore points with partitioned retention.

Full changelog

0.19.0 (2026-08-08)

Features

  • anilist: import titles by romaji first so mirror search matches more sources (91396fa)
  • backup: daily automatic restore point with partitioned retention (0b6f6a0)
  • community: reserved-name blocklist + emoji-safe username validation (1c384f6)
  • insights: Stats genre breakdown + Suggestions top-3 podium from the library genre profile (3492eec)
  • library: persist sort, cap suggestions, auto-backup on update (ed6f063)
  • library: reading-status filters, per-title status control, auto-pause + import settings (46aef94)
  • library: reading-status model (paused/dropped/planning), AniList status mapping, auto-pause, sync reconcile (70a9c92)
  • reader: seamless 0-gap spread toggle, fit-height clip, top-bar autohide hotkey (7430af5)
  • reader: Strip/Single/Double view control, scrollable double spreads, page nav (f2b8d5d)
  • reader: tighten the double-page spread and add a first-page offset (84cbbda)
  • search: add library:add so primary click adds any source unread (0db5688)
  • search: per-source search toggle on Sources tab (preferred mirrors) (0357774)
  • search: primary click adds result to library, modifier-click opens site (7cecd8b)
  • sources: add GD Scans (Madara) with optional volume-path chapter URLs (2efeab6)
  • sources: add mangak.io adapter (Next.js SSR: search + chapter list + reader scrape) (86c3404)
  • sources: alias tritinia.com to recover old-domain imports (83dc229)

Bug Fixes

  • anilist: make sync reconcile safe (up-front fetch, empty-guard, pre-existing-id snapshot) so it never mass-drops the library (8d4e8b6)
  • anilist: track known-membership across syncs so reconcile only drops genuine removals, never enrichment-stamped titles (47d6726)
  • asura: strip 'Chapter N' suffix from resolved series title (568e9e8)
  • background: reset stuck update-progress on throw; update-pending latch; ensureAlarm no period-reset; focus existing dashboard tab (1cb21aa)
  • capture: mark-read adds a distinct library entry per title (7f7fd05)
  • community-server: vendor username rules so the isolated Docker build resolves (5d3162f)
  • db: preserve anilistId/genres/metadataUpdatedAt/latestChapterAt on chapter recapture (7c74241)
  • db: v11 heals Infinity lastReadChapterNumber; guard latest-chapter pick; clear dangling read id on switch; backup signature covers metadata (755c872)
  • insights: emphasize 1st podium pick with an accent ring instead of scale (no overlap) (a403e6c)
  • library: Completed requires a finished series (caught-up ongoing stays reading) so mark-read titles stay visible in Ongoing (a5393c5)
  • library: don't mark read titles Completed when latest is unknown; status-aware Surprise Me + updates badge (1d11914)
  • mangahub: reject internal-id chapter numbers in external-track + heal poisoned lastReadChapterNumber so Updates shows real numbers (827958b)
  • reader: center image at original page-fit (center + margin-auto, not safe-center) (d543202)
  • reader: retry a failed page image (backoff) before stranding it on alt text (6bceff7)
  • search: honor per-source race timeout in streaming; force refreshes suggestions; validate library:add input (1f31380)
  • search: raise bulk-search race timeout to 10s so it stops missing sources a manual search finds (b0c3593)
  • search: unicode-aware matchesQuery + normalizeTitle (NFC/strip); chapterIdToken uses query key for webtoons (5c26458)
  • security: redact encoded secrets + JWTs in diag log; http(s)-only url guard; strip control chars from cbz filename (1b10c70)
  • sources: dash-decimal chapters, weebcentral year misparse, asura bare-chapter title, sortkey edge cases (1d64bb0)
  • sources: mangadex newest-500, comix chapter-0, fanfox search dupe-slug, manganato genre scoping, mgeko unnumbered (b6e0d48)
  • tritinia: use ch- chapter prefix so reader resolves chapter URLs (115768b)
  • weebcentral: parse Episode-labeled chapters so numbers stop collapsing to 0.NNN (2b59073)

Performance Improvements

  • suggestions: paginated infinite-scroll render + lazy cover images (aa6a505)
  • suggestions: serve cached list instantly and revalidate in the background (82720ec)