chore: bump to 0.8.2, changelog for the PTY exit-signal fidelity fix

- version 0.8.1 -> 0.8.2 (patch: behavior-only bug fix in the local
  feature's PTY waiter from db0b1fc; ADR-004 decision 1's negative-code
  convention now holds on the PTY path; no API, wire-format, or
  dependency change)
- CHANGELOG entry for 0.8.2 (review #004 resolution: the waitpid reap
  mechanism, the signal round-trip notes, the tests, the docs)
- finish the em-dash sweep in prose 58da42a missed: doc comments in
  tests/ (negotiation, pipe, pty, common) and fuzz/shared
  (control_json, negotiation_frame, session_opseq); prose rewrites
  only, no code, JSON literals, or wire shapes touched
- README checked: no version pins, nothing to update

Verification: cargo test; cargo test --all-features; cargo clippy
--all-targets -D warnings (default and --all-features); cargo fmt
--check; cargo doc --no-deps; fuzz/shared corpus replay (9 seeds pass);
cargo check + clippy for wasm32-unknown-unknown -D warnings; cargo
publish --dry-run --allow-dirty (43 files, 194.4 KiB); detached
campaigns over the four targets (chunk_frame 632s, negotiation_frame
602s, control_json 610s, session_opseq 608s) all exiting 0 with
0 crash/oom/timeout findings.
This commit is contained in:
glm-5.3-flash committed 2026-11-02 08:27:32 +00:00
1 parent 62f04c6856
commit a701247ca6
11 files changed
+79 -28

No files matched your search

+3 -3
View File
@@ -109,7 +109,7 @@ impl ClientSide {
/// Read a length-prefixed JSON error frame (Phase 1 framing, used
/// for negotiation errors). The first byte of the 4-byte length
/// prefix MUST be `0x00` (the framing-disambiguation invariant —
/// prefix MUST be `0x00` (the framing-disambiguation invariant,
/// ADR-052 §5); this method asserts that. Returns the parsed JSON.
pub async fn read_error_frame(&mut self) -> serde_json::Value {
let mut first = [0u8; 1];
@@ -305,8 +305,8 @@ pub fn nanos_seed() -> u64 {
/// Poll until `path` exists (or `timeout` elapses), sleeping 10 ms
/// between probes. This is the readiness signal for tests that need
/// the child to have reached a state (e.g. `exec`'d) before acting on
/// it — replaces fixed pre-action sleeps, which fail spuriously on a
/// loaded machine (review #001 N4). Returns `false` on timeout.
/// it. This replaces fixed pre-action sleeps, which fail spuriously
/// on a loaded machine (review #001 N4). Returns `false` on timeout.
pub async fn wait_for_file(path: &std::path::Path, timeout: Duration) -> bool {
let deadline = tokio::time::Instant::now() + timeout;
loop {