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.
Autonomous AI pentesting agents — real-time reconnaissance, vulnerability detection, and exploitation orchestration. Go + TypeScript.
xalgorix's biggest addition this window is an authenticated re-test API for rechecking individual findings without a full scan; alongside it came expanded mobile scanning (split-APK support, OOB interaction filtering), a Postman import workflow, UI theming and localization, an onboarding wizard, and several provider-specific LLM tweaks.
└──▷ WHAT SHIPPED · 10 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
Authenticated re-test API for findingsNEW95how completely this was documenteddepth35/40specificity30/30actionability30/3095 / 100
Adds POST /api/findings/retest to actively re-check a single stored finding without launching a full target scan, and GET /api/findings/retest/{id} to poll the status and verdict (still_vulnerable, fixed, inconclusive) of a running or completed re-test job. Introduces an opaque auth_profile argument (primary / secondary / none) for per-job credentials that stay server-side and never appear in job state or tool schemas, and terminal jobs report a meaningful_attempt field with counts of request, affected-request, and affected-variant.
Poll a re-test job for its verdict after submission, checking whether the finding is still_vulnerable, fixed, or inconclusive.
— Endpoints, auth model, and job status fields fully specifiedv4.5.126
02
Opt-in pprof debug serverNEW90how completely this was documenteddepth30/40specificity30/30actionability30/3090 / 100
Adds XALGORIX_PPROF_ADDR environment variable to enable an opt-in loopback pprof debug server for runtime profiling, e.g. XALGORIX_PPROF_ADDR=127.0.0.1:6060 xalgorix.
Enable the pprof debug server on a local port to capture CPU or memory profiles during a live xalgorix run.
$ XALGORIX_PPROF_ADDR=127.0.0.1:6060 xalgorix
— Exact env var and runnable command givenv4.5.141
03
Split-APK bundle supportNEW60how completely this was documenteddepth25/40specificity25/30actionability10/3060 / 100
Supports split-APK bundle formats (.apks, .xapk, .aab) and now accepts sparse APKs that were previously rejected.
— Names exact formats but gives no usage stepv4.5.125
04
Provider-specific LLM settings and recommendationsIMPROVED60how completely this was documenteddepth25/40specificity20/30actionability15/3060 / 100
Adds native web_search support via the MiniMax provider, routing web search queries through MiniMax's own search capability; adds a configurable Gemini safety threshold to support authorized security testing use cases; and adds recommendations for current frontier models.
Run, train, and serve open-source AI models on Together AI.
Together AI shipped a new tg batches CLI command group for managing batch inference jobs, training quality improvements for several Qwen3.5 and Nemotron-3 fine-tuning models, plus API key expiration controls, ACH payments, and new GLM-5.3 models with 1M-token context.
└──▷ WHAT SHIPPED · 2 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
thinner coverage below
01
GLM-5.3 models with 1M-token contextNEW30how completely this was documenteddepth10/40specificity15/30actionability5/3030 / 100
Adds new GLM-5.3 models supporting a 1M-token context window.
Groq is a high-speed AI inference platform that runs large language models extremely fast with minimal latency.
Groq added two new OpenAI GPT-OSS open-weight reasoning models to its chat completions API, bringing high-throughput MoE inference with built-in browser search and code execution.
└──▷ WHAT SHIPPED · 1 FEATUREmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
OpenAI GPT-OSS 20B and 120B models addedNEW88how completely this was documenteddepth32/40specificity28/30actionability28/3088 / 100
Groq added openai/gpt-oss-20b and openai/gpt-oss-120b to the POST https://api.groq.com/openai/v1/chat/completions endpoint. openai/gpt-oss-20b is a 20B MoE model (32 experts) with 131K token context, 32K max output tokens, built-in browser search and code execution, structured output support, and ~1000+ TPS throughput. openai/gpt-oss-120b is a 120B MoE model (128 experts) with the same 131K context and 32K max output, the same built-in browser search, code execution and structured outputs, running at ~500+ TPS. Both support reasoning capabilities.
Query a high-speed open-source reasoning model for code or math tasks that previously required closed frontier models.
$ curl https://api.groq.com/openai/v1/chat/completions \
-H "Authorization: Bearer $GROQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "openai/gpt-oss-20b", "messages": [{"role": "user", "content": "Explain why fast inference is critical for reasoning models"}]}'
Use the larger 120B variant when maximum accuracy on multilingual or health-domain tasks matters more than raw throughput.
$ curl https://api.groq.com/openai/v1/chat/completions \
-H "Authorization: Bearer $GROQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "openai/gpt-oss-120b", "messages": [{"role": "user", "content": "Summarize this patient case and flag potential drug interactions"}]}'
— Names endpoint, both model ids, specs, and runnable curl examplessnapshot-20260830
Darkbloom's v0.8.15 release adds opt-in metadata embedding on chat completions that surfaces attestation, timing, job identity, and coarse GeoIP location, and integrates the Qwen3.8-27B VLM together with a default-on MTP proposal assistant for it.
└──▷ WHAT SHIPPED · 3 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
Opt-in metadata embedding in chat completionsNEW92how completely this was documenteddepth32/40specificity30/30actionability30/3092 / 100
Adds metadata_details: true request body field to POST /v1/chat/completions to embed provider attestation, timing, and job identity details directly in the JSON response body, useful when OpenAI-compatible SDKs hide raw HTTP headers. Also adds X-Darkbloom-Metadata-Details: true request header as an alternative opt-in for the same per-request metadata embedding, supporting browser preflight flows. When opted in, metadata.location surfaces the serving provider's GeoIP region as region, region_code, country, country_code, and timezone fields; city, coordinates, and raw IPs are intentionally omitted.
Retrieve attestation, timing, and job-identity details in the response body when your SDK strips custom HTTP headers.
— Named endpoint, field, header, and runnable curl examples included.v0.8.15
02
MTP proposal assistant for Qwen3.8NEW75how completely this was documenteddepth25/40specificity30/30actionability20/3075 / 100
Adds EigenLabs/Qwen3.8-27B-MTP-4bit as an MTP proposal assistant for Qwen3.8, enabled by default; disable with mtp_mode = "off", darkbloom beta disable mtp, or the DARKBLOOM_CBV2_MTP=0 environment variable.
— Names config key, CLI subcommand, and env var to disable.v0.8.15
thinner coverage below
03
Qwen3.8-27B VLM supportNEW55how completely this was documenteddepth20/40specificity25/30actionability10/3055 / 100
Integrates Qwen3.8-27B full VLM (EigenLabs/Qwen3.8-27B-4bit) with vision and video (API) support, restricted to Apple M5 hardware with the approved NAX runtime.
— Names model and hardware restriction but gives no usage example.v0.8.15
Daytona is an open-source development environment platform that enables developers to spin up standardized, reproducible coding environments instantly.
Daytona 0.203.0 shipped a CLI command for listing organization members and added client-side HTTP timeout support.
└──▷ WHAT SHIPPED · 1 FEATUREmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
thinner coverage below
01
Client-side HTTP timeout supportNEW30how completely this was documenteddepth10/40specificity10/30actionability10/3030 / 100
Daytona 0.203.0 adds support for client-side HTTP timeouts.
— Mentioned only in summary with no configuration detailssnapshot-20260830
38 editorial diagram types for Claude Code, Codex, and Pi. Self-contained HTML + SVG.
Diagram Design gains Draw.io import, ten new diagram types, named client profiles, Pi support, and automatic plugin updates.
└──▷ GET THIS VERSION
$ git clone --branch commits-2026-08-11 https://github.com/cathrynlavery/diagram-design.git
# already have the repo? check out this version:$ git checkout commits-2026-08-11
└──▷ TRY IT
Verify that a Draw.io import was extracted and redrawn correctly before merging a diagram update.
$ python3 scripts/verify-drawio-import.py
Run adversarial Sankey geometric contract tests to confirm the checker fires on ribbon narrowing, node volume loss, and label/bar mismatches.
$ python3 scripts/test-verify-sankey.py
›Adds the /diagram-design:import workflow to redraw Draw.io files (raw, compressed, PNG-embedded, and SVG-embedded) at a chosen format, size, and detail level into the project design system.
›Adds verify-drawio-import.py to verify Draw.io import correctness; invoke with python3 scripts/verify-drawio-import.py.
›Adds verify-beeswarm.py to enforce nine geometric invariants on beeswarm diagrams (shared value scale, no overprint, and seven additional contracts).
›Adds lint-render.py to lint diagram examples as rendered in headless Chromium, catching clipped SVG viewports, collapsed SVGs, page overflow, and runtime errors that source-level linting cannot detect.
›Adds test-verify-sankey.py with adversarial fixtures covering both polarities of the Sankey geometric contract (ribbons, node volume, stage monotonicity, label/bar agreement, and dark/light variant parity).
+7 moreshow less
›Adds named client profiles (PR #61).
›Adds automatic plugin updates via native marketplaces with a version gate.
›Ships ten editorial diagram types in one release, including a treemap (part-of-whole by area), a dumbbell Bar variant, and a slopegraph line variant for change between two states.
›Adds native Pi package support for compatibility with the Pi platform.
›Adds native Droid plugin packaging via the factory.
›Adds a pre-draw checkpoint, docs-sync gate, packaged self-check, and ADRs to the skill module.
›Adds a GitHub Actions CI workflow (.github/workflows/ci.yml) with a multi-OS matrix (Linux, Windows, macOS), automated visual artifact packaging and upload on linter failures, and a GitHub Step Summary table for matrix run results.
Independent executor–verifier orchestration for software changes.
Zeroshot's only release this window adds keyed connection contracts along with a CLI surface for managing them.
└──▷ WHAT SHIPPED · 1 FEATUREmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
thinner coverage below
01
Keyed connection contracts and CLINEW30how completely this was documenteddepth10/40specificity10/30actionability10/3030 / 100
Adds keyed connection contracts and an accompanying CLI for managing them.
— No command names, flags, or mechanism given beyond a brief description.v6.46.0
Lightweight coding agent that runs in your terminal
OpenAI Codex CLI shipped model-driven clock tools with configurable sleep-tool gating, reworked shell-command execution (including a breaking change to one-shot exec mode), and a string of MCP, plugin-catalog, and rollout-storage improvements across six releases this window.
└──▷ WHAT SHIPPED · 22 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
Clock tools and configurable sleep-tool gatingNEW88how completely this was documenteddepth35/40specificity28/30actionability25/3088 / 100
Adds clock.curr_time and clock.sleep tools automatically when a model lists clock in its experimental_supported_tools metadata, with the separate current_time_reminder feature controlling current-time reminder injection. Adds a features.sleep_tool config key with model_driven and always_on modes to independently gate registration of the built-in sleep tool.
Force the sleep tool on regardless of model metadata, useful when automating workflows that need deliberate pauses.
One-shot exec_command timeout and removed legacy parametersBREAKING80how completely this was documenteddepth30/40specificity30/30actionability20/3080 / 100
Preserves exec_command in completion-only (one-shot) mode when unified_exec is disabled, adding a timeout_ms argument that terminates timed-out commands with exit code 124. Removes tty, yield_time_ms, session_id, and write_stdin from one-shot exec mode when unified_exec is disabled.
— Breaking parameter removal fully enumerated with exit code behaviorrust-v0.151.0-alpha.7.2
03
Configurable timeout for thread/shellCommandNEW78how completely this was documenteddepth30/40specificity28/30actionability20/3078 / 100
Adds an optional timeoutMs parameter to thread/shellCommand to set per-command deadlines; defaults to one hour when omitted or null, treats 0 as an immediate timeout, and rejects negative values. Also adds general support for configurable timeouts on thread shell commands.
Compression for shared rollout lineagesNEW65how completely this was documenteddepth25/40specificity25/30actionability15/3065 / 100
Adds an opt-in local_thread_store_shared_compression feature flag to enable zstd compression for shared rollout lineages, including referenced sources and fork pointers.
Guardian context rollover for follow-up reviewsIMPROVED53how completely this was documenteddepth30/40specificity15/30actionability8/3053 / 100
Guardian context rolls over before follow-up reviews to handle exhausted context windows, replaying the full transcript and image evidence after compaction.
Per-repository plugin catalog mergingIMPROVED48how completely this was documenteddepth25/40specificity15/30actionability8/3048 / 100
Plugin catalogs now merge per-repository configuration with global settings and surface invalid project marketplace entries without suppressing valid plugins.
— Behavior detailed but no config key namedrust-v0.151.0
08
Extension interception of MCP tool resultsNEW45how completely this was documenteddepth25/40specificity12/30actionability8/3045 / 100
Enables extensions to inspect or replace MCP tool results before they reach the model, allowing middleware-style transformation of tool output.
— Mechanism explained but no API surface namedrust-v0.151.0
09
MCP server startup grace periodNEW42how completely this was documenteddepth20/40specificity12/30actionability10/3042 / 100
Adds a configurable grace period for discovering tools from optional MCP servers at startup, preventing slow servers from blocking the agent.
— Mechanism described but no config name givenrust-v0.151.0
10
Windows-specific guidance in exec_command descriptionIMPROVED35how completely this was documenteddepth15/40specificity15/30actionability5/3035 / 100
Adapts the exec_command tool description to include Windows-specific safety guidance when the executor platform is Windows, and omits it for non-Windows executors.
Executor hook improvements for interrupted turns and app targetsIMPROVED35how completely this was documenteddepth15/40specificity15/30actionability5/3035 / 100
Executor hooks now run for interrupted turns, and executor plugin hooks support app targets.
Kiro's latest release focuses on full-screen spec execution with real-time progress tracking, alongside smaller reliability and compatibility improvements.
└──▷ WHAT SHIPPED · 2 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
thinner coverage below
01
Network resilience for agent turnsIMPROVED25how completely this was documenteddepth15/40specificity5/30actionability5/3025 / 100
Agent turns keep running when the network briefly drops, avoiding interruption of in-progress work.
DeepSeek Harness adds visibility into schedules and reminders within session views, reworks turn stats and layout in the chat UI, and speeds up CI by partitioning test coverage by file duration.
└──▷ WHAT SHIPPED · 3 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
thinner coverage below
01
Redesigned turn stats and tail in chat UIIMPROVED50how completely this was documenteddepth20/40specificity15/30actionability15/3050 / 100
The chat UI now collapses the turn tail into a single clickable meta line, splits turn stats into separate usage and time pills that each open a detail dialog, and reshapes the usage trigger as an icon-row pill.
— Describes concrete UI elements and interactions, but no exact path.dsh-v0.1.2-alpha.2
02
CI test partitioning by file durationIMPROVED45how completely this was documenteddepth20/40specificity15/30actionability10/3045 / 100
CI coverage partitions are now assigned by recorded file duration, enabling faster targeted test runs.
— Explains mechanism but gives no command or config to invoke it.dsh-v0.1.2-alpha.2
03
Schedules and reminders in session viewsNEW35how completely this was documenteddepth15/40specificity10/30actionability10/3035 / 100
The web UI now surfaces active schedules in session views and lists active reminders in the session header, giving visibility into upcoming triggers directly from the session view.
— Names the UI areas but no exact navigation or config.dsh-v0.1.2-alpha.2
Agno v3.0.2 adds four new integrations (Synthorai, WaveSpeed, Serply, AtomicMail), expands MCP tool publishing to agents, teams, workflows and toolkits, and reworks reasoning-model detection alongside several breaking changes to metadata handling, MCPConfig validation and BaseRemote.
└──▷ WHAT SHIPPED · 12 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
WaveSpeed image and video generation toolNEW90how completely this was documenteddepth30/40specificity30/30actionability30/3090 / 100
Adds WaveSpeedTools (pip install agno[wavespeed], key from WAVESPEED_API_KEY) with generate_image and generate_video methods that accept a text prompt, poll within poll_interval and timeout, and return ToolResult carrying Image/Video artifacts.
Add WaveSpeed image generation to an agent for text-to-image workflows in a script or notebook.
python
from agno.agent import Agent
from agno.tools.wavespeed import WaveSpeedTools
agent = Agent(
tools=[WaveSpeedTools(poll_interval=2, timeout=60)],
markdown=True,
)
agent.print_response("Generate an image of a futuristic city at night", stream=True)
— Full runnable example with named params and return typev3.0.2
02
AtomicMail inbox management toolNEW90how completely this was documenteddepth30/40specificity30/30actionability30/3090 / 100
Adds AtomicMailTools with register_inbox, send_email, and list_inbox over JMAP; register_inbox provisions a new inbox via proof-of-work signup, with credentials cached to ~/.atomicmail/credentials.json and pow_timeout (default 300s) capping the solve.
Give an agent its own disposable inbox for automated email tasks — inbox is provisioned once and reused from ~/.atomicmail/credentials.json.
python
from agno.agent import Agent
from agno.tools.atomicmail import AtomicMailTools
agent = Agent(
tools=[AtomicMailTools(pow_timeout=300)],
markdown=True,
)
agent.print_response("Register me an inbox, then check for any new messages.", stream=True)
— Named methods, cache path, default and runnable examplev3.0.2
03
MCP tool publishing for agents, teams, workflows and toolkitsNEW90how completely this was documenteddepth35/40specificity30/30actionability25/3090 / 100
MCPConfig.tools now publishes Agent, Team, Workflow instances, remote proxies, and component factories as named MCP tools, with component.as_tool(name=..., description=...) controlling the published name; it also publishes Toolkit instances as one MCP tool per registered method, filtered by enable_*/include_tools/exclude_tools, with ToolResult rendered as MCP content blocks including text, image, audio, embedded resource, and resource_link. as_tool() and @tool/Function also gained title and annotations parameters published over MCP, with unknown annotation keys raising at construction.
— Names all config keys and filters but no runnable samplev3.0.2
04
Context provider query timeouts and write tool overridesIMPROVED80how completely this was documenteddepth30/40specificity25/30actionability25/3080 / 100
Adds query_timeout to every context provider, applying a wall-clock deadline to each query_<id> tool call (requires Python 3.11+), and adds write_tools to the five write-capable providers to replace the default write sub-agent toolset.
— Named parameters and behavior, no code samplev3.0.2
05
Reasoning detection reworked with provider-first checksBREAKING80how completely this was documenteddepth35/40specificity30/30actionability15/3080 / 100
Adds sync, async, and streaming reasoning handlers to MoonShot (Kimi) reading reasoning_content, and routes OpenRouter through the OpenAI reasoning path. Native reasoning detection now queries the provider first before falling back to model-id matching, cached on the reasoning manager with a 10-second timeout on the Ollama, OpenRouter, and Moonshot paths; as a result a Gemini or Claude model configured for thinking may now be classified as non-reasoning when the provider reports thinking unsupported, id-based fallbacks changed so gpt-5 variants match on OpenAI and Azure OpenAI, Groq and Ollama match gpt-oss and qwen3, and qwen2.5-coder on Ollama is no longer treated as a reasoning model.
— Detailed mechanism and before/after but no direct actionv3.0.2
06
Synthorai model providerNEW75how completely this was documenteddepth25/40specificity30/30actionability20/3075 / 100
Adds Synthorai model provider (agno.models.synthorai) reading SYNTHORAI_API_KEY, defaulting to https://synthorai.io/v1; resolves model='synthorai:<model-id>' strings via the provider lookup table.
— Named env var and model string format, no examplev3.0.2
07
Serply web, news and scholar search toolNEW75how completely this was documenteddepth25/40specificity30/30actionability20/3075 / 100
Adds SerplyTools for Google web, News, and Scholar search via the Serply API, reading SERPLY_API_KEY; web search is on by default, with search_news, search_scholar, and all=True enabling additional surfaces.
— Named methods and flags, no runnable examplev3.0.2
08
Headless Google OAuth supportNEW75how completely this was documenteddepth25/40specificity25/30actionability25/3075 / 100
Google toolkits accept AuthConfig(interactive=False) or the env var GOOGLE_OAUTH_NONINTERACTIVE=1 to raise instead of blocking on a browser flow.
Schedule listing improvements in ScheduleManagerIMPROVED70how completely this was documenteddepth25/40specificity25/30actionability20/3070 / 100
Adds ScheduleManager.list_all() and alist_all() to page the full schedule catalog, backed by a new raise_on_error argument on get_schedules; listings now break created_at ties by id.
— Named methods and argument, no usage examplev3.0.2
10
Metadata precedence change on Agent, Team, WorkflowBREAKING65how completely this was documenteddepth25/40specificity25/30actionability15/3065 / 100
metadata precedence on Agent, Team, and Workflow changed: a metadata= passed to run() now wins over the component-level metadata; code that read agent.metadata after a run to observe session values now sees only the constructor value.
— Clear before/after but no migration example givenv3.0.2
11
MCPConfig strict keyword validationBREAKING60how completely this was documenteddepth20/40specificity25/30actionability15/3060 / 100
MCPConfig/MCPServerConfig now raise on unrecognised keyword arguments at construction instead of silently ignoring them, so a typo like tool= will fail at boot.
— Named classes and example typo, no migration stepsv3.0.2
12
BaseRemote.acancel_run requires auth_tokenBREAKING60how completely this was documenteddepth20/40specificity25/30actionability15/3060 / 100
BaseRemote.acancel_run gained a required auth_token keyword parameter; third-party BaseRemote subclasses must accept it.
— Names exact method and parameter, minimal elaborationv3.0.2
└──▷ BREAKING ON UPGRADE
!MCPConfig/MCPServerConfig now raise on unrecognised keyword arguments at construction instead of silently ignoring them (e.g. a typo like tool= will fail at boot).
!BaseRemote.acancel_run gained a required auth_token keyword parameter; third-party BaseRemote subclasses must accept it.
!metadata precedence on Agent, Team, and Workflow changed: a metadata= passed to run() now wins over the component-level metadata; code that read agent.metadata after a run to observe session values now sees only the constructor value.
!Reasoning detection now queries the provider via a blocking HTTP call before model-id matching; a Gemini or Claude model configured for thinking may now be classified as non-reasoning when the provider reports thinking unsupported. Id-based fallbacks also changed: gpt-5 variants match on OpenAI and Azure OpenAI, Groq and Ollama match gpt-oss and qwen3, and qwen2.5-coder on Ollama is no longer treated as a reasoning model.
How Python does AI: agents, realtime voice, image generation, embeddings. Every model, every interface, typed end to end.
PydanticAI v2.36.0 adds durable execution support via a new decorator, stable IDs for instruction parts, async-iterable audio streaming for realtime voice sessions, and CLI improvements to clai.
└──▷ WHAT SHIPPED · 4 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
Async-iterable audio input for realtime sessionsIMPROVED75how completely this was documenteddepth25/40specificity25/30actionability25/3075 / 100
RealtimeSession.send_audio() now accepts async iterables, enabling streaming microphone input from async generators rather than only discrete chunks.
Stream audio from an async generator directly into a realtime voice session instead of pushing discrete chunks.
python
async def mic_chunks():
async for chunk in microphone_stream():
yield chunk
async with agent.realtime('openai:gpt-realtime-2.1').session() as session:
await session.send_audio(mic_chunks())
— Named method with a runnable code examplev2.36.0
02
`@durable_operation` decorator for durable executionNEW65how completely this was documenteddepth25/40specificity25/30actionability15/3065 / 100
Introduces the @durable_operation decorator, which requires an explicit operation name, plus a public backend API for integrating third-party durable execution engines.
— Decorator and API named but no code examplev2.36.0
03
CLI improvements to `clai`NEW62how completely this was documenteddepth20/40specificity22/30actionability20/3062 / 100
Adds the --mcp-config flag to the clai CLI, enabling MCP server configuration from the command line, and adds tool-call streaming support to clai.
The Universal Governance, Risk, Compliance (GRC) Operating System with Integrated Security for Agentic AI, Non-Human Identities, and Swarm Governance. AI SAFE² + AI Sovereignty Maturity Model (AISM), NEXUS-A2A Protocol, FORGE-Act, Marshal Plan for AI [Dual License: MIT + CC-BY-SA]
AI SAFE² v3.1 introduces machine-readable manifest and dataset entry points for agents, expands the CP.5.MCP profile to 19 controls with six new additions, and re-anchors five existing controls from protocol session state to framework-owned governance state so they survive protocol changes such as MCP 2026-07-28.
└──▷ WHAT SHIPPED · 9 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
Machine-readable manifest and MCP dataset entry pointsNEW78how completely this was documenteddepth25/40specificity28/30actionability25/3078 / 100
Adds ai-safe2.manifest.json and AGENTS.md as first-class machine entry points, exposing framework version, component versions, normative paths, control counts, enforcement planes, persistence vocabulary, and conformance boundaries so agents and compliance bots can consume the framework without scraping prose. Also adds skills/mcp/data/mcp-profile-v3.1.json, a machine-readable MCP profile covering all 19 CP.5.MCP controls, and skills/mcp/data/ai-safe2-controls-v3.0.json, the 161-control core dataset for automated consumption.
— Names exact files and their contents but no usage walkthroughv3.1
02
Six new CP.5.MCP controls, profile reaches 19NEW75how completely this was documenteddepth30/40specificity30/30actionability15/3075 / 100
Adds MCP-14 (Extension Capability Negotiation), MCP-15 (Header and Body Assertion Integrity), MCP-16 (State Handle Binding and Lifecycle), MCP-17 (MRTR Round-Trip Integrity and Replay Resistance), MCP-18 (Catalog Cache Integrity and Provenance Revalidation), and MCP-19 (Authorization Chain Integrity, intended-resource/audience binding, and SSRF boundaries), bringing the CP.5.MCP profile to 19 controls. MCP-19 carries an explicit conformance boundary: a deployment must evidence intended-resource, audience, or equivalent binding before protected dispatch, and opaque bearer-token possession alone does not satisfy the control.
— Names all six controls and a boundary rule, no runnable examplev3.1
03
Re-anchoring of five MCP controls to governance stateBREAKING70how completely this was documenteddepth30/40specificity25/30actionability15/3070 / 100
Re-anchors MCP-4, MCP-7, MCP-8, MCP-11, and MCP-13 from protocol session state to framework-owned governance state (verified principals, capability grants, provenance baselines, delegation chains, governed state handles) so controls survive protocol changes such as MCP 2026-07-28. Implementations that previously anchored these controls to MCP session constructs must be re-implemented against the new bindings.
— Explains mechanism and before/after but no migration steps givenv3.1
04
MCP 2026-07-28 primary binding with legacy windowNEW65how completely this was documenteddepth25/40specificity25/30actionability15/3065 / 100
Adds MCP 2026-07-28 as the primary binding for CP.5.MCP, with a twelve-month legacy compatibility window for MCP 2025-11-25; server/discover is optional under the primary binding and its absence is not treated as a scanner failure.
— Names exact protocol versions and an optional endpointv3.1
thinner coverage below
05
Protocol-independent persistence vocabularyNEW55how completely this was documenteddepth20/40specificity25/30actionability10/3055 / 100
Formalizes a protocol-independent persistence vocabulary with four canonical values — request, handle_scoped, durable, and swarm_shared — replacing protocol-owned session language at the governance boundary.
— Names the four values but no usage instructionsv3.1
06
Three enforcement planes for control coverageNEW55how completely this was documenteddepth25/40specificity20/30actionability10/3055 / 100
Establishes three explicit enforcement planes — north-south (agent to model provider), east-west (agent to agent), and agent-to-tool (agent to MCP server or tool) — with the rule that a successful control result on one plane does not automatically establish coverage on another.
— Defines the model clearly but no application stepsv3.1
07
Challenge Lab scoped by enforcement planeIMPROVED50how completely this was documenteddepth20/40specificity20/30actionability10/3050 / 100
Scopes the Challenge Lab by enforcement plane — maturity, framework/profile conformance, the plane exercised, and required evidence — adding v3.1 MCP cases covering header/body desynchronization, catalog/schema drift, replay, audience/resource confusion, endpoint impersonation, SSRF, and legacy state-handle misuse.
— Lists new test cases but no example run or commandv3.1
08
Scanner rule registry expanded to 64 rulesIMPROVED45how completely this was documenteddepth15/40specificity20/30actionability10/3045 / 100
Expands the scanner rule registry to 64 rules by adding 12 new grouped CP.5.MCP v3.1 rules covering the new and re-anchored MCP controls.
— Gives a count and scope but no rule names or commandsv3.1
09
Agent Discovery and Manifest Integrity CI gateNEW40how completely this was documenteddepth15/40specificity15/30actionability10/3040 / 100
Adds a dedicated CI gate that verifies manifest claims against the repository, failing on incorrect claims and broken paths.
— States purpose but no gate name, command, or config shownv3.1
└──▷ BREAKING ON UPGRADE
!Controls MCP-4, MCP-7, MCP-8, MCP-11, and MCP-13 now bind to framework-owned governance state rather than protocol session state; implementations that anchored those controls to MCP session constructs must be re-implemented against the new bindings.
Your AI's guard dog. Doberman sits at runtime, gating every input, output and tool call to stop unsafe or unintended actions before they execute.
Doberman-Core shipped a RAND-aligned guardrail rehaul, a five-minute approval memory with soft-confirm re-prompts, and a device-wide uninstall --global path, alongside new CLI controls for egress thresholds, decision-log pruning, telemetry defaults, and machine-readable JSON output across core commands.
└──▷ WHAT SHIPPED · 22 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
Global uninstall and device exclusion listNEW95how completely this was documenteddepth35/40specificity30/30actionability30/3095 / 100
doberman uninstall --global performs a device-wide removal of Claude Code and Codex hooks, project state, possession factors, the fingerprint key, and device state before removing the package via pip or pipx; --yes skips the typed DOBERMAN confirmation, --dry-run changes nothing, and --keep-package preserves the package. It writes a device-wide ~/.doberman/excluded_projects.json exclusion list so excluded projects become true no-ops (cleared by running doberman install-hooks in that project), and doberman status now reports whether the current project is in this exclusion list.
Completely remove Doberman from a machine (hooks, state, keys, and package) in a single command, skipping only the typed confirmation.
$ doberman uninstall --global--yes
— All flags, config path and clearing mechanism named.v0.18.4
02
Telemetry opt-in/opt-out controlsIMPROVED95how completely this was documenteddepth35/40specificity30/30actionability30/3095 / 100
doberman telemetry on|off|status (v0.18.2) added opt-in anonymous CLI telemetry, off by default, limited to allowlisted counts and command names and never on the per-tool hook or proxy hot path. In v0.18.4 telemetry switched to on-by-default (opt-out): the same five allowlisted events are sent unless disabled via doberman telemetry off, DO_NOT_TRACK, DOBERMAN_TELEMETRY=0, or the CI environment variable; doberman setup prompts with a default of Yes, and the first CLI command prints a one-line notice to stderr before anything is sent.
Opt out of telemetry via environment variable in CI pipelines or per-session shells where you cannot run a subcommand.
$ export DOBERMAN_TELEMETRY=0
Check or toggle anonymous telemetry reporting before deploying Doberman in a shared environment.
$ doberman telemetry status
doberman telemetry on
doberman telemetry off
— Subcommand, env vars and default-change fully specified.v0.18.4v0.18.2
03
JSON/JSONL output for CLI commandsIMPROVED90how completely this was documenteddepth30/40specificity30/30actionability30/3090 / 100
--json and --jsonl flags on scan, doctor, policy-history, and log emit machine-readable output with an explicit allowlist of already-redacted columns so future schema additions cannot leak into streams by default; tune gained a matching --json flag producing compact JSON (separators=(',', ':')) per the contract documented in docs/CLI.md.
Stream continuous log output in newline-delimited JSON into a SIEM or log aggregator.
— All commands, flags and redaction allowlist named with runnable example.v0.18.5v0.17.1
04
`doberman update` version-check commandNEW88how completely this was documenteddepth30/40specificity28/30actionability30/3088 / 100
doberman update runs a timeout-bounded PyPI version check and prints the exact pip install -U upgrade command without installing anything; it is disabled under DO_NOT_TRACK, CI, or DOBERMAN_UPDATE_CHECK=off.
Check whether Doberman itself is up to date and get the exact pip command to upgrade, without running the upgrade automatically.
$ doberman update
— Command, exact disable env vars and output all named.v0.18.5
05
Expanded `doberman doctor` checksIMPROVED88how completely this was documenteddepth35/40specificity28/30actionability25/3088 / 100
doberman doctor gained a Password row (OK when a password factor is enrolled, otherwise a non-critical WARN with a doberman password set hint), Dash extra and TUI extra rows reporting whether starlette/textual are installed with pip install 'doberman[dash]'/[tui] hints, and a critical Hook command check that fails and names a fix when hooks reference a doberman binary not on PATH, instructing the user to restore the binary or run doberman uninstall-hooks.
— Every doctor row and its exact hint text named.v0.18.5v0.18.4
06
Five-minute approval memory and `approvals` subcommandsNEW88how completely this was documenteddepth35/40specificity28/30actionability25/3088 / 100
Introduces a five-minute, HMAC-keyed approval memory: a repeat of an exact previously approved action re-prompts at a one-click soft_confirm instead of the full ladder, and soft confirms never chain; it never downgrades destructive/critical/excluded/tainted-session actions. doberman approvals status|clear|ttl exposes bounded human controls over this memory.
— Subcommands, TTL scope and safety exclusions named.v0.18.4
07
Egress-velocity threshold CLINEW85how completely this was documenteddepth30/40specificity25/30actionability30/3085 / 100
doberman egress-velocity [KNOB] [VALUE] shows or sets the burst, volume-bytes, and fanout detection thresholds directly from the CLI, with approval gating and policy-ledger recording whenever a threshold is increased.
Tighten fanout detection live without hand-editing the policy file — the change is gated, ledgered, and effective immediately.
$ doberman egress-velocity fanout 10
— Command, named knobs and gating mechanism all specified.v0.18.5
08
`demo --quiet` CI smoke-test modeNEW80how completely this was documenteddepth25/40specificity25/30actionability30/3080 / 100
doberman demo --quiet suppresses banners, narration, and hints, keeping only the summary line/table and exit code, so demo can run as a CI smoke test without polluting build logs.
Run the demo engine as a silent CI smoke test — exits non-zero on mismatch, no log noise on success.
$ doberman demo --quiet
— Exact flag and CI use case with runnable command.v0.18.4
09
Decision-log pruning commandNEW75how completely this was documenteddepth30/40specificity25/30actionability20/3075 / 100
doberman decision-log-prune deletes resolved decision-log rows by age and/or a retained-row budget, without touching pending AUTH challenges or the policy-change ledger; mediated agents cannot invoke it via the shell. Eligibility was expanded to cover any AUTH row with a recorded outcome (approval method, denied, blocked, error, executed), not only the original three literal values.
— Command and eligibility rules named, no runnable example given.v0.18.5
10
`install-hooks --dry-run` preview flagNEW75how completely this was documenteddepth25/40specificity25/30actionability25/3075 / 100
Adds --dry-run to install-hooks that previews the exact SessionStart command the installer writes, derived from the same DASHBOARD_COMMAND constant used by the actual write path.
— Flag and underlying constant named, no worked example.v0.18.5
11
Dashboard UI polish: copy action, faster refresh, brandingIMPROVED70how completely this was documenteddepth30/40specificity25/30actionability15/3070 / 100
Adds a Copy details action to each pending approval card that copies redacted fields as formatted JSON; the stats strip now triggers an immediate trailing-debounced 150 ms refresh when a decision lands in the live feed (5 s interval kept as fallback); and the dashboard header renders the real Doberman mark as an embedded PNG data URI instead of a placeholder, keeping doberman dash a single self-contained page.
— Three UI changes named with exact numbers, no CLI action.v0.18.5
12
`2fa reset-lockout` subcommandNEW65how completely this was documenteddepth20/40specificity20/30actionability25/3065 / 100
doberman 2fa reset-lockout resets TOTP lockout state, letting a locked-out user re-enroll without destroying their seed.
Reset a locked-out user's TOTP second-factor without destroying their seed, so they can re-enroll immediately.
$ doberman 2fa reset-lockout
— Exact command named, thin description of underlying scope.v0.18.0
13
Fail-closed secret detector self-checkIMPROVED60how completely this was documenteddepth30/40specificity20/30actionability10/3060 / 100
The secret detector now verifies its own invariants at import and degrades to a fail-closed AUTH verdict if they are ever broken, preventing both silent secret leakage and tool mediation being bricked.
— Mechanism and failure mode named, no config knob given.v0.18.2
14
`dashboard` renamed to `session-summary`IMPROVED60how completely this was documenteddepth20/40specificity20/30actionability20/3060 / 100
Renames doberman dashboard to doberman session-summary; the old name is retained as a hidden permanent alias so existing SessionStart hooks continue to work.
— Old and new command names given, no further detail.v0.17.1
15
CLI and reason-code documentationNEW60how completely this was documenteddepth20/40specificity25/30actionability15/3060 / 100
Adds docs/CLI.md and docs/REASON_CODES.md, cataloguing all 51 ReasonCode values and the condition that fires each one.
— Exact doc files and count of codes named.v0.17.1
thinner coverage below
16
`taint clear` subcommandNEW55how completely this was documenteddepth15/40specificity15/30actionability25/3055 / 100
doberman taint clear clears taint records, e.g. removing entries that are blocking a pipeline after a false-positive secret detection.
Remove taint records that are blocking a pipeline after a false-positive secret detection.
$ doberman taint clear
— Command named but taint mechanism itself unexplained.v0.18.0
17
RAND-aligned guardrail rehaulNEW55how completely this was documenteddepth20/40specificity25/30actionability10/3055 / 100
Introduces a RAND-aligned guardrail rehaul including a session correlator, an opt-in least-privilege default role, subjective-memory governance, and an egress task-match leg.
— Four named components, no mechanism or config detail given.v0.18.0
18
`doberman status` visibility additionsIMPROVED55how completely this was documenteddepth20/40specificity20/30actionability15/3055 / 100
doberman status now surfaces auth challenges auto-denied in the last 24 hours, and shows a passive 'new version available' nudge when a newer PyPI version is cached (24 h cache), on the same opt-out controls as doberman update.
— Two status additions named with cache window specified.v0.18.5v0.17.1
19
Per-PR changelog fragment filesIMPROVED50how completely this was documenteddepth20/40specificity20/30actionability10/3050 / 100
Changelog fragments now use per-PR files at changelog.d/<PR-number>.md, compiled by release tooling to eliminate merge conflicts on parallel pull requests.
— Internal process change, not directly reader-actionable.v0.18.5
20
Auth-challenge deadline displayIMPROVED50how completely this was documenteddepth20/40specificity20/30actionability10/3050 / 100
Every AUTH channel now displays its auto-deny deadline in the TTY prompt, GUI dialog, and dashboard card expiry.
— Three surfaces named, no mechanism detail beyond display.v0.17.1
21
Labeled detection corpus for guardrail tuningNEW40how completely this was documenteddepth15/40specificity15/30actionability10/3040 / 100
Ships a labeled detection corpus with per-category FPR/TPR metrics for guardrail tuning.
— Named artifact, no access path or usage steps given.v0.18.0
22
Webhook audit sinkNEW35how completely this was documenteddepth10/40specificity15/30actionability10/3035 / 100
Adds WebhookAuditSink for routing audit events to a webhook endpoint.
— Named component only, no config or endpoint format given.v0.18.0
Reference architecture for AI agents that propose actions but cannot authorize them — immutable intent capture, an independent Decionis policy verdict (ALLOW/ESCALATE/BLOCK), verified human approval, and a SafeExecutor that consumes a single-use intent-bound grant.
agent-safe-pipeline's initial v0.1.0 release introduces a reference architecture that lets AI agents propose but never authorize actions, pairing immutable intent capture with an independent policy verdict and human-gated execution.
└──▷ WHAT SHIPPED · 1 FEATUREmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
thinner coverage below
01
Agent-safe execution pipeline with intent capture and policy verdictsNEW53how completely this was documenteddepth25/40specificity20/30actionability8/3053 / 100
Introduces an agent-safe execution pipeline for running AI agent workloads in a controlled, inspectable environment: agent intent is captured immutably, an independent Decionis policy engine issues a verdict of ALLOW, ESCALATE, or BLOCK, a human must give verified approval, and a SafeExecutor then carries out the action only by consuming a single-use, intent-bound grant.
— Architecture and stages named but no commands, endpoints, or config givenv0.1.0
vArmor is a cloud-native container hardening system that leverages AppArmor/BPF/Seccomp and NetworkProxy technologies to enforce access control from system calls to application protocols — protecting workloads including AI Agents.
vArmor v0.10.4 focuses on operational hardening: cluster-wide sidecar resource defaults, persistent egress audit logs for micro-VM runtimes, safer iptables backend handling in proxy-init, and a smarter policy-advisor.
└──▷ WHAT SHIPPED · 4 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
Cluster-wide default sidecar resourcesNEW75how completely this was documenteddepth30/40specificity25/30actionability20/3075 / 100
Adds cluster-wide default sidecar resources configured via the varmor-config ConfigMap, with independent nonMitm/mitm resource tiers that are hot-reloadable without restarting workloads.
— Names ConfigMap and resource tiers but no exact key paths.v0.10.4
02
iptables backend auto-detection in proxy-initBREAKING75how completely this was documenteddepth30/40specificity25/30actionability20/3075 / 100
proxy-init now auto-detects the iptables backend (legacy/nft) and aborts with a CONFLICT error instead of silently blackholing traffic when backends conflict. This behavior requires proxyinit:v0.2 or newer; older proxy-init images will not support the new backend detection.
— Names component, image tag, and exact error behavior.v0.10.4
03
Egress audit-log persistence for micro-VM runtimesNEW70how completely this was documenteddepth30/40specificity25/30actionability15/3070 / 100
Adds egress audit-log persistence for Kata/micro-VM runtimes (Kata, VCI, ECI) via an in-sidecar ALS sink, with micro-VM detection driven by the varmor-config ConfigMap.
— Names runtimes and mechanism but no config field details.v0.10.4
thinner coverage below
04
Shell-usage detection in policy-advisorIMPROVED40how completely this was documenteddepth15/40specificity15/30actionability10/3040 / 100
Enhances policy-advisor to detect shell usage by file extension (e.g. .sh).
— Thin description with only one example extension given.v0.10.4
└──▷ BREAKING ON UPGRADE
!Requires proxyinit:v0.2 or newer for iptables backend auto-adaptation; older proxy-init images will not support the new backend detection.
A secure low code deception runtime framework, leveraging AI for System Virtualization.
Beelzebub v3.9.0 overhauls its plugin system with YAML-based declarations and a new boot-time plugin interface, adds shared schema validation for honeypot configs, and improves the installer for headless deployment.
└──▷ WHAT SHIPPED · 4 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
YAML-based plugin declarationsIMPROVED85how completely this was documenteddepth30/40specificity25/30actionability30/3085 / 100
Plugin declarations move to configurations/plugins.yaml as the canonical home for plugin registration, replacing programmatic registration. Plugins listed under the plugins: key are installed and compiled into the binary at build time via make start or make docker.
Declare plugins in the new YAML config so make start automatically installs, wires, and compiles them into the binary.
— Names exact config file, key, and build commands with a runnable examplev3.9.0
02
Shared JSON Schema validation for honeypot configsNEW75how completely this was documenteddepth25/40specificity20/30actionability30/3075 / 100
Adds shared JSON Schema validation for honeypot service configurations, enabling beelzebub validate to enforce a common schema across all service definition files.
Run a non-interactive local install and build without starting the runtime, then validate all configs before launching — useful in CI.
— Names each flag with a runnable example commandv3.9.0
04
ServicePlugin interface for boot-time pluginsNEW65how completely this was documenteddepth25/40specificity25/30actionability15/3065 / 100
Introduces the ServicePlugin interface in pkg/plugin for background plugins that start automatically at runtime boot, alongside the existing CommandPlugin and HTTPPlugin interfaces.
— Names the interface and package but gives no usage examplev3.9.0
vMLX 1.6.45-46 add full GLM-5.3-Flash support with native Multi-Token Prediction and a typed GLM prompt cache, alongside a broad set of decode-fusion optimizations for the GLM and Qwen model families and new prefix-cache telemetry endpoints.
└──▷ WHAT SHIPPED · 10 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
GLM typed prompt cacheNEW70how completely this was documenteddepth35/40specificity25/30actionability10/3070 / 100
Adds exact typed GLM native-state prefix caching (GLM typed prompt cache) with metadata validation on live restore, memory-bounded cache snapshots, and cache persistence through native MTP finalization.
— Rich mechanism detail but no exposed flag or config key.v1.6.46
02
Decode fusion and dispatch reduction for GLM and QwenIMPROVED70how completely this was documenteddepth35/40specificity30/30actionability5/3070 / 100
Adds source-gated affine MoE pair fusion for hybrid decode, opt-in Qwen3.5 GDN decode fusion with exact gate preparation, and proven Qwen4 affine MoE pair decode with GLM mHC decode fusion. Fuses GLM KDA decode convolutions and state update, GLM mHC decode transform, GLM affine MoE down reduction, and GLM hyper-connection placement for fewer Metal dispatches; fuses Qwen GDN decode convolution state update, Qwen PLE decode convolution, and small-row gated RMSNorm for hybrid decode. Also groups GLM and Qwen4 affine projections and Qwen3.5 GDN decode projections at load time for fewer dispatches, parallelizes Qwen4 PLE decode row reads, and caches completed GLM DSA pool keys to reduce redundant computation.
— Extensive named internals but purely internal performance work, nothing to invoke.v1.6.46
03
Prefix-cache fetch provenance on cache endpointsIMPROVED65how completely this was documenteddepth15/40specificity25/30actionability25/3065 / 100
Adds prefix-cache fetch provenance reporting to the /health and /v1/cache/stats endpoints.
— Exact endpoints named, directly callable by a reader.v1.6.45
04
Native MTP for GLM-5.3NEW60how completely this was documenteddepth30/40specificity20/30actionability10/3060 / 100
Enables native Multi-Token Prediction (MTP) for GLM-5.3 at the public loader, with quantization mapped onto the attached head and an adaptive MTP depth policy.
— Names mechanism (quantization mapping, adaptive depth) but no direct usage flag.v1.6.46
thinner coverage below
05
GLM-5 family model support and UI integrationNEW55how completely this was documenteddepth20/40specificity25/30actionability10/3055 / 100
Adds a GLM-5.3-Flash text runtime with a registry row and text-route, including bundle-stamped parser ID aliases for the GLM-5 family, plus a GLM-5-next family row, parser dropdown entries, and alias canonicalization in the server panel UI.
— Names registry/UI surfaces but no exact selection steps given.v1.6.46
06
Server panel UI enhancementsNEW55how completely this was documenteddepth20/40specificity20/30actionability15/3055 / 100
The server panel gains a visual wired-limit recommendation popup at session launch (W0-W2 core), peak benchmark profiles, and engine-owned lifecycle load progress surfaced across every panel view, generation-guarded against stale attempts.
— Clear UI location named but no exact steps or values beyond one code.v1.6.45v1.6.46
07
Engine acceleration status reportingIMPROVED50how completely this was documenteddepth20/40specificity20/30actionability10/3050 / 100
Exposes DSV4 indexer acceleration status and separates DSV4 indexer hits from fallbacks in engine reporting, reports observed fused decode paths, and standardizes cross-family acceleration status display.
— Named reporting surfaces but no way for reader to query them directly.v1.6.46
08
GLM DSA sparse indexer for full contextNEW40how completely this was documenteddepth20/40specificity15/30actionability5/3040 / 100
Adds a GLM DSA sparse indexer path, unlocking full context for the GLM-5 family of models.
— States the outcome but not how to enable or configure it.v1.6.46
09
Tahoe/macOS 26 default buildBREAKING40how completely this was documenteddepth15/40specificity15/30actionability10/3040 / 100
Tahoe/macOS 26 is now the default build; Sequoia is retained as the compatibility build.
— Clear platform note but no migration steps given.v1.6.46
10
MLLM detokenizer stream flush fixIMPROVED30how completely this was documenteddepth15/40specificity10/30actionability5/3030 / 100
Flushes final MLLM detokenizer bytes to streams and reconciles terminal MLLM and visible stream suffixes.
— Bare description of an internal fix with no further detail.v1.6.46
Run GGUF models easily with a KoboldAI UI. One File.
KoboldCpp v1.120 adds a DirectIO model loading mode, expands architecture support to two new model families, and lets Kobold Lite users write custom JavaScript tools compatible with standard tool calling.
└──▷ WHAT SHIPPED · 3 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
DirectIO model loading modeNEW80how completely this was documenteddepth25/40specificity25/30actionability30/3080 / 100
Adds a --usedirectio flag to enable DirectIO model load mode, bypassing the OS page cache to reduce host memory pressure when loading large models. Also allows mlock and mmap to be combined simultaneously.
Load a large model with DirectIO to bypass OS page cache and reduce memory pressure on the host.
LangSmith is a platform for debugging, testing, and monitoring LLM applications built with LangChain.
LangSmith's latest update centers on a new endpoint for testing multi-turn thread evaluators before saving, plus OTEL resource attribute tracing, zstd-by-default bulk export compression, and per-project trace limits.
└──▷ WHAT SHIPPED · 7 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
Thread evaluator testing endpointNEW90how completely this was documenteddepth30/40specificity30/30actionability30/3090 / 100
Adds test_thread_id and session_id parameters to the /runs/rules/validate endpoint to test multi-turn thread evaluators against a real conversation before saving it, catching mapping or logic errors early.
Test a multi-turn thread evaluator against a real conversation before saving it to catch mapping or logic errors early.
— Endpoint and params named with runnable curl examplesnapshot-20260830
02
OTEL resource attributes on tracesNEW90how completely this was documenteddepth30/40specificity30/30actionability30/3090 / 100
Supports OTEL_RESOURCE_ATTRIBUTES values on traces as metadata namespaced under otel.resource.*, enabling user IDs and other resource attributes to appear on traces without changing span emission code.
Attach OpenTelemetry resource attributes (e.g. user ID, environment) to LangSmith traces without changing span emission code.
— Env var and namespace named with runnable examplesnapshot-20260830
03
Bulk export compression defaults to zstdIMPROVED90how completely this was documenteddepth30/40specificity30/30actionability30/3090 / 100
Bulk export compression now defaults to zstandard (zstd) for improved performance; adds the FF_BULK_EXPORT_DEFAULT_COMPRESSION environment variable to override compression on self-hosted deployments, letting self-hosted retain gzip via this flag.
Keep gzip bulk export compression on a self-hosted LangSmith deployment instead of the new zstd default.
$ export FF_BULK_EXPORT_DEFAULT_COMPRESSION=gzip
— Default and override env var named with runnable examplesnapshot-20260830
thinner coverage below
04
Per-project and per-user monthly trace limitsNEW50how completely this was documenteddepth25/40specificity15/30actionability10/3050 / 100
Enforces user-defined monthly trace limits scoped to individual projects and users, rejecting new traces that exceed the configured limit while still allowing patches and feedback on already-accepted traces to continue.
— Behavior described but no config key or API namedsnapshot-20260830
05
PEP 604 union types in code evaluator uploadsIMPROVED45how completely this was documenteddepth15/40specificity20/30actionability10/3045 / 100
Code evaluator upload now accepts Python entrypoints annotated with PEP 604 union return types, e.g. -> dict | None.
Clearer 409 Conflict error messagesIMPROVED35how completely this was documenteddepth15/40specificity15/30actionability5/3035 / 100
LangSmith now returns clearer 409 Conflict messages distinguishing duplicate run create from run update payloads.
— Status code named but no example or endpoint shownsnapshot-20260830
07
OTEL child span buffering and nesting fixIMPROVED35how completely this was documenteddepth20/40specificity15/30actionability0/3035 / 100
Native OpenTelemetry child spans are now buffered and correctly nested when they arrive before an SDK-attributed parent span.
— Explains fix mechanism but offers no actionable stepsnapshot-20260830
└──▷ BREAKING ON UPGRADE
!Legacy dataset comparison helpers are removed from the public OpenAPI spec and generated SDKs; existing HTTP routes continue to work only for LangSmith UI clients.
Unified AI Gateway for 30+ LLMs (OpenAI, Anthropic, Bedrock, Azure etc) with Caching, Guardrails, A/B test & cost controls. Go-native Fastest & Scalable AI Gateway LiteLLM & Kong AI Gateway alternative.
ai-gateway's biggest change this window is native gateway-lifecycle routing for rerank, moderation, audio, and Responses APIs, alongside new ways to embed the gateway as a Go library (run package, httpgateway facade) and provider credential aliasing — plus several breaking changes tightening retry semantics, redirect handling, admin-config redaction, and production startup safety.
└──▷ WHAT SHIPPED · 17 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
Custom model declaration via targets[].modelsNEW86how completely this was documenteddepth30/40specificity28/30actionability28/3086 / 100
Adds targets[].models field to declare models a target serves that are absent from the catalog or live discovery — new catalog IDs, regional/preview names, or self-hosted deployments — making them available in routing and GET /v1/models.
Declare a preview or self-hosted model ID so it appears in routing and /v1/models without waiting for catalog updates.
— Config key with example and effect on /v1/models endpointv1.4.0
02
Files/Batches proxying via batch_targetNEW86how completely this was documenteddepth30/40specificity28/30actionability28/3086 / 100
Adds batch_target config key to forward /v1/files* and /v1/batches* transparently to a configured backend (openai, azure-openai, groq, novita, qwen); returns 501 when batch_target is unset.
Enable the OpenAI Batches API by pointing the gateway at a batch-capable backend so /v1/files* and /v1/batches* resolve without a 501.
— Config key with runnable example and error behaviourv1.4.0
03
Go library embedding via run.Main/run.RunNEW85how completely this was documenteddepth35/40specificity25/30actionability25/3085 / 100
Adds run.Main() and run.Run(ctx, opts...) in a new public run package, letting Go programs embed the full ferrogw server; run.Run returns startup and listen errors instead of exiting, and honours context cancellation for graceful shutdown identical to SIGTERM. Custom binaries can be built by blank-importing plugins and calling run.Main(), enabling a plugin-composition workflow without forking the gateway binary.
Embed the gateway in a Go service so it shuts down cleanly when a parent context is cancelled — useful for test harnesses or multi-component binaries.
— Named API with runnable embedding example and shutdown behaviourv1.5.0
04
Native rerank API routing (POST /v1/rerank)NEW85how completely this was documenteddepth35/40specificity30/30actionability20/3085 / 100
Adds POST /v1/rerank (Cohere v2 contract) as a natively routed surface supporting cohere, together, deepinfra, nvidia-nim, and bedrock, with top_n normalised across providers (0 caps to no results, negative values are rejected). Like the other newly natively routed surfaces, it carries the full gateway lifecycle — targets, routing strategy, plugins, circuit breaker, per-target concurrency, metrics, and request logging — replacing the generic pass-through.
— Endpoint, providers, and normalisation rule named, no examplev1.4.0
05
Native audio API routing (transcriptions, translations, speech)NEW85how completely this was documenteddepth35/40specificity30/30actionability20/3085 / 100
Adds POST /v1/audio/transcriptions and POST /v1/audio/translations (multipart upload, 25 MiB cap) as natively routed surfaces supporting openai, azure-openai, groq, together, sambanova, deepinfra, mistral, and fireworks. Adds POST /v1/audio/speech (JSON in, binary audio out; input capped at 4096 characters) supporting openai, azure-openai, groq, together, deepinfra, and mistral. All three carry the full gateway lifecycle — targets, routing, plugins, circuit breaker, concurrency, metrics, request logging — replacing generic pass-through.
— All three endpoints, caps, and providers named explicitlyv1.4.0
06
Provider registration aliases via RegisterProviderAsNEW83how completely this was documenteddepth30/40specificity28/30actionability25/3083 / 100
Adds Gateway.RegisterProviderAs to register one provider under a distinct routing target, allowing multiple credentials for the same canonical provider while preserving all optional capabilities (streaming, embeddings, images, rerank, moderation, audio, discovery, batch, Responses, and generic pass-through).
Bind two sets of provider credentials to distinct routing targets so tenants can be isolated by alias rather than by separate gateway instances.
— Named method, code example, full capability list preservedv1.4.2
07
Redacted secrets in GET/PUT /admin/configBREAKING82how completely this was documenteddepth32/40specificity30/30actionability20/3082 / 100
Withheld config map keys in GET /admin/config are no longer returned verbatim; each entry is replaced with [REDACTED_KEY_<n>] (sorted, stable index), and a PUT body containing placeholder key names is rejected. Affected maps: mcp_servers[].env, mcp_servers[].headers, observability.exporters[].config, observability.tracing.headers, and undeclared plugin settings.
— Endpoint, redaction format, and affected maps namedv1.4.0
08
Build provenance on GET /healthIMPROVED78how completely this was documenteddepth25/40specificity28/30actionability25/3078 / 100
GET /health now returns version, commit, and built build metadata alongside provider status, sourced from internal/version (defaults: dev / none / unknown for unstamped local builds).
Confirm exactly which build is serving traffic without shelling into the container — useful after a rolling deploy.
— Exact endpoint, fields, and defaults with runnable curlv1.4.2
09
Governed Responses API routing (POST /v1/responses)NEW78how completely this was documenteddepth30/40specificity28/30actionability20/3078 / 100
Adds POST /v1/responses (Responses API) as a governed, priced surface with plugins, guardrails, circuit breaker, concurrency, and request log; stateful sub-routes pin to responses_target and return 501 when it is unset.
— Endpoint, config key, and fallback behaviour namedv1.4.0
10
Unified routing internals across all surfacesBREAKING78how completely this was documenteddepth35/40specificity28/30actionability15/3078 / 100
Unifies routing internals across chat, streaming, embeddings, and image generation so retry (targets[].retry), circuit breaking, error classification, metrics, and request logging behave identically on every surface. As a result, targets[].retry — previously honoured only under fallback routing mode — is now honoured under all modes, so a target that always fails produces attempts upstream calls where it previously produced one.
— Names config key and exact before/after call-count changev1.4.0
11
Production startup safety checks via GATEWAY_ENVBREAKING78how completely this was documenteddepth30/40specificity28/30actionability20/3078 / 100
render.yaml now sets GATEWAY_ENV=production, enabling startup checks that refuse to boot when ALLOW_UNAUTHENTICATED_PROXY=true or CORS_ORIGINS contains *; a Render service carrying either setting will fail its next deploy.
— Exact env vars and failure condition namedv1.4.0
12
No automatic upstream redirect followingBREAKING68how completely this was documenteddepth28/40specificity20/30actionability20/3068 / 100
Outbound HTTP clients no longer follow upstream 3xx redirects — the redirect is returned to the caller as-is; requests that previously succeeded via redirect will now fail until the provider base URL is updated to the redirect target.
— Clear before/after with required remediation actionv1.4.0
13
Native moderations API routing (POST /v1/moderations)NEW65how completely this was documenteddepth25/40specificity25/30actionability15/3065 / 100
Adds POST /v1/moderations (OpenAI contract) as a natively routed surface supporting openai and mistral, carrying the full gateway lifecycle (targets, routing strategy, plugins, circuit breaker, concurrency, metrics, request logging) rather than generic pass-through.
— Endpoint and providers named, no usage example givenv1.4.0
14
Per-turn plugin execution in MCP tool loopsIMPROVED65how completely this was documenteddepth30/40specificity25/30actionability10/3065 / 100
Agentic MCP tool loops now run before_request plugins (guardrails, rate limiters) on every turn, not only the first; transform and logging/metrics plugin types are deliberately excluded from per-turn execution.
— Explains mechanism and exclusions but lacks examplev1.4.0
thinner coverage below
15
Tracing dashboard and observability compose stackNEW55how completely this was documenteddepth20/40specificity20/30actionability15/3055 / 100
Adds a Tracing page to the dashboard over the gateway's OpenTelemetry output, and a deploy/ compose stack running the gateway, a collector, a tracing backend, and a mock upstream for end-to-end observability without a provider key.
— Names dashboard page and deploy stack, no exact pathv1.4.0
16
Embeddable HTTP facade via httpgateway packageNEW50how completely this was documenteddepth20/40specificity20/30actionability10/3050 / 100
Exposes the httpgateway package to embedding applications, giving them access to Files/Batches, Responses, and generic pass-through handlers while embedding apps keep their own authentication and tenant policy middleware.
— Names package and handlers but gives no usage examplev1.4.2
17
Expanded image generation and embeddings provider supportIMPROVED45how completely this was documenteddepth15/40specificity20/30actionability10/3045 / 100
Extends image generation support to gemini (via generateContent), deepinfra, and together; extends embeddings support to azure-foundry.
— Names providers but no mechanism or example givenv1.4.0
└──▷ BREAKING ON UPGRADE
!targets[].retry was previously honoured only under fallback routing mode; it is now honoured under all modes, so a target that always fails will produce attempts upstream calls where it previously produced one.
!render.yaml now sets GATEWAY_ENV=production, enabling startup checks that refuse to boot when ALLOW_UNAUTHENTICATED_PROXY=true or CORS_ORIGINS contains *; a Render service carrying either setting will fail its next deploy.
!Outbound HTTP clients no longer follow upstream 3xx redirects — the redirect is returned to the caller as-is; requests that previously succeeded via redirect will now fail until the provider base URL is updated to the redirect target.
!Withheld config map keys in GET /admin/config are no longer returned verbatim; each entry is now replaced with [REDACTED_KEY_<n>] (sorted, stable index). A PUT body containing placeholder key names is rejected. Affected maps: mcp_servers[].env, mcp_servers[].headers, observability.exporters[].config, observability.tracing.headers, and undeclared plugin settings.
Arize Phoenix added a PII detection metric to its evaluation suite and shipped a deletePrompt helper in the phoenix-client library for fully removing prompts and their versions via the API.
└──▷ WHAT SHIPPED · 2 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
deletePrompt helper in phoenix-clientNEW95how completely this was documenteddepth35/40specificity30/30actionability30/3095 / 100
Adds a deletePrompt helper to the prompts subpath of @arizeai/phoenix-client, accepting a { name } or { promptId } selector (matching getPrompt style) and calling DELETE /v1/prompts/{prompt_identifier} on Phoenix server >= 13.20.0; deletion cascades to all prompt versions, version tags, and labels. Exports a PromptIdentifier type from types/prompts for the prompt-level selector union. Version-level selectors ({ versionId }, { name, tag }) are rejected rather than widened to delete the whole prompt.
Delete an entire prompt (and all its versions, tags, and labels) by name when retiring a deprecated prompt from production.
Braintrust is an open-source evals framework for testing and monitoring AI applications with custom test cases and metrics.
Braintrust shipped a new bt trace CLI workflow for managing tracing plugins across coding agents, project-scoped Monitoring dashboards, session-level Group scoring for online rules, an AWS Lambda Extension for lower-latency trace flushing, and broader model and instrumentation coverage including Kimi K3, DeepSeek V4 Flash, and new auto-instrumented AI libraries.
└──▷ WHAT SHIPPED · 7 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
bt CLI tracing plugin management commandsBREAKING93how completely this was documenteddepth35/40specificity28/30actionability30/3093 / 100
The bt CLI adds bt trace setup, bt trace run, and bt trace import subcommands for managing tracing plugins for Claude Code, Codex, OpenCode, and pi. This is a breaking change: the CLI now handles authentication and trace routing for these plugins, so older plugin-specific API key, project, tracing, and config-file settings must be migrated using the bt CLI migration guide and per-agent upgrade notes.
Set up tracing for Claude Code through the bt CLI, selecting your Braintrust project and writing the plugin's tracing settings in one step.
$ bt trace setup
— Named subcommands and breaking migration path fully specified.snapshot-20260830
02
Opt-in LiveKit Agents audio attachmentsBREAKING81how completely this was documenteddepth25/40specificity28/30actionability28/3081 / 100
Python SDK v0.32.0 turns off LiveKit Agents audio attachments on agent_speaking spans by default; set BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS=true to restore the previous behavior.
— Exact env var and span name given, mechanism clear.snapshot-20260830
03
Kimi K3 and DeepSeek V4 Flash models via GatewayNEW78how completely this was documenteddepth25/40specificity28/30actionability25/3078 / 100
Adds Kimi K3 and DeepSeek V4 Flash 0731 as built-in open-source models, requestable as kimi-k3 and deepseek-v4-flash-0731 through the Braintrust Gateway with no AI provider setup required.
New auto-instrumentation for AI clients and librariesNEW75how completely this was documenteddepth30/40specificity30/30actionability15/3075 / 100
TypeScript SDK versions add auto-instrumentation across a range of libraries: v3.27.0 adds Ollama and @cloudflare/think instrumentation, Anthropic beta sessions tracing via anthropic.beta.sessions.turn and anthropic.beta.sessions.thread.turn, Flue v2 support, and a vitest-evals span input override via meta.eval.input; v3.26.0 adds Cloudflare Agents and Cloudflare AI Chat auto-instrumentation.
— Names every library and API surface across both SDK versions.snapshot-20260830
05
Monitoring views as project dashboardsNEW73how completely this was documenteddepth30/40specificity25/30actionability18/3073 / 100
Adds Monitoring views as named, project-scoped Dashboards with per-dashboard pages, search, starring, cloning from the built-in Cost and quality dashboard, and auto-saving of chart, filter, and grouping changes.
— Lists concrete dashboard features though no exact navigation path.snapshot-20260830
06
Harbor job plugin for syncing evaluation resultsNEW70how completely this was documenteddepth25/40specificity25/30actionability20/3070 / 100
Python SDK v0.33.0 adds the Harbor job plugin for syncing Harbor evaluation results to Braintrust, defaulting the project name to Harbor so project_name is optional.
— Names default project and optional field, no command shown.snapshot-20260830
thinner coverage below
07
Grouped trace references in dataset rowsNEW57how completely this was documenteddepth25/40specificity20/30actionability12/3057 / 100
Dataset rows can now reference a group of up to 64 traces, rendering each inline and flagging any that are unavailable.
!The bt CLI now handles authentication and trace routing for Claude Code, Codex, OpenCode, and pi plugins; older plugin-specific API key, project, tracing, and config-file settings must be migrated using the bt CLI migration guide and per-agent upgrade notes.
!LiveKit Agents audio attachments on agent_speaking spans are now disabled by default in Python SDK v0.32.0; set BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS=true to restore previous behavior.
Agentic Ontology Assisted Framework for Semantic Triple Extraction
OntoCast v0.6.2 introduces a full /shapes REST API and moves SHACLSHACLA W3C standard language for defining constraints and validation rules over RDF graphs, allowing a tool to assert that graph data conforms to a required shape, cardinality, or value type before processing it. shape storage into per-tenant triple-store partitions, adds a selective include_shapes flush, and rewrites ontology/shape store access around a new StoreKind selector — a set of changes that breaks several existing function signatures and the ontology-render wire format.
└──▷ WHAT SHIPPED · 6 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
Per-tenant SHACL shape storage in the triple storeBREAKING90how completely this was documenteddepth35/40specificity30/30actionability25/3090 / 100
SHACL shapes are now stored in the triple store in a dedicated {tenant}--{project}--shapes partition (FUSEKI_SHAPES_DATASET), enabling per-tenant shape catalogs and removing the need for a shapes directory in containerised workers. FACTS_SHAPES_DIR changes from a live read directory to a read-only seed materialized into the shapes partition at startup, and the validation gate now reads the partition rather than the directory; collect_shacl_shapes(ontology_graph, shapes_dir) becomes collect_shacl_shapes(ontology_graph, stored_shapes: RDFGraph | None) and no longer performs disk I/O, so a containerised worker relying on the directory must migrate shapes to the store.
— Config key, signature change and migration path all namedv0.6.2
02
StoreKind partition selector replaces use_ontologies_datasetBREAKING90how completely this was documenteddepth35/40specificity30/30actionability25/3090 / 100
Replaces the two-valued use_ontologies_dataset: bool parameter on aselect, aconstruct, drop_named_graph, drop_all_ontology_graphs_for_iri, serialize_graph, and serialize with a StoreKind ("facts" | "ontologies" | "shapes") partition selector; the LangChain tools ontocast_sparql_select and ontocast_sparql_construct now expose a store parameter in place of use_ontologies_dataset. aserialize(ontology) previously hard-coded the ontologies dataset and silently overwrote a caller's graph_uri; it now honours a store= override, so callers relying on the silent override must pass store='ontologies' explicitly.
— Every affected function and parameter named verbatimv0.6.2
03
Selective flush with include_shapes flagNEW88how completely this was documenteddepth30/40specificity28/30actionability30/3088 / 100
Adds POST /flush?include_shapes=true to optionally drop the shapes partition on flush; by default flush retains shapes, and later runs report shacl_evaluated: null instead of failing when shapes are absent. Also adds an include_shapes flag to TripleStoreManager.clean() and clean_tenancy() to control whether the SHACL shapes partition is cleared.
Flush everything including shapes (e.g. to fully reset a CI environment between test suites).
$ curl -X POST 'https://ontocast.example.com/flush?include_shapes=true'
— Runnable curl command against exact endpoint and flagv0.6.2
04
GraphUpdateRenderReport flattens insert/delete graphsBREAKING85how completely this was documenteddepth35/40specificity30/30actionability20/3085 / 100
GraphUpdateRenderReport now carries insert_graph and delete_graph as sibling fields instead of graph_update.triple_operations[]; to_graph_update() compiles them delete-then-insert for apply(), the SPARQL compiler, and the LangChain tool. Interleaving inserts and deletes within a single render is no longer expressible, and cached ontology-render responses are invalidated. Touches onto/model.py::GraphUpdateRenderReport, to_graph_update, prompt/graph_format.py, prompt/llm_json_schema.py.
— Exact fields and files named with before/after behaviourv0.6.2
05
/shapes REST API for SHACL shape managementNEW83how completely this was documenteddepth30/40specificity28/30actionability25/3083 / 100
Adds /shapes routes — GET (list stored documents), POST (upload Turtle), and DELETE /{graph_uri} — mirroring /ontologies and tenancy-scoped the same way; a document declaring <iri> a owl:Ontology is stored under that IRI so re-uploading replaces it. Implemented via new modules tool/shapes_catalog.py and api/shapes.py for shape catalog discovery.
— Endpoints named with methods and paths, no example call givenv0.6.2
06
Module reorganization: facts_invariants renamed, data directory removedBREAKING78how completely this was documenteddepth25/40specificity28/30actionability25/3078 / 100
tool/facts_invariants.py is removed; imports must switch to tool/facts_validation/ (public surface via package __init__). The data/ top-level directory and its importable data package are removed; TTL fixtures move to test/data/ontologies/, and local-source entries in run/fetch_schema_samples.py resolve via ONTOCAST_SCHEMA_SAMPLE_DIR, skipped when unset.
— Exact old and new paths plus env var namedv0.6.2
└──▷ BREAKING ON UPGRADE
!GraphUpdateRenderReport replaces graph_update.triple_operations[] with sibling fields insert_graph and delete_graph; interleaving inserts and deletes within a single render is no longer expressible, and cached ontology-render responses are invalidated. Touches onto/model.py::GraphUpdateRenderReport, to_graph_update, prompt/graph_format.py, prompt/llm_json_schema.py.
!tool/facts_invariants.py is removed; the previous module name no longer resolves. Replace all imports with tool/facts_validation/ (public surface via package __init__).
!The data/ top-level directory and its importable data package are removed. TTL fixtures are now in test/data/ontologies/; local-source entries in run/fetch_schema_samples.py resolve via ONTOCAST_SCHEMA_SAMPLE_DIR and are skipped when unset.
!FACTS_SHAPES_DIR changes meaning from a live read directory to a read-only seed; the validation gate now reads the {tenant}--{project}--shapes triple-store partition (FUSEKI_SHAPES_DATASET). A containerised worker that relied on the directory for validation must migrate shapes to the store.
!collect_shacl_shapes(ontology_graph, shapes_dir) signature changes to collect_shacl_shapes(ontology_graph, stored_shapes: RDFGraph | None); it no longer performs disk I/O.
!The use_ontologies_dataset: bool parameter is removed from aselect, aconstruct, drop_named_graph, drop_all_ontology_graphs_for_iri, serialize_graph, and serialize; callers must switch to the store: StoreKind ("facts" | "ontologies" | "shapes") parameter. The LangChain tools ontocast_sparql_select and ontocast_sparql_construct likewise replace use_ontologies_dataset with store.
!aserialize(ontology) previously hard-coded the ontologies dataset and silently overwrote a caller's graph_uri; it now honours a store= override, so callers relying on the silent override must pass store='ontologies' explicitly.
native macOS app that gives you a real-time dashboard for your Claude Code and Cowork sessions, with analytics, conversation history, security hardening, real time secrets detection and project insights.
Claudoscope v1.1.0 adds four new observability rails — Insights, Hooks Runtime, Tasks & Jobs, and Context — alongside six new configuration health checks, expanded GitLab secret detection and hardening, and a unified Health rail that merges three older sections.
└──▷ WHAT SHIPPED · 12 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
Skill check for removed TodoWrite/Task tools (SKL014)NEW95how completely this was documenteddepth35/40specificity30/30actionability30/3095 / 100
Adds SKL014, flagging a skill restricted only to TodoWrite or Task* tools, since Claude Code 2.1.233 removed these tools from Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and newer models unless CLAUDE_CODE_ENABLE_TODO_TOOLS=1 is set.
Check whether a skill's allowed-tools list will trigger SKL014 after Claude Code 2.1.233 removed TodoWrite and Task* tools from newer models without the opt-in env var.
$ CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude
— Names check, models affected, and exact opt-in env var with runnable examplev1.1.0
02
Tasks & Jobs railNEW90how completely this was documenteddepth35/40specificity30/30actionability25/3090 / 100
Adds a Tasks & Jobs rail surfacing Claude Code's background jobs from ~/.claude/jobs/ (state, timeline, tokens, result) and per-session task lists from ~/.claude/tasks/ (checklist with dependency chips), with jump-to-session links and a daemon status line; job providerEnv maps are never decoded.
— Names exact data paths and a security caveat on env decodingv1.1.0
03
Insights tab in Analytics railNEW85how completely this was documenteddepth35/40specificity30/30actionability20/3085 / 100
Adds an Insights tab inside the Analytics rail (Usage/Insights toggle) that reads session facets from ~/.claude/usage-data/ written by Claude Code's /insights command and joins outcome, friction, satisfaction, goal, and session-type data to the cost engine, showing outcome distribution, friction frequency, average cost by outcome, and per-session facet detail.
— Names data source path and UI location clearlyv1.1.0
04
Hooks Runtime tab in Hooks railNEW85how completely this was documenteddepth35/40specificity30/30actionability20/3085 / 100
Adds a Hooks Runtime tab inside the Hooks rail (Configuration/Runtime toggle) surfacing per-hook fire counts, failures, average and max duration, session counts, and a 'not in config' badge for commands seen in transcripts that match no current hook, with Stop-hook batches marked inline in the chat view; this requires a one-time full reparse of all transcripts on first launch due to a parser version bump.
— Describes mechanism and one-time reparse cost in detailv1.1.0
05
Channel plugin risk checks (CHN001-CHN003)NEW80how completely this was documenteddepth30/40specificity30/30actionability20/3080 / 100
Adds CHN001, flagging each enabled channel plugin (Telegram, Discord, iMessage, fakechat) as a prompt-injection and permission-relay surface; CHN002, flagging channel plugins enabled under Vertex or Bedrock where they are silently ignored; and CHN003, surfacing the channelsEnabled org-policy key.
— Names three checks and the underlying config key preciselyv1.1.0
06
GitLab secret detection and credential hardeningIMPROVED80how completely this was documenteddepth30/40specificity30/30actionability20/3080 / 100
Adds nine additional GitLab token families to secret detection beyond glpat-: runner, OAuth, pipeline-trigger, agent, import, service-account, CI-build, feature-flag, and deploy tokens, with the glpat-/gldt- pair classified as a critical account-level credential; also protects the glab credential store in the hardening sandbox baseline, matching the existing gh entry.
— Enumerates all nine token families and the credential store namev1.1.0
07
Six new config health checks (CFG013-CFG018)NEW75how completely this was documenteddepth25/40specificity30/30actionability20/3075 / 100
Adds CFG013 through CFG018 config health checks covering filesystem isolation, sandbox network allowlist, credential mode: "mask" without TLS, sandbox binary overrides, remoteControlAtStartup in project settings, and cross-session messages auto-accepted under bypassed permissions.
— Names six checks and config keys but no usage walkthroughv1.1.0
08
Session provenance displayNEW75how completely this was documenteddepth30/40specificity25/30actionability20/3075 / 100
Sessions started with --worktree or /fork now show their worktree and branch; sessions that opened a pull request or GitLab merge request link to it from the session header; Claude Code's ai-title generated session names are now used as titles.
— Names three concrete display additions and their triggersv1.1.0
09
Context tab for context-window utilizationNEW70how completely this was documenteddepth30/40specificity25/30actionability15/3070 / 100
Adds a Context tab with a per-session chart of context-window utilization per assistant turn against the model's ceiling, compaction events, peak context, peak utilization, and a flag for sessions that mix model generations across the Claude 4.7 tokenizer change.
— Describes what's shown but no config or navigation pathv1.1.0
10
Plugin marketplace alias and source displayIMPROVED60how completely this was documenteddepth20/40specificity25/30actionability15/3060 / 100
Reads additionalMarketplaces as an alias for extraKnownMarketplaces (Claude Code 2.1.232), and displays source URLs or commands for archive and command plugin sources (2.1.224/2.1.229).
— Names config keys and source types but limited mechanism detailv1.1.0
thinner coverage below
11
DirectoryAdded hook event supportIMPROVED50how completely this was documenteddepth20/40specificity20/30actionability10/3050 / 100
Recognizes DirectoryAdded as a hook event (Claude Code 2.1.219), so matchers targeting it are correctly evaluated rather than flagged as dead config.
Open-source, self-hosted AI vulnerability research tool that orchestrates agents to find and validate security issues in code.
open-kritt's biggest additions this window are a headless remote scan runner and scan findings export, paired with new engine-level resource controls (memory-aware admission, deterministic resume ordering, a disk-space override) and configurable post-processing models.
└──▷ WHAT SHIPPED · 8 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
`ENGINE_IGNORE_LOW_STORAGE` advanced settingNEW90how completely this was documenteddepth30/40specificity30/30actionability30/3090 / 100
Adds the ENGINE_IGNORE_LOW_STORAGE advanced setting for deployments where host disk usage is not a concern; setting ENGINE_IGNORE_LOW_STORAGE=true in .env allows the scan engine to keep running without halting when host disk space runs low.
Allow the scan engine to continue running without halting when host disk space runs low.
$ ENGINE_IGNORE_LOW_STORAGE=true
— Exact env var, value and config file givenv1.3.0
thinner coverage below
02
Separate post-processing model configurationNEW50how completely this was documenteddepth25/40specificity15/30actionability10/3050 / 100
Supports separate post-processing models, allowing different models to be configured for the post-processing stage independently of the primary scan model.
— Explains the split but no config key or example modelv1.3.0
03
`kritt-headless` remote scan runnerNEW45how completely this was documenteddepth20/40specificity15/30actionability10/3045 / 100
Introduces the kritt-headless runner for executing scans on remote machines without a UI.
— Named runner but no setup command or flags givenv1.4.0
04
Memory-aware runner admission controlNEW45how completely this was documenteddepth25/40specificity10/30actionability10/3045 / 100
Adds memory-aware runner admission and controls to the engine, preventing runners from being scheduled when memory thresholds would be exceeded.
— Explains behavior but no threshold values or config keyv1.4.0
05
Deterministic resume ordering for paused scansNEW35how completely this was documenteddepth20/40specificity10/30actionability5/3035 / 100
Adds deterministic resume ordering controls to the engine, giving operators predictable restart behavior across paused scans.
— Mechanism named but no controls or flags specifiedv1.4.0
06
Scan findings exportNEW25how completely this was documenteddepth15/40specificity5/30actionability5/3025 / 100
Adds export of completed scan findings, enabling practitioners to retrieve scan results for offline analysis or reporting.
— No export format, endpoint or command namedv1.4.0
07
Frontend UI additions: sharing, worker visibility, community starsIMPROVED25how completely this was documenteddepth15/40specificity10/30actionability0/3025 / 100
Adds community star support to the frontend UI, a privacy-safe sharing loop, and display of the active worker model and harness for operational visibility, plus improvements to the active worker status display.
— Several thin UI additions with no navigation or screenshotsv1.4.0v1.3.0
08
Scan runtime scaling and hardeningIMPROVED20how completely this was documenteddepth15/40specificity5/30actionability0/3020 / 100
Scales provider accounts and scan processing to handle larger workloads, and hardens scan runtime and account handling for more robust operation.
— Vague scaling and hardening claims with no specificsv1.3.0
Securely scale AI usage across your organization. A single stack to Connect, Secure, Observe and Distribute agents, MCPs, and Skills within your company.
Gram shipped a major MCP Approval workflow this window — evidence dossiers enriched with code-host, OSV.dev and domain-registry signals, an AI research agent, and daily drift detection — alongside allow-all/block-all Shadow MCP policy controls, OAuth Client ID Metadata Document (CIMD) support with a curated client catalog, RFC 7009 upstream token revocation, ChatGPT/Codex compliance imports, LiteLLM provisioning and guardrails, a reworked admin organizations console, and a large batch of billing, device-agent, and design-system changes.
└──▷ WHAT SHIPPED · 67 FEATURESmost completely described firstwhat's the number?
Each feature carries 0–100 for how completely the vendor documented
it — not how big or important the work is. A major capability
described in eight words scores low, and that is the finding.
depth0–40what it does and how it works or what changed
specificity0–30names real surfaces — APIs, flags, formats, limits, numbers
actionability0–30enough to go use it — a named endpoint, flag, or config key tops this; a UI path is a starting point
Code and config rank first by construction: a documented endpoint,
flag or config key scores at the top of specificity and actionability,
so it sorts above a feature described only in prose. Under
60 the notes go thin — everything below the “thinner
coverage” line is thinner documentation, not smaller work.
Hover any meter for that feature's three sub-scores.
01
MCP evidence dossier source enrichmentNEW90how completely this was documenteddepth38/40specificity30/30actionability22/3090 / 100
The MCP approval evidence dossier now pulls from direct server probing (OAuth metadata via well-known endpoints covering auth mode, scopes and dynamic client registration, plus tool declarations via unauthenticated tools/list, falling back to the registry catalog entry), code-host repository signals (stars, forks, contributors, commit recency, archived status), OSV.dev vulnerability advisories, domain-registry registration records, and org-exposure signals (existing project contact, since when, call frequency, distinct-caller count). Package registries surface declared repository/homepage URLs, registry catalog matches populate a provenance section (official flag, lifecycle status, publish/update recency, visitor estimates), and a clean advisory check now shows as a positive finding. mcpApproval.refreshEvidence re-runs every source on demand without disturbing frozen decision snapshots, and mcpApproval.ensureServerReview opens a dossier for any server URL without queuing a decision.
Re-run all evidence sources for an MCP server under review after a registry record has been updated, without disturbing previously recorded decision snapshots.
$ mcpApproval.refreshEvidence
Resolve or open an evidence dossier for a server URL before any review decision is made, so evidence is ready when an admin later inspects the server.
AI research agent for MCP approvalNEW90how completely this was documenteddepth38/40specificity30/30actionability22/3090 / 100
New mcpApproval.startResearch endpoint (decide-scoped) launches a Temporal-backed AI research agent that runs a bounded tool-calling loop, extracts a schema-held report (summary, independent-coverage level, tiered claims with citations), and persists results to mcp_research_reports with model, prompt version, and per-run spend metadata; at most one run per request is in-flight and re-runs are additive. The agent uses a research platform toolset (platform_web_search via OpenRouter's web-search plugin tagged mcp-research, and platform_fetch_page with byte/redirect/per-run budgets reducing HTML to text), runs a prompt-injection judge over every fetched page recording flagged pages as findings, and the approval page gains a Run Research button that polls a live run and renders the report with coverage callout, tier chips, and citations.
Admin organizations list overhaulNEW90how completely this was documenteddepth38/40specificity30/30actionability22/3090 / 100
Adds a 400px peek panel per row (account type, trial end, member count, creation date, both IDs; Arrow Up/Down navigation, Escape to close), new account_types, trial_states, and disabled_states filter parameters accepting multiple values each (replacing single-valued account_type and include_disabled, kept as a compatibility shim), matching toolbar filters persisted in the URL, a bulk account-type control for multi-row selection, a summary strip (total orgs with 7-day new count, trials ending within 7 days, disabled orgs with 7-day count) acting as clickable filter shortcuts, per-row Disable/Re-enable/Extend-trial actions, a pinned Actions column, Alt+click to open the peek panel, and a persistent Columns toolbar control. Organization endpoints now return real trial state and end date (running, ending-soon, expired, demoted, converted, never-trialled), and a redirect parameter on the login URL opens the dashboard already scoped to a chosen organization.
PAYG billing, Stripe portal and cost estimatorsNEW88how completely this was documenteddepth38/40specificity30/30actionability20/3088 / 100
PAYG organization admins can set independent monthly Security inference and Other inference caps per platform-managed key (each change audit-logged), and view live Stripe PAYG subscription status through a controlled customer portal with end-of-period cancel/resume controls. The billing page shows current-cycle tokens-under-management with flat-rate cost, Other inference spend through the last completed day, and an estimated invoice total, plus a platform-admin TUM contract price estimator with a PAYG rate-adjustment (%) input and a contract value estimator for enterprise account value. A billing.TumComponents registry centralizes the token components feeding both the ClickHouse billing measure and a new weekly usage summary email (sent Mondays via a Temporal sweep) reporting TUM total with a percent-change badge, skipping and deduplicating organizations with no usage.
Enterprise trial signup and lifecycleNEW86how completely this was documenteddepth36/40specificity30/30actionability20/3086 / 100
Organizations start a 14-day trial with $50 of chat credits applied as an inference ceiling, shown on the billing page. auth.login accepts optional email (sets WorkOS login_hint and screen_hint=sign-up) and org_name (creates the organization during the auth callback, logged as onboarding_event/new_org_created with created_via: 'signup'), and a new /sign-up page collects company name, with failed signups returning to /sign-up. An hourly job auto-demotes expired trials — returning the org to free, removing it from the whitelist, disabling its platform model key — logged under organization:enterprise_trial_demoted. Active trial status shows in nav, and orgs whose trial ended land on a dedicated upgrade-call page (reachable early via the sidebar countdown) instead of the generic demo-booking screen.
MCP approval decision queue and permissionsNEW85how completely this was documenteddepth35/40specificity28/30actionability22/3085 / 100
Adds an MCP approval management API: list servers awaiting a decision, retrieve evidence and prior decisions for a server, and record an approval or denial with a rationale and explicit set of principals, gated by new mcp_approval:read and mcp_approval:decide permissions registered in the role editor's scope picker. Approval-request intake lets members submit a server for review by URL or launch command with no permission grant required, and admins can promote existing bypass requests into the queue; decisions automatically replace the server's risk-policy bypass audience with the decision's blast radius (approval) or revoke it (denial), inverting under allow-by-default policies. TypeScript SDK bindings and React Query hooks were generated for these endpoints.
Curated MCP client admission via CIMDNEW84how completely this was documenteddepth34/40specificity30/30actionability20/3084 / 100
A userSessionIssuersCimdClients service manages a curated catalog of verified MCP clients (Claude Code, Claude, VS Code, Zed, Goose, ChatGPT, Codex CLI, Notion, MCPJam, Factory Droid, ToolHive) and per-issuer URLs; admission mode — curated catalog, any spec-valid client, or none — is readable and writable on the existing userSessionIssuers endpoints. The dashboard exposes MCP server authentication settings letting admins choose accepted CIMD clients and allow-list additional document URLs, backed by userSessionIssuersCimdClients.verifyURL, which checks a client ID metadata document URL for reachability and spec compliance (rate-limited per project, distinguishing malformed URL, unreachable endpoint, non-JSON body, and spec-violation outcomes). CIMD documents are cached honoring Cache-Control/Expires within a 5-minute to 24-hour bound, revalidating with If-None-Match.
Slack image vision in assistant turnsNEW83how completely this was documenteddepth35/40specificity30/30actionability18/3083 / 100
platform_slack_get_file_url mints short-lived sealed download URLs via the server's Slack file proxy, and inspect_asset fetches any directly reachable image URL, validates it, and attaches it to the conversation as a user message. Slack images are fetched server-side (up to 4 files, 8 MiB total per turn; png/jpeg/gif/webp, 10 MiB per file) and injected as image_url input parts via data: URIs, stripped to text placeholders before persistence; the input_parts field widens turn requests from plain strings to structured text/image content parts across the Go runtime and Rust runner protocol. Slack file attachment metadata (id, name, mimetype, size) is carried through trigger ingestion, addressable from Slack trigger CEL filters.
— Names both tools, exact limits, formats and wire field.[email protected]
09
Allow-all shadow MCP policy and URL blockingNEW83how completely this was documenteddepth35/40specificity28/30actionability20/3083 / 100
Shadow MCP policy creation adds a default-disposition choice — 'Block all servers (allow exceptions)' or 'Allow all servers (block exceptions)' — with the server selector flipping to match; under allow-all, inventory servers are reported allowed by default and shown blocked only when a block rule lists them, the policy banner explains the posture, and the approval UI skips audience/policy pickers. Per-server 'Block Server'/'Unblock Server' actions add and remove risk_policy:block grants through dedicated inventory endpoints, and a new shadow_mcp_blocked_urls field on risk policy create/update payloads proactively blocks server URLs (including unobserved ones), stored as risk_policy:block grants held by the all-users principal; the hook path permits every non-Gram-hosted server unless blocked, and projects are limited to one enabled shadow MCP blocking policy.
ChatGPT and Codex compliance importNEW83how completely this was documenteddepth38/40specificity30/30actionability15/3083 / 100
A chatgpt_compliance AI-integration provider polls workspace-scoped CONVERSATION_MESSAGE log files from the OpenAI Compliance Logs Platform and persists them as external chats/messages in Agent Sessions, configured with a workspace UUID (distinct from the per-org codex_compliance config). A codex_cloud_sessions schedule on the same integration polls the CODEX_LOG feed and imports Codex cloud web-task transcripts under a new codex-web chat source; Codex cloud usage is metered from the compliance COSTS feed, promoting token counts to gen_ai.usage.* for TUM when no OTEL stream is available, and account identity/billing mode are classified on every capture path, stamping account_type and resolving billing_mode. New chatgpt and chatgpt-work taxonomy sources use hook_source as a GROUP BY dimension so per-product splits survive summarization, and chatgpt:usage rows are admitted into attribute_metrics_summaries_mv and chat_session_summaries_mv.
Legacy OAuth proxy removalBREAKING82how completely this was documenteddepth32/40specificity30/30actionability20/3082 / 100
Removes the legacy OAuth proxy provider system: the /oauth/* token endpoint now returns invalid_grant, with authorize and register endpoints removed entirely; toolsets.addOAuthProxyServer/updateOAuthProxyServer, the remoteSessionClients.cloneClientFromOAuthProxyProvider and userSessionIssuers.migrateLegacyGramRegistrations migration helpers, the oauth/providers package, and the AdditionalCacheKeys cache fan-out mechanism are all removed. Clients holding proxy refresh tokens must re-authorize against their user session issuer.
— Names every removed endpoint/helper and the required remediation.[email protected]
12
Risk exclusion and false-positive assistant toolsNEW80how completely this was documenteddepth32/40specificity28/30actionability20/3080 / 100
platform_list_risk_exclusions and platform_create_risk_exclusion suppress whole classes of findings (the latter fingerprints exact and regex match values to reuse equivalent exclusions), platform_mark_risk_false_positive and platform_unmark_risk_false_positive dismiss and restore specific findings (gated on org admin permissions, fully audited), and platform_get_risk_rule_breakdown answers 'which rules fire most' in a single small call instead of many large paginated responses.
— Names all five tools with exact behavior and gating.[email protected]
13
Device Agent fleet installation and configurationNEW80how completely this was documenteddepth30/40specificity28/30actionability22/3080 / 100
Adds GET /v1/install/device-agent-macos.pkg, a stable redirect that resolves the current signed macOS installer version server-side and 302s to the versioned pkg; the setup walkthrough now installs from this signed .pkg (covering installer CLI and MDM Package push), and Device Agent is the default onboarding choice and out of preview. opencode joins the managed tools list with the same off/user/managed enforcement layer selection as other tools, and a new Device Agent configuration tab lets org admins set per-tool enforcement layers, release policy, and reconciliation cadence, backed by organization-level device-agent remote configuration with admin management endpoints, versioning, validation, and audit logging.
Link to the always-current macOS device-agent installer from IT onboarding docs or MDM scripts without hardcoding a version string.
Design system component overhaulBREAKING80how completely this was documenteddepth30/40specificity30/30actionability20/3080 / 100
Adds a reveal prop to Input (absorbing PrivateInput), and new primitives Card.Dashboard (replacing DashboardCard), StatTile (replacing chart/MetricCard), and SegmentedControl (absorbing ToggleButton); SettingsSection and DetailSidebarNav move into @/components/detail, and new page-template components (ResourceListPage, DetailPage, TabbedPage, FormPage, SettingsPage, OverviewPage, WorkbenchPage, WizardPage, CenteredPage, FullBleedPage) plus InlineEmptyState, StatRow, SummaryCard, DetailBody land in @/components/page-templates. The Modal/IconButton subsystem, PrivateInput, DashboardCard, ToggleButton, and Editable are removed; chart/MetricCard is renamed StatTile while MetricCard now refers solely to the base primitive.
— Names every component added, renamed and removed.[email protected]
15
Unified Shadow MCP review surfaceBREAKING79how completely this was documenteddepth34/40specificity27/30actionability18/3079 / 100
The Shadow MCP servers table becomes the single MCP approval review surface: rows carry review state and a target_kind field marking review-only targets (requested-but-unobserved URLs and stdio commands), evidence is grouped by admin question (identity, data access, capabilities, legitimacy, exposure, prior decisions), and allow/deny decisions with required rationale are made in-place. The standalone Approval Requests page is retired — URL-target links redirect to the server page, the command palette surfaces pending requests instead, block-link redemption now attaches the blocked employee as a requester on the server's single canonical review, and legacy enforcement endpoints (upsert/delete policy bypass, block/unblock server) are retired while resolveShadowMCPInventoryRequest remains during drain.
Documentation lookup tools and resourcesNEW78how completely this was documenteddepth32/40specificity28/30actionability18/3078 / 100
New search_gram_docs resource answers queries from a pinned corpus of reviewed Platform MCP setup guides, returning cited excerpts and falling back to guide_unavailable instead of invented steps. mcpRegistries.getSetupDocs returns published setup documentation for an upstream MCP server, locatable by endpoint URL, registry specifier, or both, deduplicated by guide slug and ordered by descending specificity. Managed-assistant tools platform_list_docs and platform_get_doc expose the ~110 pages under speakeasy.com/docs/ai-control-plane, with platform_list_docs returning an hourly-cached page index and platform_get_doc returning a page's markdown and permalink.
GCP IAM external credentials verificationNEW76how completely this was documenteddepth28/40specificity28/30actionability20/3076 / 100
Adds externalCredentials.verifyGcpIam to probe that Gram can impersonate a named GCP service account, and externalCredentials.getGcpSetupInfo to report the Gram service account that must be granted roles/iam.serviceAccountTokenCreator; both are gated behind a new customer_managed_encryption_keys entitlement enforced on externalCredentials and externalKeys, and the External Services page is now scoped to org admins.
MCP approval drift detectionNEW75how completely this was documenteddepth32/40specificity28/30actionability15/3075 / 100
A daily sweep re-gathers evidence for approved MCP servers and diffs the permission-relevant slice (OAuth scopes, authority mode, demanded credentials, published advisories) against the approval snapshot, using new evidence_changed_at and notified_change_fingerprint columns to set a changed-since-approval flag and deduplicate recheck announcements. Each distinct change fires once via the audit-log webhook channel and surfaces as a diff banner on the review page and a badge on the inventory.
Upstream OAuth revocation and refresh policyNEW75how completely this was documenteddepth30/40specificity27/30actionability18/3075 / 100
Remote Session credentials are now revoked upstream via RFC 7009: the revocation_endpoint is discovered from the issuer's RFC 8414 metadata and the stored token is posted on revoke, covering single-session revoke, bulk revoke, client delete, and the consent screen's 'Disconnect' flow. Organization admins can also set an org-wide automatic remote session refresh policy (Disabled, User controlled, or Required) from the MCP Connections page, surfaced to end users on the OAuth consent screen.
OpenRouter platform key management and encryptionNEW74how completely this was documenteddepth30/40specificity26/30actionability18/3074 / 100
A new adminOpenRouterKeys service and dashboard page lets platform admins list every organization's OpenRouter API keys with credit limit, live usage, and encryption state, with encrypt, enable, and disable actions (enable/disable audit logged against the owning organization). Platform OpenRouter API keys are now encrypted at rest using AES-256-GCM via a dual-write expand phase; reads prefer the encrypted copy and lazily back-fill ciphertext for legacy plaintext rows.
Custom domain root routing and OpenAI verificationNEW73how completely this was documenteddepth28/40specificity25/30actionability20/3073 / 100
Custom domains can route their root URL (https://your-domain.com/) to a designated default MCP server — configurable from the custom domain page or the MCP server's own settings — letting MCP clients connect at the root while browsers see the installation page, with slug renames auto-updating routing. Custom domains can also serve an OpenAI app-submission verification token at /.well-known/openai-apps-challenge for ChatGPT app review domain verification.
externalKeys KMS field restrictionBREAKING73how completely this was documenteddepth25/40specificity28/30actionability20/3073 / 100
externalKeys.updateAwsKms and externalKeys.updateGcpKms now cover only name, external_credential_id, and customer_grant_reference — key_arn, resource_name, and algorithm are no longer accepted, so changing what a key points to now requires deleting it and creating a new one; createGcpKms now requires a fully-qualified crypto key version path.
Platform Admin identity provider catalogNEW72how completely this was documenteddepth26/40specificity26/30actionability20/3072 / 100
New adminRemoteSessions.listGlobalIssuers and adminRemoteSessions.getGlobalIssuer endpoints return platform-owned and tenant-owned client counts separately, backing a new Platform Admin sidebar section for curating the shared remote identity provider catalog (list, create, edit, refresh metadata, delete).
Check which platform-level and tenant-level OAuth clients are tied to a global issuer before deciding whether it is safe to delete.
Managed device lookup by ID or emailIMPROVED71how completely this was documenteddepth22/40specificity24/30actionability25/3071 / 100
deviceIntegrations.listManagedDevices now accepts user_ids and user_emails (OR'd) to resolve managed devices per identity, handling MDM alias mismatches across both lookup legs.
Fetch managed devices for a user by both ID and email in one call, handling MDM alias mismatches that would otherwise split the results.
— Named endpoint and params with a runnable example.[email protected]
25
Skill assistant management toolsNEW71how completely this was documenteddepth28/40specificity25/30actionability18/3071 / 100
platform_distribute_skill and platform_undistribute_skill attach and revoke a skill from a plugin or assistant, platform_list_plugins resolves a plugin by name to the ID those calls require, and platform_create_skill creates project skills from complete SKILL.md content using the same validation, versioning, permissions, feature gating, and audit logging as manual creation.
Spend-gate enforcement for Codex and CursorIMPROVED71how completely this was documenteddepth25/40specificity28/30actionability18/3071 / 100
Spend-gate enforcement now covers Codex and Cursor at parity with Claude: over-budget actors are denied on hooks.codex (PreToolUse, PermissionRequest, UserPromptSubmit), hooks.cursor (preToolUse, beforeMCPExecution, beforeSubmitPrompt), and the unified hooks.ingest path for codex and cursor adapters (case-insensitive match).
MCP Clients and Sessions tabNEW71how completely this was documenteddepth28/40specificity25/30actionability18/3071 / 100
Adds an active_session_count field to the user session clients API, exposing how many active sessions each MCP client holds; clicking the count filters both the Clients and Sessions listings to that client. The MCP server's Clients and Sessions tab now leads with active counts and renders both listings as searchable, filterable, sortable tables paginated ten rows at a time, with member avatars and creation dates on sessions, distinguishing CIMD-resolved OAuth clients from DCR-registered ones.
Assistant detail panel configuration and session analyticsNEW70how completely this was documenteddepth28/40specificity24/30actionability18/3070 / 100
The assistant detail panel is now fully configurable in place: overview settings (name, model, concurrency, warm TTL) are editable, and a Sessions tab shows aggregate stats (sessions, messages, cost, tokens) over a selectable time range defaulting to the last 30 days with per-session cost, backed by exact range-bounded activity totals and independent pagination on assistant sessions.
OAuth CIMD support without DCRNEW70how completely this was documenteddepth30/40specificity25/30actionability15/3070 / 100
Supports OAuth Client ID Metadata Documents (CIMD) on the Gram Session OAuth authorization server, gated per organization behind the gram-user-session-cimd feature flag, enabling MCP clients that use a URL-shaped client_id (such as Claude Code and VS Code) to complete the OAuth flow without Dynamic Client Registration, including loopback redirects on any port.
— Names the feature flag and exact clients supported.[email protected]
30
RFC 9207 authorization response iss parameterNEW70how completely this was documenteddepth30/40specificity28/30actionability12/3070 / 100
The OAuth authorization server now emits the RFC 9207 iss parameter on every authorization response (success and error) and advertises authorization_response_iss_parameter_supported in its metadata document, satisfying the MCP 2026-07-28 Authorization Response Validation requirement and enabling mix-up attack detection across concurrent flows.
— Names exact RFC, spec requirement and metadata field.[email protected]
31
Live demo organization accessNEW70how completely this was documenteddepth26/40specificity22/30actionability22/3070 / 100
Adds auth.enterDemo to switch any authenticated session into a shared read-only demo organization without requiring membership, enforced by a fixed read-only scope with a verb-based write guard as backstop; the dashboard gains an /explore-demo entry route and demo banner, which also routes new visitors directly to the demo org's default project.
Switch an authenticated session into the shared read-only demo org to let a prospect explore live data without provisioning a separate account.
$ curl -X POST https://<your-gram-host>/v1/auth.enterDemo \
-H 'Authorization: Bearer <session-token>'
Let a prospect explore Gram features without creating an account or requesting org membership — flip their session into the demo org via the API.
$ curl -X POST https://<host>/api/auth.enterDemo \
-H 'Authorization: Bearer <session_token>'
external_user_ids exact-match filter fixIMPROVED68how completely this was documenteddepth25/40specificity25/30actionability18/3068 / 100
New risk.listResults filter external_user_ids performs exact whole-match lookups across both Postgres and ClickHouse paths, fixing the existing user_id substring match that caused cross-user result leakage; user_id itself is unchanged.
Device agent configuration restricted to org adminsBREAKING68how completely this was documenteddepth25/40specificity25/30actionability18/3068 / 100
Viewing device agent fleet configuration (agent.getConfiguration) now requires the org:admin role, aligning read access with the existing agent.updateConfiguration write requirement; the Device Agent Configuration tab is hidden from non-admins in the dashboard, and callers with lesser roles that previously could read fleet configuration will receive an authorization error after upgrading.
Watchdog risk investigation surfaceNEW67how completely this was documenteddepth27/40specificity24/30actionability16/3067 / 100
A new risk.getSignals API endpoint backs a new Watchdog UI page for finding attribution. Watchdog signals are scored from the matched risk policy's configured score, the signal drawer is simplified to a single Create-exclusion action, and the agent-facing risk findings listing now defaults to 25 results and caps at 50 to prevent large pages from inflating assistant context during triage.
Shadow MCP inventory per-user lookupNEW67how completely this was documenteddepth20/40specificity25/30actionability22/3067 / 100
New GET /rpc/access.listShadowMCPInventoryServersForUser endpoint inverts the shadow MCP inventory to return all shadow servers reached by a single user, enriched with the same policy state shown in the project-wide listing.
— Exact method and path given, thin on further mechanism.[email protected]
36
Public skill share links on custom domainsNEW67how completely this was documenteddepth22/40specificity25/30actionability20/3067 / 100
Public skill share links now use a verified custom domain, serving the share page and raw SKILL.md download at https://<your-domain>/shared/skills/<token>, scoped so a domain only serves skills belonging to its own organization.
MCP Connections graph view and statusNEW65how completely this was documenteddepth28/40specificity22/30actionability15/3065 / 100
The MCP Connections view now renders as a graph — rows represent a person, provider, or client, and expanding a row shows the nodes on the other side of its edges; the list splits into active connections and inactive ones (dormant over a week or no longer usable), which remain visible and revocable. Each row also carries a status dot (green live, amber expiring, red needs re-auth, grey idle or revoked).
— Describes graph mechanism and status states, UI path only.[email protected]
38
chat.list user_id filterNEW65how completely this was documenteddepth18/40specificity22/30actionability25/3065 / 100
Adds a user_id filter to chat.list so callers with project-wide chat visibility can narrow results to a specific Gram user.
Filter chat sessions to only those started by a specific user when querying project-wide chat history.
Microsoft Teams assistant triggerNEW65how completely this was documenteddepth28/40specificity22/30actionability15/3065 / 100
Adds Microsoft Teams as an assistant trigger source: Bot Framework activities (messages, reactions, membership and installation updates) posted to a trigger webhook are verified against Microsoft's signing keys and dispatched to assistants with the same CEL-based event type filtering as other webhook triggers.
— Names verification mechanism and filtering, no setup steps.[email protected]
40
Identity provider convergence toolNEW65how completely this was documenteddepth28/40specificity22/30actionability15/3065 / 100
Adds a Convergence tab on platform identity providers, letting platform admins consolidate an organization's remote identity provider onto the shared platform catalog entry — showing how many clients would move and any metadata differences — and re-pointing those clients on consolidation without requiring users to sign in again.
Browser hardening response headersIMPROVED65how completely this was documenteddepth22/40specificity28/30actionability15/3065 / 100
Adds Cross-Origin-Resource-Policy: same-origin, Cross-Origin-Opener-Policy: same-origin, and X-Permitted-Cross-Domain-Policies: none headers to dashboard HTML responses, set per nginx location block to avoid inherited header loss; static assets under /assets and /external retain Access-Control-Allow-Origin: *.
— Names every header value and the asset exception.[email protected]
42
LiteLLM integration provisioning and telemetryNEW63how completely this was documenteddepth26/40specificity22/30actionability15/3063 / 100
Adds authenticated OTLP trace ingestion for LiteLLM telemetry, project-scoped LiteLLM integration provisioning, key rotation, revocation and lifecycle metadata APIs, opt-in OTLP operational metrics excluded from usage billing and sessions, and health/attribution diagnostics for provisioned integrations. Agent sessions routed through LiteLLM retain their LiteLLM association when the agent's own hook stream captures the transcript, displaying as '<Client> via LiteLLM' in session views.
Local Docker runtime provider for assistantsNEW62how completely this was documenteddepth25/40specificity22/30actionability15/3062 / 100
Adds a local runtime provider for assistants that starts one Docker container per assistant on demand, reuses it across turns, and replaces idle containers when the runtime image is rebuilt — with no Fly.io credentials required.
— Explains container lifecycle, no setup command given.[email protected]
44
User session detail field expansionIMPROVED62how completely this was documenteddepth22/40specificity22/30actionability18/3062 / 100
userSessions.listUserSessions now returns last_used_at and upstreams (remote sessions Gram holds for the same subject and issuer) per session, exposing both legs of a brokered connection in a single call.
Business memory extraction and corpus browserNEW61how completely this was documenteddepth26/40specificity20/30actionability15/3061 / 100
Selectively extracts high-value, reusable business memories from completed chats, deduplicating semantic duplicates to reduce corpus noise, with an organization-admin corpus browser offering semantic search, source-transcript navigation, and a content-scope tree showing distinct-memory counts.
Agent Plugins for Cursor and CodexNEW59how completely this was documenteddepth24/40specificity20/30actionability15/3059 / 100
Publishes compatible Cursor and Codex plugins from a shared Agent Plugins 1.0 package and exposes compatibility on plugin responses; compatibility status and portable ZIP downloads now appear on plugin list and detail pages.
Toolset OAuth configuration reworkIMPROVED59how completely this was documenteddepth22/40specificity22/30actionability15/3059 / 100
Reworks the toolset OAuth configuration UI: the 'Configure OAuth' wizard's custom path now provisions a remote_session_issuer + remote_session_client and links the toolset instead of an OAuth proxy server; the external-OAuth path is unchanged.
MCP server icon fetchingNEW57how completely this was documenteddepth22/40specificity20/30actionability15/3057 / 100
New assets.fetchImageFromURL endpoint downloads a catalog server's registry icon into an image asset at install time and stores it as the server's MCP metadata logo; collection listings now populate icon_url from mcp_metadata for both toolset-backed and mcp_server-backed servers.
Prompt injection scanning for skillsNEW57how completely this was documenteddepth22/40specificity20/30actionability15/3057 / 100
Captured skill manifests are scanned for prompt injection at capture time, with current-version findings surfaced on the skill details page; admins can configure the Prompt Injection policy directly from the Skills page.
Organization name Unicode supportIMPROVED57how completely this was documenteddepth22/40specificity25/30actionability10/3057 / 100
Organization names now accept punctuation and any Unicode script (Japanese, Chinese, Korean, Cyrillic, Arabic, Hebrew, etc.), capped at 100 characters and required to carry at least two letters or numbers; control characters, bidi overrides, and invisible formatting are still rejected.
Organization sessions page movedBREAKING55how completely this was documenteddepth15/40specificity20/30actionability20/3055 / 100
The organization page moves from /user-sessions to /mcp-sessions with an updated nav entry and title; bookmarks or hardcoded links to /user-sessions will no longer reach that page.
On-demand MCP tool discoveryIMPROVED52how completely this was documenteddepth26/40specificity16/30actionability10/3052 / 100
MCP tools are now discovered on demand through a search tool rather than sent in full on every call; MCP servers connect on first use instead of at assistant startup, and dropped connections reseat automatically.
LiteLLM Generic Guardrail and response captureNEW52how completely this was documenteddepth22/40specificity18/30actionability12/3052 / 100
Adds an authenticated LiteLLM Generic Guardrail endpoint that enforces prompt policies before model calls and captures blocked prompts, plus capture of LiteLLM model responses with per-call session and user attribution to support asynchronous risk analysis.
Skills page UI improvementsIMPROVED50how completely this was documenteddepth20/40specificity18/30actionability12/3050 / 100
Skill details are split into focused pages for content, usage, feedback, versions, and settings, and the Skills table columns are now sortable from their headers (defaulting to 'recently updated'), with the table reduced to its most useful overview columns and rebalanced widths.
Admin projects list MCP server countsIMPROVED48how completely this was documenteddepth18/40specificity18/30actionability12/3048 / 100
The admin projects list now reports the count of MCP servers per project (covering both mcp_servers rows and MCP-enabled toolsets) without requiring the operator to open each project.
Risk policy enable/disable toggleNEW48how completely this was documenteddepth18/40specificity15/30actionability15/3048 / 100
Risk policies can now be disabled and re-enabled from Policy Center and the policy detail page, letting operators pause enforcement without deleting the policy.
Chat composer prompt historyNEW48how completely this was documenteddepth18/40specificity15/30actionability15/3048 / 100
The chat composer now recalls past prompts terminal-style using Up/Down arrow navigation, with history kept in localStorage scoped per project.
— Names the interaction and storage scope, thin overall.[email protected]
58
Policy bypass request justificationIMPROVED47how completely this was documenteddepth20/40specificity15/30actionability12/3047 / 100
risk.createPolicyBypassRequest now carries a requester-supplied justification as the requester's note on the review, replacing the previous behavior where every requester's note defaulted to the policy's generic block reason.
File attachments in Project AssistantNEW46how completely this was documenteddepth18/40specificity16/30actionability12/3046 / 100
The Project Assistant now supports file attachments — images, text files, and OpenAPI specs travel with the turn; unreadable files get a short-lived download link.
Directory groups as plugin assignment audiencesNEW40how completely this was documenteddepth15/40specificity15/30actionability10/3040 / 100
Exposes active directory groups and exact directory attribute values as plugin assignment audiences for organization administrators.
— Bare description of the capability, no mechanism.[email protected]
61
Editorial design language refreshIMPROVED38how completely this was documenteddepth15/40specificity15/30actionability8/3038 / 100
Applies a new editorial design language across the dashboard: flat square surfaces with hairline borders, serif display page titles, colorized metric tiles, and a dark-mode chart palette.
Webhooks available to all organizationsIMPROVED37how completely this was documenteddepth15/40specificity12/30actionability10/3037 / 100
Webhooks are now available to every organization (marked Beta) without a preview gate; delivery is controlled solely by the organization's own webhooks toggle.
!The organization MCP sessions page moves from /user-sessions to /mcp-sessions; any bookmarks or hardcoded links to /user-sessions will no longer reach that page.
!The standalone Approval Requests review page is removed; the Shadow MCP servers table is now the only review surface.
!Legacy Shadow MCP inventory enforcement endpoints (upsert/delete policy bypass, block/unblock server) are retired; all allow/deny actions must go through a recorded MCP approval decision.
!The standalone Approval Requests review page is retired; the Shadow MCP servers table is now the only review surface, and existing request links for URL targets redirect to the server page.
!agent.getConfiguration now requires org:admin; callers with lesser roles that previously could read device agent fleet configuration will receive an authorization error after upgrading.
!Viewing agent.getConfiguration now requires org:admin; users without that role who previously could view device agent fleet configuration will lose access.
!externalKeys.updateAwsKms and externalKeys.updateGcpKms no longer accept key_arn / resource_name or algorithm; changing what a key points to now requires deleting it and creating a new one.
!createGcpKms now requires a fully-qualified crypto key version path.
!externalKeys.updateAwsKms and externalKeys.updateGcpKms no longer accept key_arn, resource_name, or algorithm; only name, external_credential_id, and customer_grant_reference are accepted, so changing what a key points to now requires deleting it and creating a new one.
!The Modal and IconButton subsystem has been removed.
!PrivateInput is removed; use Input with the new reveal prop instead.
!DashboardCard is removed; use Card.Dashboard instead.
!ToggleButton is removed; use SegmentedControl instead.
!Editable is removed; use editable-text instead.
!The analytics tile chart/MetricCard is renamed to StatTile; MetricCard now refers solely to the base primitive.
!The /oauth/* proxy serving path is removed: the token endpoint now returns invalid_grant, and the authorize and register endpoints are gone — clients holding proxy refresh tokens must re-authorize against their user session issuer.
!The toolsets.addOAuthProxyServer and updateOAuthProxyServer proxy management endpoints are removed.
!The remoteSessionClients.cloneClientFromOAuthProxyProvider and userSessionIssuers.migrateLegacyGramRegistrations migration helpers are removed.
!The oauth/providers package and the AdditionalCacheKeys cache fan-out mechanism are removed.