Skip to content

feat(trace): first-class side_effect record and lane (#465 Phase A, 1/5) - #468

Open
AminChirazi wants to merge 1 commit into
mainfrom
feat/465a-1-trace-side-effect
Open

feat(trace): first-class side_effect record and lane (#465 Phase A, 1/5)#468
AminChirazi wants to merge 1 commit into
mainfrom
feat/465a-1-trace-side-effect

Conversation

@AminChirazi

Copy link
Copy Markdown
Contributor

Part 1/5 of #465 Phase A (side-effect capture). Human-authorized work on the rewritten issue body; trace-format change ⇒ needs-human review (CHARTER §8).

IMPORTANT — squash-merge this PR. Invariant 5 requires serde types + crates/flowproof-trace/schema/side-effect-v1.schema.json + docs/trace-format.md to land in ONE commit on main; this PR's range bundles all three.

What

The additive side_effects lane on the agent-trace document: the shared SideEffect type in flowproof-trace (kind/target/target_note/op/flags/at_ms, with before/after/diff reserved and never emitted), SideEffectsTrace on AgentTrace (always None in this PR — capture arrives in 2/5 and 3/5), the lane's JSON Schema + conformance test, the committed falsifiability fixture it validates, and the trace-format docs including the sha256 confirmation-oracle residual. Old traces deserialize and re-serialize byte-identically (new sibling round-trip tests; existing tests untouched except compiler-forced side_effects: None literal additions).

Evidence

cargo fmt --check 0 · clippy --workspace --all-targets -- -D warnings 0 · cargo test --workspace 0 · cargo check --workspace --all-targets --target x86_64-unknown-linux-gnu 0 · scripts/gate/ratchets.sh (BASE=main) exit 0, diff 400/400.

Stack: this PR ← #2/5 (fs capture) ← #3/5 (http capture) ← #4/5 (assertion) ← #5/5 (falsifiability). Design was produced and adversarially reviewed against CHARTER §2 across three rounds before implementation.

🤖 Generated with Claude Code

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-human A loop escalated this: it needs a decision or a protected-path change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant