Skip to content

fix(cli): classify runtime input materialization crashes - #2503

Merged
chubes4 merged 1 commit into
mainfrom
fix/materialize-runtime-inputs-phase
Sep 11, 2026
Merged

fix(cli): classify runtime input materialization crashes#2503
chubes4 merged 1 commit into
mainfrom
fix/materialize-runtime-inputs-phase

Conversation

@chubes4

@chubes4 chubes4 commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Track the recipe-run work after mount_plugins (input mounts, staged files, Playground boot/materialize) as materialize_runtime_inputs, including when extra_plugins is empty.
  • A crash in that window previously had no phase label, so it classified as unknown / execution.
  • Reject PHP.wasm side modules at runtime create when they import PHP C ABI symbols (php_*, zend_*, convert_to_*, _emalloc_*, …) that the selected PHP.wasm build does not export. That is the TypeError: resolved is not a function Comlink path: Emscripten installs a lazy stub that calls resolved(...args) after resolveSymbol returns undefined.

Test plan

  • tests/recipe-runtime-setup-empty-plugins.test.ts — empty extra plugin list still materializes file input mounts; a resolved is not a function throw is recorded as a failed materialize_runtime_inputs phase.
  • tests/php-wasm-extension-abi.test.ts — missing php_password_algo_register / _emalloc_448 fail closed; Emscripten libc imports are ignored.
  • npm run check

AI assistance: GPT-6 Astra via OpenCode diagnosed the preceding blockers; Grok 4.6 via opencode run root-caused this crash, implemented the fix, and ran the suites.

Empty extra_plugins still boots Playground while mounting recipe inputs.
A crash in that window had no phase, so runs classified as unknown.
Track it as materialize_runtime_inputs and reject PHP.wasm side modules
whose ABI imports the runtime does not export.
@chubes4
chubes4 merged commit 6bdaf49 into main Sep 11, 2026
5 of 6 checks passed
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