Implementation Issues: Bento readiness gate for ANU-14
Status
The approved product plan created one repository-scoped child after the Product Main planning PR merged. ANU-18 is Done and its Bento PR is merged.
Proposed issues
| Client key | Linear issue | Repository | Priority | Depends on | Status / start gate |
|---|---|---|---|---|---|
bento-editor-readiness |
ANU-18 | anuva-bento |
High | None | Done |
Issue draft
bento-editor-readiness: Add Bento host-save, stable focus, and packaged template catalog
- Repository:
anuva-bento - Priority: High
- Dependencies: None inside ANU-17
- Downstream consumer: ANU-14
- Linear issue: ANU-18
- Status: Done
- Pull request:
Anuva Bento #6,
merged as
8dd5c4ff8a8a9760f845b2fc43c34ae6a940e07e - Completion report: Bento evidence
Scope
Extend the closed editor protocol, TypeScript contract, runtime validation, and JSON Schema with:
request-savecarrying{ trigger: "manual" | "autosave" }; andfocuscarrying{ surface, slideId, sceneId? }.
Route requested saves through the same validated session-save path as the editor Save control, preserving the host's request ID, current accepted base revision, trigger, and complete envelope. Track the real active slide on every surface, validate surface/slide ownership, and navigate through the supported Bento store operation without changing document or history state.
Generate the exact Signal/Paper template-family catalog from the runtime family
source, package deterministic JSON, and expose its path, format version,
SHA-256, and family IDs in the editor manifest. Advance the editor protocol,
editor artifact, and contract package to 1.1.0; advertise explicit
host-request-save, stable-focus, and packaged-catalog capabilities. Preserve the
presentation contract, player protocol, renderer, template-family object
version, hard-offline behavior, origin/source validation, license, and notices
unless a real shape change requires a Product Main plan revision.
This issue does not implement CMS persistence, autosave policy, scene mapping, AI operations, Web preview, or any iframe workaround.
Acceptance
- TypeScript types, runtime validation, and distributed JSON Schema define identical closed command shapes and reject malformed/unknown fields.
- Manual and autosave requests emit the existing validated
save-requestpath with the host request ID, accepted base revision, trigger, and full envelope. - Validation failure and duplicate request IDs are deterministic, correlated, and do not advance accepted revision state.
- Focus works for Main, Companion, and Emphasis, including non-first slides and cross-surface switches.
- The session reports and preserves the real active slide per surface.
- Missing and cross-surface targets return stable structured errors.
- Repeated focus is idempotent and does not change content, dirty state, revision, undo history, or redo history.
- Signal/Paper catalog builds are byte-deterministic and exactly equal the runtime source objects.
- The manifest exposes and verifies catalog path, format version, SHA-256, and family IDs.
- Editor protocol, editor artifact, and contract package
1.1.0advertise the three required capabilities and preserve renderer/player compatibility, license/notices, and hard-offline behavior. - A real browser host/editor flow exercises save correlation, every surface, non-first-slide focus, catalog loading, structured failures, and network denial.
Docs
Create an issue change folder with index.md, ImplementationPlan.md,
ImplementationLog.md, and CompletionReport.md. Update the normative
editor-host protocol, template-family/catalog, packaging/manifest,
compatibility/capability, structured-error, security, and verification
documentation. Maintain recursive indexes and MkDocs navigation and return
exact machine-specific Bento preview URLs after every logical update.
Verification
Run:
npm run test:anuvanpm run test:editornpm run build:anuvanpm run package:editor- contract build and
npm pack --dry-run - deterministic clean catalog/artifact rebuild and SHA-256 comparison
- focused validator, schema parity, duplicate-request, Store navigation, per-surface focus, idempotency, dirty/revision/history, and catalog equality tests
- direct browser host/editor smoke and public-network denial
- manifest, artifact file, version, capability, license, and notices inspection
- repository docs index validation and strict MkDocs build
The CompletionReport must map every acceptance item to evidence and record the reviewed commit, PR, artifact paths, versions, capabilities, manifest and catalog hashes, limitations, recovery state, exact preview URLs, and Product Main/ANU-14 handoff.
Dependency and approval contract
- Completed ANU-11 and ANU-12 artifacts are the implementation baseline.
- The child has no unfinished prerequisite inside ANU-17.
- ANU-14 must not begin CMS code changes until the child artifact is reviewed and its CompletionReport satisfies the gate.
- No decision phase is required unless implementation expands the approved contract, ownership, presentation envelope, renderer/player, or CMS scope.
- Product Main completion begins only after the Bento child is terminal with a merged PR and complete evidence.
Manifest
The executable ImplementationIssues.manifest.json was validated and dry-run
during planning. After Product Main PR #17 merged, the guarded creation command
created ANU-18 in Ready with the approved repository label, parent, source path,
preview, scope, acceptance, docs, and verification contract.