Record the supported Rust API and SemVer gate - #108
Conversation
Review: #108 — Record the supported Rust API and SemVer gateOverviewThis PR adds exactly two things: a new audit record ( Verification performedSince this PR's content is entirely made of externally-checkable claims, I re-derived as many as I could against the current repo state rather than just reading prose:
Everything I could independently re-derive checked out. I could not reproduce the Minor observations (non-blocking)
Code quality / correctness / security / test coverageNot applicable in the usual sense — this is a documentation-only, record-keeping change with no executable code, no new tests, and no security surface. Its "correctness" is the claims-vs-repo-state consistency checked above, which held up under spot-checking. Overall: Accurate, well-cross-referenced, and scoped exactly as described. No blockers. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2d6b891f32
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| checks every workspace and packaged Rust source file, rejects unrestricted | ||
| public definitions, and rejects `lib`, `rlib`, `dylib`, `cdylib`, `staticlib`, | ||
| and `proc-macro` in both Cargo `kind` and `crate_types`. |
There was a problem hiding this comment.
Inspect every reported linkable crate type
This overstates the package regression: metadata_failures in tests/issue_54_binary_only_package.rs searches only for exact singleton JSON fragments such as "kind":["rlib"]. A target declared with [lib] crate-type = ["rlib", "cdylib"] is reported by Cargo with both values in each array, so none of those fragments matches and the regression can pass despite a Rust-linkable target. Parse the metadata arrays and check every element before citing this as a future-proof binary-only gate.
Useful? React with 👍 / 👎.
Closes #30
Scope
Record the aggregate supported-product, Rust API, and SemVer gate after all four native children landed. The evidence proves that the v0.2 product is CLI-only and binary-only, that the complete approved 132-row current-source disposition inventory is realized, that the distinct 128-row published-
0.1.4migration baseline is retained, and that the deliberate0.2.0breaking boundary and future compatibility policy are documented and machine-recorded.This PR adds only the dated gate audit and its navigation-guide index entry. It changes no runtime behavior and performs no crate publication, tag creation, GitHub Release creation, or yank.
Stack
d0e03017f188bbd6364d2489877bb332db81d109Red-before-fix evidence
A new failing commit is not applicable to this record-only aggregate gate. The underlying child work retains exact red-before commands, revisions or overlays, exit codes, and observations in the linked audits:
get_full_path; focused test exit101.101.101.0.1.4and the changelog was absent; checker/test exits1and101.The durable aggregate record is
audits/2026-07-26-issue-30-supported-rust-api-gate.md.Validation
cargo clippy --workspace --all-targets --all-features --locked -- -D warnings— passedjust --fmt --check— passedactionlintand auditmarkdownlint— passedlychee— 17/17 links passedcargo package --locked— passed from a clean detached worktree at exact head2d6b891f324bec32e256852e091ea508a680ef30; 119 files packaged and verified; worktree remained cleanAcceptance criteria
0.3.0required for a supported Rust library or another accepted breaking contract change.src/lib.rsis absent; whole-source visibility scans and the non-vacuous 132-row disposition assertion reject a hidden facade.Residual risks
This component gate does not certify the final release candidate or the entire CLI as production-ready. Hermetic testing, effectiveness thresholds, final package allowlisting and negative consumption, trusted publishing, maintained package documentation, the combined support contract, historical specification disposition, and the independent final candidate audit remain separately owned by #58, #59, #62, #63, #66, #67, #68, and #72.