You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit de1bb45
Browse filesBrowse the repository at this point in the historyBrowse files
test(publish): native platform optional deps + lockstep-adapt to secure-exec 117d645
Native-platform packaging (Darwin + Linux arm64 sidecar + actor-plugin) plus
the agent-os<->secure-exec lockstep changes the pinned 117d645 preview requires:
- permissions: rename the 'tool' permission domain to 'binding' (tool.invoke ->
binding.invoke) across the public Permissions API, the TS + Rust clients, the
strict zod options schema (options-schema.ts), tests, examples, and docs.
- e2e node_modules mount: build a flat (hoisted, symlink-free) install fixture
via 'pnpm deploy --node-linker=hoisted' so the host_dir mount does not reject
pnpm store symlinks under RESOLVE_BENEATH (transitive deps like undici present).
- s3 tests: supply the now-required chunked_s3 metadataPath.
- rebased onto main; clippy unnecessary_map_or fix.
Copy file name to clipboardExpand all lines: crates/CLAUDE.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -100,7 +100,7 @@ These are hard rules with no exceptions:
100
100
-**`RequestPayload::PermissionRequest` is not the kernel permission system.** Kernel permissions route through `PermissionBridge`; the protocol payload is an unsupported legacy host-callback-shaped frame and should be dropped with the ACP core-removal work.
101
101
-**Rust permission globs are segment-scoped by default.** In kernel/sidecar permission rules, single `*` and `?` match within one path segment and stop at `/`; use `**` when a rule needs to authorize nested paths or resources across separators.
102
102
-**Inspection RPC permissions are separate from runtime setup permissions.**`FindListener` / `FindBoundUdp` require `network.inspect`, and `GetProcessSnapshot` requires `process.inspect`; test fixtures that exercise those handlers still need `child_process.spawn` and `network.listen` allowed so the guest process and listener can start before the inspection request runs.
103
-
-**Toolkit registration bootstrap and toolkit invocation use different permission paths.** In `crates/sidecar/src/tools.rs`, sidecar-owned `register_host_callbacks(...)` work should temporarily swap the bridge policy to `PermissionsPolicy::allow_all()` while it refreshes `/bin/agentos*` command stubs, then restore the VM policy; actual guest host-tool execution is separately gated by `tool.invoke` against `<toolkit>:<tool>` resources.
103
+
-**Toolkit registration bootstrap and toolkit invocation use different permission paths.** In `crates/sidecar/src/tools.rs`, sidecar-owned `register_host_callbacks(...)` work should temporarily swap the bridge policy to `PermissionsPolicy::allow_all()` while it refreshes `/bin/agentos*` command stubs, then restore the VM policy; actual guest host-tool execution is separately gated by `binding.invoke` against `<toolkit>:<tool>` resources.
104
104
-**Sidecar request handlers that need rollback must keep fallible mutations inside a `Result`-returning closure.** In handlers like `register_host_callbacks(...)`, a bare block with `?` returns from the whole request handler before rollback runs; wrap the mutation block in `(|| -> Result<_, SidecarError> { ... })()` so restore/fail-closed cleanup still executes on errors.
105
105
-**Native-sidecar VM bootstrap must keep a temporary static policy installed.** During `create_vm` and `configure_vm`, swap in `PermissionsPolicy::allow_all()` for sidecar-owned `/bin`/command-path reconciliation instead of clearing the stored policy entirely, or the `LocalBridge` fallback will deny internal filesystem checks before the guest-visible policy is restored.
106
106
-**Filesystem-side teardown races must fail closed too.** In `crates/sidecar/src/filesystem.rs`, guest filesystem and Python VFS handlers should treat missing VMs or active processes as stale teardown races: log and return a rejection/`Ok(())` instead of `expect(...)`, because dispose can win after a request is queued but before the response is emitted.
0 commit comments