Skip to content

test(e2e): Tier C — meld→kiln execution seam (#297), #[ignore]d on kiln#364#317

Merged
avrabe merged 1 commit into
mainfrom
test/297-kiln-tier-c-seam
Jul 1, 2026
Merged

test(e2e): Tier C — meld→kiln execution seam (#297), #[ignore]d on kiln#364#317
avrabe merged 1 commit into
mainfrom
test/297-kiln-tier-c-seam

Conversation

@avrabe

@avrabe avrabe commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

What

Closes the test side of #297 — adds Tier C to golden_e2e.rs: execute a meld-fused component on kiln (the MCU-target runtime), not just wasmtime (Tier A/B). This is the "honest boundary" Tier A/B explicitly disclose ("NOT on the synth/kiln MCU target").

The seam is currently broken — kiln#364

Standing up the test immediately surfaced a real meld→kiln interop blocker (grounded repro on #297):

  • meld's fused --component output preserves the exact component WIT (export wasi:cli/run@0.2.6) and runs under wasmtime via the canonical entry (Tier A/B green).
  • kiln can't execute it: its component runner looks for a core-instance _start, which meld's multi-core-module wrap (stubs / fused / fixup / caller, deferred start) doesn't expose → ✗ No core instance exports _start.

Filed kiln#364 (suggested fix: run components via their wasi:cli/run canonical entry, like wasmtime).

This PR

  • Tier C fuses a wasi:cli command fixture, runs it on kilnd, and asserts execution — with the unfused original as the on-kiln baseline so a fused failure is attributable to fusion (not a missing-fixture/kiln-absent case).
  • #[ignore]d with the kiln#364 reason, so normal CI stays green. Verified it fails for exactly the documented cause (baseline ran on kiln, fused did not). Un-ignore when kiln#364 lands and it pins the meld→kiln seam green.
  • kilnd located via MELD_KILND or the conventional ../../kiln debug build; absent → skip.

Normal golden_e2e suite: 4 pass, Tier C ignored. clippy clean.

Refs: #297, kiln#364.

🤖 Generated with Claude Code

…ln#364

golden_e2e Tier A/B prove behavioural equivalence under wasmtime but disclose
the boundary "NOT on the synth/kiln MCU target". #297 asks to close it.

Adds Tier C: fuse a wasi:cli command fixture (--output component), execute it
on kilnd, and assert it runs — with the unfused original as the on-kiln
baseline so a fused failure is attributable to fusion.

The seam is currently BROKEN: kiln's component executor requires a
core-instance _start, which meld's multi-core-module wrap (stubs, fused,
fixup, caller modules with a deferred start) doesn't expose — it fails with
"No core instance exports _start". The same artifact runs under wasmtime via
wasi:cli/run (Tier A/B green), so meld's output is spec-valid. Filed kiln#364.

So the test is #[ignore]d with that reason; verified it fails for exactly the
documented cause (baseline ran on kiln, fused did not). Un-ignore when
kiln#364 lands and it pins the meld-to-kiln seam green. kilnd is located via
MELD_KILND or the conventional ../../kiln debug build; absent -> skip.

Refs: #297, kiln#364.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

LS-N verification gate

58/58 approved LS entries verified

count
Passed (≥1 test, all green) 58
Failed (≥1 test failure) 0
Missing (no ls_*_NN_* test found) 0

Approved loss-scenarios.yaml entries are expected to have a
regression test named ls_<letter>_<num>_* (e.g. LS-A-11
ls_a_11_*). The gate runs each prefix via cargo test --lib --no-fail-fast and aggregates pass/fail/missing.

Failed LS entries

(none)

Missing regression tests

(none)

Updated automatically by tools/post_verification_comment.py.
Source of truth: safety/stpa/loss-scenarios.yaml.

@avrabe avrabe merged commit 0a40af0 into main Jul 1, 2026
14 checks passed
@avrabe avrabe deleted the test/297-kiln-tier-c-seam branch July 1, 2026 04:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant