Skip to content

v0.1.68

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Aug 12:10
1a9dc1f

Ark 0.1.68

Released 20 Aug 2026 · covers Ark core v0.1.67 → v0.1.68 and Marketplace v0.1.40 → v0.1.42

Docs: Ark · Marketplace

The headlines this release: the dashboard has been re-skinned end to end onto the QuantumBlack Design System, you can now build Argo workflows by talking to Ark, sessions survive a restart when you put the broker on Postgres, and a single team can mix Ark-native agents with Claude Agent SDK / LangChain agents. Everything else is below.


Workflows & Argo

Writing Argo WorkflowTemplate YAML by hand is the slowest part of getting an agent pipeline into production. You can now do it in conversation.

  • Argo Make authoring studio — describe the pipeline you want in the dashboard and Ark drafts the WorkflowTemplate. Marked experimental on first use, so nobody mistakes it for a finished product.
  • Conversation continuity across workflow steps — the ark-query template accepts a conversation-id, so steps in the same workflow share context instead of starting cold. Session id defaults to wf-<workflow-name> when you don't set one. → Workflows guide
  • Reliable template install — the ark-query WorkflowTemplate now installs cleanly via Helm, and standalone install is documented.

Protocol & core runtime

  • A2A status updates and artifacts render separately — progress messages and returned artifacts are distinct chat messages instead of one merged blob. → Building A2A servers
  • The hardcoded 5-minute A2A ceiling is gone — long-running agent calls run to completion. MCP connection setup is bounded separately so a dead endpoint still fails fast. → A2AServer reference
  • Queries honour spec.timeout — an overrunning query fails with an explicit TimedOut* reason rather than hanging indefinitely.
  • phase: queued — when the Query controller semaphore is full, queries report queued instead of looking stalled.

Teams & agents

  • Mixed teams — one Team can hold both Ark-internal agents and engine-backed agents (Claude Agent SDK, LangChain). Previously you had to pick one world. → Teams guide
  • Named execution engines for team members — members dispatch to the engine they're actually configured for. → ExecutionEngine reference
  • Execution engine persists on edit — editing an agent no longer silently drops its engine.
  • Agents with no model report as unavailable — surfaced up front instead of failing at query time.

Sessions, chat & streaming

  • Sessions on Postgres (opt-in) — set backends.sessions: postgres and sessions survive a broker restart. Joins the existing message and event backends; the whole set is HA-ready. → ark-broker
  • Faster streams — Postgres filters and aggregates pushed into SQL rather than the Node process.
  • Conversation continuity fixes — chat survives a missing final stream chunk, the terminal query phase is no longer lost to out-of-order events, and full conversation history is fetched with memory read failures surfaced instead of silently falling back.
  • Broker stability — a NODE_OPTIONS heap cap stops OOM crashes that were happening well under the container limit; cache metrics are now exposed.

Marketplace & dashboard

  • Azure DevOps marketplace sources — point marketplace settings at an Azure DevOps repo URL and it resolves correctly. → Marketplace guide
  • Server-side pagination for every resource type — large namespaces stop timing out the UI.
  • Papercuts fixed/sessions no longer crashes on workflows without status, the workflow runs page stopped flooding the backend with requests, and chat auto-scrolls.

Design system migration

The largest single change in this release. The dashboard has been restyled end to end onto the QuantumBlack Design System (QBDS) — 396 files, ~27.5k insertions across 88 commits. It is a visual and interaction migration: screens are re-skinned onto QBDS tokens, icons and components, with no new product features riding along.

  • QBDS foundation — the @qbds shadcn registry is wired into components.json, so components come from the design system rather than being hand-rolled. globals.css is rebuilt around semantic tokens: surface, stroke, foreground and status colours, plus a full font size / line-height / weight scale.
  • Screens rebuilt on the new system — exports, memory, and the broker views, each with before/after in their PRs. Workflow card borders corrected after the migration.
  • Docs typography aligned — the documentation site now uses Inter and Geist Mono to match the getark.ai landing page.

Net effect: colours, type, spacing and controls are consistent from page to page, and future screens inherit the system instead of re-inventing it.

New marketplace components

  • kubernetes-mcp-server — read-only Kubernetes MCP, so agents can inspect cluster state without being able to change it.
  • argo-make-author — the agent behind the authoring studio. Now guides conversation/session ids, workflow parameters, and tool query targets.

