Commit Graph
4 Commits
Author SHA1 Message Date
glm-5.3-flash 952f208e27 test(conformance): the standing wave-2 conformance battery
- strict-mode matrix: missing variables (top-level, in {{#each}},
  in {{#if}} then and else branches) fail typed through both
  sinks, never silent; the write sink's no-atomicity contract
  pinned by its row
- error-surface completeness: six failure paths each mapping to
  exactly one typed variant; registrations never half-survive;
  hostile context values render clean through both sinks and both
  escape policies with no panic paths
- two-sink correctness: byte-identical output over the ssr-shaped
  and code-shaped fixture postures, re-exercised over the proof
  fixture files (goldens stay pinned by the proof binaries)
- AGENTS.md: the wasm release build becomes standing and
  unconditional; the feature-matrix coincide-today posture and the
  handlebars feature-inspection posture documented honestly
  (ADR-003, ADR-009)

Verification: cargo test (all green), cargo test --all-features
(identical), clippy -D warnings clean, fmt clean, doc clean, wasm
release build clean, handlebars tree features default-only,
taskgraph validate clean
2026-11-06 20:44:52 +00:00
glm-5.3-flash 3b0483e50f test(code-proof): wave-2 code-shape proof through the public API (posture A/C)
- code-shaped fixture set: writer + validator template kinds over one
  composed partial, no-op escaper, strict mode, all public API
- ADR-004 mappings in builder Rust (kind->call names, struct name,
  string-kind flag, source-quoted literals); templates stay dumb
- document order (not sort/hash/reverse) drives rendered order;
  reordered arrays render in the array's new order
- determinism: byte-identical across repeated renders, registry
  rebuilds, differing registration orders, fresh contexts, and both
  sinks (render vs render_to_write)
- banner stays an emit-layer obligation; no banner assertions in the
  proof (gap recorded in task Notes, honestly)

Verification: cargo test (38 passed), cargo clippy --all-targets --
-D warnings, cargo fmt --check, taskgraph validate
2026-11-06 20:34:42 +00:00
glm-5.3-flash 08803b3d17 test(ssr-proof): wave-2 ssr-html proof through the public API (posture B)
- full consumer-shaped fixture set registered from the test binary via
  register_template/register_partial only (ADR-008 machinery equality
  in three caller-supplied text shapes: fixtures, runtime String,
  inline literal)
- page composes fragment partials; the card fragment registers as its
  own template, renders directly by name, and composes via include
- exact goldens pin html-escape posture (hostile data escaped, = and '
  escapes, raw-output {{& }} slot verbatim)
- strict-mode render failure maps consumer-side to an error page built
  from the typed Error's data, panic-free; source chain reachable
- determinism pinned across repeats, registry rebuilds, fresh
  contexts, and both sinks (byte-identical, ADR-003)
- posture-B hygiene rows: no banner, no filesystem; no core changes
  required (stop-and-book: nothing to book)
2026-11-06 20:31:11 +00:00
glm-5.3-flash 14d8a49611 test(fixtures): wave-1 engine fixture doubles (ssr-shaped and code-shaped)
- ssr double: page template composing header/footer partials under the
  HTML escaper, typed context built by a builder fn per ADR-004; golden
  pins for composition, escaping of hostile interpolation, the trusted
  {{& }} slot, and render-by-partial-name rejection
- code double: struct-writer template under the no-op escaper, typed
  context built from a schema document with kind mapping and
  source-escaped literals in the builder; golden pins for document-order
  arrays and the active preserve_order feature
- fixture assets are include_str! files under tests/fixtures/; fixture
  modules are per-test-binary so wave-2 proofs can grow them
- task file updated to completed with Notes and Summary

Verification: cargo test green (19 lib + 8 fixture tests), clippy
-D warnings clean, cargo fmt --check clean
2026-11-06 20:05:42 +00:00