Skip to content

Coldkeep v1.12.2 — CLI Validation Follow-up

Choose a tag to compare

@franchoy franchoy released this 05 Jun 16:24
· 347 commits to main since this release
aabcb00

Coldkeep v1.12.2 — CLI Validation Follow-up

Coldkeep v1.12.2 is a small patch release that closes follow-up gaps found during the strict v1.12.1 audit and improves the release workflow before starting v1.13.

This release focuses on CLI validation hygiene, parser-path test coverage, and pre-release checklist modernization.

No schema, storage format, repository format, default backend, engine/catalog architecture, JSON envelope, or exit-code changes are included.

Highlights

  • Fixed stale v1.12.1 release documentation status.
  • Aligned search --extension parser handling with empty-value validation.
  • Kept search --extension unsupported as a search feature.
  • Added parser-path regression coverage for selected empty-value CLI validation cases.
  • Modernized PRE_RELEASE_CHECKLIST.md with clearer validation profiles.
  • Added final v1.12.2 release-gate evidence.

CLI validation follow-up

v1.12.2 clarifies unsupported search --extension behavior:

  • search --extension "" fails as an empty value.
  • search --extension " " fails as an empty value.
  • search --extension fails as a missing value.
  • search --extension .txt remains unsupported.

This does not implement extension search. It only aligns parser behavior with the validation contract introduced during the v1.12.1 follow-up.

Parser-path regression coverage

This release adds real parser-path tests for selected empty and blank values, including:

  • search --name
  • search --path
  • snapshot list --path
  • remove --stored-path
  • restore --stored-path
  • snapshot create --id

The goal is to ensure these validation paths are proven through normal CLI-style argument parsing, not only direct constructed command structs.

Pre-release checklist modernization

PRE_RELEASE_CHECKLIST.md now separates validation into clearer profiles:

  • Profile A — Pre-PR CI-parity gate
  • Profile B — Full release-tag/manual gate
  • Profile C — Historical/special-release templates

The checklist now includes:

  • required local tools;
  • runtime guidance;
  • clearer newcomer guidance;
  • current CI legacy-compatibility local mirror;
  • local cross-platform approximation with macOS/Windows caveat;
  • smoke parity clarification;
  • benchmark local-variance policy;
  • reusable unchecked final sign-off boxes.

This makes the checklist safer to use before opening future PRs, especially before v1.13 and later correctness-sensitive releases.

Compatibility

No changes to:

  • database schema
  • repository format
  • storage format
  • default backend behavior
  • engine/catalog architecture
  • packed/legacy storage semantics
  • JSON envelope shape
  • exit-code classes

No valid command behavior is intended to change.

Validation

The release branch passed local Profile A pre-PR validation, PR CI, and main CI after merge.

Validated locally before PR:

  • PostgreSQL setup
  • quality-equivalent checks
  • local CI-equivalent matrix
  • smoke for plain and aes-gcm
  • legacy compatibility
  • local cross-platform approximation
  • benchmark matrix
  • gofmt
  • golangci-lint
  • go vet
  • go test -count=1 ./...
  • go test -race -count=1 ./...
  • git diff --check

PR CI was green before merge.

Main CI was green after merge.

Benchmark note

The local benchmark matrix completed.

  • none/w1, zstd/w1, and zstd/w4 passed thresholds.
  • none/w4 showed local workers=4 variance and was recorded according to the checklist policy.
  • GitHub CI remains the authoritative benchmark gate.

Deferred intentionally

The following remain out of scope for v1.12.2:

  • broad parser rewrite
  • new CLI validation families
  • extension search implementation
  • search extension case/leading-dot normalization
  • benchmark validation hardening
  • snapshot tag normalization
  • JSON side-channel cleanup
  • engine/catalog/storage migration
  • v1.13 work

Notes

v1.12.2 is the final cleanup patch after v1.12.1 and before v1.13 planning.

It leaves the v1.12 line with cleaner CLI validation evidence and a stronger pre-PR validation workflow for future releases.