Skip to content

ArchKeel 1.1.2 — Bind native allowances to exact signatures

Choose a tag to compare

@ake2l ake2l released this 10 Oct 21:41
· 664 commits to main since this release
aaba43b
  • Nested map allowances stay bound to the root annotation. An Annotated
    wrapper cannot reuse the inner-map or native-value permission for an unwrapped
    Mapping[str, list[dict[str, object]]] signature. Outer-map permission remains
    separate; aliases, DTO fields, unions and unproven bindings do not qualify.
    See AD-217.
  • JSON Schema agrees with the parser. A selector with mapping_depth
    requires an empty field_path. Omitting field_path still means the direct
    signature; a nonempty DTO path is rejected.
  • Exact native Iterable elements. Direct and proven facade signatures can
    permit one object element in Iterable[object], optionally unioned with
    None. Match the callable, parameter or return position, complete annotation,
    empty field_path and container_depth: 1. The typing or collections.abc
    origin and builtin object must be proven. Aliases, DTO fields, wrappers,
    other collections, additional union arms and repeated opaque leaves do not
    qualify. See AD-218.

Accepted native values remain opaque. These allowances prove neither
serialization nor materialization nor type closure. Contract and result schema
versions are unchanged.
Open gaps remain for contained maps in exact named aliases,
heterogeneous typed-map unions,
static overload re-exports,
quoted builtin annotations
and report-view traceability.

Known report-navigation issue: #447
records an ownership-invalid component/module route that becomes unscoped after
URL normalization and reload. Reproduced on this exact release source; evaluator
results are unchanged. The fix is separate from 1.1.2.