Skip to content

feat: decide taint, sovereign preflight, and policy (Phase 3) - #10

Closed
readyagents wants to merge 2 commits into
readyagentsdev:feat/jev-phase-2from
readyagents:feat/jev-phase-3
Closed

readyagents wants to merge 2 commits into
readyagentsdev:feat/jev-phase-2from
readyagents:feat/jev-phase-3

Conversation

@readyagents

Copy link
Copy Markdown
Contributor

Summary

Phase 3 of TypeSafe System One support. Stacked on #9 (Phase 2).

  • Decide output is tainted from its interpolated state
  • User-supplied base_url uses existing SSRF checks (already in the Jev client)
  • --sovereign + decider: jev is refused before the first node, error names the node (EgressDenied)
  • Policy deciders.<name> allow/deny by decider name and allow_models
  • Audit carries a state hash, never the state
  • typesafe_api_key is on the config redaction list (Phase 0); cassette/error greps have no API key
  • Docs: security-model.md, sovereign.md, policy.md

Every 08 §7 checkbox is covered in tests/test_decide_adversarial.py.

Test plan

  • make ci green
  • injected state stays in declared space; taint propagated
  • private base_url refused; 10 MB body refused
  • sovereign+jev names the node; shim allowed
  • policy deny by name and by model id
  • audit hash, no state, no key

Agent G. added 2 commits September 20, 2026 00:14
Decide output is tainted from its state. --sovereign + decider: jev is
refused before the first node, naming the node. Policy can allow/deny by
decider name and model id. Audit records a state hash, never the state.
Record and offline replay hash the interpolated state before redaction,
matching the LLM cassette keying. The redactor still mutates only the
vendor body. Policy on_tainted walks mapping/list templates. Cassette
secret list includes typesafe_api_key.
@readyagentsdev

Copy link
Copy Markdown
Owner

Superseded by onto-main land via #14 (Phase 3 on main @ 7db7963) and released in readyagentsdev 2.0.8. Closing the stacked PR — do not merge into stack tip. — Agent G

@readyagentsdev

Copy link
Copy Markdown
Owner

Closed as superseded by #14 onto-main.

@readyagents
readyagents deleted the feat/jev-phase-3 branch September 21, 2026 11:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants