# Changelog

<!-- last-release-commit: 4831eb205a2581d6f90f91054a845b66d8b9ca49 -->
<!-- The line above is read/written by scripts/changelog-release.js. Don't
     edit it by hand. It anchors "what's new since the last release" for the
     `npm run release` automation. Also published live at matimo.ai/changelog
     (public marketing page + GET /api/changelog); see the frontend-svelte
     (marketing)/changelog route and src/backend/src/api/changelog.ts. -->

All notable changes to the **Matimo Workbench** build are documented in this
file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/).

## Versioning policy

- **Build version** (this file, and the root [`package.json`](package.json))
  tracks the overall Matimo Workbench product/platform as a whole. Bump it
  for any release-worthy change across backend, Studio, or Admin.
- **Workspace packages** (`src/backend`, `src/shared`, `src/frontend-studio`,
  `src/frontend-svelte`) version **independently** in their own
  `package.json`, bumped only when that specific package changes. Their
  versions are not required to match the build version above.
- Versioning starts formally at **1.1.0** (2026-08-24). Everything at or
  before **1.0.0** (the 2026-08-15 GA launch) is summarized retroactively as a
  single baseline entry below. Commit-level history before that point is
  available via `git log`, not itemized here.
- Bump type: **MAJOR** for breaking API/schema changes, **MINOR** for new
  features, **PATCH** for fixes/docs/chores. Update the version in the root
  `package.json` in the same commit/PR that adds the corresponding entry
  below.
- **Automated:** run `npm run release` to generate the next dated version
  section from conventional commits (`feat`/`fix`/`docs`/etc.) since the last
  release, bump the root `package.json` version, and update this file. It's a
  local, developer-run script: it edits the working tree only, never commits,
  tags, or pushes; review the diff and commit it yourself. See
  `scripts/changelog-release.js`.
- This file is also published live at
  [matimo.ai/changelog](https://matimo.ai/changelog) (and as JSON at
  `GET /api/changelog`), so there's no separate copy to keep in sync.

## [Unreleased]

_Nothing pending yet. Add new entries here as work merges, then cut them
into a dated version section on release._

## [1.3.1] - 2026-11-10

### Fixed

- The backend and worker no longer fail to start when the database is reached
  through a connection proxy such as Amazon RDS Proxy. The proxy rejects two
  server-side timeout settings that the database connection sent on every new
  connection; they are now left out behind a proxy, and the application's own
  query timeout still applies. 1.3.0 has this problem and should not be run
  against a database proxy.
- The landing page header no longer covers the Matimo logo at the top of the
  page on desktop-width screens.

### Documentation

- Record how releases are cut and deployed, including the first-release setup,
  the problems found, and what to check before deploying.

## [1.3.0] - 2026-11-09

The release that makes Matimo a governance platform for every agent you run,
not only the ones built in Matimo. Matimo Gateway and the Matimo AGDK bring
agents built on other frameworks under the same policies, Guardrails,
approvals, budgets and audit trail. Alongside it: unified LLM budgets and
spend tracking, release management and no-code data tools in Studio, the
Matimo Agent assistant, and voice agents.

### Added

- **Matimo Gateway**: a governed LLM proxy and router for agents built
  outside Matimo (LangChain, CrewAI, Google ADK, AutoGen, or plain Python).
  Point an OpenAI or Anthropic client at Matimo by changing one base URL and
  every call is identified, checked against your policies and Guardrails,
  capped by your budgets, and audited. Your own provider key stays on the
  Matimo side, so the agent never holds it. Includes an OpenAI-compatible
  chat route and an Anthropic messages route, a health probe, and
  cancellation of in-flight calls when a client disconnects.
- **Matimo AGDK**: a Python kit that gives an outside agent a cryptographic
  identity, mandatory telemetry, and an opt-in policy check on every tool
  call, with human approval where your policy requires it. Supports identity
  key rotation and bulk registration, a session handshake, and OpenTelemetry
  GenAI telemetry.
- **Gateway controls**: virtual keys with their own budget, rate limit and
  model list (including self-service keys), spend caps with a reset period,
  model aliases and load-balanced deployment groups, a response cache, and
  Guardrails that can be bound to specific external agents or to all of
  them.
- **Gateway Observability**: charts, run traces, per-agent decision traces,
  span search, anomaly detection, and budget and pool-health alerts. External
  agents now also appear on the Fleet dashboard and the Workers page, and
  Gateway activity is summarised in compliance export reports.
- **Unified LLM budgets and spend tracking**: one spend ledger for native
  agent calls and Gateway calls, with budgets at organization, team, person,
  virtual key, agent, model and provider scope. Calls with no known price are
  flagged instead of shown as zero, with a usage report you can download as
  CSV and a nightly reconciliation. Budget increase requests and approvals,
  a People page that merges users, teams and budgets, and "My usage" and "All
  spend" dashboard views.
