Read all five documents against the code and fix what the sixth review found
check / check (push) Successful in 12m5s

Fixes the four findings of the sixth review: `snapshot remove` with
`--local-only`, the two comma-chained permission lists, six undefined terms,
and the sentence about an unfinished snapshot in the local index.

Then reads every sentence of `README.md`, `ARCHITECTURE.md`,
`docs/DATAMODEL.md`, `docs/REPOSTRUCTURE.md` and the comments in
`config.example.yml` against the code for four faults: a command's needs or
behaviour stated without regard to a flag, a false absolute, three or more
things chained with commas, and a technical word not defined on first use.
Each sentence changed is listed on the pull request.

The help string of `snapshot remove --dry-run` now says it needs no
permission to delete.

Model: fable-5-1
This commit is contained in:
clawbot committed 2026-11-09 01:57:09 +00:00
1 parent a133b8838e
commit 46b2a9fc78
6 files changed
+341 -193

No files matched your search

+21 -15
View File
@@ -3,7 +3,7 @@
# defaults; where an option has a default, its comment gives it.
# Copy this file and change the values you need
# Age recipient public keys for encryption
# Age recipient public keys for encryption (age: https://age-encryption.org/)
# Backups are encrypted to these public keys. snapshot create needs at least
# one; listing, verifying and restoring do not
# Generate a key pair, and show its public key, with:
@@ -11,6 +11,7 @@
# grep 'public key' vaultik_backup_private_key.txt
# Keep the private key file: restoring needs it. Do not pipe age-keygen
# straight into grep, which would discard the private key
# Default: none
age_recipients:
- age1cj2k2addawy294f6k2gr2mf9gps9r3syplryxca3nvxj3daqm96qfp84tz
@@ -268,6 +269,7 @@ snapshots:
- "**/vendor"
# Global patterns to exclude from all backups
# Default: none
exclude:
- "*.tmp"
@@ -276,8 +278,8 @@ exclude:
# An s3:// URL also needs s3.access_key_id and s3.secret_access_key below
# A file:// path must be absolute, and the directory must already exist:
# vaultik never creates it
# An rclone:// URL needs the remote to be defined in rclone's own config
# (rclone config)
# An rclone:// URL names a remote of rclone (https://rclone.org/); the remote
# must be defined in rclone's own config (rclone config)
storage_url: "rclone://myremote/path/to/backups"
# S3-compatible storage configuration
@@ -310,7 +312,7 @@ storage_url: "rclone://myremote/path/to/backups"
#
# # Part size for multipart uploads
# # Minimum 5MiB, maximum 5GiB; affects memory usage during upload
# # A blob too large for 10,000 parts of this size gets larger parts
# # An object too large for 10,000 parts of this size gets larger parts
# # Supports: 10MB, 16MiB, 100MiB, etc. (5MB is below the minimum)
# # Default: 5MiB
# #part_size: 5MiB
@@ -323,8 +325,9 @@ storage_url: "rclone://myremote/path/to/backups"
# Linux: ~/.local/share/vaultik/index.sqlite
#index_path: /path/to/index.sqlite
# Average chunk size for content-defined chunking
# Smaller chunks = better deduplication but more metadata
# Average size of a chunk, a piece of a file's content. Chunk boundaries
# depend on the file's content, not on fixed offsets
# Smaller chunks find more duplicate content and make the index larger
# Minimum 1MB
# Supports: 10MB, 5M, 1GB, 64MiB, etc.
# Default: 10MB
@@ -334,9 +337,10 @@ storage_url: "rclone://myremote/path/to/backups"
# Multiple chunks are packed into blobs up to this size
# Must be at least four times chunk_size (the largest chunk the chunker can
# emit); a smaller limit would let a single-chunk blob exceed it.
# Chunking uses no secret (the FastCDC parameters are fixed and public). At a
# large limit a blob holds hundreds of chunks, so individual chunk lengths are
# not visible in its size; lowering the limit toward chunk_size exposes them.
# Chunking uses no secret (the parameters of the FastCDC chunking algorithm
# are fixed and public). At a large limit a blob holds hundreds of chunks, so
# individual chunk lengths are not visible in its size; lowering the limit
# toward chunk_size exposes them.
# A backup needs free temporary space, because each blob is written whole to
# a temporary file before it is uploaded (up to about blob_size_limit; an
# rclone destination that cannot stream uploads needs about twice that) and
@@ -352,12 +356,14 @@ storage_url: "rclone://myremote/path/to/backups"
# Default: 3
compression_level: 5
# How old a blob that no snapshot lists must be before prune deletes it, and
# how old every object in a directory under metadata/ with no manifest must
# be before prune deletes that directory
# A backup uploads its blobs and its db.zst.age before its manifest, so on a
# destination shared between hosts or users this must be longer than the
# longest backup run
# How old a blob that no snapshot lists must be before vaultik prune deletes
# it. Each snapshot has a directory under metadata/ at the destination, and
# its manifest there lists the blobs it uses. This is also how old every
# object in a directory with no manifest must be before vaultik prune deletes
# that directory
# A backup uploads its blobs and its encrypted database (db.zst.age) before
# its manifest, so on a destination shared between hosts or users this must
# be longer than the longest backup run
# It does not protect a blob a backup reuses from an earlier run that stopped
# before its manifest: that blob keeps the time of its first upload, so a
# prune can delete it