2026-09-17 - 2026-09-24

Overview

48 Active Pull Requests
54 Active Issues
Excluding merges, 0 authors have pushed 0 commits to main and 46 commits to all branches. On main, 0 files have changed and there have been 0 additions and 0 deletions.

47 Pull requests merged by 1 user

Merged #114 next: integrate accumulated work into main 2026-09-23 13:03:03 +02:00

Merged #202 Vendor the canonical .golangci.yml (gomodguard_v2) 2026-09-23 02:14:41 +02:00

Merged #201 Route direct-stdout command output through internal/ui (closes #149) 2026-09-22 20:28:51 +02:00

Merged #200 Mark a snapshot complete only after its metadata export succeeds 2026-09-22 20:00:41 +02:00

Merged #199 Correct the security claims in docs and comments, and record the accepted risks 2026-09-22 19:28:32 +02:00

Merged #198 Reject a metadata database truncated to the age header and nonce 2026-09-22 18:11:58 +02:00

Merged #197 Bound download expansion and escape control chars on the terminal (closes #164) 2026-09-22 17:00:36 +02:00

Merged #195 Validate blob hashes, offsets and lengths read from the destination 2026-09-22 16:11:29 +02:00

Merged #196 Parse the age identity key once and accept every identity in it 2026-09-22 15:45:28 +02:00

Merged #194 Reject a decrypted snapshot database that is not the requested one 2026-09-22 15:01:02 +02:00

Merged #193 Check blob sizes and the database in shallow verify 2026-09-22 14:28:45 +02:00

Merged #192 Add negative and boundary tests for blobgen and types (closes #170) 2026-09-22 14:28:35 +02:00

Merged #189 Wait for the interrupted operation to clean up before exit 2026-09-22 14:00:50 +02:00

Merged #191 Remove the unused crypto path and write the blob-ID hash step once 2026-09-22 13:46:02 +02:00

Merged #190 Scrub example config of real credentials and internal hosts 2026-09-22 13:45:52 +02:00

Merged #188 Give the local index and its export copy an explicit 0600 mode 2026-09-22 13:12:07 +02:00

Merged #187 Parse age_recipients at config load and never echo the entry 2026-09-22 13:01:01 +02:00

Merged #186 Open the downloaded snapshot database read-only, on a private temp dir 2026-09-22 12:45:54 +02:00

Merged #185 Abort the run when packing fails, even under --skip-errors 2026-09-22 12:28:44 +02:00

Merged #184 Stop config set echoing secrets; reject credential-bearing storage URLs 2026-09-22 12:28:32 +02:00

Merged #183 Reconcile purge against remote by hashed key, not human ID 2026-09-22 12:11:49 +02:00

Merged #182 Restore files at 0600 and make the blob hash check unskippable (closes #163) 2026-09-22 11:45:53 +02:00

Merged #181 Reject a blob_size_limit below the largest possible chunk (closes #167) 2026-09-22 11:45:41 +02:00

Merged #180 Fail closed on unreadable manifests instead of losing blobs 2026-09-22 11:45:30 +02:00

Merged #178 Default a scheme-less s3.* endpoint to TLS 2026-09-22 11:11:34 +02:00

Merged #179 Scope the PID lock to mutating commands 2026-09-22 11:01:29 +02:00

Merged #176 Keep restore writes inside the target directory 2026-09-22 11:01:02 +02:00

Merged #175 Trust only uploaded blobs for deduplication (closes #148) 2026-09-22 10:29:22 +02:00

Merged #173 Add fault-injection tests for interruption and corruption (closes #72) 2026-09-22 09:46:47 +02:00

Merged #145 Quiet only the stdout UI under --json, not the log level (closes #112) 2026-09-22 09:05:53 +02:00

Merged #174 Reconcile docs with code across the accuracy-sweep items (closes #74) 2026-09-22 09:05:37 +02:00

Merged #147 Accept a remote key for restore and verify, and document it (closes #124) 2026-09-22 01:01:27 +02:00

Merged #144 Add tests for internal/storage URL parsing and the file backend (closes #66) 2026-09-22 00:58:27 +02:00

Merged #141 Stamp Docker image version from the host; flush profiles on error exit (closes #75) 2026-09-21 22:01:06 +02:00

Merged #146 Reconcile the schema/migration docs with the code (closes #68) 2026-09-21 21:58:37 +02:00

Merged #139 Report a prune count that could not be read as unknown, not 0 (closes #96) 2026-09-21 21:41:58 +02:00

