# Erlang ADK documentation

This index separates user guides, behavior contracts, release operations, and
historical delivery evidence. Start with the root [`README.md`](../README.md)
for installation and executable examples.

## Release and project documents

- [`CHANGELOG.md`](../CHANGELOG.md) — cumulative changes from 0.3.0 through
  the released 0.9.0 version plus the explicitly unreleased 0.10 development
  section, fixes, evidence, and visible limitations.
- [`TESTING.md`](TESTING.md) — deterministic, paid-provider, Phoenix, browser,
  packaging, and audit gates.
- [`TEST_LAYOUT.md`](TEST_LAYOUT.md) — test ownership, recursive discovery,
  helper placement, and fixture conventions.
- [`UPGRADING.md`](UPGRADING.md) — behavior and configuration changes between
  delivery milestones.
- [`RELEASING.md`](RELEASING.md) — the pre-tag, package, audit, approval, tag,
  and publication checklist. It does not claim that a tag or package was
  published.
- [Deployment asset guide](../deploy/README.md) — the in-development relx/OCI,
  closed/health/application-config modes, descriptor cap, PID1 drain,
  deployment OTLP bridge, Cloud Run, Helm/GKE, credential-safe Agent Runtime
  feasibility probe, and supply-chain contracts plus their explicit
  external-evidence boundaries. It also records the final local OCI and
  disposable Kind two-mode candidate gate without claiming Cloud/GKE or
  registry promotion.
- [Curated connector package guide](../packages/README.md) — the sole offline
  all-package gate, dependency-metadata normalization boundary, and the
  explicit block on connector publication before core 0.10.0 exists in the
  target Hex repository.
- [`SECURITY.md`](../SECURITY.md) — supported versions, private reporting,
  deployment boundaries, secret handling, and known dependency advisories.
- [`CONTRIBUTING.md`](../CONTRIBUTING.md) — toolchains, design rules, evidence,
  and pull-request expectations.
- [`FEATURE_PARITY.md`](FEATURE_PARITY.md) — current ADK behavior-family status
  with explicit partial and adapter-owned surfaces.
- [`README_EXAMPLE_COVERAGE.md`](README_EXAMPLE_COVERAGE.md) — current README
  recipes and sanity checks mapped to prerequisites, deterministic coverage,
  and optional live validation.