- **Studio workflow releases**: Draft, In review and Published states. Keep
  editing while the live version stays untouched, have a reviewer approve a
  change, and roll back in one click. Schedules, webhooks and sub-workflow
  runs execute the published version. A sole owner or admin can approve their
  own release.
- **Studio live execution trace**: watch a run step by step on the canvas,
  including nested runs, and see what each step received and returned.
- **No Code Data step**: add or change fields with fixed values, earlier-step
  fields, or formulas you click together, with a live preview, an incoming
  data panel and `run.startedAt`. No JavaScript needed.
- **Studio data mapping**: a point-and-click payload tree to pick fields from
  earlier steps, webhook test-event capture, saved sample and example output,
  warnings when a value comes up empty, and a hint when an incoming payload
  drifts from your samples. Loop, Switch, Merge, loop-back and Output steps
  now use no-code rules. An owner and admin report shows how data mapping is
  used.
- **Studio webhook connections**: trigger a workflow with a secret key,
  username and password, a secret in the URL, or a custom signature. Includes
  duplicate protection, a delivery log, rate limiting, optional request
  metadata, and node configuration checks before a run.
- **Matimo Agent**: an expert assistant in Studio and the admin app. Ask why a
  run failed, or describe the outcome you want and it builds, tests and fixes
  the workflow with you watching, using your own model key. Includes
  conversation history, workspace notes and preferences, undo, role packs and
  skills, and purge, export and retention of its sessions.
- **Voice agents**: let people talk to an agent live and interrupt it like a
  person, and publish it on your site with an animated, lip-synced avatar.
  Bring your own key with OpenAI Realtime, Gemini Live, or any OpenAI
  compatible realtime server. Includes a Voice Agents catalog, per-agent voice
  choice, and per-deployment limits on concurrent calls.
- **Public overview docs** at matimo.ai/docs, with a status on every page, and
  `llms.txt` and `llms-full.txt` for AI agents and crawlers.
- **Policy editing**: an edit dialog for existing policies.

### Changed

- **matimo.ai landing page**: now leads with governance for agents built in
  Matimo and agents built elsewhere, with plans and prices read live from the
  backend and Google Analytics events on the main calls to action.
- Billing and usage pages show sub-cent costs, and input and output token
  totals separately.
- The managed Nemotron offering is now Nemotron Nano 3 30B, replacing Nano 9B
  and 12B.
- Studio scales to the window, and the canvas toolbar wraps instead of running
  off screen.
- Matimo OSS upgraded to 0.4.0.

### Fixed

- Scheduled Studio workflows no longer run once per backend process. The
  scheduler runs in the worker only and reloads over Redis.
- A loop-back edge no longer blocks Save or stalls the first node of the loop.
- A replayed run no longer shows as "retried" in the trace.
- Saved workflow variables are now applied on every run, not only on a draft
  Execute.
- Gateway tool calls round-trip correctly, bring-your-own-key model names are
  honored, and Anthropic guardrail blocks return a valid stop reason.
- Deleting a policy with audit history now returns a clear 409 instead of a
  database error.
- Long usage records are split so a one-million-token run can be saved.
- Pricing of dated model snapshots now resolves from the catalog alias.
- The OpenAI provider is validated with your configured model rather than a
  fixed one.

### Security

- Matimo Agent token scopes are derived from a route table instead of being
  listed by hand.
- Matimo approval secrets are derived per tenant.
- Custom webhook signature headers are kept out of request metadata, and
  webhook headers copied into a run are an allow-list.

## [1.2.0] - 2026-09-08

A governance and security-focused release: content-safety guardrails for
every agent conversation and tool call, plus real enterprise identity
federation.

### Added

- **Matimo Guardrails**: a new content-safety layer, separate from the
  Policy Engine, that screens what an agent says rather than which actions
  it takes. Covers hate speech, insults, sexual content, violence,
  misconduct, and bias/disparate treatment, with self-harm content routed to
  supportive resources instead of a flat block, a non-configurable
  child-safety floor, and deterministic secrets/PII/prompt-injection/custom
  keyword filtering. Applies to chat, agent execution, and MCP tool call
  input and output alike. Includes a "hold for review" mode that pauses an
  execution for a human decision, a Governance › Guardrails admin UI with a
  per-agent picker, a Guardrail Activity log, and built-in accuracy testing
  against a golden test set for the judge model.
- **Identity Federation**: real single sign-on via SAML 2.0, OIDC, and LDAP,
  with tenant-scoped just-in-time user provisioning. SAML has been verified
  end-to-end against live Google Workspace SSO. A guided setup tutorial was
  added to the federation settings page.
- Agents governed by Matimo Governance now register themselves and stay
  correctly risk-classified automatically as their tools and configuration
  change, instead of requiring a manual "Sync Agents" step.
- The AI agent-builder assistant now grounds its suggestions in a tenant's
  actual configured tools, MCP servers, and knowledge bases.
- Filter rule nodes in Studio gained a "Use item value" field mode and a
  `{{item}}` sentinel for referencing the current loop item directly.
- The compliance audit log gained category tabs and drill-down links.

### Fixed

- Human-in-the-loop approvals could silently fail to resume the blocked
  execution when the approving admin and the running workflow landed on
  different backend processes; approvals and expirations now propagate
  correctly across processes, and the Pending Actions dashboard card
  live-updates.
- A content-safety guardrail block on a user's very first message in a
  conversation could leave no record in Execution History; blocked and
  under-review executions are now fully visible there and in a dedicated
  Guardrail Activity log.
- Field selection in Studio's node config panel no longer resets when
  switching between nodes.
- Fixed a field-name mismatch that could corrupt the LLM provider picker and
  its response handling.
- Removed an internal codename that was leaking into a customer-facing MCP
  error message.
- Implemented the team member suspend/activate action, previously a no-op.
- Fixed dark-theme tooltip rendering and cleaned up remaining em dashes in
  UI copy.
- Fixed Email/SMTP settings save and test-connection validation.
- Provider errors (e.g. from Bedrock) now surface with their real message
  instead of a generic failure.
- The Approval node's notification link now uses the configured app URL
  instead of `localhost`.
- Capped and fingerprinted oversized content before it enters the semantic
  cache, avoiding unbounded embedding cost on very large inputs.
- Filter rule nodes: a rule's field referencing an array output from an
  earlier step or variable now compares each array item against the
  matching element of that array, instead of comparing every item against
  the same whole-array value, which could never produce a real match.

### Documentation

- Expanded help-center and support documentation for Guardrails and SSO.
- Cleaned up stale contact references and remaining em dashes across public
  pages.

## [1.1.0] - 2026-08-24

A Studio-focused release: a durable, production-grade execution engine for
workflows, plus the fixes and readiness work that came with it.

### Studio Features

- Graph Engineering Platform: Studio workflows now run on a durable
  execution engine built for production traffic, including automatic
  recovery if a worker drops mid-run, fan-out/map-reduce for processing many
  items in parallel, bounded loops with a safety ceiling, checkpointed
  rewind and replay of a run, and fair, rate-limited scheduling so one
  tenant's workflows can't starve another's.

### Studio Fixes

- Fixed the Loop node's Array Source field not wiring up correctly to
  upstream data.
- Fixed a gap where retrying an execution could skip the same checks a
  normal run goes through.
- Fixed a packaging bug where a worker file needed by the Rules Engine was
  sometimes missing from deployed builds.
- Fixed a billing gap that could block eligible customers from enabling
  durable workflow execution.

### Added

- Improved how matimo.ai reads to AI agents and search crawlers, including
  structured data, better indexability, and this changelog.

### Documentation

- Corrected and expanded Studio documentation and help-center articles.

## [1.0.0] - 2026-08-15

Our first release. Everything below shipped together for General
Availability.

### Added

- General Availability: Matimo Workbench live in production, with real
  billing tested end-to-end.
- AI agents** you can build, configure, and deploy, choosing from 16
  reasoning strategies instead of one fixed approach.
- Matimo Studio**: a visual, no-code canvas for composing agent
  automations.
- Human-in-the-loop governance**: approval gates that pause an agent
  until a person signs off on a risky action.
- Usage-based billing with plan tiers and per-feature gating.
- Integrations: Slack, Gmail, GitHub, MCP servers, and the Composio
  tool catalog.
- Compliance foundations**: GDPR data export/deletion rights, audit
  logging, and SOC 2/retention controls.
- Knowledge Bases with hybrid search (RAG) for grounding agent answers
  in your own documents.

<!-- ### Deferred

- Infrastructure encryption-at-rest (RDS/Redis)

_(Originally targeted for v1.1, then v1.2; SAML SSO shipped in v1.2.0
instead. Encryption-at-rest remains outstanding — don't advertise it as live
until it actually ships.)_ -->

[Unreleased]: https://github.com/tallclub/Universal-AgentForge/compare/v1.2.0...HEAD
[1.2.0]: https://github.com/tallclub/Universal-AgentForge/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/tallclub/Universal-AgentForge/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/tallclub/Universal-AgentForge/releases/tag/v1.0.0
