$ the-wire · showcase
Cline pulls Google Search from Gemini API, Codex adds a startup config probe
By RepoJournal · Filed · About Agentic Coding · Composed from the cited sources · methodology
Today's most consequential change for operators is a default being reversed: Cline stops attaching Google Search to every Gemini request, which restores free-tier keys and, on Gemini 2.x, the tool calls the SDK had been dropping.
fix(llms): stop sending native Google Search on the Gemini API (#15194) cline/cline
Web search became default-on, so every Gemini API request carried the googleSearch grounding tool: free-tier keys have no grounding quota on Gemini 3+ models, so each turn failed with a 429 quota error and was retried six times, while on Gemini 2.x the AI SDK cannot combine googleSearch with function tools and dropped every Cline tool. If you ran Cline against Gemini, expect completed turns and...
Add one-shot app-server startup configuration discovery (#55300) openai/codex
`codex app-server --print-startup-config` validates local and cloud-backed configuration and emits the app-server version and config requirements as JSON without initializing environments, thread storage, or plugins, with structured JSON errors and a nonzero exit on failure; `--startup-sign-out` removes account credentials and reloads signed-out requirements. That makes config validation someth...
fix(core): load embedded plugin and dashboard resources cline/cline
A standalone CLI copied onto an SSH host could not load plugins, because its bootstrap and SDK modules were missing beside the executable, and its dashboard needed separately shipped static assets. The resources the CLI needs now travel with the binary, so the copy-and-run case stops being a half-working install.
v2.1.304 anthropics/claude-code
The `tool.check` event gains `e.isReadOnly` for read-only tool calls, and a mod can answer `decider: "person"` so only the permission dialog or a host callback can approve, refused with the mod's reason where nobody can be asked; first-run plugins that skip a hook now leave a transcript line naming the event and plugin. If you gate file writes with hooks, isReadOnly is the field that lets you a...
fix(tui): keep long-pending requests past Bun's fetch deadline anomalyco/opencode
The TUI built its client with plain `OpenCode.make(...)`, inheriting Bun's default five-minute fetch deadline: a long-pending plugin command or `session.shell` was accepted by the server but dropped by the client transport at around 5 to 6 minutes, logged as 499, with the UI restoring the composer and navigating away. Long-running commands you actually waited on should stop vanishing out from u...
fix(core): summarize the whole conversation during compaction anomalyco/opencode
Compaction sent the model only the older portion of the conversation before the retained tail, so the request diverged from the normal one right where the tail started and could reuse cache entries only for the older prefix. With the extended prompt cache, summarizing the whole conversation keeps more of the request cacheable.
fix(cli): decode streamed Node HTTP activity chunks with StringDecoder google-gemini/gemini-cli
`ActivityLogger.patchNodeHttp()` decoded each incoming `data` chunk independently with `chunkBuffer.toString('utf8')`, so any multibyte character split across a chunk boundary showed up as `\uFFFD` in streamed chunk events even though the final body was intact. The fix uses a per-response `StringDecoder('utf8')` and flushes trailing bytes at `end`, which matters if you consume the activity stre...
fix(ui): preserve terminal scrollback during viewport refreshes google-gemini/gemini-cli
`refreshStatic` in the CLI used `ansiEscapes.clearTerminal` (`\x1b[2J\x1b[3J\x1b[H`), and `\x1b[3J` tells the terminal to purge its scrollback buffer, so settled output disappeared on window resize or when toggling expanded output with Ctrl+O. Standard buffer mode now preserves that history.