Summary
An app with an inline-glue node of kind: shape (or map) passes aware app validate and aware app compile, but aware app run aborts with:
validation failed: inline kind "shape" not supported in v0.3 (only 'predicate')
So an unsupported inline kind is caught only at run time, after the author has validated, compiled, and approved the lock.
Repro (aware npm 0.45.0)
Minimal app with one inline shape node:
app: inline-kind-repro
version: 0.1.0
display-name: inline kind repro
description: |
Demonstrates an inline shape node that validates + compiles but won't run.
exposes-as-agent: false
requires: []
layout: linear
nodes:
- id: passthrough
inline:
kind: shape
description: reshape a value
code: |
() => ({ ok: true })
$ aware app install ./inline-kind-repro # ✓ installed
$ aware app validate inline-kind-repro # ✓ valid
$ aware app compile inline-kind-repro # ✓ compiled → .lock
$ aware app run inline-kind-repro # ✗ validation failed: inline kind "shape" not supported in v0.3 (only 'predicate')
Observed vs expected
- Observed:
validate/compile accept kind: shape/map; only run rejects them.
- Expected:
validate (and compile) should reject inline kinds the runtime can't execute, so the failure surfaces at authoring time — or the runtime should support map/shape.
app-spec.md §"Inline glue" advertises kind: predicate | map | shape, so either the spec + validate over-promise or run under-delivers.
Related
Same validate/compile-vs-run inconsistency family as #134 (install accepts write-without-safety that validate+run reject) and #124 (for-each compiles in 0.38 but doesn't run at runtime). Consider a single "the four stages (validate/compile/install/run) must agree on what's runnable" pass.
Summary
An app with an inline-glue node of
kind: shape(ormap) passesaware app validateandaware app compile, butaware app runaborts with:So an unsupported inline kind is caught only at run time, after the author has validated, compiled, and approved the lock.
Repro (aware npm 0.45.0)
Minimal app with one inline
shapenode:Observed vs expected
validate/compileacceptkind: shape/map; onlyrunrejects them.validate(andcompile) should reject inline kinds the runtime can't execute, so the failure surfaces at authoring time — or the runtime should supportmap/shape.app-spec.md§"Inline glue" advertiseskind: predicate | map | shape, so either the spec + validate over-promise or run under-delivers.Related
Same validate/compile-vs-run inconsistency family as #134 (install accepts write-without-safety that validate+run reject) and #124 (for-each compiles in 0.38 but doesn't run at runtime). Consider a single "the four stages (validate/compile/install/run) must agree on what's runnable" pass.