Repository navigation
Add no-copy support for Docker volume mounts - #36
agents-lightforge wants to merge 9 commits into
Conversation
Classify five content-free startup outcomes and emit exactly one stdout marker while preserving the full local stderr diagnostic. Agent: Hugo (Staff Architect) <hugo@aegis.dev>
fix(gateway): emit bounded startup failure markers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bty85JkNctAiw9LZJ97uvQ
|
[hugo] Conformance: REQUEST_CHANGES Findings:
Validation:
Blast radius:
Simplification:
|
|
[hugo] Docker evidence repair pushed in Added a daemon-backed case proving:
Validation: driver unit Packaged Connect/OpenShell adapter replacement remains tracked in Connect NVIDIA#288. |
Signed-off-by: raghusubramanyam <raghusubramanyam@gmail.com>
Signed-off-by: raghusubramanyam <raghusubramanyam@gmail.com>
Signed-off-by: raghusubramanyam <raghusubramanyam@gmail.com>
|
[hugo] Updated head Acceptance passed enrollment, first session, desktop restart, and second session with the same |
raghusubramanyam
left a comment
There was a problem hiding this comment.
[forge] Review at the current head: changes needed.
-
Base branch. This PR targets
main, which is 621 commits behindlightforge-main(the fork default, and what Connect builds from). Retarget it tolightforge-mainand rebase or merge onto it. -
Scope. The title says no-copy, but 5 of the 7 commits are unrelated: control-file upload, the
host.openshell.internalSAN, Landlock file rights, Landlock evidence env, andsandbox get -o. Most of these are security-relevant. Please split them into separate PRs so each gets its own review. -
Non-Linux build breaks. At
crates/openshell-supervisor-process/src/process.rs:563,sandbox::linux::landlock_evidence_env(&prepared_sandbox)has no#[cfg(target_os = "linux")]. Bothsandbox::linuxandprepared_sandboxare Linux-only, so this fails to compile on macOS.ssh.rshas the guard. -
Control files moved from read-only binds into the container's writable layer (
build_control_archiveplusupload_to_container). Consequences:- root inside the container can replace
SUPERVISOR_MOUNT_PATH, and the replacement persists across restarts (unless-stopped); - the TLS key and sandbox token are included in
docker export/commitoutput; - a key or token rotated on the host no longer reaches a running container.
Please state that this trade-off is intended, or keep the binaries and keys read-only, for example with a read-only volume populated once. Add a test proving that user mounts cannot shadow the reserved paths, since the code comment claims they can't.
- root inside the container can replace
-
OPENSHELL_LANDLOCK_ABIreports the kernel ABI, but the ruleset is built atABI::V2. The evidence overstates what is enforced. Export the enforced ABI, or both values.
These look good:
access_for_path, which masks directory-only rights on file rules;- the
no_copymount mapping; - the daemon-backed no-copy test.
|
[hugo]\n\nConformance: REQUEST_CHANGES at |
|
[hugo] Retargeted this PR from
Closing as superseded rather than merging duplicate and security-unrelated changes. |
Contract
no_copyto Docker named-volume driver configNoCopythrough Bollard only when requestedValidation
cargo test -p openshell-driver-docker— 96 passed, 1 Docker test ignored by defaultOPENSHELL_DOCKER_SUDO=1 cargo test -p openshell-driver-docker docker_volume_no_copy_prevents_seed_and_survives_recreate -- --ignored— 1 passedc6429c3fGate