Merged #143 Write file:// blobs atomically via temp file and rename (closes #130) 2026-09-21 21:24:42 +02:00

Merged #142 Map s3 not-found to storage.ErrNotFound in Get and Stat (closes #129) 2026-09-21 21:07:36 +02:00

Merged #140 Use one duration parser and fix the --older-than months example (closes #123) 2026-09-21 20:58:31 +02:00

Merged #135 Drop the lint-guard shell scanner, keep the Dockerfile.lint checks (closes #121) 2026-09-21 20:41:34 +02:00

Merged #138 Hash the plaintext, not the encrypted bytes, in verify --deep (closes #131) 2026-09-21 20:24:37 +02:00

Merged #132 Hash-verify the Go toolchain in the release workflow (closes #105) 2026-09-21 19:48:53 +02:00

Merged #136 VACUUM snapshot metadata through the sqlite driver, not a CLI (closes #120) 2026-09-21 19:41:29 +02:00

Merged #134 Delete dead code and stale fixtures, fix config set reindent 2026-09-21 19:25:01 +02:00

Merged #128 Correct remote layout and privacy docs for hashed snapshot keys (closes #67) 2026-09-21 19:24:45 +02:00

Merged #127 Trigger CI on next, not only main 2026-09-21 14:56:00 +02:00

Merged #126 Correct --cron flag help to name warnings as unsuppressed (closes #87) 2026-09-21 14:55:46 +02:00

1 Pull request proposed by 1 user

Proposed #203 next: integrate accumulated work into main 2026-09-23 13:17:16 +02:00

52 Issues closed from 1 user

Closed #177 Interrupted metadata export leaves a snapshot silently treated as complete but unrestorable 2026-09-23 13:03:03 +02:00

Closed #155 Check blob hashes, offsets and lengths read from the destination before using them 2026-09-23 13:03:03 +02:00

Closed #156 Restore and deep verify must check the decrypted database is the snapshot that was asked for 2026-09-23 13:03:03 +02:00

Closed #159 Ctrl-C during restore exits before cleanup, leaving decrypted data in the temp directory 2026-09-23 13:03:03 +02:00

Closed #113 Run all linting in Docker via Dockerfile.lint + script/lint 2026-09-23 13:03:03 +02:00

Closed #90 golangci-lint deprecation: gomodguard replaced by gomodguard_v2 2026-09-23 02:14:47 +02:00

Closed #119 Review toward 1.0: identify and file all next steps 2026-09-23 01:49:09 +02:00

Closed #73 Security review of the crypto and blob-generation seams 2026-09-23 01:49:08 +02:00

Closed #76 Decide on renaming internal/log, internal/crypto and internal/types (revive var-naming) 2026-09-23 01:43:48 +02:00

Closed #101 REPO_POLICIES.md mandates a 30s test timeout that is too tight to be safe 2026-09-23 01:43:48 +02:00

Closed #149 Route direct-stdout command output through internal/ui 2026-09-22 20:28:51 +02:00

Closed #171 Correct the security claims in the docs and comments, and write down the accepted risks 2026-09-22 19:28:32 +02:00

Closed #152 A stream cut right after the age header reads as valid and empty, and restore then reports success 2026-09-22 18:11:58 +02:00

Closed #164 Bound what a downloaded object may expand to, and escape control characters from the destination before printing 2026-09-22 17:00:36 +02:00

Closed #165 Parse the age private key once, accept every identity in it, and stop showing it typed on the command line 2026-09-22 15:45:28 +02:00

Closed #169 Shallow snapshot verify ignores object sizes and reports more than it checked 2026-09-22 14:28:45 +02:00

Closed #170 Negative and boundary tests for internal/blobgen and internal/types (and internal/crypto if it survives) 2026-09-22 14:28:35 +02:00

Closed #151 Remove the unused second encryption path and unused secret types; write the blob-ID hash step once 2026-09-22 13:46:02 +02:00

Closed #172 config.example.yml carries a real-looking S3 key pair and internal host names 2026-09-22 13:45:52 +02:00

Closed #168 Give the local index and its export copy an explicit 0600 mode 2026-09-22 13:12:07 +02:00

Closed #153 Parse age_recipients when the config loads, and never print the entry in an error 2026-09-22 13:01:02 +02:00

Closed #162 Open the downloaded snapshot database read-only, keep it in a private temp directory, remove it on every path 2026-09-22 12:45:54 +02:00

Closed #161 Under --skip-errors a packing failure can record a file that cannot be restored 2026-09-22 12:28:44 +02:00

Closed #166 config set echoes secrets and keeps a loose file mode; a storage_url carrying credentials is accepted and echoed 2026-09-22 12:28:32 +02:00

Closed #160 snapshot purge deletes every local snapshot record and then purges nothing 2026-09-22 12:11:49 +02:00

Closed #163 Restore: create files 0600, remove partial files, and make the blob hash check impossible to skip 2026-09-22 11:45:53 +02:00

Closed #167 Reject a blob_size_limit below the largest possible chunk 2026-09-22 11:45:42 +02:00

Closed #157 Prune must delete nothing when a manifest cannot be read, and a manifest must never omit a blob 2026-09-22 11:45:30 +02:00

Closed #158 s3.use_ssl is documented as defaulting to true but the code defaults to plain HTTP 2026-09-22 11:11:34 +02:00

Closed #150 Scope the process-wide PID lock to mutating commands 2026-09-22 11:01:30 +02:00

Closed #154 Restore must keep every write inside the target directory 2026-09-22 11:01:02 +02:00

Closed #148 Interrupted blob upload leaves committed chunk rows; a retry silently produces an unrestorable snapshot 2026-09-22 10:29:22 +02:00

Closed #72 Fault-injection tests: prove backups survive interruption and corruption 2026-09-22 09:46:47 +02:00

Closed #112 Under --json, prune deletes local index rows with no signal in either stream 2026-09-22 09:05:53 +02:00

Closed #74 Documentation accuracy sweep: undocumented behavior and stale claims 2026-09-22 09:05:37 +02:00

Closed #137 S3 test credentials for ber1app1 remain in git history after the fixture was deleted 2026-09-22 08:39:46 +02:00

Closed #124 Document and test restoring on another machine 2026-09-22 01:01:27 +02:00

Closed #66 Add tests for internal/storage — the backend abstraction has zero coverage 2026-09-22 00:58:27 +02:00

Closed #75 Docker builds report unknown version, and profiling output is truncated on error 2026-09-21 22:01:06 +02:00

Closed #68 Reconcile the schema/migration story across code and four documents 2026-09-21 21:58:37 +02:00

Closed #96 getTableCount errors are discarded, so a failed query reports as a count of zero 2026-09-21 21:41:58 +02:00

Closed #130 Interrupted blob upload leaves a partial object the next run trusts as complete (file:// backend) 2026-09-21 21:24:43 +02:00

Closed #129 S3Storer.Get/Stat return the raw SDK error, not storage.ErrNotFound 2026-09-21 21:07:36 +02:00

Closed #123 Two duration parsers, and the documented --older-than example deletes almost every snapshot 2026-09-21 20:58:31 +02:00

Closed #121 Rework the lint-guard shell scanner in cmd/vaultik/lintdocker_test.go (second-review findings on the milestone PR) 2026-09-21 20:41:34 +02:00

Closed #131 verify --deep hashes encrypted bytes but compares to the plaintext blob ID, so it fails on healthy snapshots 2026-09-21 20:24:37 +02:00

Closed #105 The Go toolchain in the release workflow is version-pinned but not hash-verified 2026-09-21 19:48:53 +02:00

Closed #120 snapshot create fails on any host without the sqlite3 CLI: VACUUM shells out instead of using the driver 2026-09-21 19:41:29 +02:00

Closed #70 Delete dead code and stale fixtures before tagging 2026-09-21 19:25:01 +02:00

Closed #67 Docs misstate the remote layout and understate the privacy guarantee 2026-09-21 19:24:45 +02:00

Closed #122 CI never runs on next or on PRs targeting it 2026-09-21 14:56:00 +02:00

Closed #87 --cron flag help text misstates what it suppresses 2026-09-21 14:55:46 +02:00

38 Issues created by 1 user

Opened #119 Review toward 1.0: identify and file all next steps 2026-09-21 09:13:40 +02:00

Opened #120 snapshot create fails on any host without the sqlite3 CLI: VACUUM shells out instead of using the driver 2026-09-21 09:19:43 +02:00

Opened #122 CI never runs on next or on PRs targeting it 2026-09-21 09:19:43 +02:00

Opened #121 Rework the lint-guard shell scanner in cmd/vaultik/lintdocker_test.go (second-review findings on the milestone PR) 2026-09-21 09:19:43 +02:00

Opened #123 Two duration parsers, and the documented --older-than example deletes almost every snapshot 2026-09-21 09:19:44 +02:00

