chore: verify MSRV 1.85, pin 1.85-compatible transitive deps (N6)

- cargo +1.85 check passes (default + --all-features), plus wasm
  target check and a full +1.85 test --all-features run (136 tests).
  The declared MSRV is real, not aspirational.
- the lockfile pins the 1.85-compatible transitive set (jsonschema
  0.46.9, idna_adapter 1.2.0, icu crates 2.0.x) — idna_adapter 1.2.2
  requires rustc 1.86, icu 2.3 requires 1.88; stable still resolves
  and all tests pass.
- review #001 is now fully resolved (status: fully-resolved). A CI
  MSRV job can gate on 'cargo +1.85 check' once CI exists.
This commit is contained in:
2026-09-05 07:28:07 +00:00
parent cdd6893046
commit 6ad1d84fdb
2 changed files with 113 additions and 69 deletions
+23 -7
View File
@@ -1,5 +1,5 @@
---
status: partially-resolved (L6, N4, N6)
status: fully-resolved
last_updated: 2026-09-05
reviewed_artifacts:
- src/lib.rs
@@ -521,6 +521,9 @@ Highlights:
## Remediation Plan
All findings are resolved — see the resolution sections below for
dates and commit references.
| ID | Finding | Fix | Effort | Risk | Status |
|----|---------|-----|--------|------|--------|
| L5 | `cargo fmt` fails | run `cargo fmt`, commit | trivial | none | ✅ resolved |
@@ -536,7 +539,7 @@ Highlights:
| L3 | `open_via_channels` 0% covered | end-to-end channels consumer test | medium | low | ✅ resolved (2026-09-05) |
| L6 | pty bridge error paths untested | targeted error-path tests | medium | low | ✅ resolved (2026-09-05) |
| N4 | sleep-based timing | readiness signals | small | low | ✅ resolved (2026-09-05) |
| N6 | MSRV unverified | CI MSRV job or bump | small | none | open |
| N6 | MSRV unverified | CI MSRV job or bump | small | none | ✅ resolved (2026-09-05) |
### Resolution (2026-08-17, commit `9944153`)
@@ -677,13 +680,26 @@ whenever the control handle exists — the sleeps there were pure
latency. Integration suites now finish in ~40 ms (was 200-270 ms
each).
### Resolution (2026-09-05, N6 — MSRV verified at 1.85)
`cargo +1.85 check` passes for the default crate and `--all-features`,
plus `cargo +1.85 check --target wasm32-unknown-unknown` and a full
`cargo +1.85 test --all-features` (all 136 tests). The declared MSRV
1.85 is real.
The only friction was transitive: `idna_adapter@1.2.2` (via
`idna` ← `jsonschema` ← alkcall) requires rustc 1.86, and the icu
v2.3 crates require 1.88. The Cargo.lock now pins the 1.85-compatible
set (`jsonschema 0.46.9`, `idna_adapter 1.2.0`, icu crates at 2.0.x)
— verified on stable too. If a future dependency bump silently raises
the real MSRV, `cargo +1.85 check` in CI will catch it (the toolchain
is installed via `rustup toolchain install 1.85 --profile minimal` +
`rustup target add wasm32-unknown-unknown --toolchain 1.85`; no CI
job exists yet, so the command here is the check until one does).
### Remaining (open)
- **N6** — MSRV unverified.
### Recommended Order (remaining)
1. **N6** — MSRV; defer until CI exists.
None — the review is fully resolved.
---