Evidence record / temporal-agent-harness
A dated record of one change, kept so the writing that cites it can be checked. Compiled from the sources listed below by the research run, not written for reading. The judgment lives in the issues that cite it, below.
2026-10-13-temporal-agent-harness-auto-mode-can-approve-or-deny-without-a-person-but-a-remembered-tool-name-bypasses-the-eva
Auto mode can approve or deny without a person, but a remembered tool name bypasses the evaluator. Gated calls park as workflow waits until a model or human decision resolves them. Auto mode adds argument-aware decisions against named criteria sets. In the generic harness, a tool without criteria goes to a person without a model call; evaluator errors or unusable results escalate; a human answer cancels pending evaluation; evaluations are bracketed on the event stream. With the built-in Jev evaluator, confidence below min_confidence (default 0.8) escalates, and an approve judged too irreversible (default ceiling 0.5) escalates. These numeric thresholds are Jev behavior, not independent enforcement on every custom evaluator. A confident DENY resolves the call without asking a person, contrary to the release note that every non-approval reaches one. Jev sends the tool name, description, exact arguments, criteria and optional extra_state to TypeSafe System One from the worker; the request is also an activity input in workflow history. Its default model is jev-latest; the pinned integration README recommends a fixed version because calibration can change. remember=True adds a bare tool name above auto mode, which is bypassed while the tool remains on the by-name allow-list. Subsequent policy replacement or name removal can restore gating. Each evaluation records its criteria set name/version; live criteria are not shown on AgentStatus.
Channel: preview-or-beta (off unless the policy enables it; the Jev evaluator needs the jev extra). Half: both. Date: 2026-09-30.
Operator consequence: Try this for repetitive low-risk decisions with criteria that escalate or deny consequential calls. Enable the policy and wire an evaluator; Jev needs the jev extra and TYPESAFE_API_KEY on the worker. Pin agent.jev_evaluator(model=…) to a concrete version and treat TypeSafe as a processor of gated call arguments. Audit auto_approval_evaluation_ended events for unattended denials. Avoid Always allow on a tool whose arguments should keep being evaluated. No live evaluation or TypeSafe retention behavior was checked.
Receipt
- https://github.com/temporal-community/temporal-agent-harness/pull/142
- https://github.com/temporal-community/temporal-agent-harness/releases/tag/0.5.0
- https://github.com/temporal-community/temporal-agent-harness/blob/04a49d1b037de46da2cba31676d2aa2f4c59118f/temporal_agent_harness/harness/agent_workflow.py#L600-L606
- https://github.com/temporal-community/temporal-agent-harness/blob/04a49d1b037de46da2cba31676d2aa2f4c59118f/temporal_agent_harness/harness/agent_protocol/agent_interface.py#L527-L535
- https://github.com/temporal-community/temporal-agent-harness/blob/04a49d1b037de46da2cba31676d2aa2f4c59118f/temporal_agent_harness/harness/jev_approvals/approver.py#L254-L267
- https://github.com/temporal-community/temporal-agent-harness/blob/04a49d1b037de46da2cba31676d2aa2f4c59118f/temporal_agent_harness/harness/jev_approvals/activity.py#L85-L97
- https://github.com/temporal-community/temporal-agent-harness/blob/04a49d1b037de46da2cba31676d2aa2f4c59118f/temporal_agent_harness/harness/jev_approvals/models.py#L21-L24
- https://github.com/temporal-community/temporal-agent-harness/blob/04a49d1b037de46da2cba31676d2aa2f4c59118f/README.md#L316-L330
- https://github.com/temporalio/ai-integrations/blob/681a1d7b97af5ef424f9c479ae0f5db529f517cc/python/typesafe/README.md#L229-L230
Finding metadata
Run: 2026-10-13-profile-refresh-2026-09-21_2026-10-13-frontier-v0
Finding ID: 2026-10-13-temporal-agent-harness-auto-mode-can-approve-or-deny-without-a-person-but-a-remembered-tool-name-bypasses-the-eva
Profile citations
- temporal-agent-harness / claim / auto-mode-jev-boundaries
Source links
Primary links, including exact changelog lines when available.
- merged pr2026-10-13-temporal-agent-harness-auto-mode-can-approve-or-deny-without-a-person-but-a-remembered-tool-name-bypasses-the-evagithub.com/temporal-community/temporal-agent-harness/pull/142github release2026-10-13-temporal-agent-harness-auto-mode-can-approve-or-deny-without-a-person-but-a-remembered-tool-name-bypasses-the-evatemporal-community/temporal-agent-harness / 0.5.0tagged commit file2026-10-13-temporal-agent-harness-auto-mode-can-approve-or-deny-without-a-person-but-a-remembered-tool-name-bypasses-the-evatemporal-community/temporal-agent-harness / temporal_agent_harness/harness/agent_workflow.py#L600-L606tagged commit file2026-10-13-temporal-agent-harness-auto-mode-can-approve-or-deny-without-a-person-but-a-remembered-tool-name-bypasses-the-evatemporal-community/temporal-agent-harness / temporal_agent_harness/harness/agent_protocol/agent_interface.py#L527-L535tagged commit file2026-10-13-temporal-agent-harness-auto-mode-can-approve-or-deny-without-a-person-but-a-remembered-tool-name-bypasses-the-evatemporal-community/temporal-agent-harness / temporal_agent_harness/harness/jev_approvals/approver.py#L254-L267tagged commit file2026-10-13-temporal-agent-harness-auto-mode-can-approve-or-deny-without-a-person-but-a-remembered-tool-name-bypasses-the-evatemporal-community/temporal-agent-harness / temporal_agent_harness/harness/jev_approvals/activity.py#L85-L97tagged commit file2026-10-13-temporal-agent-harness-auto-mode-can-approve-or-deny-without-a-person-but-a-remembered-tool-name-bypasses-the-evatemporal-community/temporal-agent-harness / temporal_agent_harness/harness/jev_approvals/models.py#L21-L24tagged commit file2026-10-13-temporal-agent-harness-auto-mode-can-approve-or-deny-without-a-person-but-a-remembered-tool-name-bypasses-the-evatemporal-community/temporal-agent-harness / README.md#L316-L330tagged commit file2026-10-13-temporal-agent-harness-auto-mode-can-approve-or-deny-without-a-person-but-a-remembered-tool-name-bypasses-the-evatemporalio/ai-integrations / python/typesafe/README.md#L229-L230
Versioned source: run artifact