Opened #124 Document and test restoring on another machine 2026-09-21 09:19:44 +02:00

Opened #125 Decide the 1.0.0 release scope and cut the tag 2026-09-21 09:19:44 +02:00

Opened #129 S3Storer.Get/Stat return the raw SDK error, not storage.ErrNotFound 2026-09-21 09:41:28 +02:00

Opened #130 Interrupted blob upload leaves a partial object the next run trusts as complete (file:// backend) 2026-09-21 09:43:56 +02:00

Opened #131 verify --deep hashes encrypted bytes but compares to the plaintext blob ID, so it fails on healthy snapshots 2026-09-21 09:44:04 +02:00

Opened #133 CI runner mac-studio fails every job before the first step (docker network pools exhausted, disk full) 2026-09-21 14:58:26 +02:00

Opened #137 S3 test credentials for ber1app1 remain in git history after the fixture was deleted 2026-09-21 19:25:41 +02:00

Opened #148 Interrupted blob upload leaves committed chunk rows; a retry silently produces an unrestorable snapshot 2026-09-21 22:02:05 +02:00

Opened #149 Route direct-stdout command output through internal/ui 2026-09-21 22:03:28 +02:00

Opened #150 Scope the process-wide PID lock to mutating commands 2026-09-21 22:03:35 +02:00

Opened #151 Remove the unused second encryption path and unused secret types; write the blob-ID hash step once 2026-09-22 00:54:59 +02:00

Opened #152 A stream cut right after the age header reads as valid and empty, and restore then reports success 2026-09-22 00:54:59 +02:00

Opened #153 Parse age_recipients when the config loads, and never print the entry in an error 2026-09-22 00:54:59 +02:00

Opened #157 Prune must delete nothing when a manifest cannot be read, and a manifest must never omit a blob 2026-09-22 00:55:13 +02:00

Opened #155 Check blob hashes, offsets and lengths read from the destination before using them 2026-09-22 00:55:13 +02:00

Opened #154 Restore must keep every write inside the target directory 2026-09-22 00:55:13 +02:00

Opened #156 Restore and deep verify must check the decrypted database is the snapshot that was asked for 2026-09-22 00:55:13 +02:00

Opened #165 Parse the age private key once, accept every identity in it, and stop showing it typed on the command line 2026-09-22 00:55:14 +02:00

Opened #172 config.example.yml carries a real-looking S3 key pair and internal host names 2026-09-22 00:55:14 +02:00

Opened #171 Correct the security claims in the docs and comments, and write down the accepted risks 2026-09-22 00:55:14 +02:00

Opened #170 Negative and boundary tests for internal/blobgen and internal/types (and internal/crypto if it survives) 2026-09-22 00:55:14 +02:00

Opened #169 Shallow snapshot verify ignores object sizes and reports more than it checked 2026-09-22 00:55:14 +02:00

Opened #168 Give the local index and its export copy an explicit 0600 mode 2026-09-22 00:55:14 +02:00

Opened #167 Reject a blob_size_limit below the largest possible chunk 2026-09-22 00:55:14 +02:00

Opened #166 config set echoes secrets and keeps a loose file mode; a storage_url carrying credentials is accepted and echoed 2026-09-22 00:55:14 +02:00

Opened #164 Bound what a downloaded object may expand to, and escape control characters from the destination before printing 2026-09-22 00:55:14 +02:00

Opened #163 Restore: create files 0600, remove partial files, and make the blob hash check impossible to skip 2026-09-22 00:55:14 +02:00

Opened #162 Open the downloaded snapshot database read-only, keep it in a private temp directory, remove it on every path 2026-09-22 00:55:14 +02:00

Opened #161 Under --skip-errors a packing failure can record a file that cannot be restored 2026-09-22 00:55:14 +02:00

Opened #160 snapshot purge deletes every local snapshot record and then purges nothing 2026-09-22 00:55:14 +02:00

Opened #159 Ctrl-C during restore exits before cleanup, leaving decrypted data in the temp directory 2026-09-22 00:55:14 +02:00

Opened #158 s3.use_ssl is documented as defaulting to true but the code defaults to plain HTTP 2026-09-22 00:55:14 +02:00

Opened #177 Interrupted metadata export leaves a snapshot silently treated as complete but unrestorable 2026-09-22 09:37:46 +02:00

1 Unresolved Conversation

Open #94 Decide whether feature/daemon-mode is 1.0 scope 2026-09-23 13:17:16 +02:00