--- title: feat: build journal records for an archive that has none status: closed labels: [] created: 2026-09-14 closed: --- The journal is the only index intake has, and an archive can exist without it: albums filed by an older version, albums copied in by hand, or an album whose record was lost. Those albums are invisible to verify and audit, and a batch would file a second copy beside them. intake library adopt walks the archive, finds the album directories no record names, reads the artist and album from the masters' own tags -- the folder names may have been normalised on the way in and no longer say what the album was called -- and writes a record for each. Nothing is written to the audio. Two details worth knowing: * The record is keyed by the archive directory rather than by a staging path, because the staging path is long gone and inventing one would be a lie. Record.Adopted marks these so they are distinguishable from albums this tool filed. * An adopted album with no cover.jpg is flagged as needing art, so it turns up in the placeholder list instead of looking finished. Adopting refuses nothing and reports what it will do before doing it; --yes skips the confirmation and --dry-run changes nothing. Running it again finds nothing, which is what makes it safe to run after any import.