The daily firehose — everything the toolchain shipped today, already filtered.
// HOW THIS ISSUE IS MADE
We read every release from the 174 tools on our watchlist at the source — GitHub and GitLab release notes, vendor release pages and changelogs, project blogs and feeds, vendor press releases, and the source code behind the tag. Bug-fix-only releases and non-product newsroom noise are dropped; what's left is summarized down to the new capability, how to try it, and any screenshots or videos the release itself published. Every entry links to the sources it was built from.
Load a plugin from a local directory so .claude-plugin/plugin.json is discovered and the plugin's tools are available to the agent.
$ copilot --plugin-dir ./my-plugin
›Adds --enable-all-github-mcp-tools, --add-github-mcp-toolset, and --add-github-mcp-tool flags now taking effect in SDK (ACP mode).
›Adds skipPermission per-tool setting so extension tools can bypass permission prompts individually while still using the permissions system.
›Adds COPILOT_CUSTOM_INSTRUCTIONS_DIRS environment variable support for loading custom instruction file paths correctly.
›Hook configuration files now accept PascalCase event names alongside camelCase, enabling a single hook config to work across VS Code, Claude Code, and the CLI without modification.
›Hook config files now support Claude Code's nested matcher/hooks structure and optional type field.
+9 moreshow less
›Adds support for the Open Plugins spec: .lsp.json file locations, exclusive path mode, and : namespace separator for loading plugin and marketplace manifests.
›Plugins using .claude-plugin/plugin.json are discovered when loaded via --plugin-dir.
›Instruction file frontmatter applyTo field now accepts both string and array values.
›Enables dynamic tool discovery and use with tool search for Claude models.
›Sub-agents launched by the task tool receive human-readable IDs based on their name (e.g., math-helper-0) instead of generic agent-0 identifiers.
›The create_pull_request tool now includes the PR URL in its output so the agent can share the direct link.
›read_agent output now includes inbound messages that triggered each turn in multi-turn agents.
›Autopilot task_complete summary is now required and renders as markdown.
›Subagent elapsed time in /tasks view now freezes when idle and resumes when active.
Lightweight coding agent that runs in your terminal
Codex CLI gains full-resolution image inspection, realtime transcription, filesystem RPCs, Smart Approvals guardian routing, and a new Python app-server SDK.
└──▷ GET THIS VERSION
$ git clone --branch rust-v0.115.0 https://github.com/openai/codex.git
# already have the repo? check out this version:$ git checkout rust-v0.115.0
└──▷ USE IT
Override the OpenAI base URL (e.g., to point at a self-hosted or proxy endpoint) without changing the built-in provider.
toml
openai_base_url = "https://my-proxy.internal/v1"
›Adds full-resolution image inspection: models can now opt into detail: "original" via view_image and codex.emitImage(..., detail: "original") for precision visual tasks.
›Exposes codex.cwd and codex.homeDir inside js_repl, and persists codex.tool(...) / codex.emitImage(...) references across cells.
›Adds a dedicated transcription mode for realtime WebSocket sessions, plus v2 handoff support via the codex tool, with a unified [realtime] session config block.
›New Python SDK for integrating with the v2 app-server filesystem API.
+4 moreshow less
›Smart Approvals can now route review requests through a guardian subagent in core, app-server, and TUI, reusing the same guardian session across follow-up approvals.
›App integrations now use the Responses API tool-search flow, can suggest missing tools (tool_suggest), and fall back gracefully when the active model lacks search support.
›Adds openai_base_url config override for the built-in provider.
›The multi-agent wait tool is now consistently named wait_agent, aligning with spawn_agent and send_input.
└──▷ BREAKING ON UPGRADE
!The multi-agent wait tool is renamed to wait_agent; any configuration or prompts referencing the old name will break.
LanceDB v0.27.0 adds a Rust expression builder API, fast_search parity, parallel inserts, and num_deleted_rows reporting.
└──▷ GET THIS VERSION
$ git clone --branch v0.27.0 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout v0.27.0
└──▷ USE IT
Check how many rows were removed after a delete operation using the new num_deleted_rows field.
rust
let result = table.delete("status = 'inactive'").await?;
println!("Deleted {} rows", result.num_deleted_rows);
›Adds expression builder API in Rust (feat(rust): add expression builder API) for type-safe query filters via Expr in query construction.
›Supports Expr in projection queries in Rust, enabling type-safe column selection.
›Accepts RecordBatch and Vec<RecordBatch> directly in create_table() and Table.add() in Rust, removing the need to wrap in a record-batch reader.
›Adds num_deleted_rows field to the delete operation result, making it possible to inspect how many rows were removed.
›Adds fast_search keyword argument parity between vector search and FTS search.
+10 moreshow less
›Supports prewarm_index and prewarm_data on remote tables.
›Adds support for remote index params via the remote SDK.
›Allows passing Azure client/tenant ID through the remote SDK.
›Supports dict-to-SQL struct conversion in Python table.update(), enabling structured updates without manual SQL string construction.
›Supports field and data-type input in the Node.js add_columns() method.
›Enables parallel inserts for local tables, improving write throughput.
›Checks for dataset updates in the background, reducing latency for consistency-sensitive reads.
›Shows reranker info in the hybrid search explain plan, making it easier to debug ranking pipelines.
›Infers JS native arrays automatically in the Node.js binding.
›Upgrades lance dependency to v3.0.0-rc.3, including bindings for fast_search.
└──▷ BREAKING ON UPGRADE
!create_table() and Table.add() in Rust now accept RecordBatch and Vec<RecordBatch> directly; callers previously relying on the old input types will need to update their call sites.
LanceDB python-v0.30.0 adds fast_search parity, parallel inserts, expression-builder filters, and more new query and storage capabilities.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.30.0 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.30.0
└──▷ USE IT
Run a hybrid search and confirm which reranker is active by inspecting the explain plan.
python
plan = (
table.search('security breach', query_type='hybrid')
.explain_plan(verbose=True)
)
print(plan)
›Adds num_deleted_rows field to delete operation results, letting callers confirm how many rows were removed.
›Adds fast_search keyword argument parity between vector and FTS searches so both query types share the same interface.
›Adds expression builder API in Rust for type-safe query filters, replacing raw SQL strings in filter clauses.
›Adds Expr support in projection queries (Rust), enabling type-safe column selection.
›Adds add_columns() support for field/data type input in the Node.js SDK.
+11 moreshow less
›Supports dict-to-SQL struct conversion in table.update() for Python, letting callers pass plain dicts for struct fields.
›Adds bindings for fast_search via Lance 3.0.0-rc upgrade, enabling accelerated ANN lookups.
›Supports prewarm_index and prewarm_data on remote tables to reduce cold-query latency.
›Adds support for remote index params, extending index configuration to LanceDB Cloud tables.
›Enables passing Azure client/tenant ID through the remote SDK for Azure-backed deployments.
›Enables parallel inserts for local tables, improving bulk-write throughput.
›Adds background dataset-update checks so stale reads are detected without blocking query threads.
›Shows reranker info in hybrid search explain plans for easier pipeline debugging.
›Caches schema of remote tables to reduce round-trips on repeated queries.
›Infers JS native arrays automatically in the Node.js SDK, removing manual type hints.
›Upgrades napi-rs from v2 to v3 in the Node.js binding layer.
└──▷ BREAKING ON UPGRADE
!create_table() and Table.add() in the Rust SDK now accept RecordBatch and Vec<RecordBatch> directly; callers passing other input types must update to these forms.