Skip to content

Completion Report: ANU-12 - Build the Anuva Bento Editor and Template Families

Status: Completion review passed; awaiting explicit ready-and-merge approval.

Implementation summary

ANU-12 adds:

  • one production editor session for three independent Main, Companion, and Emphasis surface documents;
  • a versioned, exact-origin, parent-source editor-host protocol with host-authoritative persistence and accepted revisions;
  • versioned Signal and Paper template families with coordinated per-surface layouts, dimensions, transparency, safe areas, theme tokens, and semantic slots;
  • pure semantic planning and atomic family/layout application that preserves compatible content and explicit user extras;
  • one presentation-level undo/redo history across all affected surfaces;
  • a closed, validated, revision-aware, auditable AI-operation catalog with no executable or arbitrary-patch form;
  • external media/chart binding operations that preserve the ANU-11 embedded-font and external-non-font policy;
  • a production editor-only build and deterministic offline package; and
  • normative editor-host, templates, semantics, operations, media, undo, security, and example-family documentation.

The editor sends complete validated save requests but does not persist to a CMS, mint an accepted revision, invoke an AI model, upload assets, or own downstream Web, Python, or Unity integration.

Acceptance evidence

Linear acceptance criterion Result Evidence
One editor instance edits all three independent surfaces while preserving presentation context Pass Production browser smoke switched Main, Companion, and Emphasis in one Bento store; surface documents, semantic content, dimensions, safe areas, dirty state, and composite history remained independent
A versioned template family styles all surfaces coherently and respects dimensions, transparency, and safe areas Pass Signal and Paper families each provide coordinated layouts for all three surfaces; focused checks and browser smoke covered 1280x720 Main, 640x720 Companion, 1280x360 Emphasis, declared safe areas, and transparent plus opaque Emphasis examples
Theme/layout/family changes preserve compatible semantic content and user extras, warn on unsafe mappings, and undo atomically Pass Pure plan/apply checks covered preservation, mapping warnings/rejections, input non-mutation, rollback, and generated cases; browser smoke applied both families and undid/redid the complete three-surface result in one action
Host messages validate origin, schema, revision, and runtime compatibility Pass Closed runtime validators and bridge tests reject malformed, wrong-origin, wrong-source, incompatible-runtime, stale-revision, and unsolicited messages; the real host harness completed ready, diagnostics, operation, save-request, and save-accepted with host revision production-1 to production-2
AI primitives are typed, validated, auditable, surface-aware, and contain no unrestricted script execution Pass Closed operation union, expected-revision and target checks, stable actor/audit context, deterministic batch results, atomic rollback, and explicit rejection of scripts, callbacks, arbitrary selectors, JSON Patch, property paths, unsafe HTML, secrets, and binary payloads
Editor production mode disables public update/collaboration behavior and uses the same renderer version as the player Pass Host-managed mode constructs no collaboration session, initializes no IndexedDB recovery/version history, runs no upstream update check, blocks local file-save shortcuts, and routes Ctrl+S through the host bridge; browser network audit found no public service request; editor and player manifests both declare renderer 1.0.8-anuva-renderer.1

Verification summary

Area Result
TypeScript, unit, integration, and generated cases npm run test:anuva passed 103 contract, 37 adapter, and 162 editor checks
Upstream regression npm run build and the documented Windows single-file build passed
Convergence regression 45,362 checks passed
Anuva production graph npm run build:anuva passed
Editor artifact 13 pre-manifest files; manifest SHA-256 d6a6458bd475a0f5e90f107b030c8edd389e761ad30069566789544fafa1bba5
Player regression artifact 10 files; manifest SHA-256 df806b6541cf5bffa1803917a0628d9079bef75109cac979e4275f7630c50042
Contract package inspection npm pack --dry-run passed with 43 files, including editor schema, ESM, declarations, source maps, license, and notices
Browser and keyboard Three-surface navigation, ArrowRight tab navigation, family application, preservation, composite undo/redo, host save flow, host-only Ctrl+S, and revision acknowledgement passed; page-owned error and unhandled-rejection capture remained empty
Network and security Real host/editor flow made no non-host-origin request; production package rejects unresolved development flags and dynamic executable operation forms
Documentation Recursive indexes, strict MkDocs build, and fresh live-preview validation passed

The production host harness reported: PASS - revision production-1 -> production-2; renderer 1.0.8-anuva-renderer.1; no external requests or page errors.

Completion review

PR #4 was cleanly mergeable and had no configured status checks, formal reviews, requested changes, or unresolved review comments. The review found one acceptance gap: visual hiding alone had left upstream IndexedDB autosave and local Ctrl+S behavior active. The fix adds an explicit host-managed editor mode, routes the save shortcut to the validated host bridge, and adds four focused regression checks. All required verification passed again after the fix.

Artifacts

Artifact Local reference Identity
Static editor working/anu-12/anuva-bento-editor-1.0.0/ Manifest SHA-256 d6a6458bd475a0f5e90f107b030c8edd389e761ad30069566789544fafa1bba5
Contract package shape @anuva/bento-contract 1.0.0 dry-run 43 files, 37.9 kB packed
Static player regression working/anu-11/anuva-bento-player-1.0.0/ Manifest SHA-256 df806b6541cf5bffa1803917a0628d9079bef75109cac979e4275f7630c50042

These are ignored local verification artifacts. They were not published and are not canonical releases.

Deferred work and residual risk

  • CMS persistence, PresentationConfig compilation, AI provider/model orchestration, asset upload/storage, Python orchestration, product Web-host UX, and Unity/Vuplex integration remain outside this repository boundary.
  • The repository-local host harness proves the protocol and browser boundary; it is not downstream CMS or Unity acceptance evidence.
  • Public package publication, GitHub release creation, production deployment, and canonical documentation publication remain unperformed.
  • ANU-12 must remain unmerged and not Done until a separate completion review and explicit ready-and-merge approval.