Skip to content

v0.0.3

Pre-release
Pre-release

Choose a tag to compare

@AlyShmahell AlyShmahell released this 29 Aug 13:17
· 1 commit to main since this release

Changelog

0.0.3 - 2026-08-29

Scan/ingest are isolated per request. Title-finding is back to the August 17 loop (one child, one instruct call, match kicked immediately), plus a title folder path.

Breaking

  • POST /v1/scan returns 202 {"session","files"}. POST /v1/ingest returns 202 {"session","jobs"} (jobs are no longer a bare array).
  • GET/DELETE /v1/jobs, GET /v1/scan/status, GET /v1/match/log, POST /v1/match, POST /v1/retry, select/catalog-on-job, and catalog reads require ?session=. Missing id is 400; unknown or expired is 404.
  • Jobs persist as {data_dir}/jobs-{session}.json, not jobs.json.
  • Scan no longer attaches video files to jobs or maps them onto catalog episodes (that 0.0.2 experiment is reverted).

Changed (title-finding realignment)

Restored the August 17 grouping engine (bb1cdb1 / 0692b2d), not the later Units / batched Group / LLM SxxExx experiments.

  • Immediate children only (scan.Children). One match.Group per child. Compact listing, ~5 filename samples, max_tokens: 256.
  • Append + Kick inside the child loop so matching overlaps later grouping.
  • Prompt is the August 17 rules again (folder as title, one object per series, no SxxExx, extras are not shows).
  • Added Path: on the listing and {title,year,path} so a mixed folder can use {Path}/{child} (movie/OVA next to seasons).
  • Parent: on folder listings; fallback title prefers Parent when Folder: is Season N.
  • Same title from two children is still two jobs (no end-of-scan merge).

Added

  • Server-minted session ids: <UTC 20060102T150405Z>-<16 hex>.
  • GET /v1/sessions — unexpired ids, newest first.
  • session.ttl_ms (default and max 24h). Expired job files are purged; catalog on disk is not.
  • GET /v1/catalog?session= lists only titles that session matched.
  • DELETE /v1/catalog and DELETE /v1/catalog/{provider}/{id} — no session; 409 if any live session still has that match.
  • Admin UI stores the last session and sends ?session= on job/scan/catalog calls.

Fixed

  • Image Fetch no longer shares the provider API pacer (tvmaze/poster no longer queues for minutes behind search).
  • Admin scan poller no longer dies on the previous session while POST /v1/scan is in flight; poller restarts after setSession.
  • POST /v1/scan does not walk the whole tree before 202; files is the sum of each child’s video count.
  • ListVideos / samples follow symlink library roots.

Removed

  • Units / FolderClass / batched GroupUnit / LLM file S/E labels.
  • Unused MergeJobs / empty Grouped.Files leftovers.