Repository navigation
feat(spike): optional tls feature for the portable-runtime crate - #779
Merged
Merged
Conversation
Slice 3 of #746 (#777) was approved http-only; the owner wants TLS measured before the #746 verdict. The offline implementer cannot write checksummed lock entries, so the dependency lands here, reviewed, and slice 3b only writes code against it. rustls with the ring provider avoids cmake/NASM in the cross-build matrix; webpki-roots keeps the single binary independent of the host trust store. The feature is off by default, so the default build stays std-only. Lock generated on the pinned 1.85.0 toolchain in CI run 39998733759 (MSRV fallback resolver); cargo audit clean on 27 crates. Refs #746, #777 Claude-Session: https://claude.ai/code/session_01RJN2vCgLpFwMDwXxGJfKMN
|
Claude finished @mashkovd's task in 15s —— View job Review of PR #779 (commit 7b037d1)
Verdict: approved, with 0 P1, 0 P2 and 0 P3 findings.
I did not run builds or tests, since this was a static review. CI runs those as required checks. |
Contributor
Antigravity (agy) reviewModel: gemini-3.8-flash-high · commit No significant issues found. |
This was referenced Oct 23, 2026
spike(runtime): #746 slice 3 - thin-adapter baseline, benchmarks, cross-builds, decision report
#777
Closed
mashkovd
added a commit
that referenced
this pull request
Oct 23, 2026
Main now carries #779: an optional tls feature with exact-pinned rustls and a 27-entry lock. The report still said rustls could not be added and that the lock held only the package, and it framed the TLS measurement as a conditional follow-up. Under the split recorded on #777 the TLS variant is measured in slice 3b (#780) before the #746 verdict, so the text now says that and keeps the numbers labelled as the default http-only build. Refs #777 Claude-Session: https://claude.ai/code/session_018xZPHSuSUp2cnd1HE6ByPD
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.
Why
This is the split decided on #777: slice 3 runs http-only as approved, and TLS lands separately, then gets measured in slice 3b before the #746 verdict. The #777 proposal rejected
rustlsbecause the offline implementer cannot produce checksummedCargo.lockentries, which would leave the dependency to an unreviewed fix-up commit. This PR adds the dependency instead, reviewed, so slice 3b only writes code against an already-locked set.What
Cargo.toml: an optional featuretls = ["dep:rustls", "dep:webpki-roots"], off by default, plusrust-version = "1.85".rustls =0.23.46usesdefault-features = falsewithring,stdandtls12. It uses the ring provider instead of aws-lc-rs, so the cross-build matrix needs no cmake or NASM.webpki-roots =1.0.11bundles the Mozilla roots, so the single binary does not depend on the host trust store.src/tls.rs(compiled only withtls):client_config()builds aClientConfigwith the ring provider, safe default protocol versions and the bundled roots. One offline unit test covers it. The https upstream path is not wired: that is slice 3b.Cargo.lock: 27 crates with checksums. It was generated on the pinned 1.85.0 toolchain in CI withCARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=fallback cargo generate-lockfile(workflow_dispatch run 39998733759, from a temporary step that this PR no longer contains). Nothing was generated locally.portable-runtime-spike.yml: build, test and clippy with--features tlson both OSes, next to the existing default-build steps.cargo auditalready scans the whole lock.Evidence
Run 39998733759 (ubuntu-latest and macos-14) was green with this exact
Cargo.tomland lock:--features tlsbuild, test and clippy with-D warningsall pass; thetlsbuild runs 42 lib tests (41 + 1);cargo auditscanned 27 crate dependencies against 1351 advisories and found nothing.Overlap
The #777 implementer PR may touch
Cargo.toml,Cargo.lockandportable-runtime-spike.yml. Whichever merges second rebases.Refs #746, #777
🤖 Generated with Claude Code
https://claude.ai/code/session_01RJN2vCgLpFwMDwXxGJfKMN