Public-readiness review¶
Review date: 2026-08-29. Scope: package/runtime architecture, provider boundary, official A2A integration, MCP and gateway seams, security/release controls, testing, examples, and the public documentation path.
Executive decision¶
The repository and documentation site are public and suitable for technical review. The core library is substantially implemented and heavily gated; it is not a planning-only repository. Branch, tag, security, Pages, and CODEOWNERS settings remain hosted controls that maintainers must periodically audit for drift.
It should be presented as a pre-1.0 production-oriented library, not as:
- a hosted agent platform;
- a drop-in replacement for another product named ADK;
- a turnkey, process-owning official A2A deployment;
- a universal adapter for every model API;
- a substitute for gateway authentication, infrastructure isolation, or operations.
Production adoption should be approved per subpackage and integration. The official A2A
adapter now includes an AgentRunner executor bridge and Google ADK interoperability,
while the embedding service still owns HTTP hosting, authentication, durable task state,
crash recovery, subscriptions, and any push delivery it advertises.
What is strong today¶
| Area | Assessment | Evidence |
|---|---|---|
| Core runtime | Ready with pre-1.0 stability limits | Typed agent/run contracts, bounded loop, cancellation, deadlines, retry policy, budgets, structured output, tools, approvals, idempotency, checkpoints |
| Provider abstraction | Ready | Runtime-facing ModelProvider, explicit capabilities, normalized errors/usage/streams, conformance suite |
| Hosted portability | Ready for supported wire contracts | Native OpenAI/Anthropic/Gemini plus Groq, xAI/Grok, and OpenRouter compatible presets |
| Self-hosting | Ready with deployment-owned operations | vLLM, Ollama, TGI, llama.cpp, explicit capabilities and timeouts |
| Tool safety | Ready with correct deployment wiring | Typed schemas, default-deny allowlists, scopes, approvals, concurrency, timeouts, result boundary, idempotency |
| Tenant boundary | Strong library controls; infrastructure still matters | Required tenant per run, ambient scoped context, propagation contract, store/isolation tests |
| MCP | Broad alpha integration | Clients, servers, transports, credential context, resilience, surface pinning, AgentGateway routing |
| Tesserix peer protocol | Broad alpha integration | Typed discovery, delegation, invocation, trust containment, registry caching |
| Official A2A | Server bridge ready with deployment-owned operations | Official 1.x cards, clients, registry/custom transport seams, bounded runner executor, cancellation, HTTP round trip, and Google ADK 2.8 card compatibility |
| Durability | Broad primitives and adapters | State, queues, checkpoints, leases, outbox, events, replay-safe workflow primitives |
| Testing | Strong | Strict fake provider, network blocking, HTTP replay, conformance suites, isolation, evals, release gates |
| Supply chain | Strong controls, subject to configuration | Frozen lock, dependency admissions, advisory/licence/secret scans, build provenance and trusted publishing workflows |
| Public onboarding | Current in source | Lean README, quickstart, capability map, command-line guide, runnable cookbook, migration and interoperability guides, generated API reference, strict docs build |
At audit start, make check passed 8,518 tests with 99.16% coverage, strict Ruff and
mypy, import boundaries, API/event/release gates, and dependency policy. The offline
getting-started example and package build also passed. Final verification after the
review's changes is recorded at the end of this page.
Gaps that must stay explicit¶
Priority 0: required before claiming a turnkey official A2A deployment¶
- Inject a durable, tenant-scoped official
TaskStoreand reconcile tasks left working after a process crash. - Authenticate every route and authorize task, context, message, artifact, subscription, and cancellation objects in server/gateway context.
- Add signed push notifications, callback validation, retries, and dead letters only if the deployment advertises push support.
- Run deployment-specific conformance and fault tests against its selected gateway, task store, and at least one additional external A2A implementation.
The bridge now maps bounded text requests, final artifacts, terminal failures, and cancellation. Card security metadata remains descriptive and cannot replace enforcement.
Priority 0: required for the public GitHub launch¶
- Keep the public repository description, homepage, topics, social preview, and default branch protection current.
- Keep GitHub Pages on GitHub Actions and monitor documentation deployments.
- Keep private vulnerability reporting, secret scanning, push protection, Dependabot alerts, and code scanning enabled where the organization plan permits them.
- Audit required checks and reviewed-pull-request enforcement for
mainafter workflow or ownership changes. - Verify the PyPI project, trusted publisher, release environments, and package ownership are suitable for public contributors.
- Keep the organization-owned
support@tesserix.appconduct-reporting rota private, monitored, and current.
Priority 1: reliability and adaptability¶
- Add dedicated adapters for Azure OpenAI, Amazon Bedrock, Vertex AI, and any other non-compatible API that is a supported product requirement.
- Add scheduled credentialed integration tests against real provider sandboxes. Keep the default suite offline and replay-first.
- Automate model-catalogue freshness and require a reviewed effective date for price, context, and capability changes.
- Add fault-injection and soak tests against real Redis, PostgreSQL, NATS, Temporal, MCP, gateway, and A2A deployments, including restarts and partial network failure.
- Define supported production SLO profiles for provider latency, queue lag, registry staleness, checkpoint recovery, and trace loss.
- Add a standard signed-card verifier or document the one trust service every deployment must use.
- Keep the project-qualified
tesserix-adkdispatcher limited to self-contained commands; application-wired CLIs continue to accept explicit storage/build callbacks. - Reduce the very broad pre-1.0 public API before 1.0. Keep new experimental seams out of stable re-export modules until consumers need them.
- Keep the capability map, task guides, generated API reference, runnable recipes, and release-tagged Pages site synchronized as the public surface moves.
Priority 2: ecosystem usability¶
- Publish framework-specific examples for FastAPI/ASGI lifecycle, Kubernetes shutdown, background workers, and serverless constraints.
- Publish a complete sample combining a model gateway, MCP, official A2A discovery, durable state, telemetry, and policy without embedding real infrastructure credentials.
- Consider TypeScript/Java/Go clients only for cross-language protocol needs; do not copy the Python runtime merely for ecosystem parity.
Failure scenarios reviewed¶
| Scenario | Existing defense | Remaining deployment responsibility |
|---|---|---|
| Provider is slow or unavailable | Phase/run deadlines, normalized transient errors, opt-in jittered retry, fallback rules | Provider SLO, quota, regional strategy |
| Provider claims success with an error body | Compatible adapter refuses it | Vendor-specific regression recordings |
| Provider omits usage or tool IDs | Preset reconciliation and estimated-count attribution | Validate every deployed model/server version |
| Model lacks a required feature | Explicit capability gate before request | Keep capability records current |
| Tool call is duplicated | Idempotency declaration/store and stable keys | Durable shared store and downstream idempotency |
| Process dies mid-effect | Checkpoint frontier and indeterminate disposition | Recovery runbook and status/read-back APIs |
| Event is delivered twice | Idempotent consumer and transactional outbox | Broker retention and dead-letter operations |
| Registry is unavailable | Tesserix peer cache/stale policy; official registry is injectable | Official registry caching/availability policy in application |
| Registry substitutes an agent | Exact card-name check plus optional verifier | Signature, endpoint, issuer, tenant policy |
| Gateway is bypassed | No automatic direct fallback in AgentGateway route | Network policy and service identity |
| A2A card says Bearer | Official security metadata emitted | Actual token validation and per-object authorization |
| One tenant guesses another object ID | Tenant-scoped runtime/store contracts and isolation suite | Database RLS/partitioning and gateway enforcement |
| Tool or peer returns instructions | Untrusted result/peer boundaries and guardrails | Domain-specific allowlists and human approval |
| Credential rotates | Secret resolved at use time; pools can retire old key | Secret-manager availability and rotation procedure |
| Telemetry backend fails | Observation path designed to fail open and redact | Buffering, sampling, alerting, retention |
| Docs drift | Link test and strict MkDocs build | Executable snippet and owner review expansion |
Comparison position¶
The public site linked during this review represents the broader “Agent Development Kit” category. Tesserix ADK should not compete on the generic acronym alone. Its credible differentiation is:
- explicit production policy and tenant boundaries;
- infrastructure and protocol substitutability;
- conservative provider capability handling;
- deterministic tests and compatibility gates;
- clear separation of MCP, official A2A, and the richer Tesserix peer protocol;
- a lean base dependency graph.
It is not a fork of Google's ADK and does not promise source compatibility with it. Users should choose Tesserix ADK when those production controls and replaceable boundaries are the requirement, not because both projects share three initials.
Public launch checklist¶
- [x] Accurate root README and five-minute path
- [x] Step-by-step custom agent guide
- [x] Groq, xAI/Grok, OpenRouter, native, self-hosted, and gateway recipes
- [x] Official A2A support/limitation matrix
- [x] Integration and registry guidance
- [x] Apache-2.0 licence file
- [x] Root contribution guide and pull-request template
- [x] Strict local documentation build and link test
- [x] Complete capability map and installed-command guide
- [x] Generated API reference and public-symbol recipe coverage
- [x] Staged migration and framework-interoperability guides
- [x] GitHub Pages workflow in source
- [x] GitHub Actions pinned to reviewed commit SHAs
- [x] Repository made public
- [x] Pages source enabled and deployed
- [x] Public security settings verified
- [x] Organization-owned conduct-report contact chosen and published privately
- [ ] PyPI/trusted-publisher ownership verified
- [x] First external clean-room onboarding completed
Verification record¶
Google ADK/A2A bridge — 2026-08-28¶
Final verification used Python 3.13.15:
make check: passed lint, formatting, import-boundary, strict typing, dependency, admission, disclosure, API, event, replay, deprecation, release-note, documentation, and complete test gates; 9,148 tests passed, 2 were skipped, 125 were deselected by the coverage profile, and total coverage was 98.97%.make audit,make secrets,make licences,make deps, andmake admissions-checkpassed with no locked advisories, credential-shaped values, licence-policy violations, dependency-policy violations, or unrecorded consumer dependencies.uv lock --checkpassed for the 153-package all-extras development graph. The inventory now follows dependency-selected extras, so the official A2A HTTP server and psycopg binary/pool packages carry their true profiles and package-specific licence decisions.uv buildproduced the source archive and universal Python wheel. The wheel contains the typed-package marker, A2A executor, and Google ADK helper; the source archive also contains the Code of Conduct.- A fresh public clone of commit
0ae26f0passeduv sync --frozen --extra google-adk, the offline Google ADK/A2A example, all 11 focused bridge tests, anduv buildwithout relying on the development worktree. - The offline official HTTP round trip passed through the official client, Starlette route, request handler, task store, Tesserix executor, runner, and final artifact. Google ADK 2.8.0 accepted the same official card through its current non-legacy A2A path.
Documentation and Pages synchronization — 2026-08-29¶
make docs-check, the API-surface and generated-reference checks, and public-symbol recipe coverage passed. Regression tests additionally proved that every Markdown page is navigable, the command-line guide covers all eight installed commands, and the release runbook names every release workflow job.- The rebuilt site rendered the capability map and command-line guide correctly. All 64 distinct external links exposed by the site and README resolved successfully.
- Ruff, formatting, import-boundary checks, strict mypy across 557 source files, strict
Pyright, the repository policy/contract gates, and
uv buildpassed. The complete all-extras test run passed 9,428 tests with 2 platform/runtime cases skipped, 125 intentionally deselected, and 96.55% total coverage. - The public Pages root redirects to
stable/, whose0.53.0sitemap contained 189 URLs; every URL returned HTTP 200. The tagged release workflow completed both documentation jobs and published the exacttesserix_adk-0.53.0-py3-none-any.whlrelease asset. - Pages is deliberately release-tagged rather than deployed from the moving
mainbranch. At review time the live canonical documentation remained0.53.0; the reviewed0.53.1release publishes these source updates. PyPI publication remains disabled, so GitHub Release assets are the supported distribution channel.
These source and artifact checks do not replace the unchecked PyPI trusted-publisher and package-ownership actions in the launch checklist.