# Changelog

# Changelog

All notable changes to the Amdahl Platform API are recorded here. The format follows Keep a Changelog with four sections per entry (`Added`, `Changed`, `Deprecated`, `Removed`). Dates are the day the change landed on the stable path.

## 2026-06-24

### Added

- A public changelog at [docs.amdahl.co/changelog](https://docs.amdahl.co/changelog) - a searchable, branded timeline of what's shipped, refreshed automatically with each release.

### Fixed

- The GTM health report now reads correct, human-readable deal stages from your CRM (e.g. "Discovery", "Research", "Closed Won") instead of raw internal stage codes, and no longer splits a single account across multiple stage rows.

## 2026-06-23

### Added

- **Blueprints** - shareable, forkable recipes an agent reads and walks step by step. Author, validate, and fork via the `blueprints` tool family and REST; seven starter blueprints ship out of the box.
- **Connections** - a unified connector catalog and connect / disconnect surface spanning CRM, calls, comms, docs, support, and social (X / LinkedIn). Poll connection health and sync-run history over `connection://` reads and REST.
- **External search** fuses your CRM + call corpus with live market sources into a single brief (the divergence map). Four actions: `search`, `enrich_company`, `enrich_person`, `enrich_topic`, with an opt-in SSE event stream.
- **Notifications** - agents can email workspace members (member-only, rate-capped, idempotent) via the `notifications` tool and `POST /notifications/email-member`, and read the send ledger.
- **Pages** - workspace-authored, data-backed UIs composed from a catalog of components (tables, charts, stats, signal maps) bound to your own queries. Author + validate via the `pages` tool family and REST, publish, and embed.

### Changed

- The `performance.*` operations were renamed to `social.*` (clean break, no aliases) for social account tracking and engagement reads.

### Removed

- Retired the customer-facing **artifacts** REST API (`/artifacts*`) and its public read endpoint. Pages and Blueprints are the structured-output primitives now; artifact webhook events and data models are unchanged.

## 2026-04-16

### Added

- Generic Agent Runner. New `agents.*` tool family: `agents.start`, `agents.status`, `agents.resume`, `agents.cancel`, `agents.list`, `agents.profiles_list`.
- Server-Sent Events stream for agent progress at `GET /api/platform/v1/agents/:session_id/stream`. Emits `state` and `progress` frames, `:ping` keepalives every 15 seconds, auto-closes on terminal status.
- Three built-in agent profiles: `content_writer` (end-to-end content creation, 25-turn budget, emits `content_piece` artifacts), `researcher` (rigorous research with citations, 20-turn budget, emits `research_report` artifacts), `copilot` (general-purpose assistant, 15-turn budget, optional artifact output).
- Three pause types on `awaiting_input` sessions: `approval`, `question`, `continue_or_finish`. Each carries a JSON Schema that `agents.resume` validates against.
- Consumer docs tree at `/docs/consumer/` with auto-generated API reference covering every tool, scope, webhook event, and data model.

### Changed

- Every agent tool call is now written to `platform_audit_log` with the caller's identity and correlation id, matching the audit trail direct REST and MCP calls already produced.

### Deprecated

- Nothing yet.

### Removed

- Nothing yet.

## 2026-04-08

### Added

- `platform_audit_log` table. Every tool invocation across REST, MCP, and agent sessions is recorded with actor id, business id, tool id, inputs hash, status, duration, and correlation id.
- `audit_log.query` tool for reading the audit trail. Scoped by business; platform admins can query across businesses.
- Response-side redaction layer. Any field classified as sensitive is replaced with `[MASKED]` and paired with a `<field>_masked: true` sentinel in the response body.

### Changed

- Error responses now include `X-Correlation-Id` on every status code, not just 5xx, so failed requests can be traced end to end.

### Deprecated

- Nothing.

### Removed

- Nothing.

## 2026-03-28

### Added

- Webhook extensions. `POST /api/platform/v1/webhooks/:id/test` fires a single `test.ping` delivery without affecting production aggregates. `GET /api/platform/v1/webhooks/:id/deliveries` returns the delivery history with status filtering and pagination.
- `is_test` column on `platform_webhook_deliveries` to separate test fires from production traffic.
- `X-Webhook-Test: true` header on test deliveries so receivers can branch on synthetic traffic.

### Changed

- Webhook delivery retry policy codified at 3 attempts with 1s and 10s backoff intervals; after the third attempt the failure is recorded and `failure_count` is incremented on the webhook.

### Deprecated

- Nothing.

### Removed

- Nothing.

## 2026-03-15

### Added

- `scope_mode` column on API keys and OAuth clients, with per-tool scope enforcement. Tools whose declared scope is not in the caller's effective scope set are silently dropped from the runtime tool list.
- Scope reference page at `/docs/consumer/api-reference/scopes.md`, auto-generated from the tool registry.

### Changed

- Role defaults tightened. New keys default to the minimum scope required for the role; existing keys retain their prior effective scope via the grandfather rule.

### Deprecated

- Nothing.

### Removed

- Nothing.

## 2026-02-20

### Added

- Artifact unification. Bidirectional triggers between `platform_artifacts` and the legacy `writing_samples`, `customer_posts`, `customer_testimonials`, and `style_collections` tables. Reads from either side return identical data; writes propagate automatically.
- `platform_artifact_versions` append-only version audit trail. Every write to `platform_artifacts` inserts a corresponding version row.
- `artifacts.get` tool now supports `include_versions: true` to return the version history inline.

### Changed

- Artifact writes must supply `expected_version` for concurrent-edit safety. Mismatches return `409 version_conflict` with the current version in the details block.

### Deprecated

- Nothing.

### Removed

- Nothing.

## 2026-01-28

### Added

- Platform API v1 initial release. Base URL `https://api.amdahl.com/api/platform/v1`. Four-tool architecture: `data.*`, `context.*`, `artifacts.*`, plus the supporting surfaces for sessions, webhooks, scopes, and OpenAPI docs.
- OpenAPI 3.1 spec at `/api/platform/v1/openapi.json`, regenerated on every release.
- Canonical error envelope with `code`, `message`, and optional `details`.
- Global per-IP rate limit of 100 requests per minute on `/api/platform/v1/*`.
- OAuth 2.0 dynamic client registration per RFC 7591 at `POST /oauth/register`, with its own tighter limit of 5 registrations per minute per IP.

### Changed

- Nothing; this is the baseline.

### Deprecated

- Nothing.

### Removed

- Nothing.
