Skip to content

Completion Report: ANU-18 - Bento Host Save, Stable Focus, and Template Catalog

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

Implementation summary

ANU-18 advances the editor protocol, editor artifact, and server-safe contract package to 1.1.0 while preserving the presentation contract, player, and template-family object schema at 1.0.0. It adds:

  • exact host-requested manual and autosave commands routed through the same validated save path as the editor controls;
  • stable focus by surface and slide identity through the upstream Store API, with real active-slide memory for Main, Companion, and Emphasis;
  • deterministic duplicate-request rejection and structured focus/save errors;
  • a validated anuva/bento-template-catalog 1.0.0 generated from the exact Signal/Paper runtime source; and
  • a deterministic editor package whose manifest binds catalog path, format, SHA-256, family IDs, versions, and capabilities.

The host continues to own persistence and accepted revision assignment. Bento does not schedule autosave, interpret sceneId, compile PresentationConfig, or own downstream CMS, Web, Python, or Unity behavior.

Acceptance evidence

Acceptance item Result Evidence
TypeScript, runtime validation, and distributed JSON Schema define identical closed command shapes Pass Seven exact request variants reject unknown fields; completion review added closed response and all six event variants; the focused schema suite passes 231 checks
Manual and autosave preserve request ID, base revision, trigger, and full envelope on the validated save path Pass Session tests cover both triggers and complete-envelope equality; the real host/editor harness confirms correlated responses and save events
Validation failure and duplicate IDs are deterministic, correlated, and do not advance revision Pass Session tests preserve accepted revision on invalid content; bridge/browser coverage returns SAVE_VALIDATION_FAILED and DUPLICATE_REQUEST_ID without a successful save proposal
Focus works for every surface, non-first slides, cross-surface switches, and real active-slide reporting Pass Session and browser checks cover Main, Companion, and Emphasis, cross-surface restoration, and the exact activeSlides map
Missing/cross-surface targets are structured and repeated focus preserves all authoring state Pass SLIDE_NOT_FOUND and SLIDE_SURFACE_MISMATCH are stable; byte-equal content plus unchanged dirty, revision, undo, and redo state pass
Signal/Paper catalog is runtime-equal, byte-deterministic, and manifest-bound Pass Shared serializer deep-equals runtime families; two post-review rebuilds reproduce catalog SHA-256 63f487f7f65d3d62ce0b6cf395aca2b4db4daeac04a6fa6f4a14f159f56cb440 and manifest path/format/family IDs
Editor protocol/artifact/package 1.1.0 advertise capabilities and preserve compatibility/security Pass Required capabilities are explicit; presentation/player/family schema remain 1.0.0; renderer remains 1.0.8-anuva-renderer.1; hard-offline checks, license, and notices pass
Real browser flow exercises save, focus, catalog, failures, and network denial Pass Host/editor harness covers manual/autosave, all surfaces and non-first slides, catalog loading, duplicate/missing/wrong-surface failures, no external requests, and empty page-owned error capture

Verification summary

Area Result
TypeScript and focused suites Passed after completion-review fix; 103 contract, 37 adapter, 231 editor/schema/catalog, and 31 session checks
Upstream regression npm run build and documented Windows single-file build passed
Convergence regression 45,362 checks passed
Anuva graph npm run build:anuva passed
Editor artifact 14 pre-manifest files; two post-review rebuilds produced manifest SHA-256 27db22300a9e471d24c474879ace7fbdbe1e3b6f3e7e9aad197e4e463d86088b
Player regression artifact 10 files; manifest SHA-256 df806b6541cf5bffa1803917a0628d9079bef75109cac979e4275f7630c50042
Contract package npm pack --dry-run passed with 43 files, 39.9 kB packed, shasum 2fd30ab5a50a18c44d5ad2ba46894eb62b00f715
Browser/security Catalog, manual/autosave correlation, three-surface focus, structured failures, revision acknowledgement, no external requests, and empty page-owned error capture passed
Documentation Recursive index, strict build, fresh preview, and exact link validation are recorded in the Implementation Log

Versions and capabilities

Authority Value
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
New capabilities editor.host-request-save, editor.focus.stable, templates.catalog.packaged

Delivery

Item Reference
Branch codex/anu-18-add-bento-host-save-stable-focus-and-packaged-te
Reviewed implementation and fix commit 229989e9664e821c2ed730b7aab7ad78e9085c72
Draft PR Shoonya-Game-Technologies/anuva-bento#6
Bento docs preview https://bento1.girishd.com/changes/2026-07-27-anu-18-bento-host-save-focus-template-catalog/
Product Main source docs/changes/2026-07-27-anu-17-bento-readiness-gate/index.md
Product Main preview https://main1.girishd.com/changes/2026-07-27-anu-17-bento-readiness-gate/

Artifacts

Artifact Local reference Identity
Static editor working/anu-18/anuva-bento-editor-1.1.0/ Manifest SHA-256 27db22300a9e471d24c474879ace7fbdbe1e3b6f3e7e9aad197e4e463d86088b
Template catalog template-catalog.json in the editor artifact SHA-256 63f487f7f65d3d62ce0b6cf395aca2b4db4daeac04a6fa6f4a14f159f56cb440; signal-family, paper-family
Contract package shape @anuva/bento-contract 1.1.0 dry-run 43 files, 39.9 kB packed
Player regression working/anu-11/anuva-bento-player-1.0.0/ Manifest SHA-256 df806b6541cf5bffa1803917a0628d9079bef75109cac979e4275f7630c50042

These ignored local artifacts were not published, released, or deployed.

Completion review

  • PR #6 is open, draft, cleanly mergeable, and has no configured status checks, formal reviews, requested changes, or unresolved review comments.
  • Review found one acceptance gap: the distributed JSON Schema covered exact editor requests but omitted the public response and event variants required by the approved ImplementationPlan.
  • The fix adds a closed response definition, validation-issue and operation-result definitions, and all six editor event variants, including exact save triggers and required ready capabilities.
  • The focused editor suite increased from 208 to 231 checks. The complete Anuva suite, two deterministic editor package rebuilds, contract dry-run package inspection, recursive docs indexes, strict MkDocs build, and fresh preview all pass after the fix.

Limitations, handoff, and recovery

  • The repository browser harness proves the Bento protocol and artifact boundary; it is not downstream CMS, product Web, Python, or Unity acceptance.
  • CMS persistence, autosave policy, scene mapping, PresentationConfig compilation, AI orchestration, Python staging, Unity/Vuplex hosting, and downstream ANU-14 acceptance remain with their owning repositories.
  • Public package publication, GitHub release, production deployment, canonical docs publication, PR merge, and Linear completion were not performed.
  • The guarded PR workflow linked PR #6 and moved ANU-18 from In Progress to In Review. It remains draft and unmerged pending explicit ready-and-merge approval after this completed review.
  • Product Main ANU-17/ANU-14 may consume the exact protocol, capabilities, catalog identity, artifact manifest, and preview references above.
  • Before merge, rollback is removal of the ANU-18 additions from this feature branch; ANU-12 editor 1.0.0 remains the recovery baseline.
  • The user-stopped local Tobii Service remains stopped while the CLI-owned MkDocs preview uses port 4005.