diff --git a/doc/ARCHITECTURE.md b/doc/ARCHITECTURE.md index d3168d8..aba4ed2 100644 --- a/doc/ARCHITECTURE.md +++ b/doc/ARCHITECTURE.md @@ -173,11 +173,14 @@ without modifying history. ## Sandboxing -`internal/sandbox` wraps commands with [landrun](https://github.com/landlock-lsm/landrun) (Landlock LSM). Configuration is layered: +Sandboxing is applied specifically to `execute_code`. Each code step is wrapped with +[landrun](https://github.com/landlock-lsm/landrun) (Landlock LSM) via +`internal/sandbox`. The sandbox config is loaded by name from +`~/.config/ollie/sandbox/.yaml`; if no `sandbox` argument is passed in the +`execute_code` call, the `default` config is used. -1. Named sandbox config (`~/.config/ollie/sandbox/.yaml`; `default` is used when unspecified) - -If `superpowerd` is running, commands are additionally wrapped with `superpowers run-session` for privilege scoping (optional, detected at runtime). +Steps marked `elevated: true` run outside the sandbox via the elevation backend +(`x/elevate`) and are the only exception. All other steps are sandboxed unconditionally. ## HTTP Gateway