The approvals server binds every interface and asks for no login
At 0.4.0 (commit e4bde4be, the PyPI wheel) the packaged serve command defaults to host 0.0.0.0, and its FastAPI app registers GET /api/sessions, POST /api/approve, POST /api/callback-result and POST /api/operator-commands with no authentication. The approvals operator command accepts skip, which sets the dangerously_skip_all policy. In the coding example, OpenCode's "always" posts remember=true, which allow-lists the tool by name, so one "always" on bash covers every later bash command. Main adds wildcard CORS.
What this changes for operators
- Run serve with --host 127.0.0.1 or behind an authenticating proxy. Anyone who can reach the port can list sessions, approve calls and switch a session to skip all approvals.
- Do not answer always to a bash prompt in the coding example; it approves the tool, not the command shown.
- Evidence that would settle residual: a release that binds loopback by default or adds authentication; #137 on main removes the operator-command channel but is in no tag.
Primary sources
- tagged_commit_file 2026-09-21-temporal-agent-harness-the-packaged-server-binds-0-0-0-0-with-no-authentication-main-adds-wildcard-cors temporal-community/temporal-agent-harness / temporal_agent_harness/web/cli.py#L121
- tagged_commit_file 2026-09-21-temporal-agent-harness-the-packaged-server-binds-0-0-0-0-with-no-authentication-main-adds-wildcard-cors temporal-community/temporal-agent-harness / temporal_agent_harness/web/serve.py#L44
- tagged_commit_file 2026-09-21-temporal-agent-harness-the-packaged-server-binds-0-0-0-0-with-no-authentication-main-adds-wildcard-cors temporal-community/temporal-agent-harness / temporal_agent_harness/web/app.py#L281-L290
- tagged_commit_file 2026-09-21-temporal-agent-harness-the-packaged-server-binds-0-0-0-0-with-no-authentication-main-adds-wildcard-cors temporal-community/temporal-agent-harness / README.md#L579-L584
- commit 2026-09-21-temporal-agent-harness-the-packaged-server-binds-0-0-0-0-with-no-authentication-main-adds-wildcard-cors github.com/temporal-community/temporal-agent-harness/commit/d7a55f8855c31eb1a3281d2502f626c8a153aa44
- tagged_commit_file 2026-09-21-temporal-agent-harness-the-packaged-server-binds-0-0-0-0-with-no-authentication-main-adds-wildcard-cors temporal-community/temporal-agent-harness / temporal_agent_harness/web/app.py#L152-L160
- tagged_commit_file 2026-09-21-temporal-agent-harness-in-the-coding-example-opencode-always-maps-to-remember-true-which-allow-lists-the-tool-by temporal-community/temporal-agent-harness / examples/callback_tools/coding_agent/opencode_shim/harness_backend.py#L273-L303
- tagged_commit_file 2026-09-21-temporal-agent-harness-in-the-coding-example-opencode-always-maps-to-remember-true-which-allow-lists-the-tool-by temporal-community/temporal-agent-harness / examples/callback_tools/coding_agent/opencode_shim/backend.py#L230
- tagged_commit_file 2026-09-21-temporal-agent-harness-in-the-coding-example-opencode-always-maps-to-remember-true-which-allow-lists-the-tool-by temporal-community/temporal-agent-harness / temporal_agent_harness/harness/agent_workflow.py#L1517-L1520
- tagged_commit_file 2026-09-21-temporal-agent-harness-in-the-coding-example-opencode-always-maps-to-remember-true-which-allow-lists-the-tool-by temporal-community/temporal-agent-harness / temporal_agent_harness/harness/agent_protocol/agent_interface.py#L103-L124
- tagged_commit_file 2026-09-21-temporal-agent-harness-in-the-coding-example-opencode-always-maps-to-remember-true-which-allow-lists-the-tool-by temporal-community/temporal-agent-harness / temporal_agent_harness/harness/agent_workflow.py#L1635-L1656
- tagged_commit_file 2026-09-21-temporal-agent-harness-the-caller-s-agentconfig-approval-policy-wins-over-the-agent-s-default-dangerously-skip temporal-community/temporal-agent-harness / temporal_agent_harness/harness/agent_workflow.py#L1282-L1289
- tagged_commit_file 2026-09-21-temporal-agent-harness-the-caller-s-agentconfig-approval-policy-wins-over-the-agent-s-default-dangerously-skip temporal-community/temporal-agent-harness / temporal_agent_harness/harness/agent_protocol/agent_interface.py#L71-L114
- tagged_commit_file 2026-09-21-temporal-agent-harness-the-caller-s-agentconfig-approval-policy-wins-over-the-agent-s-default-dangerously-skip temporal-community/temporal-agent-harness / temporal_agent_harness/harness/agent_workflow.py#L1601-L1611
- tagged_commit_file 2026-09-21-temporal-agent-harness-the-caller-s-agentconfig-approval-policy-wins-over-the-agent-s-default-dangerously-skip temporal-community/temporal-agent-harness / temporal_agent_harness/harness/slash_commands.py#L20
Signal metadata
Source findings
- 2026-09-21-temporal-agent-harness-the-packaged-server-binds-0-0-0-0-with-no-authentication-main-adds-wildcard-cors 2026-09-21-temporal-agent-harness-the-packaged-server-binds-0-0-0-0-with-no-authentication-main-adds-wildcard-cors
- 2026-09-21-temporal-agent-harness-in-the-coding-example-opencode-always-maps-to-remember-true-which-allow-lists-the-tool-by 2026-09-21-temporal-agent-harness-in-the-coding-example-opencode-always-maps-to-remember-true-which-allow-lists-the-tool-by
- 2026-09-21-temporal-agent-harness-the-caller-s-agentconfig-approval-policy-wins-over-the-agent-s-default-dangerously-skip 2026-09-21-temporal-agent-harness-the-caller-s-agentconfig-approval-policy-wins-over-the-agent-s-default-dangerously-skip
Featured in
- Before the First Turn / 2026-09-21
Run: 2026-09-21-weekly-digest-2026-08-20_2026-09-21-frontier-v0
Schema: bitter.frontier_signals.v0 / ID: 2026-09-21-temporal-approvals-server-has-no-login
Research evidence and publication history are open in the repository.