Skip to content

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 main is clean at PR #6 merge commit 8dd5c4f.
  • 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 LICENSE and THIRD_PARTY_NOTICES.md are 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.0 remains the rollback baseline. Consumers requiring the new capabilities must fail closed against 1.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