Security & auth

  • Multiple JWT audiences per ark-api — one deployment accepts tokens from several audiences. → Multi-tenant hosting
  • API key creation requires authorization, and auth scopes are now configurable. → Authentication
  • MCP token re-generation — tokens between an agent and an MCPServer refresh rather than expiring mid-session; the runtime MCP path injects the bearer correctly. → MCPServer reference
  • Fail closed on a misconfigured OIDC_APPLICATION_ID — requests are rejected instead of waved through.
  • Credentials redacted across all ark-api loggers and OTel traces exported by the controller.
  • No raw secret annotations from ark-sdk.

Models & SDK

  • Model reads served from a watch-backed cache — the completions executor stops hammering the API server on every query.
  • Clearer model probe failures — unknown probe errors now surface a real reason.

Postgres backend & operations

  • Postgres TLS verification and custom CA bundles for the aggregated apiserver. → Postgres storage backend
  • WAL consumer behind leader election — safe to run multiple apiserver replicas, and an idle publication can no longer pin cluster WAL.
  • Clean uninstall — the replication slot and publication are dropped.
  • Outage hardening — the connection path survives DB restarts, watches resume from client resourceVersion, and watch relists collapse to one per kind instead of one per watcher.
  • Controller metrics ServiceMonitor enabled by default — Prometheus scrapes the controller with no extra config. → Monitoring

CLI & developer experience

  • Optional marketplace installs in ark-cli — offers kubernetes-mcp-server and argo-make-author during setup.
  • Portable ark exports — exports strip Kubernetes runtime metadata and re-import cleanly onto another cluster. → ark-cli
  • ark-mcp cold start: ~120s → ~24s.

Upgrade notes

Full guide: Upgrading

Aggregated apiserver audit logging is on by default

PostgreSQL-backend deployments only; CRD/etcd deployments are unchanged. Expect one Metadata-level audit record per Ark API request, reads included, written as JSON to the apiserver's stdout. On a busy cluster that is a noticeable jump in log volume.

If that's a problem, pick one:

  • add polling identities to audit.excludeReadsByUsers (the controller ServiceAccount is already excluded)
  • audit.level=None — backend wired, nothing recorded
  • audit.enabled=false — off entirely
  • audit.policy — supply a full audit.k8s.io/v1 policy

Note that audit.level: Request or RequestResponse puts Query .spec.input and model output into your log pipeline. Treat that as a data classification decision.

Regenerate old CLI exports before using --upsert

Exports produced by older ark-cli versions carry stale metadata.resourceVersion and status fields. Regenerate or clean them first. --upsert applies desired state and can overwrite existing specs and application Secret values.

Controller ServiceMonitor is now created by default

If you already ship your own ServiceMonitor for the controller, disable the chart's to avoid duplicate scrape targets.

Team strategy and member types are enforced by CRD schema

Invalid values are now rejected at admission, and the stale graph executor path has been removed. Validate existing Team manifests before upgrading. (Not yet written into the upgrade guide — tracking a docs follow-up.)

The broker is still in-memory by default

Messages, chunks, traces, events and sessions are wiped when the broker pod restarts, unless you opt into the Postgres or Redis backends.


Coming next — sprint 0.169

  • Team transcripts forwarded to A2A members, so engine-backed members see the full team conversation
  • Tool-call activity surfaced live on the broker stream from executors
  • MemoryUnavailable / MemoryDegraded conditions that survive terminal status writes
  • Correct HITL handling — completed external A2A tasks stop being misclassified as human-in-the-loop resumptions
  • Machine-to-machine OAuth for MCPServer (client credentials)
  • More screens on the new design system: Configurations, A2A Servers, A2A Tasks, Events, API Keys flows, deployment information, and Tools grouped by MCP server
  • Per-Query guardrails on controller impersonation, which is currently default-on and RBAC-unrestricted

Full list of PRs below

0.1.68 (2026-08-20)

