fix: 10 more operator annoyances (rounds 1+2 complete) + 1.0.9 release prep#25
Merged
Merged
Conversation
Hints and error classification: - dsa locate / jit help: drop the nonexistent `kms shred --tenant` recommendation (real invocation: --repo --confirm-keyring --require-approval --yes). - restore checkpoint-mismatch: suggest resuming with the checkpoint's backup ID instead of a nonexistent --backup flag — and never emit `rm -rf <target>` as the machine-readable remediation for a directory holding partially-restored data. - Typo'd group subcommands (`wal audi`, `repo bogus`) fail with exit 2 and a "did you mean" instead of printing help with exit 0; unknown top-level commands are exit 2 as well. The synthetic group guards are annotated so the cmdtree/LLM validator still classifies unknown children as unknown_command. - Empty backup-ID positionals are usage errors (exit 2) — verify previously reported them as manifest-signature failures (exit 9), show/restore as internal errors. - A missing --pg-connection/--repo whose positional names an unknown deployment is rewritten to notfound.deployment listing the configured names. Consistency and safety: - backup delete requires --yes (or --require-approval) — the most destructive verb was the only unguarded one. - Bare status / rotate / audit anchor resolve --repo from config when every deployment shares a single repository. - Durations render as "N ms" everywhere (list/init/verify/llm chat matched show/backup/restore); captured doc examples updated. - The status tombstone footnote is a plain (tab-free) line, so it no longer sets the DEPLOYMENT column width. - The generated restore_command runs wal fetch with `-o text -q` — routine end-of-WAL probes log one line, not a ten-line JSON document, in the PostgreSQL server log. Release prep: CHANGELOG 1.0.9 (rounds 1+2 of the annoyance fixes) and doc version examples bumped to 1.0.9. All fixes carry regression tests; CLI reference/man pages regenerated.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rounds 1+2 of the operator-annoyance sweep: twenty user-facing bugs found by systematically exercising the CLI surface (first-run flows, error hints, exit codes, output consistency), each fixed with a regression test. Round 1 (10 fixes) is already on main; this PR carries round 2 plus the 1.0.9 release prep.
Round 2 highlights
backup deletenow requires--yes/approval (was the only unguarded destructive verb); the checkpoint-mismatch hint no longer emitsrm -rf <target>as machine-readable remediation for partially-restored data.wal audi) exit 2 with "did you mean" instead of help+0 (cron stayed green forever); empty backup-ID is a usage error, not a "signature failure" page; unknown deployments saynotfound.deploymentwith the configured names.kms shred --tenant; doctor anchor hints carry--repo <url>.status/rotate/audit anchorresolve--repofrom a single-repo config; durations areN mseverywhere; the status tombstone footnote no longer blows the table wide;restore_commandlogs one line instead of 10-line JSON docs in the PG server log.Release prep
CHANGELOG
[1.0.9](full 20-fix summary) + doc version examples bumped. After merge: tagv1.0.9→ packages (deb/rpm/tarballs/zip/checksums/cosign) publish via the release pipeline; the Homebrew cask is pushed manually (tap token still invalid); containers remain unpublished pending org GHCR enablement.Verification
Full unit suite green across the tree (
go vetclean, docs/man regenerated); every fix has a regression test; round-2 fixes E2E-verified against a live PostgreSQL (barestatus,--yesgate, table layout, ms format, group exit codes, empty-ID classification).