Repository navigation
Every environment variable, verified
docs/configuration.md is new: every variable the stack reads, its default, and what it changes — including the ones that were documented nowhere before: the Last.fm rate limiter (LASTFM_MAX_RPS, LASTFM_BURST), JELLYFIN_USER_ID, ARCHIVE_SIMILAR_FRESHNESS_TTL_S, and METAEDIT_BROWSE_SCAN_CAP. Every row was checked against config.py, the compose file and the test conftest, because a configuration table that has drifted is worse than none: it gets trusted and copied.
The API reference now lists every endpoint
The harvest endpoints (POST /api/items/{id}/harvest, and the batch POST /api/harvest that streams one event per item) were implemented, mounted and shipping — and absent from a page that opens with "Every endpoint metaedit serves." They are documented now, with the load-bearing rule stated: harvest spends Last.fm requests and writes to the archive, but never writes to Jellyfin.
A design doc that no longer says reindex is missing
The phase-3 design doc still claimed metaedit reindex raises NotImplementedError — the kind of sentence a reader cannot distrust, because it sounds authoritative. Reindex has shipped since 0.1.0. The status is corrected; the document remains as the contract the implementation must keep satisfying, including the recorded --since deviation.
Small repairs that were quietly wrong
- The compose default for the Last.fm user agent said
metaedit/0.1.0while the app default said0.2.0. Both now say0.2.1. - The development layout omitted the
service/package, where the orchestration actually lives. docs/development.mddocuments all fourpnpmscripts, and notes that integration tests skip cleanly without Postgres — an ordinaryuv run pyteston a fresh checkout reports skips, not failures.- The README's requirements are a table; the feature list covers narrowing and bulk harvest; the doc index gains Configuration and Changelog rows.
No code behaviour changes. The metadata write contract — ADR 0003 (full overwrite), 0004 (snapshot before every write), 0007 (optimistic concurrency) — is untouched.