Skip to content

feat(runner): complete the remaining-work tracker — parity, intent fields, stdin mapping, diagnostics, docs - #20

Merged
hmziqagent merged 7 commits into
masterfrom
feat/runner-remaining-work
Oct 12, 2026
Merged

hmziqagent merged 7 commits into
masterfrom
feat/runner-remaining-work

Conversation

@hmziqagent

Copy link
Copy Markdown
Collaborator

Closes out 100% of docs/runner-remaining-work.md (areas 1–5). Area 6 stays deferred by decision, as the tracker requires.

What landed

A1 — Parity closeout (52ffcc4)

  • parity_failure asserts an exact non-zero exit code, not just cross-runner equality
  • TokioRunnerOptions/builder mirrors the Duct options: configurable default timeout (no more hardcoded 60s) and toggleable command logging
  • Parity rows for ConfiguredDuctRunner, the streaming path, and FakeRunner, with 4 intentionally-excluded rows enumerated in parity_tests.rs

A2 — Command-intent extensions, all four rulings recorded (2367b2d)

  • stdin_bytes: Option<Vec<u8>> — implemented additively; included in FakeRunner matching
  • timeout_policy — implemented; takes precedence over timeout, old payloads serde-default to runner default; excluded from FakeRunner matching
  • Shell opt-in — rejected permanently (direct argv only; doc paragraph in policy.rs)
  • Output disposition — rejected: grep evidence shows zero callers needing more than OutputMode
  • Both new fields follow the full pattern: serde defaults in both hand-written halves, old-payload JSON tests, explicit FakeRunner rulings

A3 — Duct stdin error mapping (3e1dd3c, cb39a42)

  • DuctRunner writes an owned stdin pipe explicitly; write failures map to Error::StdinFailed with kill-and-reap before returning, matching Tokio
  • The tokio streaming path routes through the shared write_stdin so the contract holds unqualified on every path of both runners
  • Parity test asserts the same classification across both runners

A4 — Diagnostics hardening (a6e3cfd)

  • redact_logs default-true on both runners — logs never print unredacted args by default
  • Command span wrapping success and failure paths on all three real-runner paths
  • Sanitized env summaries (display_env) on completion events

A5 — Crate docs + tracker closeout (2e9c6c8)

  • 14-row capability matrix across DuctRunner / TokioRunner / streaming / FakeRunner
  • Ten compiling doctests incl. the Unix clear_env/PATH footgun, redaction, output limits
  • Lossy-UTF-8 behavior and the direct-child-only cleanup policy stated in crate docs
  • docs/runner-remaining-work.md updated: every item's final status with rulings and shas

Verification

  • cargo test -p toride-runner --features 'duct-runner tokio-runner serde stream fake': 286 unit + 23 doctests pass (baseline 227 + 9)
  • cargo fmt --check clean; clippy at the recorded 2-warning pre-existing baseline, zero new
  • cargo doc --no-deps clean; cargo check --workspace --all-targets exit 0
  • Each area audited by a fresh read-only reviewer against the tracker acceptance criteria; 1 finding found and fixed (cb39a42)

@hmziqagent
hmziqagent merged commit 01b6c0a into master Oct 12, 2026
13 checks passed
@hmziqrs
hmziqrs deleted the feat/runner-remaining-work branch October 12, 2026 13:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant