Skip to content

fix(metadata): cap OpenSubtitles bodies, evict metadata cache, bound komide fetch - #568

Merged
forkwright merged 1 commit into
mainfrom
fix/metadata-resource
Jul 6, 2026
Merged

fix(metadata): cap OpenSubtitles bodies, evict metadata cache, bound komide fetch#568
forkwright merged 1 commit into
mainfrom
fix/metadata-resource

Conversation

@forkwright

Copy link
Copy Markdown
Owner

Closes #524
Closes #548
Closes #549

…komide fetch

- prostheke/opensubtitles: route the /subtitles search and /download-link
  JSON reads through the existing byte-capped read_body_capped helper
  (deserializing via serde_json::from_slice) instead of the unbounded
  response.json(), matching the sibling subtitle-content fetch a few lines
  below.

- epignosis: spawn a periodic background sweeper (Weak-held, so it exits
  once the resolver's Arc<MetadataCache> is dropped) that calls
  evict_expired() on the resolver's identity cache every cache_ttl_secs —
  previously eviction only happened lazily on a get() for the same key,
  so a long-running server importing a large library grew the DashMap
  unbounded.

- komide: build the feed-fetch reqwest::Client in archon's serve path
  with .timeout(fetch_timeout_secs) instead of Client::new(), so the
  already-configured-but-unwired timeout actually bounds a stalled feed
  host (which could otherwise block response.chunk().await forever and
  wedge that feed's poll task).

Gate-Passed: kanon 0.1.5 +stages:fmt,check,clippy,nextest,lint sha:768a4ffdf19ceeee2b73738e0ff555a8bdf0e6d6
@forkwright
forkwright merged commit fcf46e3 into main Jul 6, 2026
12 checks passed
@forkwright
forkwright deleted the fix/metadata-resource branch July 6, 2026 20:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant