v13 to v14 consumer layout

Documentation index · Release and preservation records · v14 AAO release record · Stage 15 ledger · v13 publication

Superseded as a proposal; kept as the migration reference. v14 is now the published AAO release. The live description of the applied layout, counts, verification, and known defects is aao-v14.md. This page retains the cutover table below as the v13 → v14 path-mapping evidence.

This document records the Stage 15I layout experiment that became the applied v14 AAO release. The original candidate tree is built beneath build/consumer-release-layout-v1/; the applied release tree adds the products, indexes, runtime, manifest, and completion marker beneath the immutable cartofreako/v14/ prefix. This page remains the v13 → v14 path-mapping reference.

Outcome

Keep the projection-first v13 products recognizable, but add a small machine-readable control plane and explicit lifecycle partitions. Preserve Emscripten loader/WASM filenames together beneath immutable runtime/api-3/; their individual SHA-256 values live in a runtime manifest. Renaming the loader and companion WASM independently would break the default loader lookup and offers no benefit inside an already immutable versioned release prefix.

The unpromoted Stage 15 2K controls are excluded. They remain local benchmark evidence until a separate promotion decision.

Object-path comparison

Role Immutable v13 Proposed v14
Completion marker release.json release.json, still written only by the human-invoked shared transport
Artifact inventory release-level counts and SHA256SUMS indexes/artifacts-v1.json plus pass and projection indexes
SVG master tree/<projection>/svg/<stem>.svg.gz products/<lifecycle>/<projection>/master/<stem>.svg.gz
Print PDF tree/<projection>/pdf/<stem>.pdf products/<lifecycle>/<projection>/print/<stem>.pdf
Full PNG tree/<projection>/png/<stem>.png products/<lifecycle>/<projection>/full/<stem>.png
Thumbnail tree/<projection>/thumbnail/<stem>.png when present products/<lifecycle>/<projection>/thumbnail/<stem>.png when present
1080p PNG/WebP absent products/<lifecycle>/<projection>/screen-1080p/{png,webp}/...
Runtime absent as a release contract runtime/api-3/ with a SHA-256 runtime manifest

The candidate uses standard, optional, and exploration partitions so a consumer can distinguish support status without parsing a filename. The current frozen corpus populates only standard; absence is not promotion of optional or exploratory work.

Indexes for browsers, games, and agents

The primary index preserves 205 stable artifact IDs and their pass, projection, layout, slice, authority, hashes, v13 locations, and proposed v14 locations. Thirty-one pass indexes and eleven projection/layout indexes point back to those IDs. This lets a consumer make one bounded request for a known interest instead of listing an S3 prefix or inferring semantics from stems.

Indexes are versioned data, not a search service. They contain no credentials, signed URLs, user state, or mutable ranking. A future agent can pair them with the existing artifact-request and decision-receipt schemas and retain an auditable selection result.

Runtime delivery

The core set is the projection loader, companion WASM, high-level projection API, and declarations. Screen transforms, artifact selection, workers, canvas/SVG/D3/Three.js helpers, and their declarations are optional. Files retain their import-compatible basenames beneath the versioned directory; runtime-manifest.json records byte length, SHA-256, MIME type, role, and core/optional classification.

Required delivery metadata is explicit:

The completion marker uses no-store so a failed pre-publication lookup is not mistaken for durable incompleteness. JSON/module gzip and WASM Brotli are documented candidates, not built products: sidecars require a checked browser loader, correct HTTP metadata, fallback, and byte verification together.

Local commands and release boundary

make build-consumer-release-layout
make check-consumer-release-layout

Both commands are offline and local. They do not run rclone, resolve S3 credentials, build a release archive, create a completion marker, or invoke the shared transport. A future UCB AAO/S3 action remains a separate, human-invoked wrapper around alpha60-clusterops/bin/load-s3-aao.

Cutover policy

No compatibility alias is required: documentation and consumers were re-indexed for v14, and the table above remains the migration reference. Immutable v13 paths and bytes must not be rewritten; any future layout change begins at a new prefix after a separate review, source release, static asset build, and human-invoked AAO deposit.