Repository navigation
fileregister 2.0.1
Detail adjustments, no new features. 2.0.1 comes from an end-to-end run of every subcommand on real files, with the real engine, grubber and Spotlight, in a sandbox: add, promote, annotate, aka, order, album, rename, remove, forget, refresh, repair, write, reindex, cleanup, and marshal with unmarshal into a second home and notes directory. Every step wrote what WHO-WRITES-WHAT.md says it writes, and no data was lost. The read-only commands also ran against a real collection of 200 records. The run turned up the changes below.
audit checks the id layer and exits 1 while something needs you. Besides the binder xattr, it now checks what refresh writes: the record id in kMDItemInformation, which repair looks up first, the same id in com.fileregister.id#S, and ★ on members. A file that lacks any of them is listed as missing id. Like refresh and repair, audit now exits 1 while there is something to fix, so a monitor can rely on it. Copies, orphan bookmarks and entries on an absent volume are reported but do not count.
audit counts records. A record in two binders counted twice in the summary.
refresh --dry-run reports what the real run would write. It used to list every membership, including names already on the file.
repair records a renamed file's new name on its index line, so list and album show the name the file has now. The id does not change, and note headings stay as they are.
unmarshal keeps a note staged until its records are imported. When every file of a container was parked, for instance without --scatter, the note used to land alone, with blocks pointing at ids the index did not have, and the rerun left a second copy in import/. Now the note waits and arrives with its records.
Clearer output. cleanup names an id once, rename counts index records and note blocks apart, list --inbox/--curated say what an empty result means, and repair says when a file it found waits for confirmation instead of calling it not found. SPEC now says that a record rebuilt by reindex or written by write has no bookmark until repair --interactive binds it.
Engine: fileanchor 1.3.0, which adds --version. The release script now asks every binary in the bundle for its version and stops on a mismatch.
Download (Apple Silicon): fileregister-macos-arm64.tar.gz bundles register with its two helpers in libexec/, the fileanchor engine and grubber v0.19.0, plus each component's license in licenses/. Fetched with curl it runs as-is; after a browser download, clear the quarantine flag once in the unpacked folder: xattr -dr com.apple.quarantine register libexec. Intel Macs: build from source (go install + make fileanchor + make grubber).
License: PolyForm Noncommercial 1.0.0 (use, change, non-commercial).