build: qualify immutable Withings0.1.4 runtime releases #9

Merged
jlxq0 merged 2 commits from fix/fixed-runtime-20261029 into main 2026-10-29 01:30:51 +00:00
Owner

Prepare Withings0.1.4 with the fixed digest-pinned Debian13 distroless runtime while retaining the Rust1.93 builder, external rotating-token store and existing API/auth behavior. Release CI builds one attested OCI artifact, scans that exact layout/config and publishes the same recursive index by digest. Tags must match the package and descend from main; scheduled audits skip image builds, and PRs have no publication credentials or cache export.

Independent review caught a copied crate-name error in dependency-cache cleanup before any release. The final patch restores withings_mcp cleanup and refuses stale stub binaries at build time; positive, stub, empty and read-error controls passed.120 MSRV tests, format/Clippy, RustSec/OSV/license/source gates pass. The copied publisher passed a real disposable-registry30-object proof with absent-object upload, identical replay, conflicting-tag and missing-descendant refusal. Two fresh Claude reviews approved exact f57532d610 conditional on remote CI.

No production or provider writes. Final exact release image/binary identity, fresh scan, immutable provenance and native authenticated readback remain mandatory before promotion. Attestations are not signatures; tag prechecks are not registry compare-and-swap, so a single authorized writer is required. Existing production rollback pin remains retained at the platform layer.

Prepare Withings0.1.4 with the fixed digest-pinned Debian13 distroless runtime while retaining the Rust1.93 builder, external rotating-token store and existing API/auth behavior. Release CI builds one attested OCI artifact, scans that exact layout/config and publishes the same recursive index by digest. Tags must match the package and descend from main; scheduled audits skip image builds, and PRs have no publication credentials or cache export. Independent review caught a copied crate-name error in dependency-cache cleanup before any release. The final patch restores withings_mcp cleanup and refuses stale stub binaries at build time; positive, stub, empty and read-error controls passed.120 MSRV tests, format/Clippy, RustSec/OSV/license/source gates pass. The copied publisher passed a real disposable-registry30-object proof with absent-object upload, identical replay, conflicting-tag and missing-descendant refusal. Two fresh Claude reviews approved exact f57532d610f58efd44302125f268b64b4524c410 conditional on remote CI. No production or provider writes. Final exact release image/binary identity, fresh scan, immutable provenance and native authenticated readback remain mandatory before promotion. Attestations are not signatures; tag prechecks are not registry compare-and-swap, so a single authorized writer is required. Existing production rollback pin remains retained at the platform layer.
fix: refuse stale dependency stub in Withings release build
All checks were successful
CI / cargo (pull_request) Successful in 52s
CI / docker (pull_request) Successful in 1m45s
f57532d610
jlxq0 merged commit bd019d4afe into main 2026-10-29 01:30:51 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jlxq0/withings-mcp!9
No description provided.