What's Changed
Features
- feat(streaming): configurable nginx, controller, and UI inactivity ti… by @yanivmn in #1973
- feat(helm): add controller service annotations by @anthonyhaussman in #2088
- feat: enable sharing of chat sessions by @onematchfox in #1935
- feat: substrate support for BYO and python runtimes for SandboxAgent CR by @jmhbh in #2043
- feat(substrate): bump agent substrate to 0.0.7 by @supreme-gg-gg in #2109
- feat(substrate): bump agent substrate to 0.0.8 by @jjamroga in #2140
- feat(helm/kagent): support deployment annotations by @anthonyhaussman in #2143
- feat: add nodeSelector support to agent helm charts by @the-mentor in #2145
- feat: expose icon, provider, documentation URL and version on agent A2A card by @QuentinBisson in #2188
- feat: add claude ACP sandbox target by @the-mentor in #2189
- feat(sandbox-agents): Store session state in
durableDirvolume for declarative sandbox agents by @jmhbh in #2171 - feat(helm): add UI HTTPRoute by @younsl in #2165
- feat(helm): bump bundled oauth2-proxy subchart to ~10.7.0 by @elihai-risk in #2254
- feat: default nodeSelector for agent deployments (--default-agent-node-selector) by @elihai-risk in #2259
- feat(helm): add podLabels for controller and UI pod templates by @elihai-risk in #2237
- feat(helm): add extraObjects for arbitrary manifests by @younsl in #2174
- feat(ui-test): Playwright ui tests foundation stage 0 by @cjlg-soloio in #2262
- feat: allow read-only shares to read A2A tasks by @QuentinBisson in #2191
- feat(controller): make Go (ADK) runtime agent image independently configurable by @QuentinBisson in #2021
- feat(helm): allow custom annotations on the default ModelConfig by @marians in #2201
- feat(ui-test): Playwright UI E2E suite — helpers + feature flows (stage 2) by @cjlg-soloio in #2264
- feat: serve A2A ListTasks from the task store by @QuentinBisson in #2187
- feat(models): add maxCompletionTokens for OpenAI by @anthonytwh in #2175
- feat(models): wire maxOutputTokens for native Gemini and Vertex by @anthonytwh in #2147
- feat: add envFrom support to agent deployment spec by @uncycler in #2321
- feat: add native AWS Bedrock Guardrails support to ModelConfig by @sanskar-singh-2403 in #2323
- feat(bedrock): configurable Bedrock read/connect timeout by @go-faustino in #2223
- feat: add deploymentAnnotations to agent deployment spec by @anthonyhaussman in #2359
- feat(helm/kagent): allow disabling default modelconfig by @anthonyhaussman in #2142
- feat(sts): send RFC 8707 resource and audience on token exchange by @QuentinBisson in #2106
- feat(sts): send RFC 8707 resource and audience on token exchange (Python) by @QuentinBisson in #2107
- feat(ui): add agent namespace to list view by @onematchfox in #2364
- feat(helm): add affinity and topologySpreadConstraints on Kagent controller and ui by @anthonyhaussman in #2365
- feat: support responses api in kagent harness by @supreme-gg-gg in #2369
- feat(api): add topologySpreadConstraints to SharedDeploymentSpec by @anthonyhaussman in #2384
- feat(helm): add PodDisruptionBudget for controller and UI by @anthonyhaussman in #2392
- feat: add helm values to configure pgx connection by @supreme-gg-gg in #2407
- feat: add TTL and cleanup for hard-deleting sessions and events by @supreme-gg-gg in #2409
- feat: support fetching skills from S3 by @supreme-gg-gg in #2408
- feat: add API v2 configuration CRDs by @EItanya in #2426
- feat: add agent instance lifecycle contracts by @EItanya in #2427
- feat: add upstream A2A gRPC runtime servers by @EItanya in #2428
- feat: add AgentTemplate preparation and immutable revisions by @EItanya in #2434
- feat: add imperative AgentInstance lifecycle by @EItanya in #2436
- feat: add minimal API v2 controller runtime by @EItanya in #2442
- feat: add AgentInstance suspend and resume by @EItanya in #2445
- feat: add AgentInstance A2A gateway by @EItanya in #2446
- feat: persist AgentInstance A2A tasks by @EItanya in #2463
- feat: add AgentInstance message idempotency by @EItanya in #2477
- feat: extend the AgentInstance A2A gateway by @EItanya in #2478
- feat: load Agent Plugins in Go runtime by @EItanya in #2500
- feat(python-adk): honor isolateSessions for remote agent tools by @Whxuan0701 in #2504
- feat: support max OpenAI reasoning effort by @wattmto in #2418
- feat: compile shared agent templates by @EItanya in #2521
- feat: auto-suspend AgentInstances and add checkpoints by @EItanya in #2534
- feat(helm): allow scheduling the bundled PostgreSQL pod by @CarlosLanderas in #2553
- feat(app): let an extension supply the A2A handler by @jjamroga in #2544
- feat: fork AgentInstances from checkpoints by @EItanya in #2555
- feat: validate protobuf requests with protovalidate by @EItanya in #2563
- feat(ui): rewrite the web interface on Vite, and give conversations a first-class API by @Charlesthebird in #2569
- feat: add API v2 MCP tasks gateway by @EItanya in #2576
- feat: expose checkpoint workflows through MCP by @EItanya in #2589
- feat(cli): add API v2 AgentInstance workflows by @codyhartsook in #2559
- feat(cli): rebuild the TUI around AgentInstances by @codyhartsook in #2605
- feat(ui): render mermaid diagrams in chat messages by @dimetron in #2636
- feat(harness): Initial Claude Code Support by @supreme-gg-gg in #2602
- feat: use ate-api actor templates by @EItanya in #2638
- feat: support status for ModelConfig by @yuval-k in #2623
- feat: add BYO A2A harness by @EItanya in #2652
- feat(harness): Initial Codex Support by @supreme-gg-gg in #2645
- feat(core): make controller startup importable and its auth replaceable by @jjamroga in #2658
- feat(models): Adding support for claude/anthropic models on Azure Foundry by @marosset in #2424
- feat(adk): support responses API for Python agents by @onematchfox in #2701
- feat(ui): read substrate statuses as words, and chart the actor mix by @Charlesthebird in #2706
- feat(substrate): Resume from golden snapshot with durable data instead of cold booting from OCI images by @supreme-gg-gg in #2715
- feat: add scheduled runs to the current agent API by @EItanya in #2741
- feat(ui): fork a conversation, and open the agent rail to extensions by @Charlesthebird in #2747
- feat(cli): add AgentTemplate apply command by @codyhartsook in #2643
- feat(harness): human-in-the-loop and pause actor on input-required by @supreme-gg-gg in #2714
- feat(ui): checkpoint a chat turn, fork from a checkpoint, and duplicate a chat by @Charlesthebird in #2775
- feat(helm): add OCI source annotations by @darshan-shanthveer-patil in #2807
- feat(ui): delete a checkpoint from the chat, beside Fork by @Charlesthebird in #2804
- feat(helm): add a ServiceMonitor for the controller metrics endpoint by @younsl in #2401
- feat(core): add scoped authorization for catalog resources by @codyhartsook in #2710
- feat(observability): add OTEL traces and logs to harnesses by @supreme-gg-gg in #2805
- feat(api): page, sort and search the substrate reads server-side by @toreysoloio in #2771
- feat(ui): name snapshots, and put fork, rename and delete on their mark by @Charlesthebird in #2847
- feat(helm): global values for registry, pull config, and namespace scope by @jjamroga in #2817
- feat(harness): export executor construction and health config by @xytian315 in #2858
- feat(adk): honour context compaction in the Go runtime by @teemow in #2790
- feat(harness): load Claude-format plugins whole only on the Claude harness by @xytian315 in #2875
- feat(core): serve the controller's metrics, and its gRPC metrics with them by @QuentinBisson in #2886
- feat(tracing): add harness invocation identity, lifecycle, and bounded capture by @dhaifley in #2863
- feat: support structured output in JSON Schema over A2A DataPart by @supreme-gg-gg in #2890
- feat(telemetry): add a Weaver registry as the telemetry contract by @krisztianfekete in #2906
- feat: add list_files and grep_file skills tools by @brandonkeung in #2267
- feat: add standalone sandbox guest using env services by @EItanya in #2911
- feat(models): route Ollama cloud models to api.ollama.com by @dimetron in #2898
- feat(ui): serve the UI under a sub-path behind a reverse proxy by @Charlesthebird in #2904
- feat(telemetry): configure runtimes with SDK-spec OTEL variables by @krisztianfekete in #2909
- feat(ui): support BYO harnesses by @Charlesthebird in #2935
- feat(harness): support microvm sandboxes by @marosset in #2918
- feat: serve per-instance A2A JSON-RPC and agent cards by @EItanya in #2933
- feat(telemetry): export semconv metrics, drop ADK legacy spans, correlate logs by @krisztianfekete in #2929
- feat: move A2A execution into runtimes with a gRPC TaskStore by @EItanya in #2939
- feat(ui): let app extensions replace chat part renderers by @Charlesthebird in #2945
- feat: add explicit Agent definitions and Sessions by @EItanya in #2952
- feat(api): add SandboxTemplate and Sandbox contracts by @EItanya in #2959
- feat(sandbox): implement standalone sandbox runtimes by @EItanya in #2962
- feat: add sandbox workflows and group agent commands by @EItanya in #2966
- feat(ui): create, edit and delete explicit Agents by @Charlesthebird in #2953
- feat(helm): make the controller ServiceAccount optional by @TarasLykhenko in #3022
- feat(session): let a session share expire by @QuentinBisson in #2987
- feat: configure database polling and skip unchanged MCP writes by @EItanya in #3038
- feat(models): add Claude Fable 5.1, Opus 5/5.5 and Sonnet 5.5 to discovery list by @yashrajshuklaaa in #3041
- feat(models): add prompt caching for the Anthropic provider (promptCaching, cacheTTL) by @teemow in #2788
- feat: add runtime revision GC backlog and failure metrics by @gargsajal9 in #2808
- feat: attach text files and images to chat messages by @Charlesthebird in #2936
- feat(telemetry): move Python runtimes onto upstream GenAI instrumentation by @krisztianfekete in #3103
- feat: wake session quiescence workers after task settlement by @EItanya in #3074
- feat(telemetry): Weaver live-check, registry catch-up, reference collector by @krisztianfekete in #3107
- feat: a2a task push notifications by @supreme-gg-gg in #3036
- Make the db image installed by kagent install configurable by @iplay88keys in #3112
- feat(helm): run Substrate workers under their own ServiceAccount by @danielle-mustillo in #3067
- feat(sandbox): read_sandbox_file returns text pages and images by @thomasbarrett in #3120
- feat(helm): allow setting allowedNamespaces on the built-in tool server by @davidkarlsen in #3145
- feat: Add Responses API support to Azure OpenAI provider by @danielle-mustillo in #3143
- feat(harness): write chat and execute_tool spans from the runtime by @xytian315 in #3121
- feat(config): replace application env vars with explicit schemas by @EItanya in #3153
- feat(adk): propagate GenAI baggage from ADK by @jcopi in #3088
- feat: default built-in Harness images from release charts by @EItanya in #3151
- feat(harness): migrate runtime suspension to DATA snapshots by @supreme-gg-gg in #3165
- feat(auth): tell UpstreamAuth which A2A method it is authorizing by @codyhartsook in #3178
- feat(adk): allow disabling the built-in bash tool by @supreme-gg-gg in #3222
- feat(cli): let an embedding binary authenticate the CLI and extend its db tracks by @iplay88keys in #3209
- feat: mount OCI skills through Substrate image volumes by @EItanya in #3203
- feat(a2a): report task token usage through a versioned A2A extension by @QuentinBisson in #2461
- feat: add reusable egress policies for agents and sandboxes by @EItanya in #3177
- feat: add token passthrough for remote MCP servers by @EItanya in #3257
- feat: Send PDF and Office files to Responses API models end-to-end by @danielle-mustillo in #3200
- feat: support gateway token passthrough for embedded controllers by @codyhartsook in #3263
- feat(auth): authenticate Substrate actor calls to the control plane by @EItanya in #3282
- feat(cli): improve the chat TUI rendering and input by @Charlesthebird in #3292
- feat(sandbox): adopt env guest service redesign by @thomasbarrett in #3148
- feat(outputschema): allow format, pattern and type lists, add opt-in outputSchemaStrict by @danielle-mustillo in #3284
- feat(auth): enforce owned-resource RBAC and scoped Substrate inventory by @supreme-gg-gg in #3299
- feat(adk): allow disabling ask_user through runtime defaults by @lexmass in #3298
- feat(auth): support human and machine principals by @EItanya in #3358
- feat(auth): add gateway Actor JWT credentials by @EItanya in #3359
- feat(api): resolve Agent metadata from scoped Actor tokens by @EItanya in #3362
- feat(controller): retry failed golden builds for Agents and SandboxTemplates by @danielle-mustillo in #3335
- feat(cli): export Helm installation with dry-run by @iplay88keys in #3432
- feat(mcp): discover and invoke agents by @EItanya in #3486
- feat(mcp): let embedders extend the /mcp server by @alan-bentley-pgh in #3495
- feat(models): suggest current Foundry Grok model IDs by @jayunit100 in #3513
- feat(models): suggest Bedrock Grok inference profiles by @jayunit100 in #3523
- feat(mcp): session lifecycle and read-back tools in the core MCP server by @QuentinBisson in #3339
- feat(ui): manage EgressPolicies from the UI by @alan-bentley-pgh in #3542
- feat(telemetry): record the trusted user as user.id by @krisztianfekete in #3552
- feat(runtime): bootstrap revision configuration from durable bundles by @supreme-gg-gg in #3515
Bug Fixes
- fix(ui): chat interface overflows viewport causing input to be hidden below fold by @onematchfox in #2081
- fix(ui): avoid false stale chat send guard by @erauner12 in #2034
- fix(go-adk): extract system prompt from genai.GenerateContentConfig in Ollama and Bedrock model providers by @supreme-gg-gg in #2118
- fix(helm): support omitting image.registry in grafana-mcp chart by @michaelspinks in #2125
- fix(helm): support omitting image.registry in querydoc chart by @michaelspinks in #2124
- fix(security): patch CRITICAL/HIGH CVEs in golang-adk-full and app images by @jsonmp-k8 in #2133
- fix(go-adk): openai embeddings generation by @supreme-gg-gg in #2132
- fix(helm): omit empty repository segment in bundled image path by @michaelspinks in #2120
- fix: intermittent Postgres deadlock for concurrent memory searches by @supreme-gg-gg in #2146
- fix(deps): bump google-adk to 1.32.0 for Anthropic thinking blocks by @anxkhn in #2172
- fix: fix typos in part_converter comments by @moezdil in #2195
- fix(adk): annotate serialize_metadata_value as str | dict by @anxkhn in #2173
- fix(ui): fix model name editing on the model config form by @Valyrian-Code in #1979
- fix: correct package comment in v1alpha2 groupversion_info by @moezdil in #2183
- fix(crewai): unwrap Part before DataPart check so structured inputs are used by @anxkhn in #2231
- fix(helm): expose nodeSelector and tolerations for kagent-tools subchart by @the-mentor in #2213
- fix(helm): make the cluster DNS domain configurable by @shekhargit1912 in #2209
- fix: parse migration filenames the same way golang-migrate does by @moezdil in #2194
- fix: build sandbox runtime outside QEMU emulation by @peterj in #2299
- fix: set kgateway.dev/a2a as appProtoco for BYO agents by @supreme-gg-gg in #2305
- fix(db): normalize agent name in memory vector search by @moezdil in #2307
- fix(adk/bedrock): coerce nil tool-call args to empty object by @go-faustino in #2222
- fix: correct webhook typo in CLI help text by @tziyon31 in #2203
- fix(build): use AZURE_OPENAI_API_KEY env var name consistently by @moezdil in #2310
- fix(security): scope task get, create, and delete to the owner by @moezdil in #2265
- fix(adk): keep token refresh loop alive after a failed read by @moezdil in #2330
- fix(acp-shim): drain child stdout during terminate to avoid teardown deadlock by @tomsen02 in #2338
- fix(adk): keep full session state when num_recent_events is set by @moezdil in #2329
- fix(go-adk): add per-call session isolation for Agent tools by @yashrajshuklaaa in #2153
- fix: point currency sample at the new Frankfurter API endpoint by @shreyasskasetty in #2370
- fix(controller): wire up SessionSharesHandler in NewHandlers by @onematchfox in #2363
- fix(ui): stop rendering the model's thought signature in the answer by @garlicKim21 in #2355
- fix(ui): make the system theme reachable from the theme control by @garlicKim21 in #2352
- fix(ui): stop breaking words mid-word in chat messages by @garlicKim21 in #2351
- fix(otel): stop sending traces to api.openai.com and cleanup by @krisztianfekete in #2400
- fix(ToolsSection): resolve duplicate key issue in tool rendering by incorporating index in keys by @entee28 in #2419
- fix(ui): adjust header container max-width to prevent sidebar overlap by @AyushKumar123456789 in #2435
- fix: ensure API key passthrough works for OpenAI embedding models by @onematchfox in #2457
- fix(kagent-adk): surface the sub-agent's ask_user question in remote_hitl_hint by @vramahandry in #2495
- fix: reclaim the AgentInstance task slot after an interrupted turn by @QuentinBisson in #2490
- fix(agentplugins): reject unsafe and conflicting skill selections by @Whxuan0701 in #2505
- fix: avoid starting actors during instance creation by @EItanya in #2552
- fix(build): pin kube-api-linter plugin to the workspace Go toolchain by @sbx0r in #2535
- fix: persist HITL tasks across actor suspension by @EItanya in #2567
- fix: archive a parked question before its reply by @Charlesthebird in #2616
- fix: preserve A2A transcript order with metadata by @EItanya in #2621
- fix(controller): restore services and RemoteMCPServer discovery for controller-v2 by @supreme-gg-gg in #2639
- fix(controller): restore reconciler for MCPServer in controller-v2 by @supreme-gg-gg in #2644
- fix(otel): restore distributed tracing for the controller and agent runtimes by @codyhartsook in #2663
- fix: restore ate-api ActorTemplate metadata by @EItanya in #2664
- fix: wire runtime revisions into substrate inventory by @EItanya in #2703
- fix(ui): preserve post-login redirect target through
oauth2-proxysign-in by @onematchfox in #2533 - fix(go-adk): surface the sub-agent's ask_user question in RemoteHitlHint by @vramahandry in #2475
- fix: migrate checkpoints to Substrate v0.0.26 by @EItanya in #2738
- fix(adk): keep Ollama tool property order stable across requests by @garlicKim21 in #2693
- fix: preserve conversation identity and history across forks by @EItanya in #2754
- fix: generalize database conflict errors by @EItanya in #2780
- fix(ui): keep the transcript pinned while it settles, and wait for the app to boot by @Charlesthebird in #2776
- fix: trace outbound A2A gateway calls by @yashrajshuklaaa in #2779
- fix(helm): merge podLabels into bundled Postgres pod template by @jrhuerta in #2749
- fix: safely collect runtime revisions in a leader-elected runnable by @EItanya in #2742
- fix(ui): decide the agent rail's active state by route, not by id or exact path by @Charlesthebird in #2778
- fix(adk): map cached and reasoning tokens in Responses usage by @joao-dantas in #2766
- fix: make A2A task admission atomic by @EItanya in #2792
- fix(helm): use kagent-tools namespace in URL by @shubhamojha1 in #2797
- fix(helm): disable controller metrics when bindAddress is empty or 0 by @Gous0786 in #2785
- fix(adk): export a turn's spans before its terminal event leaves the process by @dhaifley in #2786
- fix(adk): propagate trace context on outbound LLM and MCP HTTP calls by @TigerkidYang in #2809
- fix: discover Kubernetes issuer for kubectl-ate by @yashrajshuklaaa in #2770
- fix(adk): allow a keyless OpenAI-compatible baseUrl by @QuentinBisson in #2739
- fix(ui): ten fixes in the agent rail and the schedules empty state by @Charlesthebird in #2820
- fix(harness): reload continuation state after Substrate restore by @supreme-gg-gg in #2823
- fix(mcp): reject missing task input responses by @EItanya in #2816
- fix: provision actor egress policies with Substrate v0.0.30 by @EItanya in #2839
- fix(ui): keep long-running agent streams open and expose MCP requireApproval by @supreme-gg-gg in #2826
- fix(ui): let a remote MCP server save, and the fixes around it by @Charlesthebird in #2840
- perf: speed up runtime preparation and E2E CI by @EItanya in #2844
- fix(python): retain zero JWT expiry for AgentSTS cache by @tryambak2019 in #2833
- fix: skills-init checkout passes SHA as revision, not pathspec (#2608) by @boxcee-interview in #2720
- fix(ui): work over plain http, and catch render crashes at the boundaries by @Charlesthebird in #2865
- fix: use Substrate beta4 gateway credential injection by @EItanya in #2868
- fix: serialize AgentInstance lifecycle execution by @EItanya in #2857
- fix(ui): isolate theme hook from refreshable provider by @Dragonzz27 in #2878
- fix(ui): give checkpoint delete cancel buttons unique data-testids (#2871) by @boxcee-interview in #2877
- fix: key STS token cache by acting subject, not session alone by @QuentinBisson in #2459
- fix(codex): ignore child-thread notifications during delegation by @EItanya in #2914
- fix(harness): Disable bare mode for Claude Code by @supreme-gg-gg in #2923
- fix: honor kagent Harness command and args by @marosset in #2934
- fix(ui): wait for schedule deletion redirect in live test by @Dragonzz27 in #2879
- fix(hitl): compose the same pause text in every runtime and always declare the extension by @QuentinBisson in #2472
- fix(harness): hold the Claude prompt until Claude Code can trace the turn by @dhaifley in #2943
- fix: flush buffered OTEL logs by @yashrajshuklaaa in #2772
- fix(byo): centralize ADK runtime configuration by @EItanya in #2965
- fix(kagent-adk): compact MCP App tool results only when the result carries a UI resource by @AmirF194 in #2579
- fix: wire Helm authentication settings into controller startup by @EItanya in #2971
- fix: expire idle sessions through the delete workflow by @EItanya in #2970
- fix(adk): keep Ollama tool call argument order stable across requests by @garlicKim21 in #2988
- fix(controller): simplify agent preparation and retry handling by @EItanya in #2994
- fix(adk): pass MCP embedded resource text to OpenAI-compatible models by @acherifi in #2992
- fix(e2e): wait for controller health and parallelize independent tests by @EItanya in #2993
- fix: repair image scans and use uv-managed Python by @EItanya in #2995
- fix(ui): report harness delete failures by @pai in #2964
- fix: keep Go ADK SQLite connections out of VM snapshots by @EItanya in #3004
- fix(api): defer unsupported configuration fields by @EItanya in #3007
- fix: allow disabling kagent model streaming by @EItanya in #3028
- fix(translator): accept Mistral ModelConfigs in v1alpha3 by @moezdil in #3008
- fix(controller): honor kagent.dev/discovery=disabled for RemoteMCPServer and MCPServer tool discovery by @teemow in #2752
- fix(ui): call the per-chat unit a session on the agent concepts card by @Charlesthebird in #3034
- fix: propagate helm postgres pool variables to db connection by @jcopi in #3032
- fix(adk): guard nil tool-call args and coerce to empty object in OpenAI-compatible adapters by @alexdarbyshire in #2852
- fix(ui): show agent template create errors beside the Create button by @Charlesthebird in #3075
- fix(ui): keep a new chat's title in the chat list after leaving it by @mmadhura1014 in #3001
- fix(adk): free runtime send slot before settling the task by @Charlesthebird in #3079
- fix(harness): pin Claude Code 2.1.285 by @thomasbarrett in #3076
- fix(ui): hide other users' conversations from new-chat rail by @pood1e in #3091
- fix(substrate): isolate worker pool placement by namespace by @adalundhe in #3089
- fix(ui): count Agent resources in the dashboard Agents tile by @Charlesthebird in #3105
- fix(ui): note shared workers on the Substrate page by @Charlesthebird in #3108
- Exit non-zero when cli kagent install fails by @iplay88keys in #3109
- fix: stabilize unit tests and scheduled run timeouts by @EItanya in #3129
- fix(ui): fix three flaky browser tests by @Charlesthebird in #3118
- fix(adk): replace retired default Anthropic model by @yashrajshuklaaa in #3039
- fix: make push notification JWT signing optional with operator-managed PEM keys by @supreme-gg-gg in #3122
- fix(ui): fix the remaining flaky browser tests, and cut redundant ones by @Charlesthebird in #3132
- fix(cli): rely on Helm for install namespaces and reject unmanaged CRDs by @iplay88keys in #3137
- fix: restore A2A timeline ordering and immediate approval prompts by @supreme-gg-gg in #3142
- fix(ui): give each e2e dev server its own pre-bundle cache by @Charlesthebird in #3141
- fix: update vulnerable dependencies in runtime images by @EItanya in #3159
- fix: stabilize e2e sends and Codex cancellation by @EItanya in #3181
- fix(ui): serve the mock playwright suite from a production build, not the dev server by @Charlesthebird in #3163
- fix: make session share tokens read-only by @EItanya in #3189
- fix(sts): key the ADK token cache by acting subject, not session alone (Python) by @QuentinBisson in #2460
- fix(a2a): return not found for expired and missing sessions by @supreme-gg-gg in #3231
- fix(ui): prevent chat rail flicker when switching conversations by @vedantlavale in #3218
- fix(ui): preserve streamed tool results by @pood1e in #3098
- fix(checkpoint): allow failed checkpoint cleanup by @spichen in #3199
- fix(ui): remediate CVEs in UI dependencies and base image by @cjlg-soloio in #3252
- fix(adk): enable default tools and simplify sandbox execution by @supreme-gg-gg in #3283
- fix(cli): uninstall everything kagent install creates by @iplay88keys in #3285
- fix(auth): enforce scoped authorization for Kubernetes-backed resources by @supreme-gg-gg in #3281
- fix(substrate): check existing atespaces before creating them by @spichen in #3260
- fix(docker): give the Go runtime user a writable HOME by @teemow in #3161
- fix(deps): bump Go to 1.27.3 for security fixes by @EItanya in #3304
- fix(substrate): scope Substrate reads and page tokens to the watched namespaces by @danielle-mustillo in #3261
- fix(session): expire abandoned input and auth waits by @adalundhe in #3254
- fix(ui): keep following a chat turn when its stream breaks by @garlicKim21 in #3198
- fix(a2a): deliver push notifications concurrently by @EItanya in #3366
- fix(build): set the version -X targets from the Go module path by @fiunchinho in #3376
- fix(codex): report the turn's error message by @fiunchinho in #3377
- fix(ui): show one loading state in the agent switcher by @vedantlavale in #3237
- fix: honor configured controller service account during install by @iplay88keys in #3406
- fix(ui): show consistent empty states for denied substrate inventory by @supreme-gg-gg in #3392
- fix(cli): preserve Substrate CLI access alongside controller grants by @iplay88keys in #3420
- fix: include image pull secrets in substrate worker pool service account by @jcopi in #3443
- fix(install): keep model credentials out of process arguments by @iplay88keys in #3446
- fix(api): remove unused Harness status and ADK fields by @EItanya in #3454
- fix(ci): enforce protobuf compatibility after pre-RC cleanup by @EItanya in #3455
- fix(adk): allow the Bedrock runtime origin in Harness egress by @xianshujun in #3438
- fix(helm): narrow and separate controller RBAC permissions by @EItanya in #3378
- fix(ui): remediate CVEs in ui by @Charlesthebird in #3489
- fix(adk): retry TaskStore calls through a controller restart by @adalundhe in #3391
- fix(adk): tell the model why a person rejected a tool call by @fiunchinho in #2947
- fix(cli): confirm before deleting self-managed WorkerPools on uninstall by @iplay88keys in #3511
- fix(mcp): drop invoke_agent's top-level oneOf so Gemini accepts it by @jotacamou in #3534
- fix(taskstore): finalize failed tasks after execution cancellation by @EItanya in #3541
- fix: backport pre-release fixes to v1.0.x by @EItanya in #3586
Documentation
- docs: fix duplicate descriptions and broken link in README by @moezdil in #2068
- docs: fix typos and errors in component READMEs by @moezdil in #2070
- docs: fix typos and list formatting in contributor docs by @moezdil in #2069
- docs: replace outdated AutoGen reference in SECURITY.md by @moezdil in #2110
- docs(python): fix kagent-langgraph README import to kagent.langgraph by @anxkhn in #2167
- docs(python): fix KAgentSession import path in kagent-openai README by @anxkhn in #2163
- docs: fix stale references and wording by @moezdil in #2184
- docs: list bash in get_skill_tools Returns docstring by @anxkhn in #2198
- docs: fix broken file links by @moezdil in #2221
- docs: point prompt template integration link to compiler by @anxkhn in #2228
- docs: add STYLE.md with Go style guide by @EItanya in #2186
- docs: fix stale architecture references by @moezdil in #2308
- docs: fix currency LangGraph sample README to match OpenAI implementation by @shreyasskasetty in #2356
- docs: require atomic state transitions by @EItanya in #2617
- docs: refresh architecture documentation by @EItanya in #2690
- docs: add API design guidelines and refresh OIDC architecture by @EItanya in #2958
- refactor: standardize environment settings and generate their reference by @EItanya in #2967
- docs: update README for the v1 architecture by @EItanya in #2996
- docs: add local AGENTS.md guides by @EItanya in #3035
- docs: narrow agent contribution guidance by @timflannagan in #3081
- docs: Document required tooling by @timflannagan in #3186
- docs(test): add Given/When/AssertThat testing skill by @jjamroga in #3448
Testing
- test(adk): assert real tls_insecure_skip_verify tag in omitempty test by @anxkhn in #2199
- test: add AgentInstance interaction e2e by @EItanya in #2514
- test: expand AgentInstance A2A end-to-end coverage by @EItanya in #2518
- test(ui): fix three flaky browser-suite waits by @Charlesthebird in #2612
- test: parallelize substrate e2e suite by @EItanya in #2661
- test(ui): one lifecycle journey per resource, and bugs fixes found during rewrite by @toreysoloio in #2825
- test(ui): run the live Playwright suite in CI against the built UI image by @toreysoloio in #2874
- test: run shared agent E2Es across all harnesses by @EItanya in #2919
- Run upgrade tests through kagent install by @iplay88keys in #3113
- test(e2e): pass mock LLM handlers to startModelRecorder by @danielle-mustillo in #3264
- test(core): cover token threshold compaction through harnesses by @adalundhe in #3291
- test(e2e): deflake egress policy probes by @EItanya in #3488
- test(secretmaterial): cover ownership checks and Secret write paths by @vedantlavale in #3451
Other Changes
- chore(deps): bump the go-minor-patch group in /go with 8 updates by @dependabot[bot] in #2058
- chore(deps): bump the npm-minor-patch group in /ui with 28 updates by @dependabot[bot] in #2059
- Update claude db migration skill reference with additional constraints by @iplay88keys in #2050
- chore(deps): bump the python-minor-patch group in /python with 10 updates by @dependabot[bot] in #2060
- chore(deps): bump black from 25.1.0 to 26.5.1 in /python by @dependabot[bot] in #2062
- chore(deps): bump cryptography from 48.0.0 to 49.0.0 in /python by @dependabot[bot] in #2063
- Switch default declarative agent runtime to go by @supreme-gg-gg in #2083
- add ACP shim for communication with agents in substrate by @peterj in #2049
- Add Charlesthebird as CODEOWNER for ui directory by @peterj in #2093
- Add query-contraction check against the previous release by @iplay88keys in #2085
- chore(deps): bump the python-minor-patch group in /python with 9 updates by @dependabot[bot] in #2101
- chore(deps): bump the go-minor-patch group in /go with 3 updates by @dependabot[bot] in #2099
- chore(deps): update anthropic[vertex] requirement from >=0.49.0 to >=0.112.0 in /python by @dependabot[bot] in #2103
- chore(deps): bump azure/setup-helm from 5.0.0 to 5.0.1 in the actions group by @dependabot[bot] in #2098
- feat(sso) expired token session redirect by @dimetron in #2051
- Allow configuration of A2A client timeout by @Daniel-Vaz in #2113
- Add check for schema-agnostic sql by @iplay88keys in #2067
- Stop false stale-send guard after tool-call turns by @iplay88keys in #2115
- Trigger CI workflows on all release/** branches by @iplay88keys in #2117
- refactor: update byo sample base images to work with substrate by @jmhbh in #2121
- Add database upgrade and rollback compatibility tests by @iplay88keys in #2084
- chore(deps): bump the go-minor-patch group in /go with 8 updates by @dependabot[bot] in #2157
- chore(deps): bump debian from 12-slim to 13-slim in /python by @dependabot[bot] in #2155
- chore(deps): bump the python-minor-patch group in /python with 3 updates by @dependabot[bot] in #2158
- chore(deps): update setuptools requirement from >=61.0 to >=83.0.0 in /python by @dependabot[bot] in #2162
- ci: pin actions/checkout to v6 in release workflow by @anxkhn in #2164
- chore(deps): bump node from 20-bookworm-slim to 26-bookworm-slim in /python by @dependabot[bot] in #2154
- chore(deps): update langsmith[otel] requirement from >=0.4.30 to >=0.9.8 in /python by @dependabot[bot] in #2159
- Switch migrator to orchestrator and manage downstream migrations by @iplay88keys in #2094
- Remove cr.kagent.dev alias usage by @EItanya in #2177
- chore(deps): update wheel requirement from >=0.46.2 to >=0.47.0 in /python by @dependabot[bot] in #2161
- Add kagent db migrate CLI for out-of-band migrations by @iplay88keys in #2168
- chore(deps): update anthropic[vertex] requirement from >=0.49.0 to >=0.116.0 in /python by @dependabot[bot] in #2160
- Add SKIP_MIGRATIONS to run migrations out-of-band by @iplay88keys in #2170
- Gate SandboxAgent actor readiness on the app serving traffic by @iplay88keys in #2205
- feat(MCP UI) chat widgets by @dimetron in #2052
- chore(deps): bump the npm-minor-patch group across 1 directory with 39 updates by @dependabot[bot] in #2217
- chore(deps): update langsmith[otel] requirement from >=0.9.8 to >=0.10.2 in /python by @dependabot[bot] in #2220
- chore(deps): bump the python-minor-patch group in /python with 4 updates by @dependabot[bot] in #2219
- chore(deps): bump distroless/cc-debian12 from
b0ae8e9toce0d66bin /python by @dependabot[bot] in #2216 - chore(deps): bump node from
b16ca7btoe999d08in /python by @dependabot[bot] in #2215 - chore: upgrade google.golang.org/adk to v2.0.0 by @yanivmn in #2152
- fixes empty secretkeyref in azureopenai by @peterj in #2225
- add 'none' as an option for reasoning effort, update models across by @peterj in #2227
- chore: add @Charlesthebird as CODEOWNER for .github/ by @Charlesthebird in #2243
- ci: read go version from go.mod in sqlc check by @moezdil in #2235
- feat (UI): improve UX by grouping tool calls in the chat by @peterj in #2224
- mark agent as ready when at least one replica is available by @peterj in #2263
- fix droping an MCP toolset when the MCP server isn't reachable at startup by @peterj in #2256
- chore(deps): bump the go-minor-patch group across 1 directory with 7 updates by @dependabot[bot] in #2218
- clean up and move the agent creation functions into a single file by @peterj in #2252
- Reference declarative agents by tag; digests only for sandbox agents by @iplay88keys in #2242
- chore(substrate): Bump substrate to
v0.0.9and remove collapsing of image env into actor env by @jmhbh in #2208 - chore(ui): pin packageManager to npm@11.6.2 by @cjlg-soloio in #2271
- chore(deps): bump the go-minor-patch group in /go with 6 updates by @dependabot[bot] in #2291
- chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #2290
- ci: improve build caching and cancel stale runs by @peterj in #2301
- chore(deps): bump actions/setup-go from 6 to 7 by @dependabot[bot] in #2289
- chore(deps): bump actions/setup-node from 6 to 7 by @dependabot[bot] in #2292
- chore(deps): update langsmith[otel] requirement from >=0.10.2 to >=0.10.6 in /python by @dependabot[bot] in #2296
- chore(deps): bump debian from
28de087to020c0d2in /python by @dependabot[bot] in #2288 - chore(deps): bump distroless/cc-debian12 from
ce0d66bto66aa873in /python by @dependabot[bot] in #2287 - chore(deps): bump node from
e999d08to2d49d87in /python by @dependabot[bot] in #2286 - chore(deps): bump the python-minor-patch group in /python with 4 updates by @dependabot[bot] in #2294
- chore(deps): update anthropic[vertex] requirement from >=0.116.0 to >=0.117.0 in /python by @dependabot[bot] in #2295
- Bump minimum python version to 3.11 by @iplay88keys in #2275
- chore(deps): bump the npm-minor-patch group in /ui with 27 updates by @dependabot[bot] in #2293
- reduce redundant fetching and optimize rendering (ui) by @peterj in #2285
- chore: helm template and sample metadata cleanups by @moezdil in #2309
- (otel)(fix): don't double-instrument OpenAI on the agents runtime by @krisztianfekete in #2313
- Add substrate badge to agent cards by @iplay88keys in #2316
- helm: add annotations support to controller and UI ServiceAccounts by @jon-waggoner in #2319
- chore(deps): update anthropic[vertex] requirement from >=0.117.0 to >=0.120.0 in /python by @dependabot[bot] in #2344
- add xhigh as a valid reasoning effort for openai models by @peterj in #2345
- chore(deps): update langsmith[otel] requirement from >=0.10.6 to >=0.10.10 in /python by @dependabot[bot] in #2342
- chore(deps): update a2a-sdk[http-server] requirement from >=0.3.23 to >=0.3.26 in /python by @dependabot[bot] in #2343
- honor event timestamp filters when loading sessions by @peterj in #2346
- Force-flush trace spans before the A2A response completes for substrate by @iplay88keys in #2176
- chore(build): fix stale node version comments in python full image by @moezdil in #2236
- perf(database): batch checkpoint writes to remove N+1 query by @anxkhn in #2248
- chore(deps): bump distroless/cc-debian12 from
66aa873tofccdbb0in /python by @dependabot[bot] in #2336 - refactor: hide pgx errors behind database.ErrNotFound by @QuentinBisson in #2274
- chore(deps): bump the npm-minor-patch group in /ui with 37 updates by @dependabot[bot] in #2340
- chore(deps): bump actions/labeler from 6 to 7 by @dependabot[bot] in #2337
- chore(deps): bump the go-minor-patch group in /go with 14 updates by @dependabot[bot] in #2339
- Bump deps for CVE fixes by @iplay88keys in #2360
- ci: scan images on release branches by @iplay88keys in #2361
- Resolve prerelease upgrade targets by @iplay88keys in #2367
- chore(deps): bump the go-minor-patch group in /go with 11 updates by @dependabot[bot] in #2381
- chore(deps): bump actions/stale from 10 to 11 by @dependabot[bot] in #2383
- ci: always run the UI Playwright suite by @Charlesthebird in #2387
- chore(deps): bump the npm-minor-patch group in /ui with 15 updates by @dependabot[bot] in #2380
- Azure foundry backend by @marosset in #2091
- Bump python packages to resolve cves by @iplay88keys in #2394
- chore(deps): bump node from
2d49d87to9e6f935in /python by @dependabot[bot] in #2379 - A2A: Migrate to v1.0 across all integration surfaces by @supreme-gg-gg in #2354
- A2A: Various usage cleanups in Kagent harness by @supreme-gg-gg in #2385
- A2A: Standardize Kagent's human in the loop with A2A Extension by @supreme-gg-gg in #2396
- chore(deps): bump google-genai from 2.12.1 to 2.17.0 in /python in the python-google-ai group across 1 directory by @dependabot[bot] in #2414
- chore(deps): bump node from
9e6f935tocd56571in /python by @dependabot[bot] in #2413 - chore(deps): bump debian from
020c0d2to3a39a05in /python by @dependabot[bot] in #2412 - refactor: remove deployment-backed agent API by @EItanya in #2422
- move from the rest to grpc (backend and UI, A2A stays as is) by @peterj in #2362
- Bump sqlparse to 0.6.0 to address CVEs by @iplay88keys in #2479
- chore(security): resolve dependency-related CVEs by @inFocus7 in #2423
- bump retired gemini 2.0 default models to 2.5 by @PetrMc in #2433
- refactor: simplify runtime images and add lifecycle e2e by @EItanya in #2498
- Honor LOG_LEVEL in Go ADK runtime by @iplay88keys in #2510
- chore(deps): bump the npm-minor-patch group in /ui with 24 updates by @dependabot[bot] in #2524
- chore(deps): bump the python-google-ai group in /python with 2 updates by @dependabot[bot] in #2525
- Remove bundled
doc2vecby @inFocus7 in #2539 - ci: disable the testcontainers reaper in go-unit-tests by @jjamroga in #2554
- chore: remove legacy ACP and controller runtime by @EItanya in #2565
- refactor: remove local HITL task store by @EItanya in #2572
- refactor: remove legacy controller runtime by @EItanya in #2595
- refactor: move substrate runtime into v2 by @EItanya in #2596
- refactor: remove legacy session and task services by @EItanya in #2598
- refactor(ui): rename the extension framework to App Extensions and install an ordered array by @Charlesthebird in #2601
- chore: cleanup session paths from UI by @supreme-gg-gg in #2607
- refactor: type AgentInstance identifiers as UUIDs by @EItanya in #2562
- refactor(cli): simplify command composition by @codyhartsook in #2606
- chore(deps): bump the python-google-ai group in /python with 2 updates by @dependabot[bot] in #2632
- Bump postgres default to
18.6-alpine3.23by @inFocus7 in #2637 - chore(deps): bump actions/cache from 4 to 6 by @dependabot[bot] in #2630
- chore(helm): remove dead A2A_BASE_URL config by @Charlesthebird in #2656
- refactor: compile v2 resources from KRT collections by @EItanya in #2660
- .github/workflows: Migrate workflows to Blacksmith runners by @blacksmith-sh[bot] in #2659
- remove unused actions by @EItanya in #2665
- chore: update substrate to v0.0.23 by @EItanya in #2678
- chore: update substrate to v0.0.24 by @EItanya in #2681
- helm: derive the substrate endpoints when substrate is a subchart by @jjamroga in #2684
- refactor: remove unused legacy services by @EItanya in #2685
- refactor: remove remaining legacy agent APIs by @EItanya in #2686
- refactor: reorganize Go packages by @EItanya in #2694
- refactor: remove legacy framework persistence by @EItanya in #2695
- refactor: remove obsolete APIs and clients by @EItanya in #2696
- chore: update substrate to v0.0.25 by @EItanya in #2697
- Switch to using goose for migrations by @iplay88keys in https://github.com/kagent-dev/kagent/pull/2667
- refactor: standardize Go logging on slog by @EItanya in https://github.com/kagent-dev/kagent/pull/2705
- [UI] Prompts edit support added and form polished by @toreysoloio in https://github.com/kagent-dev/kagent/pull/2668
- UI rework polish by @toreysoloio in https://github.com/kagent-dev/kagent/pull/2666
- refactor: unify controller endpoints by @EItanya in https://github.com/kagent-dev/kagent/pull/2699
- chore(deps): bump useblacksmith/setup-docker-builder from 1 to 2 by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2723
- chore(deps): bump helm/kind-action from 1.14.0 to 1.15.0 in the actions group by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2722
- chore(deps): bump google-genai from 2.20.0 to 2.22.0 in /python in the python-google-ai group by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2725
- ci: support merge queues by @Charlesthebird in https://github.com/kagent-dev/kagent/pull/2711
- refactor: remove namespace scoping from database objects by @EItanya in https://github.com/kagent-dev/kagent/pull/2730
- refactor: persist canonical protobuf objects as binary payloads by @EItanya in https://github.com/kagent-dev/kagent/pull/2735
- chore(deps): bump the npm-minor-patch group across 1 directory with 18 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2641
- refactor: replace sqlc with inline pgx SQL by @EItanya in https://github.com/kagent-dev/kagent/pull/2769
- refactor: simplify database client operations by @EItanya in https://github.com/kagent-dev/kagent/pull/2774
- ci: create the buildx builder before the e2e builds race for it by @Charlesthebird in https://github.com/kagent-dev/kagent/pull/2782
- Use
apk upgradeon harness images by @inFocus7 in https://github.com/kagent-dev/kagent/pull/2756 - chore: upgrade Substrate to v0.0.29 by @EItanya in https://github.com/kagent-dev/kagent/pull/2802
- chore(deps): bump the npm-minor-patch group in /ui with 13 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2813
- chore(deps): bump the python-google-ai group in /python with 2 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2814
- chore(helm): Pin grafana-mcp image by @kaizakin in https://github.com/kagent-dev/kagent/pull/2810
- remove v1 egress code by @EItanya in https://github.com/kagent-dev/kagent/pull/2801
- ci: add nightly releases with shared publishing actions by @EItanya in https://github.com/kagent-dev/kagent/pull/2841
- chore(deps): bump the npm-minor-patch group in /ui with 9 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2882
- chore(deps): bump the python-google-ai group in /python with 2 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2883
- chore: bump substrate to v0.2.0-beta5 by @krisztianfekete in https://github.com/kagent-dev/kagent/pull/2892
- Revert "test(ui): run the live Playwright suite in CI against the built UI image (#2874)" by @Charlesthebird in https://github.com/kagent-dev/kagent/pull/2910
- refactor: standardize A2A metadata by @supreme-gg-gg in https://github.com/kagent-dev/kagent/pull/2902
- chore(deps): bump the go-minor-patch group across 1 directory with 39 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2913
- Bump
kagent-toolsto0.3.0by @inFocus7 in https://github.com/kagent-dev/kagent/pull/2930 - chore: keep planning documents in gitignored .plans by @EItanya in https://github.com/kagent-dev/kagent/pull/2955
- chore: update Substrate to v0.3.0-alpha1 by @EItanya in https://github.com/kagent-dev/kagent/pull/2963
- ci: overlap slow E2E harness scenarios by @EItanya in https://github.com/kagent-dev/kagent/pull/2969
- ci: build release artifacts before the final release job by @EItanya in https://github.com/kagent-dev/kagent/pull/2972
- chore(deps): bump alpine from 3.22 to 3.24 in /go in the docker-minor-patch group across 1 directory by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2973
- chore(deps): bump the go-minor-patch group in /go with 15 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2976
- chore(deps): update langsmith[otel] requirement from >=0.10.10 to >=0.14.0 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2978
- chore(deps): update setuptools requirement from >=83.0.0 to >=84.0.0 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2979
- chore(deps): update google-adk[a2a,db] requirement from <3,>=2.6.2 to >=2.9.2,<3 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2980
- chore(deps): bump the npm-minor-patch group in /ui with 7 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2974
- chore(deps): update google-adk[a2a] requirement from <3,>=2.6.2 to >=2.9.2,<3 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2983
- chore(deps): bump mcp from 1.29.0 to 2.2.0 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2984
- chore(deps): update anthropic[vertex] requirement from >=0.120.0 to >=1.8.0 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2985
- chore(deps): bump the python-google-ai group in /python with 2 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2975
- chore(deps): bump the python-minor-patch group in /python with 6 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2977
- chore(deps): update wheel requirement from >=0.47.0 to >=0.48.0 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2981
- chore(deps): bump filelock from 3.29.4 to 4.0.3 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/2982
- chore: bump retired gemini 2.5 default models to 3.5 by @kaizakin in https://github.com/kagent-dev/kagent/pull/3027
- K: pin the UI base image digest and apk major versions by @Charlesthebird in https://github.com/kagent-dev/kagent/pull/2951
- chore(deps): update google-adk[a2a] requirement from <3,>=2.9.2 to >=2.11.0,<3 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3059
- chore(deps): update anthropic[vertex] requirement from >=1.8.0 to >=1.11.0 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3057
- chore(deps): upgrade Substrate to v0.4.0-alpha1 by @EItanya in https://github.com/kagent-dev/kagent/pull/3064
- chore(deps): bump google-genai from 2.25.0 to 2.27.0 in /python in the python-google-ai group across 1 directory by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3063
- chore(deps): bump the python-minor-patch group in /python with 4 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3056
- chore(deps): bump the npm-minor-patch group in /ui with 6 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3053
- chore(deps): update langsmith[otel] requirement from >=0.14.0 to >=0.14.3 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3060
- chore(deps): bump the go-minor-patch group in /go with 10 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3054
- chore(deps): update google-adk[a2a,db] requirement from <3,>=2.9.2 to >=2.11.0,<3 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3058
- Pass the quiescence channel and recovery interval in the push worker test by @iplay88keys in https://github.com/kagent-dev/kagent/pull/3117
- Bump Substrate to 0.5.0-alpha1 and share PostgreSQL via kagent install by @iplay88keys in https://github.com/kagent-dev/kagent/pull/2708
- ci: create release tags from manual workflow input by @EItanya in https://github.com/kagent-dev/kagent/pull/3127
- ci: skip protobuf regeneration in CI builds by @iplay88keys in https://github.com/kagent-dev/kagent/pull/3128
- refactor: Remove transitional v2 naming by @timflannagan in https://github.com/kagent-dev/kagent/pull/3119
- Install development clusters through kagent install by @iplay88keys in https://github.com/kagent-dev/kagent/pull/3110
- Store Kagent tables in a kagent schema with a configurable pgvector schema by @iplay88keys in https://github.com/kagent-dev/kagent/pull/3111
- Bump Substrate to 0.5.0-alpha2 by @iplay88keys in https://github.com/kagent-dev/kagent/pull/3116
- lint: Use custom KAL binary by @timflannagan in https://github.com/kagent-dev/kagent/pull/3135
- refactor: Remove obsolete skills-init code by @timflannagan in https://github.com/kagent-dev/kagent/pull/3144
- api: Require Harness references for Agents by @timflannagan in https://github.com/kagent-dev/kagent/pull/3080
- chore(deps): bump google-genai from 2.27.0 to 2.29.0 in /python in the python-google-ai group by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3172
- chore(deps): bump the npm-minor-patch group in /ui with 8 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3171
- chore(deps): bump the python-minor-patch group in /python with 4 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3174
- ci: give e2e runners and atelet more capacity by @EItanya in https://github.com/kagent-dev/kagent/pull/3180
- chore(deps): bump helm/kind-action from 1.15.0 to 1.15.1 in the actions group by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3170
- refactor: Remove orphaned Go APIs and helpers by @timflannagan in https://github.com/kagent-dev/kagent/pull/3168
- lint: Replace goimports with gci by @timflannagan in https://github.com/kagent-dev/kagent/pull/3185
- ci: Run required checks for every PR by @timflannagan in https://github.com/kagent-dev/kagent/pull/3187
- Switch to using separate users/pools for postgres connections by @iplay88keys in https://github.com/kagent-dev/kagent/pull/3160
- refactor(adk): generate runtime configuration from protobuf by @EItanya in https://github.com/kagent-dev/kagent/pull/3162
- chore(deps): update anthropic[vertex] requirement from >=1.11.0 to >=1.13.0 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3176
- api: Use declarative union validation markers by @timflannagan in https://github.com/kagent-dev/kagent/pull/3204
- cleanup: Generate CRDs in Helm chart by @timflannagan in https://github.com/kagent-dev/kagent/pull/3206
- refactor: simplify config parsing and compiler inputs by @EItanya in https://github.com/kagent-dev/kagent/pull/3179
- refactor: group protobuf contracts into stable v1 packages by @EItanya in https://github.com/kagent-dev/kagent/pull/3184
- refactor: coalesce push notifications and wake senders after settlement by @supreme-gg-gg in https://github.com/kagent-dev/kagent/pull/3207
- chore: update CODEOWNERS for .github and ui by @Charlesthebird in https://github.com/kagent-dev/kagent/pull/3220
- ci: Pin GitHub runners to Ubuntu 24.04 by @timflannagan in https://github.com/kagent-dev/kagent/pull/3224
- chore: stop building the Python ADK image by @EItanya in https://github.com/kagent-dev/kagent/pull/3221
- cleanup: Remove legacy KMCP integration by @timflannagan in https://github.com/kagent-dev/kagent/pull/3223
- chore(agents): Make .agents/skills the source of truth by @timflannagan in https://github.com/kagent-dev/kagent/pull/3225
- chore: Correct documentation issue template by @timflannagan in https://github.com/kagent-dev/kagent/pull/3228
- chore(deps): bump the go-minor-patch group across 1 directory with 30 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3229
- chore(deps): update langsmith[otel] requirement from >=0.14.3 to >=0.14.7 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3175
- refactor(adk): use generated config types directly by @EItanya in https://github.com/kagent-dev/kagent/pull/3230
- Read Agents and AgentTemplates through the API, not Kubernetes by @iplay88keys in https://github.com/kagent-dev/kagent/pull/3232
- chore(ci): pin GitHub Actions to commit SHAs by @timflannagan in https://github.com/kagent-dev/kagent/pull/3250
- chore: register Go tool dependencies by @timflannagan in https://github.com/kagent-dev/kagent/pull/3233
- chore(deps): bump protovalidate from 1.2.0 to 2.0.0 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3274
- chore(deps): update langsmith[otel] requirement from >=0.14.7 to >=0.14.11 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3271
- chore(deps): update google-adk[a2a,db] requirement from <3,>=2.11.0 to >=2.12.0,<3 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3270
- chore(deps): bump the python-minor-patch group in /python with 5 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3269
- chore(deps): bump google-auth from 2.61.0 to 2.62.0 in /python in the python-google-ai group across 1 directory by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3277
- chore(deps): update Substrate to v0.6.0-alpha3 by @EItanya in https://github.com/kagent-dev/kagent/pull/3226
- chore(deps): update anthropic[vertex] requirement from >=1.13.0 to >=1.15.0 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3272
- chore(deps): bump astral-sh/setup-uv from 7.6.0 to 10.3.0 by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3266
- chore(deps): update google-adk[a2a] requirement from <3,>=2.11.0 to >=2.12.0,<3 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3273
- chore(deps): bump the go-minor-patch group across 1 directory with 6 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3265
- chore(deps): bump the npm-minor-patch group across 1 directory with 10 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3280
- ci: run migration immutability check on every PR so it can be required by @iplay88keys in https://github.com/kagent-dev/kagent/pull/3293
- chore: fix stale issue close message by @timflannagan in https://github.com/kagent-dev/kagent/pull/3308
- chore(helm): remove bundled grafana-mcp chart by @shaktisingh404 in https://github.com/kagent-dev/kagent/pull/3294
- build(ui): serve the UI from distroless nginx with a Go entrypoint by @Charlesthebird in https://github.com/kagent-dev/kagent/pull/3316
- chore(deps): update Substrate to v0.6.0 by @EItanya in https://github.com/kagent-dev/kagent/pull/3325
- [Helm] Use full DNS name for kagent tools MCP server by @Stevenjin8 in https://github.com/kagent-dev/kagent/pull/3334
- fix helm full DNS name tests by @Stevenjin8 in https://github.com/kagent-dev/kagent/pull/3336
- chore(deps): upgrade Substrate to v0.7.0-alpha1 by @EItanya in https://github.com/kagent-dev/kagent/pull/3338
- chore(deps): update setuptools requirement from >=84.0.0 to >=84.2.1 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3352
- build: Remove redundant Go module downloads by @timflannagan in https://github.com/kagent-dev/kagent/pull/3346
- chore(deps): bump google-genai from 2.31.0 to 2.33.0 in /python in the python-google-ai group by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3349
- chore(deps): bump the python-minor-patch group in /python with 5 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3351
- Add a helm configuration option for SandboxConfig ref by @jcopi in https://github.com/kagent-dev/kagent/pull/3357
- chore(deps): update anthropic[vertex] requirement from >=1.15.0 to >=2.2.0 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3353
- chore(deps): bump the npm-minor-patch group in /ui with 5 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3348
- build(ui): build the UI on node:24.22.1-alpine by @Charlesthebird in https://github.com/kagent-dev/kagent/pull/3383
- build: decouple protobuf generation from builds by @timflannagan in https://github.com/kagent-dev/kagent/pull/3381
- refactor(session)!: remove public suspend and resume controls by @EItanya in https://github.com/kagent-dev/kagent/pull/3409
- refactor(cli): share chart name between rendering and installation by @iplay88keys in https://github.com/kagent-dev/kagent/pull/3410
- core: support cross-namespace ModelConfig and RemoteMCPServer with allowedNamespaces by @shashankram in https://github.com/kagent-dev/kagent/pull/3382
- refactor(cli): extract reusable installation library by @iplay88keys in https://github.com/kagent-dev/kagent/pull/3427
- chore: remove generated env var docs and check by @timflannagan in https://github.com/kagent-dev/kagent/pull/3434
- chore(deps): upgrade Substrate to v0.7.0-alpha2 by @EItanya in https://github.com/kagent-dev/kagent/pull/3444
- refactor(api)!: make pre-RC API breaks for future machine principals by @EItanya in https://github.com/kagent-dev/kagent/pull/3453
- chore: upgrade Substrate to v1.0.0-rc1 by @EItanya in https://github.com/kagent-dev/kagent/pull/3457
- adk/models: support Gemini endpoint overrides and Actor JWT auth by @shashankram in https://github.com/kagent-dev/kagent/pull/3458
- chore(deps): update google-adk[a2a] requirement from <3,>=2.12.0 to >=2.13.0,<3 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3478
- chore(deps): bump opentelemetry-instrumentation-grpc from 0.66b1 to 0.66b2 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3482
- chore(deps): bump google-genai from 2.33.0 to 2.34.0 in /python in the python-google-ai group across 1 directory by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3485
- chore(deps): bump opentelemetry-api from 1.45.1 to 1.45.2 in /python in the python-opentelemetry group across 1 directory by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3473
- chore(deps): update anthropic[vertex] requirement from >=2.2.0 to >=2.3.0 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3481
- api/models: update ModelProviderConfig discovery contract by @shashankram in https://github.com/kagent-dev/kagent/pull/3494
- ci: scope GITHUB_TOKEN to read-only in image-scan and migration-immutability by @ayushgharat234 in https://github.com/kagent-dev/kagent/pull/3492
- Update metadata docs by @Stevenjin8 in https://github.com/kagent-dev/kagent/pull/3447
- ci: run image scans daily instead of on every push by @timflannagan in https://github.com/kagent-dev/kagent/pull/3496
- chore(deps): bump the npm-minor-patch group in /ui with 8 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3472
- chore(deps): update langsmith[otel] requirement from >=0.14.11 to >=0.14.16 in /python by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3480
- chore(deps): bump astral-sh/setup-uv from 10.3.0 to 10.3.3 in the actions group across 1 directory by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3347
- chore(deps): bump the python-minor-patch group across 1 directory with 5 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3476
- chore(deps): bump the go-minor-patch group across 1 directory with 17 updates by @dependabot[bot] in https://github.com/kagent-dev/kagent/pull/3474
- chore(deps): upgrade Substrate to v1.0.0-rc2 by @EItanya in https://github.com/kagent-dev/kagent/pull/3520
- session/lifecycle: support force deletion without suspension by @shashankram in https://github.com/kagent-dev/kagent/pull/3530
- chore(deps): upgrade Substrate to rc4 and install Atelet separately by @EItanya in https://github.com/kagent-dev/kagent/pull/3548
- chore(deps): upgrade Substrate to v1.0.0 by @EItanya in https://github.com/kagent-dev/kagent/pull/3555
- ci: backport unit test performance improvements to v1.0.x by @EItanya in https://github.com/kagent-dev/kagent/pull/3559
New Contributors
- @michaelspinks made their first contribution in #2125
- @anxkhn made their first contribution in #2164
- @the-mentor made their first contribution in #2145
- @younsl made their first contribution in #2165
- @Valyrian-Code made their first contribution in #1979
- @elihai-risk made their first contribution in #2254
- @shekhargit1912 made their first contribution in #2209
- @cjlg-soloio made their first contribution in #2271
- @tziyon31 made their first contribution in #2203
- @anthonytwh made their first contribution in #2175
- @jon-waggoner made their first contribution in #2319
- @uncycler made their first contribution in #2321
- @sanskar-singh-2403 made their first contribution in #2323
- @tomsen02 made their first contribution in #2338
- @shreyasskasetty made their first contribution in #2356
- @marosset made their first contribution in #2091
- @garlicKim21 made their first contribution in #2355
- @entee28 made their first contribution in #2419
- @AyushKumar123456789 made their first contribution in #2435
- @PetrMc made their first contribution in #2433
- @vramahandry made their first contribution in #2495
- @Whxuan0701 made their first contribution in #2504
- @wattmto made their first contribution in #2418
- @CarlosLanderas made their first contribution in #2553
- @codyhartsook made their first contribution in #2559
- @blacksmith-sh[bot] made their first contribution in #2659
- @toreysoloio made their first contribution in https://github.com/kagent-dev/kagent/pull/2668
- @jrhuerta made their first contribution in #2749
- @joao-dantas made their first contribution in #2766
- @shubhamojha1 made their first contribution in #2797
- @Gous0786 made their first contribution in #2785
- @kaizakin made their first contribution in https://github.com/kagent-dev/kagent/pull/2810
- @darshan-shanthveer-patil made their first contribution in #2807
- @TigerkidYang made their first contribution in #2809
- @tryambak2019 made their first contribution in #2833
- @boxcee-interview made their first contribution in #2720
- @Dragonzz27 made their first contribution in #2878
- @xavierpestel-ai made their first contribution in https://github.com/kagent-dev/kagent/pull/2406
- @brandonkeung made their first contribution in #2267
- @AmirF194 made their first contribution in #2579
- @acherifi made their first contribution in #2992
- @pai made their first contribution in #2964
- @TarasLykhenko made their first contribution in #3022
- @jcopi made their first contribution in #3032
- @gargsajal9 made their first contribution in #2808
- @alexdarbyshire made their first contribution in #2852
- @mmadhura1014 made their first contribution in #3001
- @thomasbarrett made their first contribution in #3076
- @pood1e made their first contribution in #3091
- @danielle-mustillo made their first contribution in #3067
- @vedantlavale made their first contribution in #3218
- @spichen made their first contribution in #3199
- @shaktisingh404 made their first contribution in https://github.com/kagent-dev/kagent/pull/3294
- @lexmass made their first contribution in #3298
- @fiunchinho made their first contribution in #3376
- @chipfighter made their first contribution in https://github.com/kagent-dev/kagent/pull/2998
- @xianshujun made their first contribution in #3438
- @ayushgharat234 made their first contribution in https://github.com/kagent-dev/kagent/pull/3492
- @alan-bentley-pgh made their first contribution in #3495
- @jayunit100 made their first contribution in #3513
- @jotacamou made their first contribution in #3534
Full Changelog: v0.9.10...v1.0.0