Features

  • a2a: separate status updates and render artifacts as distinct chat messages (#2942) (335426d)
  • add Azure DevOps URL handling in marketplace settings (#3078) (7ffb0bc)
  • add conversational Argo WorkflowTemplate authoring studio (#2825) (fe24365)
  • Add custom auth scopes (#2949) (27da1cc)
  • apiserver: gate WAL consumer behind leader election (#2880) (2e8f871)
  • apiserver: support Postgres TLS verification and custom CA bundle (#2627) (6ad2d51)
  • argo-workflows: support conversation-id in ark-query template (#3036) (0d76601)
  • ark-cli: offer kubernetes-mcp-server and argo-make-author as optional marketplace installs (#2861) (cc3347d)
  • ark-dashboard: warn that Argo Make chat is experimental on first use (#3107) (e2e6a49)
  • auth: support multiple JWT audiences per ark-api (#3232) (386b23d)
  • broker QBDS update (#3082) (6ed6345)
  • broker: Phase 4 — sessions on Postgres (opt-in, HA-ready) (#3004) (24e5294)
  • chart: Enable the controller metrics ServiceMonitor by default (#3141) (fc15b5f)
  • controller: allow mixed internal and engine-backed agents in one Team (#3207) (e22c7b7)
  • controller: expose phase: queued when Query controller semaphore is full (#2956) (1853c0f)
  • controller: fail Query on spec.timeout elapsed with TimedOut* reason (#3027) (b0acbef)
  • default ark-query session id to wf-<workflow-name> (#2913) (ef918b5)
  • exports screen updated (b069a74)
  • exports screen updated (#3031) (b069a74)
  • MCP token re-generation between agent and MCPServer (#3126) (20a439c)
  • mcp: add MCPServer.spec.toolCallTimeout to bound individual tool calls (#3073) (35d8d35), closes #3032
  • mcp: retry transient MCP tool-call errors (#3049) (3efa1c2)
  • memory screen updated (#3034) (d2c66f1)
  • qb design migration (#2151) (afbfcb8)
  • server-side pagination for all resource types (#2948) (37d4fed)

Bug Fixes

  • a2a: lift hardcoded 5m A2A ceiling and bound MCP connection setup (#3047) (1457253)
  • apiserver: ack the server WAL position so an idle publication cannot pin cluster WAL (#3023) (3dfc9ce)
  • apiserver: collapse O(watchers) PostgreSQL watch relists to one per kind (#2721) (2c68a31)
  • apiserver: drop PostgreSQL replication slot and publication on uninstall (#2800) (2cdd892)
  • apiserver: harden PostgreSQL connection path against DB outages (#2965) (92df5a9)
  • argo-workflows: reliably install ark-query WorkflowTemplate via helm (#2936) (f858087)
  • ark-api: require authorization to create API keys (#3137) (4a03f4d)
  • ark-broker: Add NODE_OPTIONS heap limit and expose cache metrics (#3093) (be4fdb3)
  • ark-broker: terminal query phase lost when a reordered non-terminal event raises the sequence watermark (#3209) (adef3a1)
  • ark-cli: make ark exports portable (#3105) (9bb243a)
  • ark-sdk: stop returning raw secret annotations (#3101) (63f9eae)
  • auditing & admission policy gap in ARK's aggregated (PostgreSQL) apiserver (#3053) (9d47f49)
  • auth: fail closed on a misconfigured OIDC_APPLICATION_ID (#3244) (a98bae3)
  • bump golang.org/x/net, golang.org/x/text, ip-address (#3014) (ee6fbcb)
  • bump next / postcss / @faker-js/faker / browserslist / go-openapi/swag for High-severity CVEs (#2958) (aeae80b)
  • bump next-auth to 5.0.0-beta.32 in ark-landing-page for Auth.js advisories (#3002) (2336939)
  • bump next-auth/@auth/core and brace-expansion for security advisories (#2994) (f6dbda3)
  • bump sharp and grpc-go for newly-disclosed CVEs (#2950) (6f59e93)
  • bump undici to 7.29.0 in docs and ark-broker for CVE-2026-13697 (#3052) (e2127f8)
  • ci: make xray violation gate self-contained (#3239) (ce0c779)
  • ci: probe apiserver reachability before k3s bootstrap RBAC check (#2980) (7674058)
  • completions: serve Model reads from a watch-backed cache (#3045) (ff00055)
  • controller: add error-level log to query dispatch failure paths (#3021) (f10facd)
  • controller: mark query errored on async execute panic and stop nil telemetry deref in tests (#3016) (e9437f1)
  • controller: model probe unknown error (#3152) (4f0113b)
  • dashboard marketplace settings gate (#3046) (f6ab299)
  • dashboard: correct workflow card border color after design migration (#3068) (e13ebc4)
  • dashboard: prevent /sessions crash on workflows without status (#3028) (55c8d61)
  • dashboard: restore chat conversation continuity when final stream chunk is missing (#2922) (6abceee)
  • dashboard: stop workflow runs page from flooding the backend with requests (#2975) (e7e2184)
  • deps: bump cryptography to 50.0.0 in ark-mcp (#3192) (44f56b2)
  • deps: bump grpc to v1.83.1 to address XRAY-1057286 (#3234) (f8c0056)
  • deps: patch nanoid and postcss for remaining Dependabot CVEs (#3191) (46491eb)
  • deps: update js-yaml to version 4.3.1 across multiple packages (#3092) (d5b55ec)
  • docs: bump @xmldom/xmldom to 0.9.11 for XRAY-1050796/799/801 (#3190) (b58ac4a)
  • enforce DeleteOptions.Preconditions in aggregated apiserver registry (#2907) (538e94e)
  • enforce Team strategy/member-type via CRD schema and drop stale graph executor path (#2876) (a7d395d)
  • executor: dispatch team members to named execution engines (#3185) (9ba64b0)
  • executor: fetch full conversation history and surface memory read failures (#3020) (f8c0847)
  • executor: surface silent memory fallback when conversationId is set (#2899) (8fc9e26)
  • implement auto-scrolling in chat panel and message display (#3009) (ff7da28)
  • lowercase fork registry namespace for container cache tags (#2984) (3eb6b6d)
  • mark agents with no model as unavailable (#2921) (53f21f1)
  • mcp: inject authorization bearer on the runtime MCP path (#3111) (478f0eb)
  • mcp: revert go-sdk to v1.6.1 restoring pre-2026-07-28 MCP server support (#3220) (c638642)
  • patch protobufjs and axios CVEs (JFrog Xray findings) (#2931) (805eba1)
  • postgresql: resume watch from client resourceVersion (#3120) (9f31269)
  • query async execution (#2916) (05ea6aa)
  • quote publication name in DROP PUBLICATION with pq.QuoteIdentifier (#2968) (1649759)
  • redact credentials across all ark-api loggers (#2939) (bb9b309)
  • redact creds from OTel traces exported by the ark controller (#3019) (94a0273)
  • restore canonical Apache-2.0 license and add NOTICE, SECURITY.md (#2990) (281601c)
  • save execution engine when updating agents (#3184) (e96f125), closes #3178
  • security: bump fast-uri to 3.1.5 to address CVE-2026-18446 (#3085) (67c1487)
  • security: bump golang.org/x/mod to 0.40.0 for CVE-2026-56864/56865 (#3215) (e9f092e)
  • security: bump nanoid to 3.3.18 in docs to fix CVE-2026-67213 (#3212) (26d4d0b)
  • security: resolve Xray CVE violations (nanoid whitelist + Go 1.26.6 bump) (#3206) (2c77b35)
  • tests: scan asset attributes in dashboard basepath probe (#3140) (c1c0f95)
  • update brace-expansion dependency to version 5.0.9 across multiple packages (#3071) (d2feadf)

Performance Improvements

  • ark-mcp: reduce cold-start deploy time from ~120s to ~24s (#3022) (00da13a)
  • broker: push Postgres stream filters and aggregates into SQL (#2896) (084286a)

Documentation

  • add openspec change for dashboard URL param contract (#3124) (716afa5)
  • add openspec change for explicit dashboard namespace scoping (#3125) (7f41187)
  • add openspec proposal for engine-backed team members (#3116) (#3171) (a22528b)
  • adopt ark-query template for workflow steps and document standalone install (#2914) (cf72600)
  • correct replication-slot uninstall behaviour, version floor and replication privilege in postgres guide (#3168) (ca4155f)
  • document opt-in Postgres event backend for ark-broker (#2977) (57ed73b)
  • document opt-in Postgres sessions backend for ark-broker (#3118) (f0c4001)
  • Release process and authentication scopes (#3029) (fe78402)
  • use Inter and Geist Mono to match the getark.ai landing (#3183) (b3f9051)