_ananos_
That boundary is where the credential story changes. The token, the policy engine, and the audit log live on the host side, where the agent cannot reach them. Guardrails inside the agent context (an app-layer "are you sure" wrapper, a system prompt) share the cage with the agent -- a prompt injection can talk its way around them. Guardrails on the trust boundary cannot be talked to at all. The sandbox does not decide whether a granted API call is being abused; it guarantees the thing that decides is out of the agent's reach.
To your actual question: we do neither extreme. Capabilities are deny-by-default and granted per investigation, scoped to endpoints, not "the network". Read paths flow freely -- that is most of an investigation anyway. Mutating calls are a small set, and remediation is proposed, not executed: the mutation goes through an approval step at the boundary. So yes, human gating for mutations. It stays practical because the mutating surface is small by construction.
On shadow environments: honestly, you mostly cannot mirror domain state. You cannot fork Stripe, or a customer's prod cluster, and diff the side effects. Where the substrate supports it we use dry-run / plan-apply, and the microVMs are checkpointed per step, so the agent's own state can be rewound cheaply. An external side effect, once committed, is the one thing no sandbox rewinds. Which is exactly why we keep that set small and gated at the boundary.
ITScape (CVE-2026-46316): KVM/ARM64 VM escape
Ask HN: Second time my post gets [dead] within a minute
I'm trying to understand what we're doing wrong and our posts become auto-[dead].'How many sandboxed pods can fit in a Pi? (nubificus.co.uk)'Given prior responses here, the only thing that would flag that is that I'm posting links from our blog (which tbh sounds legit to me... as I'm trying to share our work).
How many sandboxed pods can fit in a Pi?
to achieve the isolation that gvisor offers you would have to intercept syscalls, create a separate mount/user/net namespace etc.
regardless, I don't think proot is somehow related to gvisor ;)
consider that you can take advantage of all the cloud-native goodies, all wrapped up in a 10x5 box with 5-10W (or 25-30W if you consider jetson boards).
In this context we're experimenting with gvisor on various platforms, and we're preparing a demo for kubecon about a fine-grained sandboxing approach for AI agent tasks spawned from a sandboxed agent.
<shameless plug> We're building a container runtime to do this, and we are comparing alternatives, that's how we got there: https://github.com/urunc-dev/urunc</shameless plug>
But yeap, good point about using the -j flag, it really accelerates the build!
I'll drop the HN admins an email to make sure I'm not missing anything.
Ask HN: Uploaded a post and it was [dead] within a minute
Just published a blog post -- when I am logged in I get the entry appearing in the <new> section, but when I log out, I don't see it at all -- I asked a colleague to check, and it seems it got flagged as [dead]. Can you help me understand what was wrong so that it doesn't happen again?thanks!
Gvisor on Raspbian
The purpose of the demo wasn't to show consistency, but to describe the policy-driven decision/mechanism.
What hit us in the first place (and I think this is what we should fix) is the fact that a brand new nuc-like machine, with a relatively new software stack for spawning VMs (incus / ZFS etc.) behaves so bad it can produce such hiccups for disk IO access...
Keeping our GH runners alive with dependabot
When etcd crashes, check your disks first
AI Agents? Not on my host
Sandboxing user code in Knative with kata containers, gvisor, and unikernels
After all, API remoting is out there for quite some time (see rCUDA); some people are using it, but we think that a more general, semantic abstraction needs to be introduced... especially for the Serverless use-case.