Repository navigation
ztd v1.4.0
[1.4.0] - 2026-10-24 - Event Receipt Contracts and Public Evaluation
Release preparation draft. Planned tag date: 2026-10-24 UTC.
Overview
v1.4.0 names the signed evidence of a governed request EventReceipt throughout the protocol, native MCP queries, evaluation retrieval, and compliance tooling. It strengthens Tribunal authoring validation, adds dedicated Leaderboard and Sponsors pages to the Evaluation Explorer, introduces the Zero Trust Paper Company business sandbox, and expands the maintained test and onboarding gates.
The change inventory covers the 15 commits from tag v1.3.0 through e2a026897c18239daa6b975b104f1697b978a0be, plus the release preparation changes in this working tree. Breaking tool, generated API, retrieval-query, and evidence identifiers require the minor version bump under INV-REL-VER-10.
Added
- The Evaluation Explorer has a dedicated
/leaderboardpage with role rankings and an artifact-size filter, separate from the Models capability catalog. Its Sponsors page provides project support and contact routes. - The Zero Trust Paper Company demo supplies Python/SQLite business systems, seeded identities, documents, and repeatable cross-system scenarios. Role permissions cover customer onboarding, sales, finance, purchasing, inventory, dispatch, HR, support, and document retrieval. Demo API authorization and the ztd execution boundary are distinct; see the demo guide.
make generatesequences maintained artifact generators, andmake demos-testruns the business sandbox checks. The expandedmake testgate sequences quality, platform, component, script, process, fleet, and Docker onboarding checks, including a default 100-Operator fleet smoke. Live provider runs and tests against an existing Gateway remain explicit targets.
Changed
- The canonical protobuf message is
ztd.operator.v1.EventReceipt, replacingActionReceipt. Searchable event records embed it underevent_receipt. Runtime APIs useLocalFirstEventsStore,LocalFirstEventsStoreConfig,NewLocalFirstEventsStore, andGetLocalFirstEventsStore. - Native MCP receipt queries are
event_receipt_listandevent_receipt_get. Investigation retrieval usesexclude_event_receipt_reads. Compliance artifact identifiers, schema references, and receipt reference prefixes use event receipt terminology. - API path registry keys are
audit_event_receiptsandaudit_event_receipts_export. The HTTP paths remain/api/v1/audit/event-receiptsand/api/v1/audit/event-receipts/export. - Built-in suites advance to
default-suite@1.15.0,smoke-suite@1.15.0, andinvestigations@1.15.0for receipt-query contract changes. Frozen campaign catalogs and recorded results keep their original scope. - Tribunal authoring instructions distinguish direct argv from shell expansion and preserve utility-specific literal syntax. Nemesis's generation prompt now requests an intentionally incorrect negative-control proposal; existing consensus logic excludes Nemesis and matching proposals from the vote. Its L2 voting stance now checks destructive effects, exfiltration, persistence, privilege escalation, and evasion.
- The inference output ceiling is 16,384 tokens, reduced from 256,000. An unset limit uses the new ceiling; requests exceeding it fail validation.
- Website updates link to live evaluation and sponsorship routes and add the event receipt journal entry.
Removed
- The protobuf source name
ActionReceipt, native MCP namesaudit_receipt_listandaudit_receipt_get, and retrieval keyexclude_audit_readshave no compatibility aliases. - Role rankings move out of the Models page into the dedicated Leaderboard page.
- Claude Code configuration drops obsolete REPL and MultiEdit tool identifiers from its deny list.
Fixed
- Tribunal generation, Marshal, and Auditor enforce the response schema supplied to the provider. Invalid responses receive corrective feedback within the existing retry limits rather than accepting missing fields, null strings, case-insensitive keys, or invalid verdict shapes.
- Public spectator startup binds listeners before resolving URLs, so ephemeral port assignments propagate to feed origins, Explorer configuration, and Gateway state. Listen validation permits separate kernel-assigned ephemeral ports.
- Linux setup maps logical dependencies to the correct apt, dnf, pacman, and zypper package names. Docker onboarding snapshots record a source revision for release evidence.
- Historical
v1.3.0notes are restored to their tagged contents; post-tag changes are attributed to this release. - The README states the Linux and Python prerequisites for the aggregate test gate.
Qualification evidence
The Linux/amd64 candidate built with make build reports v1.4.0, source revision e2a026897c18239daa6b975b104f1697b978a0be, and uncommitted release preparation changes. Its SHA-256 is e4f2779c15bed5cbe41f2bb7d42bd75cef44c9a1b67f44089494018189e07f87; build identity is 346751b3050a06166e4e57f7cdc89567c9898bf32cb164eaee527222ad060dac.
./ztd test release-smokepassed. The complete evidence root is.ztd/operators/release-smoke-20261024T195142Z/, includingevidence/smoke-summary.json, local receipts, per-runtime reports, and command logs. This qualifies isolated doctrine execution and local evidence../ztd test eval-looppassed under ratify and notary. Retained roots are.ztd/operators/eval-loop-ratify-7f1765d55a2c4156bf0ef618fe2a3204/and.ztd/operators/eval-loop-notary-42d43e25aad544cb83fdea3d6140e596/../ztd test conformance-looppassed under doctrine, consensus, ratify, and notary. Retained roots under.ztd/operators/areconf-doctrine-370968f36d504c18a275aed8ce6fad97/,conf-consensus-0e934730b8c24fb2b894fbdf53f3a625/,conf-ratify-86fc8dc5fd6c484399bd878756542857/, andconf-notary-aa45d5e18d3543be9a0978fe75796b5c/.
The process loops use scripted providers to qualify execution and evidence. Historical live campaigns retain their original release attribution; this preparation adds no model-quality or fleet-scale claim.
./ztd eval campaigns list found 75 verified campaigns, all with recorded release attribution. Their release tags and results were left intact.
Compatibility
Upgrade clients that consume generated protobuf APIs, MCP receipt queries, retrieval queries, or compliance artifacts. Gateways and Operators participating in the renamed query contracts should use the same release; no legacy tool aliases are provided.
- Protobuf receipt field numbers and JSON payload fields are unchanged, as are canonical receipt signing bytes and persistence attestations. Generated type names and descriptors change. Searchable record wrappers use
event_receipt; dispatch responses continue to usereceipt. - The runtime SQLite schema already stores receipt stages on
eventswithevent_receipt_*columns inv1.3.0; this release's store rename introduces no new database migration. The receipt chain event type andreceipts:pubsub channel prefix are unchanged. An Operator's local store remains authoritative; Gateway receipt mirrors remain best-effort projections. - Older traces containing
exclude_audit_readsand bundles containing action receipt identifiers require the verifier from the revision that produced them. Use the original verifier for historical evidence; this release supplies no conversion or compatibility alias. New campaigns freeze the current tool catalog. - Existing inference callers that request more than 16,384 output tokens must lower their requested limit.
Tests
| Command | Result |
|---|---|
make version-sync and make version-sync-check |
PASS; 16 version declarations match v1.4.0. |
make proto-generate and make swagger-generate |
PASS; generated bindings and OpenAPI already current. |
make explorer-embed and make explorer-embed-check |
PASS; refreshed Explorer release label. |
make build |
PASS; candidate identity recorded above. |
./ztd test lint |
PASS; zero issues. |
./ztd test unit |
PASS; 129 packages, with 15 additional packages containing no tests. |
./ztd test integration |
PASS; full default Tier 2 suite, 130 packages, with 14 additional packages containing no tests. The default run omits evalstack tests; selected real stacks are recorded separately below. |
./ztd test integration -v --pkg <package> --run 'Receipt|EventsStore|EventsChain' |
PASS for ./internal/services/storage, ./internal/services/governance, ./internal/services/pubsub, and ./internal/services/mcp; matching tests ran without skips. |
./ztd test integration --eval-stack --pkg ./internal/services/gateway --run 'PublicSpectator|TribunalConsensusRealStack' |
PASS; seven matching spectator tests, no skips. Tribunal coverage is in the following row. |
./ztd test integration --eval-stack --pkg ./internal/services/evaluation --run '^TestTribunalConsensusRealStack$' |
PASS; real isolated Tribunal stack, no skips. |
./ztd test integration --pkg ./internal/services/inference --run 'OllamaBackend|MaxTokens' and --run 'InvalidTypedInputRejectedBeforeBackend' |
PASS; unset and explicit output limits and rejection above 16,384, no skips. |
./ztd test release-smoke, ./ztd test eval-loop, and ./ztd test conformance-loop |
PASS; retained evidence listed above. |
make console-lint console-test console-embed-check explorer-lint explorer-test |
PASS; Console 50 tests and Explorer 778 tests; console embed current. |
make constants-check explorer-catalog-check third-party-notices-check doctrines-validate |
PASS. |
make test-release-scripts test-onboarding demos-test adapter-contract-check protocol-lint |
PASS; 21 onboarding checks, 24 demo tests, adapter contract current, protocol TypeScript checked. |
make website-test website-build |
PASS; 142 tests passed, 12 PowerShell tests skipped because pwsh is unavailable. |
git diff --check and comparison of historical notes with tag v1.3.0 |
PASS. |
Complete command output is retained locally under release-evidence/v1.4.0/preparation-logs/. The aggregate make test gate was not run; checks outside this selection are listed under Deferred.
Documentation
Affected canonical documents cover agents, Operator execution, storage, protocol, evaluations, public spectator, and testing. Demo guides describe the fictional business systems and their permissions. Protocol headers and first-party npm versions synchronize from VERSION; the Explorer embed compiles the release label.
Documentation assessed without edits retains its existing metadata. Release preparation restores the immutable v1.3.0 notes, adds this release to the changelog and documentation catalog, updates the README version and test prerequisites, and refreshes generated release assets.
Compliance Evidence
The running Gateway's real database supplied three signed event receipts and four commitments for 2026-10-24T11:13:13.006Z through 2026-10-24T11:13:43.006Z, under doctrine posture and standard cryptographic mode. ztd compliance release-prepare generated the signed bundle and verified it offline with compliance_bundle@2.0.0: valid=true, zero verification failures, checksum root a2b0efb3b2c9db412ea3d539d905e9ceaa5f7baea80565a39acfe13b5734001a.
The canonical Markdown and CSV projections exactly match the bundle's renderings. The complete bundle and external trust policies are retained in release-evidence/v1.4.0/.
This is partial operational evidence: the report records one satisfied assertion, two unverifiable assertions, and ten not-applicable assertions. Verification confirms the signed bundle's integrity and reproducibility, not complete assertion coverage.
The assessed running Gateway reports v1.3.0 at the same source revision e2a026897c18239daa6b975b104f1697b978a0be, before the release version and asset refresh. Its actual binary SHA-256 52f9d614238c5062b0fcd1a584a2fbf02e706f5abd310e2708bc2a5cfeee2679 and build identity 6171d77a5c66afd19fe66844c1c4a69a9e10958a502748551aa35001f2e21299 are recorded in scope; the candidate digest above is separate. Uncommitted preparation changes are not part of the recorded source revision.
Deferred
- Release owner review, commit, PR creation and merge, rehearsal on merged
main, tagging, and publication. These remain release-owner actions underINV-REL-DUTY-01andINV-REL-DUTY-02. - Live-provider/model-quality qualification, fleet-scale qualification, Docker distribution onboarding, and native macOS/Windows qualification unless separately run and recorded for this candidate.