Mechanism
PR #8572 (the #5320 ruling's tighten) makes the ObjectQL registration loop refuse non-container views: entries with INVALID_METADATA/422; runtime-assembled manifests carry non-container view artifacts under the declared viewItems: channel instead (AssembledViewArtifactSchema, partitionAssembledViewArtifacts — landed in #8564).
The in-repo producer (GET /packages/:id/export, assemblePackageManifest) now partitions. The cloud repo's artifact-kernel-factory is the remaining producer of runtime-assembled manifests: it assembles artifact.metadata category arrays from stored metadata, and the registry's ADR-0017 dual-read keeps expanded viewKind items registered beside their container — so an env artifact for a views-bearing package plausibly carries entries the tightened loop refuses at env boot (the boot chain is AppPlugin → manifest service → registerApp, documented in packages/runtime/src/app-plugin.test.ts).
Whether cloud's assembly actually reads the expanded layer could NOT be measured from this repo (the factory lives in objectstack-ai/cloud); this issue is the explicit cross-repo hand-off rather than a silent assumption either way.
Fix (in objectstack-ai/cloud)
At the artifact assembly site, route the package's view items through partitionAssembledViewArtifacts (@objectstack/spec) exactly as assemblePackageManifest does in packages/runtime/src/domains/packages.ts — containers in views:, non-derivable artifacts in viewItems:. Until that lands, sequencing matters: a cloud env carrying expanded items must not boot against a runtime with the tighten (the #5320 ruling forbids option D — "tighten now and let cloud artifact boot break").
Filed from the #5320 implementation (PRs #8564 / #8572); the measurement record is on #5320 (2026-08-12 fork report) and #8070. This repo cannot host the fix — the PM relay should route or transfer this to the cloud repo's lane.
Blocked-by: #8572
Generated by Claude Code
Mechanism
PR #8572 (the #5320 ruling's tighten) makes the ObjectQL registration loop refuse non-container
views:entries withINVALID_METADATA/422; runtime-assembled manifests carry non-container view artifacts under the declaredviewItems:channel instead (AssembledViewArtifactSchema,partitionAssembledViewArtifacts— landed in #8564).The in-repo producer (
GET /packages/:id/export,assemblePackageManifest) now partitions. The cloud repo's artifact-kernel-factory is the remaining producer of runtime-assembled manifests: it assemblesartifact.metadatacategory arrays from stored metadata, and the registry's ADR-0017 dual-read keeps expandedviewKinditems registered beside their container — so an env artifact for a views-bearing package plausibly carries entries the tightened loop refuses at env boot (the boot chain is AppPlugin → manifest service →registerApp, documented inpackages/runtime/src/app-plugin.test.ts).Whether cloud's assembly actually reads the expanded layer could NOT be measured from this repo (the factory lives in
objectstack-ai/cloud); this issue is the explicit cross-repo hand-off rather than a silent assumption either way.Fix (in
objectstack-ai/cloud)At the artifact assembly site, route the package's
viewitems throughpartitionAssembledViewArtifacts(@objectstack/spec) exactly asassemblePackageManifestdoes inpackages/runtime/src/domains/packages.ts— containers inviews:, non-derivable artifacts inviewItems:. Until that lands, sequencing matters: a cloud env carrying expanded items must not boot against a runtime with the tighten (the #5320 ruling forbids option D — "tighten now and let cloud artifact boot break").Filed from the #5320 implementation (PRs #8564 / #8572); the measurement record is on #5320 (2026-08-12 fork report) and #8070. This repo cannot host the fix — the PM relay should route or transfer this to the cloud repo's lane.
Blocked-by: #8572
Generated by Claude Code