docs(adr): amend 0014 (eBPF BTF preflight) + 0040 (ContainNode apply-side scope confinement) - #331
Merged
Merged
Conversation
…ode apply-side scope confinement) Two /idea design passes on the pre-existing backlog: - ADR-0014 amendment: the agent's eBPF bindings bake hand-verified offsets (real CO-RE is blocked upstream — rustc emits no BTF field relocations; build-time codegen bakes the builder kernel, rejected). The durable guard is a load-time BTF preflight: the loader re-verifies every baked offset + the LOADING_MODULE enum against the node's live BTF before attach, attaches only struct-free probes on mismatch, logs expected-vs-actual, degrades (never crash-loops). Single source of truth in agent/common. Corrects the false "CO-RE-relocated at load" comments. docs/ideas/ebpf-offset-self-verification.md. - ADR-0040 addendum: protector grows no in-product approve->apply path for node containment (ADR-0016 view-never-gates, ADR-0031 read-only MCP) — the human act stays out-of-band. The enforceScope confinement of the co-resident deny sweep lives at the actuation boundary: the shared full-set helper stays unfiltered (revert must lift every deny), while apply accepts only a ScopedDenies newtype and contain_node_in_scope derives from the same scope match. Unblocks the deferred scope-filter. docs/ideas/containnode-scope-confinement.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VtjoJttCvBY4dzCoE4f9vP
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two
/ideadesign passes on the pre-existing backlog, written down as ADR amendments + briefs.ADR-0014 amendment — eBPF offset self-verification
Real CO-RE is blocked upstream (rustc emits no BTF field relocations; RFC 3966 pending); build-time codegen bakes the builder's kernel offsets (rejected). Durable guard: a load-time BTF preflight — verify each baked offset + the
LOADING_MODULEenum against the node's live BTF before attach; on mismatch attach only struct-free probes, log expected-vs-actual, degrade (never crash-loop). Single source of truth inagent/common. Also corrects the false "CO-RE-relocated at load" claims in the Dockerfile/agent.yml/docs.ADR-0040 addendum — ContainNode apply-side scope confinement
No in-product approve→apply path (ADR-0016/0031 — the human act stays out-of-band), so "the future apply call-site" is retired as a design location. The
enforceScopeconfinement lives at the actuation boundary: shared full-set helper stays unfiltered (revert must lift every deny),applyaccepts only aScopedDeniesnewtype,contain_node_in_scopederives from the same scope match. Unblocks the deferred co-resident-deny scope-filter.No code — docs only. Next:
/workthe two implementations + the two pre-existing backlog tickets.🤖 Generated with Claude Code
https://claude.ai/code/session_01VtjoJttCvBY4dzCoE4f9vP