Drop the preflight sandbox fence. It derived writable roots in the local process, so under the SSH provider it threw on remote additionalWritableRoots and compared remote targets against local temp roots; write and edit never fenced in the tool layer. The provider now refuses a denied operation at commit, and a commit whose first operation failed without any change rejects like a preflight refusal so the sandbox escalation path keeps its error code. Classify FS_ABORTED as unknown: a cancelled remote request rejects while the provider may still be writing, so no stat comparison can settle it. Document that a cancelled call receives the registry's abort result like every tool. Store no diff for creations, matching write, and bound the move source basis by diffBasisMaxBytes so persisted metadata never holds whole files; FsMoveOutcome.sourceBefore becomes nullable. Omit deletions from the call preview and from result diffs without a basis instead of rendering them as empty creations, and count distinct files in the preview title. Reject a NUL byte beyond the read sampling window in preflight, name targets by display path in atomic-write diagnostics, align the apply_patch guidance with the edit wording and mention delete and move, read the stopped flag and applied diffs tool-agnostically in the client models, skip the permission-bit snapshot under root, list fs/delete-intent in the tool catalog, and refresh the fs-patch description, group README, fs-sandbox summary, and ui-tool README.
description, kind
| description | kind |
|---|---|
| The POSIX SSH provider family: shared connection, remote filesystem, managed subprocesses and file-effect sandbox. | package-group |
ssh/ — POSIX remote execution providers
English | 中文
Summary
This family runs files, ordinary processes, terminals and sandbox enforcement on one POSIX SSH host while the Harness stays local. A shared OpenSSH connection and installed helper support the existing filesystem, subprocess and sandbox interfaces. Use it in headless or custom profiles whose consumers honor provider-owned paths.
Table of Contents
Packages
| Package | Responsibility | Service |
|---|---|---|
ssh |
Connection, helper identity and transport lifecycle | ctx.ssh |
ssh-helper-runtime |
Private Node-free executable distribution | — |
fs-ssh |
Remote file identity, reads and guarded atomic mutations | ctx.fs |
subprocess-ssh |
Executable lookup, processes, control streams and terminals | ctx.subprocess |
sandbox-ssh |
Remote file-effect confinement and enforcement facts | ctx.sandbox |
Related documentation
- SSH subsystem — shared execution coordinates and transport ownership.
- POSIX SSH decision — alternatives, consequences and verification requirements.
Dev Note
Working context for maintainers — click to expand
Remote capability implementations retain the shared asynchronous terminal and cancellation interfaces. Local path access must never be inferred from a remote path string.