Route world lowering gaps to runtime owners
This commit is contained in:
parent
0435a833bf
commit
6eaaa8f5ca
4 changed files with 20 additions and 3 deletions
|
|
@ -290,6 +290,11 @@ Recently cut:
|
|||
`packs/runtime.json`, the runtime-owner smoke asserts them, and the generic
|
||||
conformance smoke now reports the advertised but unclaimed `unity-scene`
|
||||
lowering target as an explicit capability gap.
|
||||
- Missing provider-advertised world-surface lowering targets are now assigned
|
||||
to their pending runtime owner when one exists. `unity-scene` gaps point at
|
||||
EveUnity's pending `unity-scene` runtime, and `tui` gaps point at EveTui's
|
||||
pending `tui` runtime. Eve only owns a world-lowering gap when no runtime
|
||||
target has been declared.
|
||||
- EveUnity now has a pending Unity scene handoff at
|
||||
`runtimes/incubating/eve-unity-scene/eveunity-scene-split-handoff.json`.
|
||||
The active `unity-uitoolkit` runtime remains a semantic UI surface lowerer;
|
||||
|
|
|
|||
|
|
@ -100,6 +100,10 @@ Capability gaps are exported as `capabilityGaps[]`. They are derived from
|
|||
missing plugin/provider/runtime evidence, declared unsupported plugin
|
||||
projection, capture gaps, and split blockers. Consumer smokes can assert named
|
||||
gap substrings with `--expect-capability-gap`.
|
||||
When a provider advertises a world-surface lowering target that no runtime
|
||||
claims, the gap is assigned to the matching pending runtime owner when one
|
||||
exists, such as `unity-scene` -> EveUnity or `tui` -> EveTui. Eve only owns the
|
||||
gap when no runtime target has been declared at all.
|
||||
|
||||
The conformance export includes runtime `capabilityManifestPath` and
|
||||
`capabilityManifestErrors` fields so external consumers can distinguish a
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@ try {
|
|||
node .\tools\conformance\consume-export.mjs $consumerExport `
|
||||
--expect-capability-matrix `
|
||||
--expect-capability-gap runtime:Fensalir:direct2d:capture:missing `
|
||||
--expect-capability-gap "runtime:Eve:world-surface-lowering:provider:aetheria:surface:aetheria.daemon.game:world-lowering-target:unity-scene:missing-runtime" `
|
||||
--expect-capability-gap "runtime:EveUnity:unity-scene:provider:aetheria:surface:aetheria.daemon.game:world-lowering-target:unity-scene:missing-runtime" `
|
||||
--expect-capability-gap "runtime:EveTui:tui:provider:aetheria:surface:aetheria.daemon.game:world-lowering-target:tui:missing-runtime" `
|
||||
--expect-capability-gap "split-target:EveUnity:EveUnity:proof:Tagged UPM release" `
|
||||
--expect-conformance-handoff
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
|
|
|
|||
|
|
@ -1816,21 +1816,28 @@ function collectCapabilityGaps(report) {
|
|||
}
|
||||
|
||||
const worldLoweringTargets = new Set();
|
||||
const runtimeByWorldTarget = new Map();
|
||||
for (const runtime of report.runtimes || []) {
|
||||
if (runtime.id) runtimeByWorldTarget.set(runtime.id, runtime);
|
||||
for (const claim of runtime.worldSurfaceLowering || []) {
|
||||
if (claim.targetId) worldLoweringTargets.add(claim.targetId);
|
||||
if (claim.targetId) runtimeByWorldTarget.set(claim.targetId, runtime);
|
||||
}
|
||||
}
|
||||
for (const provider of report.providers || []) {
|
||||
for (const surface of provider.surfaceContracts || []) {
|
||||
for (const targetId of surface.worldInteraction?.loweringTargets || []) {
|
||||
if (!worldLoweringTargets.has(targetId)) {
|
||||
const targetRuntime = runtimeByWorldTarget.get(targetId);
|
||||
addGap({
|
||||
kind: "runtime",
|
||||
ownerRepo: "Eve",
|
||||
subjectId: "world-surface-lowering",
|
||||
ownerRepo: targetRuntime?.ownerRepo || "Eve",
|
||||
subjectId: targetRuntime?.id || "world-surface-lowering",
|
||||
gap: `provider:${provider.providerId}:surface:${surface.surfaceId}:world-lowering-target:${targetId}:missing-runtime`,
|
||||
severity: "blocker",
|
||||
detail: targetRuntime
|
||||
? `splitTarget:${targetRuntime.splitTarget || ""}:status:${targetRuntime.status || ""}`
|
||||
: "no-runtime-target-declared",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue