⚠️ This is a staging/pre-release version for testing. Not recommended for production use.
AgentField 0.1.135-rc.5
Installation
# Staging binary (use --staging flag)
curl -fsSL https://agentfield.ai/install.sh | bash -s -- --staging
# Python SDK (prerelease - requires --pre flag)
pip install --pre agentfield
# TypeScript SDK
npm install @agentfield/sdk@nextVersion Pinning
VERSION=v0.1.135-rc.5 curl -fsSL https://agentfield.ai/install.sh | bashManual Download
Download the binary for your platform below, make it executable, and move it to your PATH.
Supported Platforms
- macOS Intel:
agentfield-darwin-amd64 - macOS Apple Silicon:
agentfield-darwin-arm64 - Linux x86_64:
agentfield-linux-amd64 - Linux ARM64:
agentfield-linux-arm64
What's Changed
- Refactor agent testing and improve error handling by @santoshkumarradha in #1
- Rename Brain product to Haxen by @santoshkumarradha in #2
- Fix Go SDK module path for proper package importing by @santoshkumarradha in #3
- Rename project references from Haxen to AgentField by @santoshkumarradha in #4
- Claude/build install script 011 c uqe6w5 e bj qknd w48f e9 n by @santoshkumarradha in #5
- Fix stub storage CountExecutionVCs by @santoshkumarradha in #6
- Relax lint failures and fix async tests by @santoshkumarradha in #7
- Document callback URL and compose storage by @santoshkumarradha in #8
- Improve agent execution tracking by @santoshkumarradha in #9
- Refactor documentation chatbot example and prep 0.1.2 release by @santoshkumarradha in #10
- Add workflow VC status batch endpoint by @santoshkumarradha in #11
- Santosh/multimodal object by @santoshkumarradha in #12
- Add deep research example with planning and research routers by @santoshkumarradha in #13
- Improve sdk/controlplane test coverage by @santoshkumarradha in #14
- Add Docker-based functional testing framework by @santoshkumarradha in #15
- Add e2e functional tests for memory, router, and app call by @santoshkumarradha in #16
- Improve memory event plumbing and add scoping functional tests by @santoshkumarradha in #17
- Fix VC CLI workflow verification and tests by @santoshkumarradha in #18
- updated cli for go sdk by @santoshkumarradha in #19
- Adds decorator-based API for global memory event listeners by @santoshkumarradha in #20
- Santosh/func mem d by @santoshkumarradha in #21
- Automate changelog generation with git-cliff by @santoshkumarradha in #22
- update doc url by @AbirAbbas in #27
- Add Python 3.8+ support to Python SDK by @AbirAbbas in #26
- Un-hardcode agent request timeout by @AbirAbbas in #25
- Santosh/doc-chat fix by @santoshkumarradha in #30
- Implement automatic agent method delegation by @santoshkumarradha in #23
- Ts sdk by @AbirAbbas in #29
- Typescript schema based formatting improvements by @AbirAbbas in #31
- feat(sdk-python): expose execution context via app.ctx property by @AbirAbbas in #33
- Remove unused configuration variables by @AbirAbbas in #32
- Recover agent state on restart and speed up node status by @AbirAbbas in #34
- feat: add delete-namespace endpoint for RAG reindexing by @AbirAbbas in #35
- fix(docs-chatbot): handle PyPI race condition in Railway deploys by @AbirAbbas in #36
- fix(docs-chatbot): use railway.json for Railpack PyPI wait by @AbirAbbas in #37
- fix(docs-chatbot): override install phase for PyPI wait by @AbirAbbas in #38
- fix(docs-chatbot): use correct start command by @AbirAbbas in #39
- docs(chatbot): add TypeScript SDK to supported languages by @AbirAbbas in #40
- docs(chatbot): add SDK search term relationship by @AbirAbbas in #41
- fix(vector-store): fix PostgreSQL DeleteByPrefix and update namespace defaults by @AbirAbbas in #42
- Fix Execute Reasoner JSON editor resetting payload by @santoshkumarradha in #43
- feat: add API key authentication to control plane and SDKs by @AbirAbbas in #44
- Fix Python SDK to include API key in register/heartbeat requests by @AbirAbbas in #47
- Add Go SDK CallLocal workflow tracking by @santoshkumarradha in #45
- fix(python-sdk): include API key in memory events WebSocket connections by @AbirAbbas in #48
- fix(control-plane): remove redundant WebSocket origin check by @AbirAbbas in #49
- fix(sdk): inject API key into all HTTP requests by @AbirAbbas in #50
- fix(ui): add API key header to sidebar execution details fetch by @AbirAbbas in #51
- feat(sdk/typescript): expand AI provider support to 10 providers by @AbirAbbas in #52
- feat(release): add two-tier staging/production release system by @AbirAbbas in #53
- fix(release): fix example requirements and prevent future staging bumps by @AbirAbbas in #56
- feat(release): unify PyPI publishing for all releases by @AbirAbbas in #58
- fix(release): skip example requirements for prereleases by @AbirAbbas in #59
- fix(sdk/typescript): add DID registration to enable VC generation by @AbirAbbas in #60
- Add serverless agent examples and functional tests by @santoshkumarradha in #46
- fix: correct parent execution ID for sub-calls in app.call() by @ivanvza in #62
- Test pr 68 init fix by @AbirAbbas in #69
- feat: allow external contributors to run functional tests without API… by @AbirAbbas in #70
- fix(python-sdk): move conditional imports to module level by @AbirAbbas in #72
- feat(go-sdk): add Memory and Note APIs for agent state and progress tracking by @AbirAbbas in #71
- feat(go-sdk): add per-request API key override for AI client by @AbirAbbas in #73
- fix: wire up workflow notes SSE endpoint by @AbirAbbas in #74
- fix: use executions table for notes storage instead of workflow_executions by @AbirAbbas in #75
- feat: add RAG evaluation example with multi-reasoner architecture by @AbirAbbas in #79
- feat(go-sdk): add ControlPlaneMemoryBackend for distributed memory by @AbirAbbas in #80
- Deployments: Docker/Helm/Kustomize quickstarts + demo agents by @santoshkumarradha in #81
- docs: Add website deployment guide links by @AbirAbbas in #82
- docs: Add cross-reference links to RAG evaluator documentation by @AbirAbbas in #83
- chore(rag-eval): set DeepSeek as default model in UI by @AbirAbbas in #85
- Fix parent-child workflow tracking for direct reasoner calls via AgentRouter by @santoshkumarradha in #86
- Add workflow to update download stats by @santoshkumarradha in #87
- added note() method for fire-and-forget execution logging by @ivasuy in #100
- feat(dashboard): comprehensive observability enhancements by @santoshkumarradha in #101
- feat(observability): add webhook forwarding with dead letter queue by @AbirAbbas in #102
- feat(tests): add unit tests for vector memory handler functionality by @huseynovvusal in #123
- fix(ci): prevent shell injection in AI label workflow by @AbirAbbas in #125
- fix(ci): add issues:write permission for AI label workflow by @AbirAbbas in #126
- feat(sdk/go, control-plane): Add Vector Memory Ops by @SwekeR-463 in #124
- Add explicit return type to useFilterState hook by @XYuktaaa in #127
- Hot reload controlplane local setup by @AbirAbbas in #128
- Switch hot-reload dev setup from Docker to native Air by @AbirAbbas in #129
- fix(control-plane): enforce lifecycle_status consistency with agent state by @AbirAbbas in #130
- docs: add Discord community badge to README by @AbirAbbas in #131
- chore(ci): migrate Docker publishing from GHCR to Docker Hub by @AbirAbbas in #133
- docs: update Docker image references to Docker Hub by @AbirAbbas in #134
- feat(ci): add contributor reminder and assignment tracking workflows by @santoshkumarradha in #132
- [Python SDK] Add unit tests for connection manager by @hed1ad in #135
- fix(sdk): Update TypeScript SDK license to Apache-2.0 by @AbirAbbas in #139
- perf: Python SDK memory optimization + benchmark visualization improvements by @santoshkumarradha in #138
- fix(server): add public /health endpoint for load balancer health checks by @santoshkumarradha in #140
- test(server): add tests for public /health endpoint by @santoshkumarradha in #141
- Santosh/multimodal by @santoshkumarradha in #144
- Add fal-client dependency by @santoshkumarradha in #145
- Include input payload in execution events and add output schemas to reasoner examples by @AbirAbbas in #146
- Add skill execution data to observability events by @AbirAbbas in #147
- feat(deploy): add Railway template for one-click deployment by @AbirAbbas in #149
- fix: add cache mount IDs for Railway compatibility by @AbirAbbas in #150
- fix(ts-sdk): add HTTP timeout and always log heartbeat failures by @AbirAbbas in #152
- feat: add Railway-deployable init-example agent by @AbirAbbas in #151
- fix(sdk): prevent socket exhaustion from connection leak by @AbirAbbas in #153
- chore(init-example): bump SDK to ^0.1.33 by @AbirAbbas in #154
- fix(sdk): add connection pooling to all HTTP clients by @AbirAbbas in #155
- fix: add maxTotalSockets to prevent socket exhaustion across IPv4/IPv6 by @AbirAbbas in #156
- fix(sdk): prevent WebSocket socket leak in MemoryEventClient by @AbirAbbas in #157
- fix(auth): allow root path to redirect to UI without auth by @AbirAbbas in #158
- test(sdk/go): add HTTP error handling tests by @BenjaminGoehry in #160
- fix(ci): enable performance comments on fork PRs by @AbirAbbas in #163
- fix(sdk/python): prevent memory event websocket from blocking agent startup by @AbirAbbas in #165
- fix(sdk/python): use actual version and metadata in agent registration by @AbirAbbas in #166
- perf(ci): speed up functional tests with parallel execution by @AbirAbbas in #159
- fix(control-plane): resolve agent node health status flapping by @AbirAbbas in #169
- docs: [Go SDK] Add documentation to Config struct fields by @vkbui in #171
- Fix UI workflow delete 404 by wiring cleanup route by @santoshkumarradha in #174
- Fix workflow cleanup to remove executions-backed run summaries by @santoshkumarradha in #177
- Fix async execution polling missing auth headers by @AbirAbbas in #180
- feat(sdk/go): add support for image inputs in ai calls by @BenjaminGoehry in #164
- docs(python-sdk): document memory scope hierarchy by @1khazipov in #184
- feat(python-sdk): add domain-specific exception hierarchy by @1khazipov in #187
- chore(web-ui): remove dead filter components by @AbirAbbas in #190
- Set up vitest testing infrastructure, with sample test cases for status badge component by @iammohitvs in #191
- chore: remove redundant CLA assistant workflow by @AbirAbbas in #192
- fix(release): use deploy key to bypass branch protection by @AbirAbbas in #193
- fix(release): prevent infinite loop with [skip ci] by @AbirAbbas in #194
- feat: VC-based authorization, sidecar management APIs, and multi-version reasoners by @AbirAbbas in #188
- feat: waiting state with approval workflows, VC-based authorization, and multi-version reasoners by @AbirAbbas in #197
- test(control-plane): add execution cleanup service coverage by @1khazipov in #195
- docs: add human-in-the-loop approval docs to SDK READMEs by @AbirAbbas in #212
- fix: allow empty input for parameterless skills/reasoners by @santoshkumarradha in #198
- feat(harness): add .harness() method for external coding agent dispatch by @santoshkumarradha in #210
- feat(webhook): support all HITL template response formats by @AbirAbbas in #213
- feat(readme): visual showcase cards for Built With AgentField by @santoshkumarradha in #216
- feat(harness): OpenCode support with schema retry, error preservation, and project_dir routing by @santoshkumarradha in #220
- feat(ai): retry LLM calls on malformed structured output JSON by @AbirAbbas in #224
- feat(ui): improve duration display in workflow and execution tables by @santoshkumarradha in #223
- feat(ui): display both did:key and did:web identities by @AbirAbbas in #226
- fix(did): add did:web resolution to document endpoint by @AbirAbbas in #227
- fix(harness): add concurrency limiter, stdout fallback, and stronger prompts by @santoshkumarradha in #230
- feat: native LLM tool-calling support via discover → ai → call pipeline by @AbirAbbas in #228
- docs: add AI tool calling documentation to READMEs by @AbirAbbas in #231
- fix: include API key in note() request headers by @AbirAbbas in #235
- fix(ui): center sidebar nav icons when collapsed by @santoshkumarradha in #247
- feat: External Cancel/Pause/Resume Execution (Epic #238) by @santoshkumarradha in #246
- Fix squished authorization table layout by @AbirAbbas in #253
- fix(install): BSD sed compatibility and env var pipe scoping by @santoshkumarradha in #251
- feat: database-backed configuration storage by @AbirAbbas in #254
- fix: skip global API key check for connector routes by @AbirAbbas in #255
- fix: add config_management to connector capability env var map by @AbirAbbas in #257
- fix: wire ApplyEnvOverrides into server startup by @AbirAbbas in #258
- fix: use status snapshot to prevent agent status flickering by @AbirAbbas in #259
- feat: add token-based cost estimation for CLI harness providers by @AbirAbbas in #260
- fix: update estimate_cli_cost for litellm v1.80+ API by @AbirAbbas in #261
- fix: reap stale workflow executions and use updated_at for staleness by @AbirAbbas in #262
- feat(sdk): surface cost_usd and usage from .ai() responses by @AbirAbbas in #264
- fix(sdk): tune rate limiter for fail-fast behavior by @AbirAbbas in #265
- fix: prevent async executions stuck in running state by @AbirAbbas in #267
- fix: capture stderr from Claude Code CLI for error diagnosis by @AbirAbbas in #268
- feat(harness): parse real cost from opencode JSON output by @AbirAbbas in #269
- revert: remove opencode JSON cost parsing by @AbirAbbas in #270
- fix(storage): apply default idle connections when MaxIdleConns is unconfigured by @AbirAbbas in #272
- perf: skip large payload columns in all UI list and aggregate queries by @AbirAbbas in #273
- feat(sdk-go): add harness package for CLI-based coding agent dispatch by @AbirAbbas in #271
- perf(executions): skip large payload columns in all list and aggregate queries by @AbirAbbas in #274
- feat: Agentic API Layer — Smart 404, Discovery, Query, Knowledge Base by @santoshkumarradha in #283
- feat: CLI agent mode — af agent subcommand with structured JSON output by @santoshkumarradha in #284
- fix: Claude Code provider captures response via subtype='success' by @AbirAbbas in #286
- feat: extend permission middleware to memory endpoints (#285) by @AbirAbbas in #289
- Refine language in README for clarity and emphasis by @santoshkumarradha in #296
- feat(typescript sdk): Add history() method for querying past memory events by @ro-robles in #300
- fix: CLI agent mode review — logging init, flag scoping, dead code by @santoshkumarradha in #290
- fix: QA authorization issues — revoke idempotency, health checks, UI bugs by @AbirAbbas in #301
- Fix all website links for new site URL structure by @AbirAbbas in #303
- chore: rebrand README and assets to gold/dark theme by @santoshkumarradha in #306
- feat(sdk/go): add Codex and Gemini harness providers by @AbirAbbas in #305
- Add unit test for retry handler by @JaredAung in #307
- [Web UI] Replace vcStatus as any pattern across execution components by @CommitHu502Craft in #308
- [Web UI] Add ARIA labels to NodeCard component by @CommitHu502Craft in #313
- [Web UI] Add unit test for NodeCard component by @CommitHu502Craft in #314
- [Web UI] Replace any types in ExecutionForm.tsx by @CommitHu502Craft in #312
- Added type annotations to Agent.init by @AdityaNair-jpg in #315
- feat: execution resilience - LLM health, concurrency limits, retry, log streaming by @AbirAbbas in #319
- fix(web-ui): remove debug console logs by @CommitHu502Craft in #317
- docs: add CloudSecurity AF to Built With AgentField by @oktaygoktas in #327
- fix(cors): remove wildcard Access-Control-Allow-Origin from SSE handlers by @glitch-ux in #331
- fix(sdk/python): replace deprecated datetime.utcnow() with timezone-a… by @deensaleh in #332
- docs: update README UTM links with granular tracking by @oktaygoktas in #328
- refactor: extract shared ErrorResponse helper to handlers/errors.go by @tmchow in #338
- refactor: replace emoji logging with structured zerolog in memory handler by @tmchow in #335
- docs: add godoc comments to StorageProvider interface methods by @tmchow in #336
- feat(observability): enrich execution facts for downstream analysis by @santoshkumarradha in #341
- remove OpenCode serve+attach workaround for stateless CLI by @AdityaNair-jpg in #326
- feat(web): operations-first control plane UI revamp with live updates and node logs by @santoshkumarradha in #330
- feat: comprehensive test coverage improvements + UI revamp by @santoshkumarradha in #339
- feat(sdk/python): add per-execution LLM cost tracking by @tmchow in #343
- chore(deps): bump the npm_and_yarn group across 5 directories with 21 updates by @dependabot[bot] in #346
- docs: document hosted CLA bot policy by @santoshkumarradha in #347
- chore(deps): bump the go_modules group across 1 directory with 3 updates by @dependabot[bot] in #348
- chore(deps): bump the npm_and_yarn group across 1 directory with 3 updates by @dependabot[bot] in #349
- fix: resolve dependency and secret alerts by @santoshkumarradha in #351
- refactor: remove all MCP code from codebase by @AbirAbbas in #359
- feat(observability): add OpenTelemetry distributed tracing export by @tmchow in #344
- fix: remediate CodeQL security alerts by @santoshkumarradha in #361
- chore(deps): bump go.opentelemetry.io/otel/sdk from 1.39.0 to 1.40.0 in /control-plane in the go_modules group across 1 directory by @dependabot[bot] in #362
- feat(runs): pause/resume/cancel + unified status primitives + notification center by @santoshkumarradha in #345
- feat(skill+cli): agentfield-multi-reasoner-builder skill, af doctor, af init --docker, af skill install by @santoshkumarradha in #367
- Chore/UI audit phase1 quick wins by @santoshkumarradha in #350
- test: add 24 critical-path test files across control plane, SDKs by @santoshkumarradha in #352
- fix: implement runs search filter and reject empty agent node IDs by @AbirAbbas in #369
- fix: block execution of agents in pending_approval state by @AbirAbbas in #371
- chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.32.0 to 1.43.0 in /control-plane in the go_modules group across 1 directory by @dependabot[bot] in #370
- fix: handle missing function.arguments in execute_tool_call_loop by @tmchow in #372
- test(coverage): control-plane 81.1% + web UI 81.5% (supersedes #352) by @santoshkumarradha in #368
- fix: block revoked-tag agent calls + friendly empty logs state (TC-034, TC-035) by @AbirAbbas in #373
- ci: parallelize coverage, stop running tests twice per PR by @santoshkumarradha in #377
- ci: fix required status check context in main ruleset by @santoshkumarradha in #378
- ci: add merge_group trigger to coverage workflow by @AbirAbbas in #380
- chore(deps): bump axios from 1.13.5 to 1.15.0 in /sdk/typescript in the npm_and_yarn group across 1 directory by @dependabot[bot] in #376
- fix(security): block serverless re-register bypass of admin revocation (#374) by @santoshkumarradha in #375
- ci: allow coverage-summary to pass on fork PRs by @AbirAbbas in #383
- fix(sdk/python): break tool-call loop early on asyncio.TimeoutError by @tmchow in #381
- fix(sdk/python): prevent silent deadlocks in LLM calls and async contexts by @AbirAbbas in #384
- fix(ci): coverage-summary check blocks non-code PRs by @santoshkumarradha in #386
- chore(deps): bump next from 15.5.14 to 15.5.15 in /examples/python_agent_nodes/rag_evaluation/ui in the npm_and_yarn group across 1 directory by @dependabot[bot] in #385
- Tests/logger coverage by @AnandKrishnamoorthy1 in #447
- fix(py): complete URL scheme sanitization in memory_events by @santoshkumarradha in #449
- fix: opencode CLI v1.4+ compat — use run subcommand by @AbirAbbas in #450
- fix(python-sdk): harden pytest tempdir handling by @santoshkumarradha in #451
- chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /sdk/typescript in the npm_and_yarn group across 1 directory by @dependabot[bot] in #452
- fix: graceful shutdown tracks and cancels in-flight tasks (#356, #357) by @Luffy2208 in #448
- fix(security): prevent SSRF via webhook URL validation by @AbirAbbas in #454
- chore: sync web client package-lock with installed deps by @AbirAbbas in #455
- Refactor/split sdk python agentfield agent into mixins by @Luffy2208 in #453
- test: add tests for TypeScript SDK utils (pattern, schema, httpAgents) by @tmchow in #456
- chore(deps): bump hono from 4.12.12 to 4.12.14 in /examples/benchmarks/100k-scale/mastra-bench in the npm_and_yarn group across 1 directory by @dependabot[bot] in #457
- fix(sdk/go): send configured heartbeat interval in node registration by @tmchow in #458
- tests/added tests for pydantic_utils + agent_registry thread(#401) by @Luffy2208 in #459
- chore(deps): bump github.com/jackc/pgx/v5 from 5.7.5 to 5.9.0 in /control-plane in the go_modules group across 1 directory by @dependabot[bot] in #460
- feat(python-sdk): add image_config support for OpenRouter image generation (#466) by @santoshkumarradha in #472
- feat(python-sdk): add VideoOutput type and video support to MultimodalResponse (#469) by @santoshkumarradha in #473
- feat(python-sdk): add MediaRouter for prefix-based provider dispatch (#463) by @santoshkumarradha in #474
- feat(go-sdk): add MediaProvider interface and OpenRouter media generation by @santoshkumarradha in #476
- feat(python-sdk): add OpenRouter audio output and music generation (#465) by @santoshkumarradha in #478
- feat(typescript-sdk): add MediaProvider interface and OpenRouter media generation by @santoshkumarradha in #477
- feat(python-sdk): add OpenRouter video generation via async polling (#464) by @santoshkumarradha in #479
- feat: implement Agent.stop() in python sdk by @shuaixr in #446
- feat(go-sdk): deduplicate tool_calling, add ToolCallResult wrapper, PromptConfig, system prompt support, and tool name sanitization by @Luffy2208 in #483
- test(sdk-go): fix flaky DurationMS assertion in runner test by @AbirAbbas in #485
- fix(web-ui): clear sidebar-close timeout on unmount by @AbirAbbas in #486
- tests: improve coverage for process_logs.go (ring eviction, snapshot,… by @Samyak17Jain in #482
- fix(control-plane): rescue nodes stuck in lifecycle_status=starting by @AbirAbbas in #487
- refactor(control-plane): split handlers/nodes.go into 5 focused files by @kiranannadatha8 in #481
- refactor(control-plane): split handlers/ui/dashboard.go into cache/format/aggregate files by @kiranannadatha8 in #480
- fix: remove unsafe any usage by @BenjaminGoehry in #445
- security(deps): bump pytest to >=9.0.3 (CVE-2025-71176) by @AbirAbbas in #488
- ci(coverage): stop rerunning full pipeline on push to main by @AbirAbbas in #489
- feat: Multi-Provider Media Generation (Video, Audio, Image) by @santoshkumarradha in #475
- security: fix SSRF in serverless agent discovery (CodeQL alert #32) by @AbirAbbas in #490
- refactor(vc): split vc_service.go into focused files by @kiranannadatha8 in #493
- refactor(server): split server.go into focused routes_*.go files by @kiranannadatha8 in #494
- chore(deps): bump python-dotenv from 1.0.1 to 1.2.2 in /sdk/python in the uv group across 1 directory by @dependabot[bot] in #495
- Feature /agentfield slash command + prompt-to-production README by @santoshkumarradha in #496
- test(skillkit): cover remaining slash-command error paths by @santoshkumarradha in #497
- Feature/typescript didclient vc methods by @Luffy2208 in #462
- chore(deps): bump github.com/jackc/pgx/v5 from 5.9.0 to 5.9.2 in /control-plane in the go_modules group across 1 directory by @dependabot[bot] in #498
- chore(deps): bump litellm from 1.83.0 to 1.83.7 in /sdk/python in the uv group across 1 directory by @dependabot[bot] in #500
- chore(deps): bump the npm_and_yarn group across 3 directories with 1 update by @dependabot[bot] in #501
- feat(go-sdk): add AgentRouter pattern for modular agent organisation Fixes #98 by @dhanadeep6 in #499
- feat(sdk-python): introduce domain-specific exception hierarchy by @Baradwaz-122 in #502
- Refactor/split agent go by @nikzor in #503
- fix(control-plane): require signed approval webhooks by @Luffy2208 in #504
- Feat universal plugin based triggers by @santoshkumarradha in #506
- fix(harness/go): align OpenCode provider with opencode 1.14+ CLI (#517) by @SAY-5 in #519
- fix(harness): limit opencode concurrency with global semaphore (#438) by @dinzz005 in #505
- fix(examples/init-example): pin Railway build to local Dockerfile by @AbirAbbas in #522
- fix(railway): remove dead root railway.json hijacking template builds by @AbirAbbas in #523
- feat(sdk/go): add audio and file multimodal helpers by @Sadit007 in #520
- fix(harness/opencode): surface stderr Error: lines on exit 0 by @AbirAbbas in #525
- fix: reject terminal-state regression on execution status writes by @AbirAbbas in #528
- fix(sdk): don't fall back to sync when the reasoner already ran by @AbirAbbas in #530
- fix: detect mid-flight agent redeploys via instance_id and reap orphaned executions by @AbirAbbas in #531
- perf(harness): stop retrying on timeout, repair JSON cheaply, raise opencode caps by @AbirAbbas in #533
- chore(deps): bump axios from 1.15.0 to 1.15.2 in /examples/python_agent_nodes/rag_evaluation/ui in the npm_and_yarn group across 1 directory by @dependabot[bot] in #532
- chore(deps): bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in #534
- fix(web-ui): independent scroll for Steps list and run detail panel by @kiranannadatha8 in #535
- fix(web-ui): show Input/Output above Provenance on step detail by @kiranannadatha8 in #537
- feat: end-to-end cooperative cancellation (cancel-tree + dispatcher + 3 SDKs) by @AbirAbbas in #542
- test(harness): regression-guard run_cli parent env propagation by @AbirAbbas in #544
- fix(sdk-python): count opencode turns from JSON step events by @ivasuy in #546
- Feat/UI queue concurrency status 323 by @ivasuy in #547
- Feat/UI error category 325 by @ivasuy in #548
- chore(deps): bump hono from 4.12.14 to 4.12.18 in /examples/benchmarks/100k-scale/mastra-bench in the npm_and_yarn group across 1 directory by @dependabot[bot] in #551
- chore(deps): bump the uv group across 1 directory with 2 updates by @dependabot[bot] in #550
- Feat/UI llm health widget 322 by @ivasuy in #549
- fix(sdk): exclude Agent.pause() time from reasoner wall-clock timeout by @AbirAbbas in #552
- fix(sdk): propagate child pause state across app.call to parent pause-clock by @AbirAbbas in #555
- fix: align approval request contract with control plane (#524) by @Luffy2208 in #553
- fix(sdk): poll-driven cross-reasoner pause propagation by @AbirAbbas in #562
- fix(sdk): pause-aware overdue check in async polling task by @AbirAbbas in #564
- docs: add community project submission flow by @santoshkumarradha in #565
- fix(sdk): treat cancellation as non-retryable in Agent.call sync-fallback path by @AbirAbbas in #566
- fix(sdk+cp): multi-hop pause propagation (3+-deep chains no longer time out) by @AbirAbbas in #568
- obs(sdk): info-level diagnostics on the pause-cascade hot path by @AbirAbbas in #569
- chore(deps): bump fast-uri from 3.1.0 to 3.1.2 in /examples/benchmarks/100k-scale/mastra-bench in the npm_and_yarn group across 1 directory by @dependabot[bot] in #556
- Fix VC verification lifecycle and proof checks by @Luffy2208 in #567
- chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /sdk/python in the uv group across 1 directory by @dependabot[bot] in #570
- chore(deps): bump next from 15.5.15 to 15.5.18 in /examples/python_agent_nodes/rag_evaluation/ui in the npm_and_yarn group across 1 directory by @dependabot[bot] in #571
- fix(control-plane): default-deny mode for tag policy middleware by @Manzela in #573
- chore(deps): bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in #578
- chore(deps): bump idna from 3.11 to 3.15 in /sdk/python in the uv group across 1 directory by @dependabot[bot] in #577
- feat(sdk): native OpenRouter audio/video/image routing across Python, TS, Go by @santoshkumarradha in #579
- chore(deps): bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in #580
- feat(sdk): support OpenRouter audio system prompts by @sarvesh1327 in #590
- fix(sdk): drop --dangerously-skip-permissions + finish v1.4 migration in opencode harness (#582) by @santoshkumarradha in #583
- test(python): cover CLI harness log helpers by @akmhatey-ai in #574
- chore(github): remove duplicate uppercase PULL_REQUEST_TEMPLATE.md by @AbirAbbas in #591
- docs: redesign README Learn More as a visual blog showcase by @oktaygoktas in #593
- fix(ui/runs): truncate long error-category badges so they don't overflow the status cell by @AbirAbbas in #594
- fix(sdk): per-call ai() timeout + OpenRouter image retry/strip fallback by @santoshkumarradha in #600
- Harden generated output handling by @glmgbj233 in #581
- chore(ci): track Docker Hub pulls in download stats gist by @santoshkumarradha in #592
- chore(deps): bump tmp from 0.2.5 to 0.2.7 in /control-plane/web/client in the npm_and_yarn group across 1 directory by @dependabot[bot] in #596
- fix(sdk/go): strip credential headers on cross-host redirect by @AbirAbbas in #602
- docs: add Agentic PR Reviewer (pr-af) to Built With AgentField by @oktaygoktas in #607
- feat(cli): add minimal trigger surface by @santoshkumarradha in #605
- fix(control-plane): authorize execution note writes(#420) by @Luffy2208 in #575
- chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #604
- fix(cli): stop
af callrejecting valid input for optional reasoner params by @AbirAbbas in #610 - chore(deps-dev): bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in #609
- feat(skill): rename to agentfield, fetch live docs from agentfield.ai by @santoshkumarradha in #611
- docs(readme): video demo + restructure hero and prompt-to-production flow by @santoshkumarradha in #612
- chore: patch transitive tmp and uuid lockfiles by @santoshkumarradha in #613
- chore(deps): bump aiohttp from 3.13.4 to 3.14.0 in /sdk/python in the uv group across 1 directory by @dependabot[bot] in #614
- chore(deps): bump react-router from 7.14.0 to 7.16.0 in /control-plane/web/client in the npm_and_yarn group across 1 directory by @dependabot[bot] in #615
- chore(deps): bump starlette from 1.0.0 to 1.0.1 in /sdk/python in the uv group across 1 directory by @dependabot[bot] in #616
- chore(deps): bump hono from 4.12.18 to 4.12.23 in /examples/benchmarks/100k-scale/mastra-bench in the npm_and_yarn group across 1 directory by @dependabot[bot] in #617
- Fix multimedia OpenRouter/Fal SDK DX by @santoshkumarradha in #619
- fix(control-plane): authorize execution note reads(#421) by @Luffy2208 in #630
- fix(sdk/python): bind trigger payload to first non-injected param (stop "got multiple values for argument 'trigger'") by @AbirAbbas in #634
- chore: add .github/github-buddy.yml with CLA sweep config by @AbirAbbas in #633
- fix(harness): preserve original goal on non-crash schema retries by @tha-hammer in #637
- fix(sdk): attribute app.call parent from task-local context, not shared agent state by @AbirAbbas in #638
- Fix get_logger returning agentfield.result_cache for all loggers by @AbirAbbas in #635
- Add OpenRouter attribution defaults by @santoshkumarradha in #641
- Revert PR #641 over-merge by @santoshkumarradha in #642
- Add OpenRouter attribution defaults by @santoshkumarradha in #643
- fix(deps): bump rag-evaluation-ui transitive postcss to 8.5.15 (closes #136) by @santoshkumarradha in #645
- fix(deps): bump @ai-sdk/provider-utils in mastra-bench (closes #191) by @santoshkumarradha in #646
- fix(tests): default serverless test bind host to 127.0.0.1 (closes #35) by @santoshkumarradha in #647
- test(web-ui): wait for empty events state in triggers test by @santoshkumarradha in #648
- fix(release): skip prerelease rc counters already taken on origin by @santoshkumarradha in #649
- Generic strong-type the consumer-facing API in Python SDK by @AbirAbbas in #640
- Fix: Remove /api/ui/v1 URL substitution from Python & Go SDK note endpoints by @AbirAbbas in #650
- fix: ignore caller identity headers for tag policy(#422) by @Luffy2208 in #653
- fix: Updated the startup and shutdown events, now they are using life… by @DebanKsahu in #631
- chore(deps-dev): bump esbuild from 0.28.0 to 0.28.1 in /examples/benchmarks/100k-scale/mastra-bench in the npm_and_yarn group across 1 directory by @dependabot[bot] in #657
- chore(deps): patch remaining esbuild alerts by @santoshkumarradha in #659
- [codex] fix esbuild Dependabot alerts by @santoshkumarradha in #660
- Add Snowflake integration pack by @santoshkumarradha in #656
- Add AgentField realtime sessions for WebRTC voice ingress by @santoshkumarradha in #654
- Add Databricks integration pack by @santoshkumarradha in #667
- Add Linear and Sentry integrations by @santoshkumarradha in #661
- chore(deps): bump pyjwt from 2.12.1 to 2.13.0 in /sdk/python in the uv group across 1 directory by @dependabot[bot] in #669
- chore(deps): bump the npm_and_yarn group across 2 directories with 4 updates by @dependabot[bot] in #670
- chore(deps): bump the uv group across 1 directory with 4 updates by @dependabot[bot] in #671
- fix: Fixed the stale
_current_statusissue where status stuck on `S… by @DebanKsahu in #673 - chore(deps): patch js-yaml lockfiles by @santoshkumarradha in #672
- fix(security): restrict query API key auth to streaming routes (#423) by @Luffy2208 in #674
- Add ARD discovery workspace by @santoshkumarradha in #675
- Show external ARD boundaries in workflow traces by @santoshkumarradha in #676
- feat(did+cp): DID-encrypted payloads + control-plane knowledge store (discuss/aggregator foundation) by @AbirAbbas in #677
- chore(deps): bump the uv group across 1 directory with 2 updates by @dependabot[bot] in #678
- Add workflow restart and replay reuse by @santoshkumarradha in #639
- fix(sdk): satisfy OpenAI strict response_format schema rules by @AbirAbbas in #680
- fix(#424): fail closed on empty API key unless insecure mode is explicitly enabled by @Luffy2208 in #682
- feat(harness): canonical dir model, unified permissions, incremental schema (Python) by @santoshkumarradha in #689
- feat(sdk/python): Ed25519 JWS sign/verify for payload authenticity by @AbirAbbas in #690
- fix(go-sdk): surface json.Marshal errors in memory backend requests by @ardittirana in #679
- fix(security): Enforce fail-closed for empty admin token (#425) by @Luffy2208 in #691
- Revert fail-closed auth: #682 (API key) + #691 (admin token) by @AbirAbbas in #694
- feat(sdk): ReasonerFailed exception for reporting reasoner failure with result by @AbirAbbas in #697
- feat(skill): generative orchestration theory for the agentfield skill by @santoshkumarradha in #708
- chore(deps): bump golang.org/x/net from 0.52.0 to 0.55.0 in /control-plane in the go_modules group across 1 directory by @dependabot[bot] in #710
- fix(sdk-python): use AsyncConfig.from_environment() for client default async config by @AbirAbbas in #714
- Tech debt by @pocesar in #618
- fix(control-plane): prevent structured logs from leaking execution payloads by @7vignesh in #701
- feat(cli): af install/run for agent nodes — encrypted secrets, env prompting, node-to-node deps by @AbirAbbas in #692
- fix(agentfield): add test for issue #589 by @jaythehardcoder in #703
- [codex] fix Python SDK decorator metadata duplication by @Rachit-Gandhi in #693
- fix(harness): stream output with idle watchdog and explicit stdin null (#695) by @santoshkumarradha in #696
- chore(sdk-go): bump testify to v1.11.1 by @santoshkumarradha in #681
- test(functional): fix Docker-backed SDK test infra by @santoshkumarradha in #709
- feat(share): af share — export & publish run artifacts (offline HTML + hosted permalinks) by @santoshkumarradha in #706
- fix(control-plane): implement graceful shutdown on SIGTERM/SIGINT by @7vignesh in #715
- fix(control-plane): flush SSE headers immediately in memory events handler by @7vignesh in #716
- fix(sdk-go): make agent outbound call timeout configurable by @santoshkumarradha in #721
- fix(sdk): GLM-5.2 context limits + reasoning-model empty-output retry by @santoshkumarradha in #722
- feat(sdk-go): production-harden serverless agent nodes (Lambda-ready, auth-visible, restart-safe) by @santoshkumarradha in #719
- feat(cli): provision a requires-python-compatible interpreter for af install by @AbirAbbas in #727
- feat(cli): require_one_of env-var groups for agent nodes by @AbirAbbas in #729
- feat(cli): styled terminal UI — shared ui package, list/secrets tables, clean install output by @AbirAbbas in #730
- feat(sdk-ts): pause/WAITING + async-execution dispatch (parity with Python) — closes #726 by @AbirAbbas in #731
- feat(cli): clean, styled af install output (follow-up to #730) by @AbirAbbas in #732
- feat(install): version the agentfield-package.yaml manifest schema (config_version) by @AbirAbbas in #733
- feat(cli): numbered menu for require_one_of provider selection by @AbirAbbas in #734
- fix(control-plane): correct observability-webhook paths in KB + API catalog by @AbirAbbas in #735
- fix(cli): don't dump usage/help block on runtime errors by @AbirAbbas in #736
- fix(af run): eliminate startup port race that killed healthy nodes by @AbirAbbas in #737
- docs: document installing agent nodes via
af installby @AbirAbbas in #738 - feat: macOS menu-bar tray (af-tray) with launchd auto-start by @AbirAbbas in #725
- feat(af-tray): live status dashboard — fleet, metrics, traffic-light thresholds, API-key flow by @AbirAbbas in #739
- fix(control-plane): add timestamp freshness checks to prevent webhook replay attacks by @7vignesh in #717
- chore(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0 in /control-plane in the go_modules group across 1 directory by @dependabot[bot] in #728
- feat(sdk/go): Agent.Pause webhook approvals, harness cost reporting, incremental schema mode by @AbirAbbas in #744
- feat(control-plane): af install support for Go agent nodes by @AbirAbbas in #745
- feat: af install --path selector + Go SDK harness fixes by @AbirAbbas in #750
- fix(sdk): Windows harness reliability — opencode prompts over stdin, idle watchdog 120s→300s by @AbirAbbas in #774
- fix(sdk/python): bound the harness subprocess exit wait (silent reasoner wedge) by @AbirAbbas in #778
- fix(sdk/go): rewrite max_tokens to max_completion_tokens for newer OpenAI models by @7vignesh in #724
- feat(sdk-python): accept scope kwargs on memory set/get/delete and reconcile memory.search by @santoshkumarradha in #707
- feat(sdk/ts): add trigger types, factories, and registration plumbing by @7vignesh in #743
- feat(harness): add Python provider preflight by @jstar0 in #756
- feat: AgentField Desktop (Mac-first) + Windows enablement, bundled CLI, tray, deep links by @AbirAbbas in #752
- chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #779
- feat(agentic): ranked reasoner search + ambient load metadata (beta-plan: Santosh's recommendations) by @AbirAbbas in #784
- chore(web-client): override ws to 8.21.0 by @santoshkumarradha in #773
- feat(control-plane): agent-mode steering verbs, events query resource, and --json lifecycle output by @AbirAbbas in #751
- chore(deps): bump mcp from 1.27.0 to 1.28.1 in /sdk/python in the uv group across 1 directory by @dependabot[bot] in #785
- fix(desktop): correct Windows tray icon theme and DPI rendering by @AbirAbbas in #791
- fix(control-plane): dashboard success rate defaults to 100% and actually covers 24h by @AbirAbbas in #792
- fix(desktop): survive a CLI probe candidate that throws on spawn by @AbirAbbas in #793
- test(sdk/python): expand verification.py coverage to 100% (#398) by @7vignesh in #794
- fix(install): replace binaries atomically to avoid macOS SIGKILL on upgrade by @AbirAbbas in #797
- fix(security): SSRF protection for approval callback_url (#435) by @7vignesh in #790
- feat(sdk/typescript): trigger system parity — dispatch, sugar, testing, demo by @7vignesh in #796
- Token/cost usage tracking end-to-end + tray usage UI by @AbirAbbas in #795
- feat(sdk/python): model#variant reasoning-effort support across harness providers by @AbirAbbas in #801
- Fix/fire and forget by @DebanKsahu in #723
- chore(deps): bump axios from 1.16.0 to 1.18.0 in /sdk/typescript in the npm_and_yarn group across 1 directory by @dependabot[bot] in #802
- fix: prevent exception details in agent server responses by @santoshkumarradha in #800
- feat: node-declared reasoner descriptions + entry points in discovery and af ls by @AbirAbbas in #805
- fix(sdk-go): survive OpenAI's strict validator on codex --output-schema by @AbirAbbas in #818
- feat(cli): surface the harness golden path (af wait, catalog, golden_path help, JSON envelopes) by @AbirAbbas in #816
- feat(desktop): let the app own its control plane on a configurable / auto-picked free port by @AbirAbbas in #815
- feat(desktop): redesign UI around install and usage jobs by @santoshkumarradha in #814
- feat: user-built subharness agents — personal-agent skill path, installable scaffolds, skill routing + cleanup by @AbirAbbas in #822
- Improve anonymous OSS telemetry quality by @santoshkumarradha in #823
- fix(skills): sync the full catalog, unblock legacy reconcile, retire the /agentfield shim by @AbirAbbas in #826
- docs(skills): agentfield-use — batch dispatch by default, canary-validate after node reconfig by @AbirAbbas in #827
- Guard PresenceManager.Start against duplicate sweep goroutines by @AbirAbbas in #808
- Register pprof debug endpoints behind admin-token auth by @AbirAbbas in #809
- Add tests for agentic handlers: query, batch, discover by @AbirAbbas in #810
- InMemoryBackend: deep-copy values on Set/Get to fix data race by @AbirAbbas in #807
- Replace N+1 execution fetches in batch-status handler with one batch fetch by @AbirAbbas in #811
- feat(cli): health-aware list/stop, startup failure diagnostics, port retry, doctor --probe by @AbirAbbas in #820
- fix(cli): make af config write through to the secret store + pre-install requirements visibility by @AbirAbbas in #819
- feat(control-plane): embedded MCP server at /mcp (zero-setup harness integration) by @AbirAbbas in #817
- ci(sdk-python): pin ruff to 0.15.22 (0.16.0 turns the lint gate red repo-wide) by @AbirAbbas in #831
- chore(skills): sync embedded agentfield-use mirror after #827 by @AbirAbbas in #828
- fix(security): close open Dependabot vulnerability alerts by @santoshkumarradha in #830
- fix(agentic_rag): honor similarity_threshold in deduplicate_chunks by @AbirAbbas in #832
- feat(python-sdk): add MiniMax video provider routing by @octo-patch in #783
- Add MiniMax music generation provider by @octo-patch in #789
- feat(desktop): register af on the shell PATH on macOS/Linux too by @AbirAbbas in #839
- feat(desktop): sign and notarize macOS release builds by @AbirAbbas in #840
- feat(control-plane): HTTP API for package install/update/uninstall + encrypted secrets by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/837
- feat(deploy): cloud control-plane image that can install and run agents in-container by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/841
- fix(control-plane): package sync reconciliation + install_status on the packages listing by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/843
- feat(desktop): one management path — agents managed via the control-plane API by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/842
- test: harden the install/uninstall/sync workflows behind the desktop convergence by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/844
- feat(desktop): cloud mode — connect to a remote control plane or one-click deploy it to Railway by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/847
- feat(cloud-image): bundle the opencode coding harness by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/849
- fix(sdk): extract opencode token usage from step_finish parts (Go + Python) by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/850
- chore(desktop): one-click deploy tracks the latest production cloud image by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/848
- fix(control-plane): require a trusted caller for package install and credential endpoints by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/856
- fix(release): restore macOS signing and let containerized control planes be managed by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/857
- fix(sdk-go): send the API key on every control-plane request by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/858
- fix(release): bundle the OpenTofu deploy engine into desktop installers by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/859
- fix(release): deploy-engine assert false-positives under pipefail by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/860
- fix(control-plane): reconcile must honor granted node status leases by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/851
- Preserve file modes when installing a package by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/865
- Don't reap executions that are waiting on a child by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/867
- chore(deps-dev): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/Agent-Field/agentfield/pull/866
- chore(deps): bump the uv group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/Agent-Field/agentfield/pull/869
- Add MiniMax voice cloning support by @octo-patch in https://github.com/Agent-Field/agentfield/pull/870
- Offer a single SWE node, and let a manifest declare itself superseded by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/864
- Consolidate the SWE and PR-AF nodes in the app, and make installs superseded-aware by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/873
- Provision a Go toolchain at install time, the way Python's already is by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/875
- Stop probing for a Python venv when starting a Go node by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/876
- chore(sdk/python): enable ruff ASYNC lint rules to gate async/blocking hazards (#620) by @7vignesh in https://github.com/Agent-Field/agentfield/pull/812
- docs(readme): lead the pr-af card with its Code-Review-Bench result by @oktaygoktas in https://github.com/Agent-Field/agentfield/pull/877
- chore(deps): bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in https://github.com/Agent-Field/agentfield/pull/871
- fix(install): stop a second install from seizing a running control plane by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/879
- fix(install): ignore wedged runs when deciding whether the server is busy by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/880
- fix(desktop): agents table '…' dropdown clipped by panel overflow by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/881
- feat(typescript): add server-side memory event filters by @Jonesxq in https://github.com/Agent-Field/agentfield/pull/838
- test(typescript): expand multimodal coverage by @Jonesxq in https://github.com/Agent-Field/agentfield/pull/846
- Add MiniMax H3 video v2 support by @octo-patch in https://github.com/Agent-Field/agentfield/pull/854
- Add MiniMax text-to-speech support by @octo-patch in https://github.com/Agent-Field/agentfield/pull/852
- Add MiniMax image generation support by @octo-patch in https://github.com/Agent-Field/agentfield/pull/853
- chore(readme): sync utm-links.csv and guard it in CI by @oktaygoktas in https://github.com/Agent-Field/agentfield/pull/878
- chore(deps-dev): bump electron from 39.8.5 to 39.8.10 in /desktop in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/Agent-Field/agentfield/pull/882
- fix(security): bump brace-expansion for CVE-2026-14257 DoS by @santoshkumarradha in https://github.com/Agent-Field/agentfield/pull/855
- feat: add a Parallel search option to the deep research example by @georgeatparallel in https://github.com/Agent-Field/agentfield/pull/863
- feat(sdk/go/ai): support the Infron gateway by @meridah7 in https://github.com/Agent-Field/agentfield/pull/874
- fix(sdk/go/ai): two follow-ups to the Infron gateway integration (#874) by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/884
- fix(security): close selected npm Dependabot alerts (fast-uri, postcss, hono) by @santoshkumarradha in https://github.com/Agent-Field/agentfield/pull/883
- fix(ci): build UI images on bookworm and pin desktop security overrides by @santoshkumarradha in https://github.com/Agent-Field/agentfield/pull/868
- fix(sdk/python): forward MiniMax v1 video optional fields regressed by #854 by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/886
- Make agent installs work on cloud deployments, and make re-run deploy a real upgrade path by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/887
- feat(desktop): open the workspace-sync port when we deploy a control plane by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/885
- feat: make the workspace handle reachable — provision furrow, fix the skill, expose the address by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/890
- chore(deps): bump js-yaml from 4.3.0 to 4.3.1 in /desktop in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/Agent-Field/agentfield/pull/892
- Fix macOS Go scaffold happy path by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/894
- fix(control-plane): make the execution cleanup initial delay testable by @0xHerm in https://github.com/Agent-Field/agentfield/pull/897
- fix(sdk/python): replace bare asyncio.run() with loop-aware helpers (#620) by @7vignesh in https://github.com/Agent-Field/agentfield/pull/899
- feat(harness): aforge provider + per-run isolation of the schema output file by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/891
- fix(sdk/python): resolve ResultCache cross-loop deadlock (#623) by @7vignesh in https://github.com/Agent-Field/agentfield/pull/799
- test: add coverage for GinLogger middleware (#557) by @santoshkumarradha in https://github.com/Agent-Field/agentfield/pull/895
- chore(deps): bump js-yaml to 4.3.1 by @santoshkumarradha in https://github.com/Agent-Field/agentfield/pull/898
- fix(sdk/python): run destructor cleanup synchronously when no loop is running (#620 follow-up) by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/902
- fix(harness): bound CLI output capture (16MB/stream, env-tunable) by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/903
- chore(deps): bump nanoid to 3.3.17 by @santoshkumarradha in https://github.com/Agent-Field/agentfield/pull/900
- fix(go-sdk): allow custom HTTP clients for AI requests by @mikemikimike in https://github.com/Agent-Field/agentfield/pull/908
- feat(harness): add Grok Build CLI provider by @storyicon in https://github.com/Agent-Field/agentfield/pull/861
- fix(sdk/python): add lock timeouts + offload blocking requests fallback (#620) by @7vignesh in https://github.com/Agent-Field/agentfield/pull/904
- feat(sdk/go): triggers package + OnEvent/OnSchedule sugar (#513) by @7vignesh in https://github.com/Agent-Field/agentfield/pull/906
- fix(sdk/python): harden cross-loop teardown by @mikemikimike in https://github.com/Agent-Field/agentfield/pull/907
- Seamless agent use: cloud-aware skill, native Codex install, self-healing skill sync by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/910
- feat(sdk/go): dispatch envelope unwrap + Context injection (#514) by @7vignesh in https://github.com/Agent-Field/agentfield/pull/914
- feat(sdk/go): trigger test helpers + fixture library (#515) by @7vignesh in https://github.com/Agent-Field/agentfield/pull/915
- feat(sdk/go): add Agent.Span for traced in-process sub-executions by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/916
- fix: repair broken quickstart flows — Go docs/examples, docker scaffolds, TS template by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/918
- fix(ui): only prompt for the admin token when the server enforces one by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/920
- feat(examples): triggers-demo-go end-to-end demo + Go skill docs (#516) by @7vignesh in https://github.com/Agent-Field/agentfield/pull/917
- fix(sdk): preserve multimodal args with user prompt by @mikemikimike in https://github.com/Agent-Field/agentfield/pull/923
- fix: resolve high-severity npm dependency alerts by @santoshkumarradha in https://github.com/Agent-Field/agentfield/pull/922
- feat(install): provision the aforge harness binary alongside af (curl, desktop, docker) by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/924
- feat(harness): make aforge the default provider across Python, Go, and TypeScript by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/905
- fix(sdk/python): exclude litellm 1.97.0 (crashes app.ai() on Python 3.10) by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/925
- fix(install): make --no-aforge actually skip the aforge download by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/926
- docs: feature Person to Brief AF by @santoshkumarradha in https://github.com/Agent-Field/agentfield/pull/912
- fix(harness): staging installs put aforge beside af; doctor exits 0 on a survey; doctor knows grok by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/927
- fix(harness): attribute default-provider runs to aforge, set HarnessResult.model, pass max_turns to aforge by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/928
- fix(sdk/go): attribute default-provider harness runs to aforge, prefer result.Model by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/929
- fix(sdk/typescript): pass claude-code options to claude-agent-sdk in camelCase by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/931
- fix(sdk/go,sdk/typescript): gemini argv — drop the nonexistent -C flag, map permission modes like Python by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/932
- fix(sdk/typescript): opencode surfaces exit-0 stderr failures and signals as errors by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/933
- fix(sdk/typescript): convert zod 4 schemas with the native toJSONSchema by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/935
- fix(sdk): send X-OpenRouter-Categories on OpenRouter requests by @santoshkumarradha in https://github.com/Agent-Field/agentfield/pull/930
- fix(sdk/typescript): honour AGENTFIELD_SERVER for the default control-plane URL by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/934
- fix(install): disable VCS stamping when building Go agent nodes by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/938
- Ship the desktop app with bundled agent nodes, missing-key surfacing, and the offload-by-default skill by @santoshkumarradha in https://github.com/Agent-Field/agentfield/pull/937
- fix(assets): correct garbled text in README features-strip banner by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/940
- Bundle sec-af and cloudsecurity-af with the desktop app by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/939
- fix(control-plane): stop counting agent restarts as failed executions by @santoshkumarradha in https://github.com/Agent-Field/agentfield/pull/941
- fix(ci): stop functional-test runs from reporting to production telemetry by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/942
- fix(execute): resolve webhook not triggering on async status callback (#936) by @7vignesh in https://github.com/Agent-Field/agentfield/pull/943
- fix(execute): propagate agent 4xx in async lane instead of blanket 502 by @7vignesh in https://github.com/Agent-Field/agentfield/pull/945
- fix(go-sdk): preserve structured AI API errors by @mikemikimike in https://github.com/Agent-Field/agentfield/pull/948
- fix(execute): make terminal status callbacks idempotent, reject cross-terminal rewrites by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/951
- fix(storage): row-lock postgres read-modify-write updates — lost-update race stalled builds by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/953
- feat(control-plane): add per-key rate limiting on hot endpoints by @7vignesh in https://github.com/Agent-Field/agentfield/pull/952
- chore(deps): bump nanoid overrides to 3.3.18 by @santoshkumarradha in https://github.com/Agent-Field/agentfield/pull/919
- fix: Update reinstalls catalog nodes from the catalog source; expose each package's recorded source by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/956
- fix(sdk): make async teardown exception-safe by @mikemikimike in https://github.com/Agent-Field/agentfield/pull/950
- fix(sdk/go): propagate caller context through MemoryBackend interface by @7vignesh in https://github.com/Agent-Field/agentfield/pull/958
- test(storage): extend config lifecycle coverage by @ump45nose in https://github.com/Agent-Field/agentfield/pull/949
- feat: desktop-driven and automatic updates for the cloud control plane and installed agents by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/957
- refactor(storage): split local.go into focused files (9009 -> 5917 LOC) by @7vignesh in https://github.com/Agent-Field/agentfield/pull/959
- fix(openrouter): auto-switch stream=false for non-pcm16 audio formats… by @fcy222fcy in https://github.com/Agent-Field/agentfield/pull/962
- fix(skillkit): install OpenCode skills via native symlinks by @mikemikimike in https://github.com/Agent-Field/agentfield/pull/947
- ci(release): retry the multi-arch image builds once and make npm publish re-runnable by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/964
- desktop: make Railway image auto-updates real — set the policy through the environment config and show Railway's live state by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/974
- test(control-plane): make the UI service storage stub safe for concurrent StatusManager calls by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/973
- docs: correct memory scope docs, the app.memory API list, and the exists() promise by @AbirAbbas in https://github.com/Agent-Field/agentfield/pull/966
New Contributors
- @ivanvza made their first contribution in #62
- @ivasuy made their first contribution in #100
- @huseynovvusal made their first contribution in #123
- @SwekeR-463 made their first contribution in #124
- @XYuktaaa made their first contribution in #127
- @hed1ad made their first contribution in #135
- @BenjaminGoehry made their first contribution in #160
- @vkbui made their first contribution in #171
- @1khazipov made their first contribution in #184
- @iammohitvs made their first contribution in #191
- @ro-robles made their first contribution in #300
- @JaredAung made their first contribution in #307
- @CommitHu502Craft made their first contribution in #308
- @AdityaNair-jpg made their first contribution in #315
- @oktaygoktas made their first contribution in #327
- @glitch-ux made their first contribution in #331
- @deensaleh made their first contribution in #332
- @tmchow made their first contribution in #338
- @dependabot[bot] made their first contribution in #346
- @AnandKrishnamoorthy1 made their first contribution in #447
- @Luffy2208 made their first contribution in #448
- @shuaixr made their first contribution in #446
- @Samyak17Jain made their first contribution in #482
- @kiranannadatha8 made their first contribution in #481
- @dhanadeep6 made their first contribution in #499
- @Baradwaz-122 made their first contribution in #502
- @nikzor made their first contribution in #503
- @SAY-5 made their first contribution in #519
- @dinzz005 made their first contribution in #505
- @Sadit007 made their first contribution in #520
- @Manzela made their first contribution in #573
- @sarvesh1327 made their first contribution in #590
- @akmhatey-ai made their first contribution in #574
- @glmgbj233 made their first contribution in #581
- @tha-hammer made their first contribution in #637
- @DebanKsahu made their first contribution in #631
- @ardittirana made their first contribution in #679
- @pocesar made their first contribution in #618
- @7vignesh made their first contribution in #701
- @jaythehardcoder made their first contribution in #703
- @Rachit-Gandhi made their first contribution in #693
- @jstar0 made their first contribution in #756
- @octo-patch made their first contribution in #783
- @Jonesxq made their first contribution in https://github.com/Agent-Field/agentfield/pull/838
- @georgeatparallel made their first contribution in https://github.com/Agent-Field/agentfield/pull/863
- @meridah7 made their first contribution in https://github.com/Agent-Field/agentfield/pull/874
- @0xHerm made their first contribution in https://github.com/Agent-Field/agentfield/pull/897
- @mikemikimike made their first contribution in https://github.com/Agent-Field/agentfield/pull/908
- @storyicon made their first contribution in https://github.com/Agent-Field/agentfield/pull/861
- @ump45nose made their first contribution in https://github.com/Agent-Field/agentfield/pull/949
- @fcy222fcy made their first contribution in https://github.com/Agent-Field/agentfield/pull/962
Full Changelog: https://github.com/Agent-Field/agentfield/commits/v0.1.135-rc.5