Skip to content

feat(lsp): add version-aware PHPantom runtime - #435

Open
glassmonkey wants to merge 26 commits into
masterfrom
gla-115-phpantom-runtime
Open

glassmonkey wants to merge 26 commits into
masterfrom
gla-115-phpantom-runtime

Conversation

@glassmonkey

@glassmonkey glassmonkey commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Merge exact PR437 head ba63d9b04c321ebb1cef7e306127479392c03d77 into the existing GLA-115 branch. Refresh source head: dd9f9698be976a0e714968eaeb21ebc243f12367 (parents: previous runtime head 7e0e2f48b18ddf9fb4b5eb5774f5f0c32615d639 and PR437).
  • Preserve all PR437 PHP execution WASM/JS, worker/runtime errors, tutorial changes, and shared Makefile/Docker behavior. The diff from PR437 remains the existing 26-file LSP delta; Makefile only adds the PHPantom target/version and two recipes. No root Cargo workspace or vendor tree is reintroduced.
  • Retain the pinned PHPantom candidate builder, native/WASI probes, docs and workflow. The 23 LSP-specific files are byte-identical to the previous runtime head; shared package files retain PR437 plus @bjorn3/browser_wasi_shim.

Pins

  • PHPantom: 49b9a7513ed19cbbfb79d5d08a3f3693ffb2b668; archive SHA-256 f5861b581a5503c7bf033df82390d08fbc9a971fa769afa90a310d0c623eb59d.
  • Phase B patch SHA-256: 4996a41403b2c570ba3e6a5a67c86bbe2833129c95bca62f19c5e39581a4b31d; all 15 resulting files remain manifest-pinned.
  • JetBrains stubs: 2049ca3cfa1feabf52db074108fe776a5713cf02; archive SHA-256 3ef62542d2f77ad30c7dab7dfa726e57e86dd5e3403780294119cf4f5ca6dcb7.
  • Builder: rust:1.99.0-bookworm@sha256:114c7a4425406451c2866b6aafe69fe29b1b298832db1277d411ac73c82d04d6.

Refresh validation

  • Node 24.12.0: npm ci, npm run build:types, npm run lint:js, npm run test:ci, and npm run build passed. Unit: 9 files / 541 tests, including the LSP client, PHP workers, and Chromium PNG decoding. Build verified 188 canonical pages, 187 image references and 18 configured-latest aliases.
  • python3 scripts/test-dockerfile-fixed-web-stages.py and bash -n scripts/lsp/phpantom/{build-wasm,build-in-container}.sh passed.
  • Source/hash readback confirmed 108 protected PR437 files and 23 previous LSP files byte-for-byte; delta has the same 26 paths as before. LSP whitespace check passes excluding the unchanged checksum-pinned unified patch, whose context blank lines trigger whitespace warnings. Full merge whitespace warnings inherited from PR437 are preserved.
  • No expensive PHPantom/native/WASI rebuild was repeated for this unrelated execution-base refresh. Earlier evidence remains: accepted all-12 candidate matrix (20 focused WASI assertions per target), and new-route PHP 8.0 artifact 7c874fef41f7082b20f437469945904c3d2d542861cce36dffccef0b8751430a passed its WASI harness.
  • Native raw remains 6/7, exit 101, sole known baseline PHP 7.4 same-name user documentation marker (known baseline) in php74_same_name_user_function_and_local_symbols_survive: nativeRawExit=101, nativePassed=6, nativeFailed=1, knownLimitMatched=true, unexpectedFailures=0. This is not 7/7; classification is unchanged.

New-head CI is not claimed or polled here; repeat watching belongs to the secretary. Browser/Monaco UI integration and production asset adoption remain outside this build integration. No GitHub merge or deployment was performed. Complete UI/versioned artifacts remain in #434.

PR437 refresh final review

Based on PR #437 at ba63d9b04c321ebb1cef7e306127479392c03d77. Reviewed head: dd9f9698be976a0e714968eaeb21ebc243f12367. Current-head Unit Tests, reviewdog, PHPantom native/WASI and Playwright workflows all succeeded. An older same-head duplicate PHPantom run was cancelled; its replacement succeeded. GitHub currently reports MERGEABLE/UNSTABLE with that cancelled check still visible.

Release dependency order: #437 → #435 → #434. No merge or deployment has been performed. Raw native regression remains 6/7 with the exact documented same-name PHPDoc limitation; the CI classifier does not make this a raw 7/7 pass.

Package the complete reviewed Phase B source patch with a pinned Docker build route, per-target provenance, and focused native and WASI regression probes. Keep generated candidates outside the checked-in asset path.
Hash every patched and added Rust file against both the frozen Phase B source and a pristine upstream archive after patch application. Record full stubs commit-marker, archive, map, and file-count readback in candidate provenance.
Support all pinned PHP targets with a serialized shared Cargo cache, per-build stub-tree revalidation, immutable per-version artifact hashes, and boundary-focused WASI behavior checks.
@glassmonkey
glassmonkey marked this pull request as ready for review November 1, 2026 15:29

This branch has not been deployed

No deployments
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