ListFiles, ListFilesMatching and FileTreeSize duplicated the paged File listing
with their own cursor input and ordering, and only tests called them. Tests now
use ListFileRows, the listing every service path uses; the unused query helper
goes too, and the remaining scope resolution lives in file_scope.go.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Jobs and Preview hid their whole form, including the page action row, until
values loaded while Library and Devices kept theirs; all four now keep the
disabled action row. Draft validation failures used the load/save error and
offered "Reload saved settings", which would discard the draft; they are now a
separate in-place message without that action. Device discovery uses the
shared progress indicator instead of status text.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upgrades keep customized Tape scripts, so outdated local copies stayed silent
after template fixes. The installer's check now compares each configured script
with the candidate template of the same name (ignoring a .local suffix) and
prints a unified diff, and lists differing template-named helpers beside them.
The report is a manual check; preserved scripts are never replaced.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The ARMv5 matrix entry could only fail: the build refuses GOARM=5 before
compilation and the candidate set never contains an ARMv5 archive. Drop it and
its allowed-failure setting so a failed job always means a real failure.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The default-on Library preference hides or shows Files that have no saved version.
Its "unbacked" name conflicted with the vocabulary, where backup never means
archived File content. Rename the protobuf field to
include_files_without_versions, the CLI flag to --include-files-without-versions
and the Settings label to "Include files without saved versions", and describe
archive coverage in archive terms. Pre-stable installations reread the
preference with its new name, so a saved value from an earlier Alpha reverts to
the field default until saved again.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace the single squash in Release SOP step 2 with a stack re-sliced from the
final source: one concern per commit with its tests, fixes folded into the
commit they correct, dependency order, contract changes with their callers and
every commit building and passing tests on its own. Review fixes fold back into
the owning commit.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Organize documentation by audience: packaged user guides in docs/operations
(including Devices, Tape scripts, Auto read order, Jobs, offline migration and
tar recovery), contributor procedures in docs/development, maintainer release
procedures in docs/release, current behavior in docs/architecture (now with
separate Tape and read-planning documents) and evidence in docs/research. Each
rule keeps one owner and other pages link to it; the document checker, the
packaged guide allowlist and their tests follow the new layout. The documents
land together because the new guides and index link to each other.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Preserve the existing Job lifecycle while keeping timing, cancellation and independent pipeline errors observable.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep CLI and HTTP export consumers streaming with explicit error handling. Validate selections and replace named outputs only after a complete export.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Use the common temporary root for Library, Restore probes, Preview and script output. Preserve active ownership, ordinary outputs and retryable cleanup failures.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upgrade ACP to v0.2.6 for continuous linear-target copying and ordered native filename completion.
Preserve Archive capacity diagnostics, use indexed Restore checks, and maintain real Archive/Restore physical acceptance with reproducible capacity research.