Completion Report: ANU-11 - Build the Anuva Bento Contract and Deterministic Player
Status: Completion review passed; awaiting explicit ready-and-merge approval.
Implementation summary
ANU-11 replaces the provisional spike contract with:
- private server-safe package
@anuva/bento-contract1.0.0; - exact contract, protocol, player, runtime, and Bento compatibility;
- runtime schema validation with stable codes and paths;
- pure normalization, asset planning, and compatibility transforms;
- equal Main, Companion, and Emphasis document semantics;
- optional per-surface transparency independent of surface kind;
- stable fragment identity and deterministic absolute-time state;
- the complete approved player command/event surface;
- SHA-256 and media-type checked external asset loading;
- a player-only offline static artifact with checksums, license, and notices; and
- normative documentation and local CMS/Python/Unity compatibility fixtures.
The contract package imports in Node with no window, document, DOM library,
editor, renderer, or browser runtime dependency.
Acceptance evidence
| Acceptance criterion | Result | Evidence |
|---|---|---|
| Schemas accept valid fixtures and reject incompatible or unsafe data with stable errors | Pass | 103 contract checks plus 37 adapter checks |
| Contract package has no editor DOM dependency and works in server tests | Pass | ES2022-only TypeScript build and isolated Node import |
| Player exposes load/reset/seek/tick/show/hide/clear/fragment and readiness/error events | Pass | Typed protocol, request-correlated bridge events, concurrent-load cancellation, and real-browser host command sequence |
| Deterministic replay and arbitrary seek pass for approved animations/assets | Pass | Sequential tick equals reset plus direct seek; backwards/forwards seek, fragments, assets, and fixed state fingerprints |
| Player artifacts are versioned, checksummed, offline, transparency-capable, and retain notices | Pass | Player-only build, verified-byte blob rendering, 10-file manifest, repeatable SHA-256, marker exclusion, optional Main transparency probe, license/notices |
| Compatibility lets CMS, Python, and Unity reject unsupported combinations | Pass for repository contract fixtures | Exact consumer declarations pass; old contract and missing clock capability reject before use |
Equal surface and transparency decision
Main, Companion, and Emphasis are required but structurally equivalent. The representative documents are all opaque. Contract checks prove that optional transparency is valid on each kind, and the Web host loads a transparent Main probe successfully. No acceptance claim depends on Emphasis being transparent.
Artifacts
| Artifact | Local reference | Identity |
|---|---|---|
| Contract package | working/anu-11/anuva-bento-contract-1.0.0.tgz |
SHA-256 43000c5b1aac6181f0b66610f0f8e883b8e3eea860f964e487c9575371922072 |
| Static player | working/anu-11/anuva-bento-player-1.0.0/ |
Manifest SHA-256 cd25840e5bf15ccb8fc2abefab054698c46b2dea15a03c9115cf89c6b490328f |
Both hashes repeated across two builds. These are ignored local handoff artifacts, not published or canonical releases.
Completion review
- The committed Product Main contract, ANU-11 issue, approved implementation plan, PR diff, local verification, and documentation evidence were reviewed.
- PR #3 was a cleanly mergeable draft at review time. GitHub had no configured status checks, requested changes, or formal review records; Girish supplied the completion-review approval in the implementation task.
- Review findings in structural validation, chart-snapshot materialization, verified-byte rendering, stable asset errors, request correlation, and concurrent-load cancellation were fixed and covered by focused regressions before this report was refreshed.
Verification summary
- Baseline install, upstream build, Windows single-file build, ANU-10 checks, Anuva build, and all 45,362 convergence checks passed before product changes.
- The production contract suite passed 103 checks.
- The Bento adapter suite passed 37 checks.
- The player-only production graph emitted 55.39 kB JavaScript, 19.00 kB gzip.
- The real-browser host resolved only after all three players and assets were ready and passed request correlation, safe hidden failure/recovery, superseded-load cancellation, verified-byte blob rendering, reset, seek, tick, show, hide, clear, fragment, equal-surface, and optional-transparency checks.
- The exact packaged player booted independently with versioned generator and ready marker.
- Package inspection retained
LICENSE,THIRD_PARTY_NOTICES.md, schema, compatibility metadata, ESM, declarations, and source maps.
Deferred work and residual risk
- Unity/Vuplex integration, transport, transparency, lifecycle, virtual-screen, and capture behavior remain unverified by approved deferral.
- Performance, startup latency, memory, CPU/GPU, frame time, and concurrent player behavior remain unmeasured by approved deferral.
- CMS, Python, and Unity evidence is repository-local compatibility evidence, not downstream integration.
- External authentication and immutable asset-proxy provisioning remain consumer responsibilities; credentials and signed or expiring URLs must never enter the contract.
- Release publication and immutable downstream release references require a later approved private release flow.