The v0.9.0 deterministic release validation passed all 1,495 EUnit tests and
all 6 deterministic Common Test cases, with warning-as-error compilation, 0
Dialyzer warnings, and 0 undefined or deprecated call/function findings from
`./rebar3 xref`. The Phoenix companion also passed 103 ExUnit and 40
browser/audio tests, production assets/release, and both health smokes. The
complete evidence boundary is recorded in
[`VERSION_0_9_0.md`](VERSION_0_9_0.md#release-evidence-ledger).

The [`VERSION_0_10_0.md`](VERSION_0_10_0.md) milestone is **IN DEVELOPMENT**.
It now includes the work previously proposed for 0.11/0.12: supervised local
runtime profiles; schema-v2 JSON/strict-YAML Agent Config and composition;
registry-only connectors; artifact streaming/GCS-compatible storage/effect
reconciliation; vector/hybrid memory, policy, erasure, and a `durable_local`
bundle-owned ingestion outbox; modern MCP; durable evaluation jobs plus
simulators/statistics and canonical multi-format report parity;
Developer UI graph/trace/evaluation surfaces; A2A streaming/task stores/push;
and render-first deployment assets. Its pinned official MCP Python/TypeScript
matrix and A2A JSON-RPC TCK have passed within the loopback scopes recorded in
the candidate ledger. That ledger is development evidence, not a release
record or arbitrary-peer/deployed-infrastructure claim.

Current evidence applies to the named `codex/version_0.10.0` working-tree
candidate, not to a reproducible commit or tag; its HEAD remains the v0.9
baseline and all v0.10 work is uncommitted. Focused durable-runtime checks
passed 46/46, canonical evaluation-report parity/boundary checks passed 56,
and the four-package wrapper passed 12/12 source plus 12/12 clean-extracted
EUnit. The changed-candidate aggregate passed 1,826/1,826 EUnit, 6 deterministic
Common Test cases with 22 expected paid-provider skips, clean compile/xref,
0 Dialyzer warnings, and 36,574/49,312 = 74.17% coverage. README checks passed
30/30 plus 4/4, all three example modules compiled with `-Werror`, and ExDoc,
static Markdown, root Hex/verifier/extracted compile, and diff gates passed.
Root artifact hashes/freshness are intentionally reported out of band. Exact
scoped evidence and explicitly unrun external gates are in
[`VERSION_0_10_0.md`](VERSION_0_10_0.md#development-validation-ledger). These
results do not change the **IN DEVELOPMENT** status.

## Runtime and workflow guides

- [`RUNTIME_SAFETY.md`](RUNTIME_SAFETY.md) — process ownership, limits,
  cancellation, structured failures, and secret isolation.
- [`DURABLE_INVOCATIONS.md`](DURABLE_INVOCATIONS.md) — stable runs, replay,
  continuations, persistence, and restart behavior.
- [`AMBIENT_RUNTIME.md`](AMBIENT_RUNTIME.md) — local events and fixed-delay
  scheduled invocations with bounded admission and session policy.
- [`GRAPH_WORKFLOWS.md`](GRAPH_WORKFLOWS.md) — graph/fork control flow,
  checkpoints, deterministic state merge, and resume limitations.
- [`PLANNING_RUNTIME.md`](PLANNING_RUNTIME.md) — explicit planner/executor
  contracts, bounded replanning, and model-native thinking.
- [`CODE_EXECUTION.md`](CODE_EXECUTION.md) — the external-sandbox requirement
  for model-requested code execution.

## Artifacts, memory, and context

- [`ARTIFACTS.md`](ARTIFACTS.md) — scoped immutable versions, adapters,
  quotas, repair, tools, and current data-plane limits.
- [`MEMORY.md`](MEMORY.md) — scoped retrieval/ingestion, durable local
  behavior, outbox semantics, erasure, and adapter boundaries.
- [`CONTEXT.md`](CONTEXT.md) — mandatory request sanitation, budgeting,
  selection, compaction, fingerprints, and provider prefix caching.

## Providers, plugins, evaluation, and observability

- [`MODEL_SUPPORT.md`](MODEL_SUPPORT.md) — adapter support tiers, remote
  evidence boundaries, and model/server recipes including keyless local
  Ollama/vLLM profiles and HTTPS gateways.
- [`PROVIDER_PROFILES.md`](PROVIDER_PROFILES.md) — recommended binary profile
  configuration for Gemini, native OpenAI Responses, native Anthropic
  Messages, Vertex AI, compatible Chat Completions, Gemini Live, and OpenAI
  Realtime, including credential and authority boundaries.
- [`GEMINI_GROUNDING.md`](GEMINI_GROUNDING.md) — Google Search grounding,
  bounded provider metadata, streaming, and failure behavior.
- [`PLUGINS_OBSERVABILITY_EVALUATION.md`](PLUGINS_OBSERVABILITY_EVALUATION.md)
  — Runner-global plugins, trace/metric/export behavior, evaluation v2, and
  explicit content/privacy boundaries.
- [Phoenix companion guide](../examples/phoenix_adk_ui/README.md) — OIDC or
  loopback-only local authentication, same-BEAM gateways, agent runs, Live
  operations, browser voice, production TLS/proxy setup, and its independent
  release/audit gates.

## Version contracts

These contracts preserve what each development milestone set out to deliver,
what passed, and what remained incomplete. Unchecked items are limitations,
not implicit release claims.

- [`VERSION_0_3_0.md`](VERSION_0_3_0.md) — supervised runtime, services,
  protocols, developer tooling, and quality foundation.
- [`VERSION_0_4_0.md`](VERSION_0_4_0.md) — agent, tool, and workflow behavior.
- [`VERSION_0_5_0.md`](VERSION_0_5_0.md) — artifacts, memory, and context.
- [`VERSION_0_6_0.md`](VERSION_0_6_0.md) — authentication, protocols, and the
  production-capable Phoenix companion.
- [`VERSION_0_7_0.md`](VERSION_0_7_0.md) — Gemini Live/multimodal sessions,
  plugins, evaluation, expanded observability, developer projections, and
  browser voice.
- [`VERSION_0_8_0.md`](VERSION_0_8_0.md) — model provider profiles, native
  OpenAI/Anthropic request adapters, compatible vendors, shared model
  transport, and OpenAI Realtime bidirectional sessions.
- [`VERSION_0_9_0.md`](VERSION_0_9_0.md) — definition-bound durable workflow
  checkpoints, graph validation/inspection and data contracts, nested
  continuation parity, local-compatible endpoints, and Vertex AI/ADC.
- [`VERSION_0_10_0.md`](VERSION_0_10_0.md) — **IN DEVELOPMENT**: the expanded
  0.10 implementation and its explicit interoperability, topology, payload,
  reconciliation, and deployment-evidence boundaries.

## Model and test terminology

The project has two separate Gemini gates:

- REST GenerateContent/SSE and the ordinary agent default use
  `gemini-3.1-flash-lite` and `ERLANG_ADK_GEMINI_REST=1`.
- Gemini Live WebSocket uses `gemini-3.1-flash-live-preview` and
  `ERLANG_ADK_GEMINI_LIVE=1`.

Both require `GEMINI_API_KEY` in the same environment as Common Test. They use
network access, quota, and billable API calls, so they skip unless explicitly
enabled. A skip or quota failure is never counted as a deterministic pass.

OpenAI Responses, Anthropic Messages, compatible Chat Completions, and OpenAI
Realtime passed deterministic injected-transport/codec coverage in the 0.8
release gate. The 0.9 release also has deterministic Vertex and local-server
fixtures, but neither is paid or arbitrary-endpoint evidence. A configured key
or passing fixture must not be reported as remote-provider success. The
2026-07-17 Gemini REST and Live attempts were external credential failures,
recorded separately from passing deterministic evidence; see
[`TESTING.md`](TESTING.md).
