### Description

A cron schedule whose `if.code` check calls a remote MCP tool and posts the result never completes. Three ticks in a row failed with `Execution timed out after 30000ms` and OpenCode paused the schedule, so nothing ran.

The check body gets one 30s wall clock, and the MCP handshake spends it before the tool call starts:

- `packages/core/src/schedule/check.ts:23` sets `TIMEOUT_MS = 30_000` into `CodeMode.ExecutionLimits.timeoutMs`.
- `packages/codemode/src/interpreter/execute.ts:60-93` applies it once as `Effect.timeoutOrElse` around the whole program, so connect, tool calls and the post all draw from the same budget.

Measured from `~/.local/share/opencode/log/opencode.log`, across 33 `message="mcp connected" server=executor` entries in one day: **p50 8.5s, p90 21.0s, max 26.6s** (`http.span`). One tool call on that server measured ~5s warm and 46–53s on first use. The median handshake alone is more than a quarter of the budget.

Repeated identical calls inside one program also get slower: 2.9s, 11.8s, 25.3s, 38.8s.

The `schedule_create` schema advertises this pattern — check code may call tools, and they are "authorized once at creation to run unattended" — but the limit cannot accommodate it.

### Plugins

`file:///Users/oscar/.agents/plugins/agents`, `mcpevents`, `session`, `worktree`; executor MCP server (`https://mcp.executor.sh/mcp?elicitation_mode=native`)

### OpenCode version

v2.2.5

### Steps to reproduce

1. Enable `experimental.schedules`.
2. Create a schedule with `when: { cron: "*/30 * * * *" }` and an `if.code` that makes one remote MCP tool call and one chat API post.
3. Wait for three ticks. Each fails with `Execution timed out after 30000ms`, then `Schedule paused after 3 failed checks`.

### Screenshot

Not provided — the failure is a headless schedule tick with no UI surface.

### Operating System

macOS 27.2

### Terminal

n/a — failing run is a headless schedule tick, not the TUI.

<sub>Generated on _MrBeast_ using _opencode/deepseek-v4.1-flash_ in _ses_e62415647ffdnoOBsxnXF5Yy4M_</sub>
