Arcade 1.9.4

App version 5e662d5 · released 2026-07-17 · previous 1.9.3

Release notes

This release adds chart capabilities for private-registry and Gateway-API installs, refreshes the bundled application images (appVersion 491dd65 → 5e662d5), and rolls up two weeks of application fixes. A standard helm upgrade rolls out the new images. All new chart values are opt-in and default to the previous behavior — no secrets, RBAC, or migration changes are required.

Added

  • Configurable init-container support images. New supportImages.busybox and supportImages.curl (repository / tag / pullPolicy) let air-gapped and private-registry installs mirror the init images off Docker Hub. Defaults unchanged.
  • Gateway API health checks for the engine, dashboard, and experience-api. The chart now renders a TargetGroupConfiguration for each (previously only the coordinator); set the path via <service>.service.healthCheckPath (defaults: engine /v1/health, dashboard /health, experience-api /).
  • Per-worker extra environment variables via workers[].extraEnv (a raw EnvVar list, defaulting from workerDefaults.extraEnv), appended last to the worker container — e.g. to scope a worker to a single tool package.
  • Gmail toolkit gains message tools (get_email, forward_email, untrash_email) and label / conversation tools (update_label, delete_label, set_thread_trash_status).
  • Linear toolkit gains a list_project_updates read tool.

Changed

  • Excel create_or_edit_workbook now produces formatted workbooks by default (number formats, native tables, fonts) instead of raw values, matching the Google Sheets tool. No new tools or schema changes.

Fixed

  • Login and registration no longer loop back to the sign-in page or require a second sign-in when the identity (OIDC) session and the dashboard session diverge.
  • The dashboard no longer crash-loops on hardened non-root deployments (containerSecurityContext.enabled: true): the nginx config-render step gets writable volumes so /health is created and the liveness probe passes.
  • First-time rbac.enabled upgrades no longer stall: the coordinator DB-migration and seed hooks stop referencing the not-yet-created OpenFGA token secret. Non-RBAC installs are unaffected.
  • Jira create-issue validation failures now return a clean error envelope instead of crashing on inaccessible parent issues or inflating fatal-error counts.

Security

  • Disabled gateways now block tool access. A gateway set to inactive rejects both tools/list and tools/call; previously, existing sessions and allow-list-only gateways could still list and call its tools.
  • Postgres SELECT toolkit hardened: assembled queries are validated against a parsed AST and rejected if they carry any DML / DDL, stacked statements, or data-modifying CTEs. Results stream with a row cap and connections no longer persist across calls. Tool names, parameters, and return shapes are unchanged.
  • Operator RBAC, when enabled, is now enforced on the org-level plugin, hook, and auth-provider read endpoints, matching their create / update / delete siblings. Affects only organizations with operator RBAC enabled.

Operator impact

  • appVersion moves to 5e662d5, shipping current coordinator / engine / worker / dashboard / experience-api (and OpenFGA) images.
  • Private-registry / air-gapped installs (optional). Set supportImages.* to mirror the init-container images (busybox, curlimages/curl) into your registry — required to keep the migration / seed / reconcile Helm hooks off Docker Hub.
  • Gateway API health checks. When gateway.enabled, the engine, dashboard, and experience-api now get a TargetGroupConfiguration with a sensible default health path. Override per service with <service>.service.healthCheckPath.
  • Per-worker env (optional). workers[].extraEnv (or workerDefaults.extraEnv) appends raw env vars to a worker container.
  • Hardened deployments. If you run containerSecurityContext.enabled: true with readOnlyRootFilesystem: false, the dashboard crash-loop is fixed — no action required.
  • Operator RBAC (optional). First-time rbac.enabled upgrades no longer need the manual OpenFGA-secret pre-create workaround. When RBAC enforcement is enabled for an org, org-level plugin / hook / auth-provider reads now require org_admin.

API & behavior

  • An inactive gateway rejects tools/list and tools/call.
  • Gmail, Linear, and Jira gain or refine tools; Excel workbooks are formatted by default.