ctx.workspace is a property that raises PermissionError when the runtime
didn't provision a workspace. The original `getattr(ctx.workspace, …)`
guard didn't catch that — the property call happens before getattr can
fall back. When the agent is invoked over the local MCP gateway
(a2amcp), which has no grant flow, this surfaced as a 500 instead of
the intended "run me through the orchestrator" message.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The default 25 was tripping on iterative builds (list -> write*3 -> test
-> deploy is already 12-18 steps; any retry blew the cap).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>