microsoft / microsoft/agent-governance-toolkit
policy-engine: AgentControl::new(runtime) leaves parts=None, making with_telemetry a no-op and revalidating against Limits::default
- Dominant language
- Python
- Stars
- 6.3k
- Forks
- 1.1k
- Avg merge
- 5d 11h
- Merged PRs (30d)
- 142
Description
policy-engine/sdk/rust/src/host/mod.rs: constructing AgentControl from a Runtime leaves parts=None, so with_telemetry(sink) silently does nothing, a failed Runtime::with_telemetry_perf_and_limits is swallowed, evaluate_intervention_point revalidates transformed snapshots against Limits::default() rather than the configured limits, and the removed-field check added in #3940 is bypassed for hand-built runtimes. Either populate parts from the runtime or reject construction paths that cannot.
Found in the group review of the policy-engine retarget (#3939) and deferred from the follow-up (#3940).
Contributor guide
Research direction
Start in policy-engine/sdk/rust/src/host/mod.rs by tracing AgentControl::new(runtime), with_telemetry, Runtime::with_telemetry_perf_and_limits, and evaluate_intervention_point. Check how hand-built runtimes handle parts, configured limits, and the removed-field validation from #3940. Done means construction either preserves these behaviors or rejects unsupported paths, with failed setup no longer swallowed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100