Add local reachability descriptor for same-host extensions (SAND-WP-0013-T04)
Reachability gains pid/workspace_dir, populated by enrich_reachability whenever a backend's wait_ready() returns a pid: endpoint (currently just ext.bwrap). build_reachability_report() now also returns a local_exec_hint (nsenter into the pid's namespaces) alongside the existing ssh_one_liner, so glas-harness can branch on which is populated instead of assuming every sandbox is SSH-reachable. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
76c38e758c
commit
cf490220f4
6 changed files with 67 additions and 6 deletions
|
|
@ -22,6 +22,23 @@ sandboxer create \
|
|||
| `reachability.remote_dir` | sand-boxer | Workspace root on remote host |
|
||||
| `state` | sand-boxer | Lifecycle state (`ready`, etc.) |
|
||||
|
||||
## Two reachability modes
|
||||
|
||||
Not every sandbox has an SSH hop. `ext.compose-ssh` / `ext.vm-packer`
|
||||
always run remote and populate `reachability.ssh` + `reachability.
|
||||
remote_dir`; glas-harness execs tools over that SSH channel. `ext.bwrap`
|
||||
(SAND-WP-0013) runs same-host and never populates `reachability.ssh` —
|
||||
instead it populates `reachability.pid` (the placeholder process holding
|
||||
the bwrap namespaces) and `reachability.workspace_dir`. glas-harness
|
||||
execs tools by entering that pid's namespaces directly
|
||||
(`nsenter --target <pid> --mount --pid --net --uts --ipc -- <cmd>`, no
|
||||
tunnel needed) rather than opening an SSH channel. `reachability/enrich.
|
||||
build_reachability_report()` returns both an `ssh_one_liner` and a
|
||||
`local_exec_hint`; exactly one is non-null depending on which mode the
|
||||
resolved extension uses. Consumers should branch on which field is
|
||||
populated, not on profile id, since routing can fall back between
|
||||
extensions.
|
||||
|
||||
## Ownership
|
||||
|
||||
| Concern | Owner |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue