Completion Review: Bento readiness gate for ANU-14
Review state
- Parent change: ANU-17, In Progress
- Implementation child: ANU-18, Done
- Implementation pull request:
Anuva Bento #6,
merged as
8dd5c4ff8a8a9760f845b2fc43c34ae6a940e07e - Product acceptance decision: approved by Girish on 2026-07-28 at 02:16 UTC
- Canonical publication: not published
The reviewed delivery satisfies the ANU-17 product gate. It provides an
additive editor protocol, artifact, and contract package 1.1.0 boundary for
host-requested save, stable focus, and a deterministic Signal/Paper catalog
without changing the presentation contract, player, renderer, template-family
object schema, or repository ownership.
Reviewed delivery evidence
| Child | Delivery | Durable evidence |
|---|---|---|
| ANU-18 | Bento PR #6, merged as 8dd5c4ff8a8a9760f845b2fc43c34ae6a940e07e on 2026-07-27 |
Completion report; reviewed schema-fix commit 229989e9664e821c2ed730b7aab7ad78e9085c72 |
Product Main also inspected the merged Bento main source, the real local
artifact bytes, manifest/catalog descriptors, repository and Linear states,
and the actual merged PR metadata rather than relying only on the child report.
Product acceptance evidence
| Product criterion | Result | Evidence reviewed |
|---|---|---|
TypeScript, runtime validation, and distributed JSON Schema define identical closed request-save and focus shapes |
Passed | Merged contract discriminated unions and validator cover both commands; editor.schema.json closes all request, response, and six event variants; the post-fix focused suite records 231 checks. |
| Manual and autosave reuse the validated save path and preserve correlation data | Passed | editor-bridge.ts dispatches both triggers to session.saveRequest(requestId, trigger); the emitted event contains the exact host request ID, accepted base revision, trigger, and complete validated envelope. |
| Malformed, duplicate, and validation-failing saves are stable and do not advance accepted revision | Passed | Runtime/schema fixtures, session tests, and the real browser harness cover invalid content and repeated request IDs; SAVE_VALIDATION_FAILED and DUPLICATE_REQUEST_ID return correlated failures without a successful proposal or accepted-revision change. |
| Focus succeeds for non-first slides on Main, Companion, and Emphasis and reports real active slides | Passed | Session state maintains an activeSlides map; Store-backed focus and browser/session checks cover every surface, non-first slides, switching, and per-surface restoration. |
| Missing and cross-surface targets fail structurally | Passed | SLIDE_NOT_FOUND and SLIDE_SURFACE_MISMATCH are explicit closed failures covered by session and browser tests. |
| Focus is idempotent and preserves authoring state | Passed | Focus uses the narrow Store navigation adapter while editor events are suppressed; tests compare byte-equal content and unchanged dirty, accepted revision, undo, and redo state. |
| Signal/Paper catalog is generated from the runtime source of truth | Passed | createAnuvaTemplateCatalog() directly calls createAnuvaTemplateFamilies(); serializer and tests deep-compare parsed catalog families with fresh runtime families. |
| Manifest binds catalog path, format, family IDs, and a reproducible SHA-256 | Passed | Local byte inspection verified one manifest file entry and descriptor for template-catalog.json, format 1.0.0, ordered IDs signal-family and paper-family, all matching SHA-256 63f487f7f65d3d62ce0b6cf395aca2b4db4daeac04a6fa6f4a14f159f56cb440. |
Editor protocol/artifact/contract package are 1.1.0 with preserved compatibility, security, and notices |
Passed | Merged constants and artifact metadata declare 1.1.0; presentation/player/family schema remain 1.0.0; renderer remains 1.0.8-anuva-renderer.1; required capabilities, hard-offline mode, host persistence authority, license, and notices are present. |
| Real browser flow proves save, focus, catalog, and network behavior | Passed | Child evidence covers manual/autosave correlation, all surfaces and non-first slides, catalog fetch/hash/equality, duplicate/missing/wrong-surface failures, no external requests, and empty page-owned error capture. |
| Bento CompletionReport records the reviewed delivery and ANU-14 handoff | Passed | The report records source/PR references, versions, capabilities, artifact paths and hashes, verification totals, limitations, recovery, previews, and the exact downstream ownership boundary. |
| Product Main verifies the artifact gate before completing ANU-17 | Passed | This review reconciles Linear, GitHub, merged source, child evidence, local artifact bytes, release impact, security, and recovery against every approved criterion. |
Artifact and compatibility record
| Authority | Accepted value |
|---|---|
| Bento merge commit | 8dd5c4ff8a8a9760f845b2fc43c34ae6a940e07e |
| Editor artifact and protocol | 1.1.0 |
| Contract package distribution | 1.1.0 |
| Presentation contract | 1.0.0 |
| Player protocol and artifact | 1.0.0 |
| Template-family object schema | 1.0.0 |
| Template catalog | anuva/bento-template-catalog 1.0.0 |
| Renderer | 1.0.8-anuva-renderer.1 |
| Required capabilities | editor.host-request-save, editor.focus.stable, templates.catalog.packaged |
| Editor manifest SHA-256 | 27db22300a9e471d24c474879ace7fbdbe1e3b6f3e7e9aad197e4e463d86088b |
| Template catalog SHA-256 | 63f487f7f65d3d62ce0b6cf395aca2b4db4daeac04a6fa6f4a14f159f56cb440 |
The approved plan allowed equally explicit reviewed capability identifiers, so
editor.focus.stable satisfies the stable-slide capability requirement.
Verification review
- Merged Bento
mainis clean at PR #6 merge commit8dd5c4f. - GitHub reports PR #6 merged with no configured status checks. This review does not describe absent checks as passing.
- The child CompletionReport records 103 contract, 37 adapter, 231 editor/schema/catalog, 31 session, and 45,362 convergence checks.
- Upstream build, the Windows single-file build,
build:anuva, editor/player packaging, contract dry-run package inspection, browser/security scenarios, recursive documentation indexes, strict MkDocs, and fresh previews passed. - Product Main recalculated the ignored editor manifest and catalog SHA-256 values and verified the catalog descriptor, normal file entry, and real bytes are identical.
- Product Main verified
LICENSEandTHIRD_PARTY_NOTICES.mdare present in the local editor artifact.
The child report was authored before its guarded ready-and-merge operation and therefore describes PR #6 as open and draft. Current GitHub and Linear evidence supersedes that timing note: PR #6 is merged and ANU-18 is Done.
Security, privacy, and recovery review
- Exact origin and parent-window source checks remain before validation and dispatch.
- The command/schema surface is closed and rejects unknown fields and versions.
- Host persistence and accepted-revision authority are unchanged.
- The catalog contains reviewed template-family data only; no credentials, signed URLs, user content, or public-service endpoint is introduced.
- The editor artifact remains hard-offline and retains license and third-party notices.
- ANU-12 editor
1.0.0remains the rollback baseline. Consumers requiring the new capabilities must fail closed against1.0.0; they must not silently downgrade or treat it as compatible.
Release impact
ANU-17 creates no public package publication, GitHub release, production deployment, database migration, canonical documentation publication, or player/renderer rollout. The accepted deliverable is merged private Bento source plus a deterministically reproducible editor/contract artifact identity.
The generated editor and catalog under working/anu-18/ are ignored local
outputs, not a durable binary release. ANU-14 must reproduce them from Bento
merge commit 8dd5c4ff8a8a9760f845b2fc43c34ae6a940e07e, verify the accepted versions
and hashes, vendor the immutable consumer artifacts through its own reviewed
workflow, and record provenance. This is the approved downstream handoff rather
than a CMS workaround.
Remaining follow-ups and limitations
- Resume ANU-14 under its existing CMS ImplementationPlan and record the exact Bento merge commit, versions, capabilities, manifest hash, and catalog hash.
- ANU-14 still owns authenticated hosting, autosave scheduling and persistence, scene-to-slide mapping, conflict recovery, AI operations, media, and Web preview acceptance.
- Python, Unity/Vuplex, production deployment, and canonical aggregate publication were outside ANU-17 and remain unchanged.
- The absence of configured GitHub status checks for Bento PR #6 is recorded; acceptance relies on the reviewed repository-local verification evidence.
None of these follow-ups is an unfinished ANU-17 acceptance criterion.
Completion decision
The host-save, stable-focus, template-catalog, compatibility, security, verification, documentation, and downstream handoff requirements are satisfied and approved. Deliver the completion-phase Product Main PR while ANU-17 remains In Progress. Only after that PR merges may the guarded Linear completion command mark ANU-17 Done.
Approval record
- Reviewed and approved by: Girish
- Approved at: 2026-07-28 02:16 UTC
- Approval scope: CompletionReview as written, including the absence of configured Bento PR status checks, the reproducible ignored-artifact boundary, the exact accepted hashes and versions, the lack of a public release or canonical publication, and the ANU-14 rebuild/verify/vendor handoff