Aroha
Get started
All documentation

DocsProject

Aroha Trust & Reliability

This page is the single source of truth for Aroha's build health, standards status, security posture, and compatibility.

Status legend: โœ… in place and enforced by code or a verified setting ยท ๐Ÿ”„ partial / draft ยท โฌœ not started ยท โš ๏ธ known gap ยท manual process = done by a person, not enforced by automation ยท not enforced = the control is not active.


Repository and plan constraints

The ArohaLabs/aroha-protocol repository is public since 2026-10-25; the organisation is on GitHub's Free plan. Its public history starts with a single squashed commit ("Aroha: initial public release"). Controls in force (verified 2026-10-25):

ControlStatus
Ruleset "main" on the default branchโœ… Active โ€” pull request required with 1 approving review from a code owner; required status checks Build & Test (22.x), TypeScript, Lint, Python SDK (pytest), Durable stores (Postgres 16, Redis 7), Links (internal, blocking), Aroha Conformance Suite; signed commits required; force-push and deletion blocked. โš ๏ธ Organisation admins can bypass (bypass mode "always"; three admin accounts)
Classic branch protectionNot used โ€” the rulesets replace it
CODEOWNERS reviewโœ… Required โ€” the "main" ruleset requires a code owner's approval, and CODEOWNERS names @projectmed99 for every path. โš ๏ธ Organisation admins can bypass
Ruleset "release tags" (who may create, update or delete release tags)โœ… Active โ€” tags matching npm-v*, python-v*, java-v*, sdks/go/v*, runtime-v*, @aroha-sdk/*, create-aroha-agent@* are restricted. โš ๏ธ Organisation admins can bypass
Private vulnerability reporting (GitHub security advisories intake)โœ… Enabled โ€” see SECURITY.md
Secret scanning and push protectionโœ… Enabled
Dependabot security updatesโœ… Enabled
CodeQL code scanning (default setup)โœ… Active
Required reviewers on the release deployment environmentโœ… Required reviewers: @projectmed99 or @rajganesan-aroha-labs must approve each publish run (verified 2026-10-26). Deployments are not yet restricted to release tags
GitHub artifact attestationsโฌœ Not used
GitHub Discussionsโœ… Enabled โ€” Discussions

Repository access: five accounts hold access (three admin, two write); only one is documented as a maintainer. See the "Access" section of MAINTAINERS.md. Whether that access is appropriate is an owner decision.


CI Status

CheckStatus
Build & TestsCI
Conformance SuiteConformance
Release GateRelease Gate

CI policy: CI runs build, typecheck and tests on every push and pull request. Since 2026-10-25, merges to main require the status checks listed under Repository and plan constraints (the "main" ruleset); organisation admins can bypass them. The first push-triggered CI and Conformance runs on public main (2026-10-25) never started and are stuck queued in GitHub; CI and Conformance have since passed on pull requests, and the scheduled Conformance run passed on main on 2026-10-26.

Dependency audit: CI runs npm audit --audit-level=high --omit=dev. It is currently report-only โ€” the dependency tree has open high/critical advisories โ€” with accepted exceptions tracked in .github/audit-allowlist.json. It becomes blocking once the tree is clean. Dependabot version updates are configured in .github/dependabot.yml, and Dependabot security updates are enabled.

DCO: the DCO workflow runs on pull requests to main and checks only commits after the cut-off recorded in CONTRIBUTING.md. It is not one of the required checks in the "main" ruleset, so a failing DCO run is advisory (manual process: the reviewer does not merge a PR with a red DCO check).


Standards & Governance Status

TrackStatusDetail
Protocol specificationโœ… v1.0 published (draft-quality; changes go through the spec process)aroha-1.0.md
W3C Community Groupโฌœ Not yet proposedCHARTER.md is a draft; nothing has been submitted to W3C
W3C Agent Identity Registry Protocol CGโฌœ Not joined โ€” owner to joinAn existing CG (proposed 2026-04-24) whose scope covers an agent DID method, agent credentials and revocation. Joining it, and submitting did:aroha and the KEL as input, replaces proposing a separate CG. Owner: @projectmed99. Target: 2026-11-30.
did:aroha DID method๐Ÿ”„ Specified; registration requested on 2026-10-27 (w3c/did-extensions#766), under review โ€” not registered until it is mergeddid-method.md
CNCF Sandbox proposalโฌœ Draft only, not submittedcncf-sandbox-proposal.md
npm packagesโœ… Published (without npm provenance โ€” see Release integrity); release npm-v2026.10.19 (2026-10-19) published 32 packages, including @aroha-sdk/core and @aroha-sdk/credentials 2.0.0@aroha-sdk/* on npmjs.com; stability tiers in COMPATIBILITY.md
TypeScript SDKโœ… Reference implementation@aroha-sdk/core, @aroha-sdk/credentials, @aroha-sdk/registry
Python SDK๐Ÿ”„ Beta โ€” aroha 2.0.0 released 2026-10-19 (python-v2.0.0)aroha on PyPI
Go SDK๐Ÿ”„ Partial โ€” envelope, signatures, spending and task mandates, conversation profile verification, registry client, saga; not releasedfeature matrix
Java SDK๐Ÿ”„ Partial โ€” envelope, signatures, spending and task mandates, conversation profile verification, registry client, saga; 174 automated tests; not releasedfeature matrix
Maven Central publishingโฌœ Not operational โ€” owner must provision SONATYPE_* / GPG_* secrets; the workflow fails fast without thempublish-maven.yml
Local runtimeโฌœ Not released โ€” no runtime release has been published; the runtime is no longer in this repository
Licenseโœ… Apache-2.0LICENSE
Maintainersโš ๏ธ One maintainer (bus factor 1)MAINTAINERS.md
Governance model๐Ÿ”„ Published; one approving review from a code owner (the Core Maintainer) on main is enforced by a ruleset (organisation admins can bypass); the spec comment period is a manual processgovernance.md

Consistency note: The status rows above are the canonical source. Do not publish conflicting status in README, pitch decks, announcements or blog posts without updating this table first.


Security

ItemStatusDetail
Independent security review / SOC 2โฌœ Auditor not selected; no SOC 2 reportSee security/review-scope.md
Threat model๐Ÿ”„ DraftSee security/threat-model.md
Published security advisoriesNone publishedFixes are recorded as CHANGELOG security entries. Private vulnerability reporting is enabled (since 2026-10-25); no GitHub security advisory has been published yet
Incident response process๐Ÿ”„ Draft โ€” single maintainer, manual processSee security/incident-response.md
Responsible disclosure๐Ÿ”„ Published โ€” GitHub private vulnerability reporting or emailReport a vulnerability, or email contact@aroha-labs.com with the subject "SECURITY" (SECURITY.md)
Key and secret management๐Ÿ”„ DraftSee security/key-management.md
Production hardening guide๐Ÿ”„ DraftSee security/hardening.md
Automated alerting๐Ÿ”„ MinimalThe only automated alert is the scheduled conformance run, which opens or updates a GitHub issue on failure. There is no paging or on-call.

Conversation profile and protocol additions โ€” what is enforced (2026-10-15)

"Enforced in the SDK" means the verifier function refuses the case, and a test proves it. It does not mean the Aroha runtime calls that function. Runtime wiring is listed separately.

FeatureEnforced in the SDKEnforced in the runtimeEvidence / gap
ArohaDisclosure on envelopesโœ… validateEnvelope refuses a malformed disclosure or one naming another agent; the envelope signature covers itโฌœ The runtime does not attach disclosures yetpackages/aroha-core/src/messages/disclosure.test.ts
Action receipt v2 (identities, outcome, denied receipts)โœ… signActionReceipt issues v2; verifyActionReceipt accepts v1 and v2 and refuses unknown fields๐Ÿ”„ The runtime signs receipts for executed actions (v2 once rebuilt on this core). It does not emit denied receipts or fill requester, principal or presentedHash yetaction-receipt-v2.test.ts, vectors
UserApproval.presentedHashโœ… userApprovalSigningBytes / verifyUserApprovalSignature; legacy approvals still verifyโฌœ The runtime builds and checks approval signatures inline and does not compute presentedHash yetaction/user-approval.test.ts
Task mandate onBehalfOf / roomIdโœ… Narrowing keeps them; enforceTaskConstraints refuses a wrong or missing room or member (CONTEXT_MISMATCH)โฌœ enforceTaskConstraints still has no production caller in the runtime; guest grants are not issuedconversation-bindings.test.ts, vector taskMandateV2
Spending mandate actingForโœ… TypeScript and Python chain verifiers refuse a child that drops or flips itn/a (SDK verifiers)conversation-bindings.test.ts, test_mandate_acting_for.py
Signed rooms, consent records, signed turnsโœ… verifyRoom / verifyConsent (per-event signatures, membership at each event's epoch) / verifyTurn in @aroha-sdk/core; independent Python verifiers pass the same vectorsโฌœ The runtime has no rooms, person invitations, consent records or signed turns yetpackages/aroha-core/src/conversation/*.test.ts, sdks/aroha-py/tests/test_conversation_vectors.py
Memory record (MemoryFact scope, speaker kind, consent, cascade deletion)โฌœ Schema and spec rules onlyโฌœ Not implementedspec-public/schemas/memory-record.schema.json
A2A server with signed Agent Cardโœ… createA2aRequestHandler verifies every inbound mandate before the handler; card signatures are checked by verifyAgentCardSignaturen/a (library)packages/aroha-a2a-bridge/src/server.test.ts; interop with the official @a2a-js/sdk 1.3.0 in both directions (discovery, card signatures, SendMessage with and without a valid mandate, GetTask / CancelTask) runs in CI on localhost: packages/aroha-a2a-bridge/src/interop-a2a-js.test.ts
OTLP export and receipt trace linksโœ… Best-effort exporter (drops spans and never blocks); receipts carry a validated traceparentโฌœ Not wired into the runtimepackages/aroha-telemetry/src/otlp.test.ts
Credential vault rule (the model never has access to credentials)n/a๐Ÿ”„ Credentials stay in the OS keystore and transport; tool results are not filtered for secretshardening ยง11
Evidence preservationn/a๐Ÿ”„ Manual runbook; witnessed anchoring is off by defaultevidence-preservation.md
Graduated stop (throttled / paused)โฌœ Not implementedโฌœ Not implementedThe kill switch is on/off and covers consults
SSF/CAEP revocation eventsโœ… The reference registry (apps/registry-server) is an OpenID Shared Signals transmitter: a mandate revocation emits CAEP session-revoked, a newly accepted KEL revocation emits CAEP credential-change; push (RFC 8935) or poll (RFC 8936) deliveryโฌœ The runtime does not subscribe; SDK verifiers check revocation by pullapps/registry-server/src/routes/ssf.test.ts, ssf-credential.test.ts; CHANGELOG 2.0.0

Spec: aroha-1.0 ยง6.6โ€“ยง6.8 and ยง12. Schemas and vectors: spec-public/schemas/, spec-public/vectors/conversation-v1.json. Integration drafts: UCP mapping (documentation only); ID-JAG profile โ€” the resource-server side is implemented in @aroha-sdk/mcp-server and tested against a reference IdP and authorization server, not yet against a production IdP.

To report a vulnerability: use GitHub private vulnerability reporting or email contact@aroha-labs.com with the subject "SECURITY" (see SECURITY.md) โ€” do not open a public issue.


Compatibility Matrix

Aroha PackageNode.jsTypeScriptStatus
@aroha-sdk/coreโ‰ฅ22โ‰ฅ5.4โœ…
@aroha-sdk/cliโ‰ฅ22โ‰ฅ5.4โœ…
@aroha-sdk/credentialsโ‰ฅ22โ‰ฅ5.4โœ…
@aroha-sdk/orchestrator (no longer in this repository; 1.4.0 remains on npm)โ‰ฅ22โ‰ฅ5.4โœ…
@aroha-sdk/registryโ‰ฅ22โ‰ฅ5.4โœ…
@aroha-sdk/mcp-bridgeโ‰ฅ22โ‰ฅ5.4โœ…
@aroha-sdk/a2a-bridgeโ‰ฅ22โ‰ฅ5.4โœ…
@aroha-sdk/langchain-bridgeโ‰ฅ22โ‰ฅ5.4โœ…

Protocol bridges:

BridgeDirectionProtocol versionTested
MCP bridgeMCP โ†” ArohaMCP / Aroha 1.0Unit tests
A2A bridgeA2A โ†” ArohaA2A 1.0 / Aroha 1.0Unit tests and CI interop with the official @a2a-js/sdk 1.3.0 in both directions
LangChain bridgeLangChain โ†” ArohaLC 0.2+ / Aroha 1.0Unit tests

Conformance

The reference implementation is tested against the Aroha conformance suite on pushes and pull requests to main that touch packages/** (or the suite's config, its workflow, or the root package.json / package-lock.json), and on a weekly scheduled run (Mondays 02:00 UTC). For other changes the check still reports, as skipped-and-passing, so it can stay a required check. A failed scheduled run opens or updates a GitHub issue. See conformance.yml.

LayerTestsStatus
L0 โ€” DID & Identityโ€”See CI
L1 โ€” Signed Envelopesโ€”See CI
L2 โ€” Capability Registryโ€”See CI
L3 โ€” Saga Patternโ€”See CI
L4 โ€” Commerceโ€”See CI

Full test matrix: conformance/test-matrix.md

Conformance tiers: conformance/tiers.md

Independent implementer onboarding: conformance/implementer-packet.md


Release Hygiene

Release tag scheme

The release quality gate recognises these tags:

ArtifactTag format
A single npm package@aroha-sdk/<name>@<version>
create-aroha-agentcreate-aroha-agent@<version>
Batch npm releasenpm-v<anything>
Python SDKpython-v<version>
Java SDKjava-v<version>
Go SDKsdks/go/v<version>

No tags or GitHub releases exist in this public repository yet; the 2.0.0 release tags (npm-v2026.10.19, python-v2.0.0) were made in the private development repository. Older tags of the form v1.2.3 and python-sdk-v* are legacy and are not recognised by the gate.

The gate's CHANGELOG check requires the tag to appear under a dated release heading in CHANGELOG.md, not under [Unreleased].

  • Packages are versioned independently (for example @aroha-sdk/core 2.0.0, @aroha-sdk/cli 1.3.0); see COMPATIBILITY.md.
  • Known gap: package versions 1.4โ€“1.9 were published without changelog entries (see CHANGELOG.md).
  • No file: path dependencies are permitted in published packages.

Release integrity

  • Every publish workflow (publish-npm.yml, publish-pypi.yml, publish-go.yml, publish-maven.yml) runs the release quality gate first, and the publish job depends on it.
  • Publish jobs run in a GitHub environment named release, which requires approval from @projectmed99 or @rajganesan-aroha-labs before a publish job runs (verified 2026-10-26). Deployments are not yet restricted to release tags, and no secrets are set yet (see key-management.md).
  • Release tags are restricted by the "release tags" ruleset (see Repository and plan constraints); organisation admins can bypass it.
  • npm packages are published without npm provenance: every published version, including 2.0.0, was built while the repository was private, and provenance requires a public repository. The target is npm Trusted Publishing (OIDC). No GitHub artifact attestations are produced.
  • The runtime and its release workflow have moved out of this repository. No runtime release has been published.
  • Maven Central publishing is not operational until the owner provisions the SONATYPE_* and GPG_* secrets.
  • Secrets inventory, custodians and rotation: security/key-management.md.

Content removed from the tree

GTM PDFs and third-party PDFs were removed from the working tree before the repository was made public. The public history starts with a single squashed commit that does not contain them.


Last updated: 2026-10-26. Maintained by the core maintainer. Update this page whenever any status row changes.

This page is the repository file docs/trust.md, copied October 28, 2026.