June 6, 2026

Pre-pass mirroring, context stability, and read tool aliases

The high-deliberation thinking pre-pass has been refined to carry the parent turn verbatim—user message and active tool surface—with the system prompt as the on

The high-deliberation thinking pre-pass has been refined to carry the parent turn verbatim—user message and active tool surface—with the system prompt as the only delta. It now delegates to parent.config and parent.active_tools, making it channel-agnostic. Because the parent’s user prompt already includes the previous messages history, the thinking pass automatically inherits the conversation context, eliminating the earlier history carry-forward issue.

The composer context indicator was oscillating because it picked up any llm_call_log row with usage_class=‘chat’, including noisy delegate sub-requests. The fix keys off job_name=‘user:user’ to track only the main user turn, giving a stable and meaningful context size reading. Additionally, on mobile the controls row now spans 100% width, aligning with the input box and eliminating the inset layout.

The read tool previously only accepted a ‘source’ parameter, so when a model used natural keys like ‘url’ or ‘path’ the value was silently dropped, causing repeated failures. The tool now resolves the first non-empty value from a set of common aliases (source/url/uri/link/path/file/etc.) and returns a diagnostic error listing the keys received if none match, helping the model self-correct instead of looping.

  • Thinking pre-pass now mirrors parent user message and active tools, with only system prompt differing.

  • Context indicator keyed to job_name=‘user:user’ stops oscillation from delegate requests.

  • Mobile composer controls row set to full width for consistent layout.

  • Read tool accepts url/path/filepath aliases and gives diagnostic error on missing source.