Glad the replay clicked for you. Honestly that was the thing I built before blocking, because I kept looking at agent failures with basically no clues.
The trace view also made the firewall work well in practice: you can promote rules from a real captured call instead of guessing everything upfront in YAML.
There are still three things in the policy model that need work:
1. Cross-call behavior is a bit clumsy.
A single rule sees one tool call, but the failures you actually care about are sequences — exfiltration, cross-session bleed, "agent read a secret then called an external host." Right now I express that with chained rules and tags, and it feels hacky. I want a way to handle sequences and stateful flows.
2. The matching model isn't consistent.
Host allowlists, argument matching, and payload predicates developed separately, so parts of the syntax feel different. New users hit this issue quickly.
3. Deny explanations are not clear.
Right now you mostly get "rule X blocked this." I want explanations like "blocked because arg.url matched Y and host wasn't allowed." Without that, debugging in shadow mode isn't as useful as it should be.
If anyone here has built policy systems or rule engines — especially around stateful rules without turning the whole thing into a programming language — I'd love to hear how you handled it.
Planning ahead, bulk processing, storing for later. Sounds less like primitive survival and more like logistics. Every time we dig deeper the gap between them and us gets smaller.
Primitive survival in places with winter requires storing rations for the winter months. Dried meat, fruit, seeds, and rendered fat are what it takes to survive winter.
It's possible to make potted meats which will store for a time at room temperature (for extra credit, ferment it like sausage) by covering them in fat. But they didn't have ceramics apparently, I don't know offhand if you could do it in something like an animal stomach. Of course, we put sausage into intestine casings... I dunno make sausages and dip them in fat?
Mostly ASM for performance critical paths is a pattern that never gets old. The VideoLAN team did the same with dav1d and it paid off. Curious how much of dav2d ends up staying C as AV2 matures.
The trace view also made the firewall work well in practice: you can promote rules from a real captured call instead of guessing everything upfront in YAML.
There are still three things in the policy model that need work:
1. Cross-call behavior is a bit clumsy.
A single rule sees one tool call, but the failures you actually care about are sequences — exfiltration, cross-session bleed, "agent read a secret then called an external host." Right now I express that with chained rules and tags, and it feels hacky. I want a way to handle sequences and stateful flows.
2. The matching model isn't consistent.
Host allowlists, argument matching, and payload predicates developed separately, so parts of the syntax feel different. New users hit this issue quickly.
3. Deny explanations are not clear.
Right now you mostly get "rule X blocked this." I want explanations like "blocked because arg.url matched Y and host wasn't allowed." Without that, debugging in shadow mode isn't as useful as it should be.
If anyone here has built policy systems or rule engines — especially around stateful rules without turning the whole thing into a programming language — I'd love to hear how you handled it.