Skip to content

fix: 10 more operator annoyances (rounds 1+2 complete) + 1.0.9 release prep#25

Merged
postgresql007 merged 1 commit into
mainfrom
fix/ten-more-annoying-bugs
Jul 13, 2026
Merged

fix: 10 more operator annoyances (rounds 1+2 complete) + 1.0.9 release prep#25
postgresql007 merged 1 commit into
mainfrom
fix/ten-more-annoying-bugs

Conversation

@postgresql007

Copy link
Copy Markdown
Contributor

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

  • Safety: backup delete now requires --yes/approval (was the only unguarded destructive verb); the checkpoint-mismatch hint no longer emits rm -rf <target> as machine-readable remediation for partially-restored data.
  • Exit-code honesty: typo'd group subcommands (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 say notfound.deployment with the configured names.
  • Hints that work when pasted: dsa/jit no longer recommend the nonexistent kms shred --tenant; doctor anchor hints carry --repo <url>.
  • Ergonomics: bare status/rotate/audit anchor resolve --repo from a single-repo config; durations are N ms everywhere; the status tombstone footnote no longer blows the table wide; restore_command logs 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: tag v1.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 vet clean, docs/man regenerated); every fix has a regression test; round-2 fixes E2E-verified against a live PostgreSQL (bare status, --yes gate, table layout, ms format, group exit codes, empty-ID classification).

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.
@postgresql007
postgresql007 merged commit 2e44df3 into main Jul 13, 2026
6 checks passed
@postgresql007
postgresql007 deleted the fix/ten-more-annoying-bugs branch July 13, 2026 11:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant