Skip to content

LibriVox add: identity edges after adopted #385

Open

Description

@KodeStar

Follow-ups from v2.7.0 batch B (#384, KodeStar/audiosilo-bridge#70, KodeStar/audiosilo-frontend#297).

Batch B made the librivox.fetch fold respect an admin's identity: the Bridge's result now carries adopted (bridge internal/librivoxjob/librivoxjob.go:115, always sent), the server reads it as a tri-state (internal/catalog/librivox.go:63), an adopted folder never overwrites an existing book_matches / book_overrides identity, and a newly placed book drops a deleted book's leftover ASIN/ISBN override and enrichment row at its path. These edges are left (they continue #379, which the PR closes).

  • Placement time on the wire (server and Bridge). After the Bridge fix round, adopted is false only when this run renamed staging into place. A run that renames, then fails its rescan, retries with adopted: true, so a deleted earlier book's overrides, enrichment and match at that path survive. Fix: the Bridge records the placement time in its fetch state and sends it as an additive result field; the fold drops only rows older than it. Needs a CROSS-REPO §23 line; the Bridge half is tracked in librivox.fetch: pairing, sweep and lane edges audiosilo-bridge#71.
  • Same-work match upgrade (owner decision). An adopted fold never upgrades a same-work match that has no recording (for example a bulk match run's), recorded as a known limit in CONVENTIONS.md. Owner to decide whether a same-work how=auto match should be upgraded to the fetched recording.
  • A placed book inherits a deleted book's other leftovers. Only ASIN/ISBN overrides and the enrichment row are dropped today; title and other field overrides and a custom cover at the same path still apply to the new book.
  • Rebuild identity from .audiosilo/librivox.json (v1) after Clear community matches or a lost fold. Needs the scanner/index to read the file, so it was left out of batch B.
  • A fourth librivox_match value. The unmatched notification says "It is in the library now" even when no book was indexed at the path. A separate value (matched, kept, unmatched, plus one for placed but not indexed) with its own wording would keep the notification honest. Additive on the notification event.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    follow-upFollow-up found during a release or review

    Projects

    • Status
      Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions