Skip to content

Harden process safety proofs and CI coverage - #58

Open
passcod wants to merge 14 commits into
mainfrom
process-safety-hardening
Open

passcod wants to merge 14 commits into
mainfrom
process-safety-hardening

Conversation

@passcod

@passcod passcod commented Sep 19, 2026

Copy link
Copy Markdown
Member

🤖 This PR hardens the crate’s documented unsafe boundaries and adds CI enforcement for the proofs that can be checked mechanically.

Summary

  • add precise local SAFETY: rationales for Unix, Windows, PTY, descriptor-transfer, child-I/O, and test-fixture unsafe operations
  • document complete contracts for the public unsafe pre_exec APIs
  • enforce unsafe_op_in_unsafe_fn, unused_unsafe, missing_safety_doc, and undocumented_unsafe_blocks
  • run Clippy across native frontend/all-feature builds, Rust 1.87.0, and portable PTY targets including build-std coverage for DragonFly and OpenBSD
  • add selective whole-target Miri coverage for process-free library and integration-test paths
  • record the disposition of the audit findings and draft separate approaches for deferred API and runtime hardening

This PR intentionally makes no runtime behavior, public API signature, private safety-signature, or wrapper-semantics changes. The Miri jobs deliberately exclude native process creation and FFI execution; they exercise only process-free paths that Miri can model.

🤖 Generated with Claude Code

passcod and others added 12 commits September 24, 2026 04:13
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Restore existing safety comments unless a change adds a concrete proof, corrects an inaccurate claim, or satisfies per-site linting. Keep newly required comments concise.

Co-Authored-By: Claude Code <noreply@anthropic.com>
@passcod
passcod force-pushed the process-safety-hardening branch from e0ceb53 to 900d0be Compare September 23, 2026 16:13
passcod and others added 2 commits September 24, 2026 04:50
Treat a descendant PID file as ready only after it contains a parseable PID, rather than when shell redirection first creates the path. Cover the empty-then-populated transition and share the polling logic across both rollback fixtures.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Reuse an existing shell through a newly created symlink instead of writing and immediately executing a temporary script. This preserves the failed-spawn reuse check without exposing it to ETXTBSY from the fixture itself.

Co-Authored-By: Claude Code <noreply@anthropic.com>
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