Skip to content

inline kind: shape/map accepted by 'app validate' but rejected by 'app run' (only 'predicate' runs) #160

@pawellisowski

Description

@pawellisowski

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions