docs: describe unsafe exceptions as OS/FFI integration, not calls

Some existing unsafe is not a call: unsafe impl Send/Sync and raw
handle or slice conversions. Name the real category so the security
and vision claims hold for all of it.

Signed-off-by: Pinky <5f5ab050ec58ae208332edd544ebf705221e24c1b86d82a6ca07038a7a8f6ac9@buzz.block.builderlab.xyz>
This commit is contained in:
Pinky
2026-09-30 17:54:40 -06:00
parent eb2d133a0b
commit 54c90cac6b
2 changed files with 3 additions and 3 deletions

View File

@@ -124,8 +124,8 @@ controllers.
We use `cargo audit` in CI to scan for known vulnerabilities in dependencies.
Unsafe Rust is denied by default. Exceptions are narrow, maintainer-approved
calls with no safe alternative, usually OS or FFI calls; see
[CONTRIBUTING.md](CONTRIBUTING.md#unsafe-code).
unsafe code needed for OS or FFI integration where no safe alternative exists;
see [CONTRIBUTING.md](CONTRIBUTING.md#unsafe-code).
---

View File

@@ -54,7 +54,7 @@ Two pipes. Two protocols. Each session gets its own MCP server instances — ful
- **Minimal.** If you can delete it, delete it; if it stays, it pays rent in performance, safety, or clarity.
- **Hardened.** No unsafe beyond audited OS calls. Zero panics. Bounded process lifetime, bounded output sizes, bounded history. Process-group kill on every exit path. File edits resolve against the working directory. The shell runs at the operator's trust level, like bash itself. History validity is maintained on every cancellation path. The system degrades gracefully, with bounded failure modes.
- **Hardened.** No unsafe beyond audited OS/FFI integration. Zero panics. Bounded process lifetime, bounded output sizes, bounded history. Process-group kill on every exit path. File edits resolve against the working directory. The shell runs at the operator's trust level, like bash itself. History validity is maintained on every cancellation path. The system degrades gracefully, with bounded failure modes.
- **Protocol-native.** ACP is the only interface to the agent. MCP is the only interface to the tools. No runtime coupling. No shared state. No custom wire formats.