Skip to content

[WIP] Remove php-server-child and manage native PHP child processes directly#3359

Closed
fredrikekelund wants to merge 16 commits intotrunkfrom
f26d/remove-php-server-child
Closed

[WIP] Remove php-server-child and manage native PHP child processes directly#3359
fredrikekelund wants to merge 16 commits intotrunkfrom
f26d/remove-php-server-child

Conversation

@fredrikekelund
Copy link
Copy Markdown
Contributor

Related issues

How AI was used in this PR

Codex was used extensively to drive the implementation of this PR.

Proposed Changes

Important

Despite not being a draft, this PR isn't fully ready for review yet. That's because E2E tests won't trigger on CI if it's a draft.

This is a large refactor that makes it so the process manager daemon only has to deal with direct child processes. With the previous approach, php-server-child.ts would spawn PHP child processes, which became grandchildren of the process manager daemon. These are not as simple to manage as direct child processes.

With this PR, consumers tell the process manager daemon to spawn a type of process rather than a specific JS script. The process types have separate implementations that conform to a ManagedProcess interface.

Testing Instructions

TBD

Pre-merge Checklist

  • Have you checked for TypeScript, React or other console errors?

@wpmobilebot
Copy link
Copy Markdown
Collaborator

wpmobilebot commented May 6, 2026

📊 Performance Test Results

Comparing 5fbdb67 vs trunk

app-size

Metric trunk 5fbdb67 Diff Change
App Size (Mac) 1409.57 MB 1668.99 MB +259.41 MB 🔴 18.4%

site-editor

Metric trunk 5fbdb67 Diff Change
load 1487 ms 1502 ms +15 ms ⚪ 0.0%

site-startup

Metric trunk 5fbdb67 Diff Change
siteCreation 8092 ms 8088 ms 4 ms ⚪ 0.0%
siteStartup 4928 ms 4942 ms +14 ms ⚪ 0.0%

Results are median values from multiple test runs.

Legend: 🟢 Improvement (faster) | 🔴 Regression (slower) | ⚪ No change (<50ms diff)

@fredrikekelund
Copy link
Copy Markdown
Contributor Author

I embarked on this thinking that the E2E tests on Windows were maybe having trouble killing the PHP grandchild processes. However, ultimately, that wasn't the case. Some parts of this implementation are good, but we could go even further and achieve a clearer system if we only had to deal with a single runtime type. To that end, I'll close this PR for now and revisit this in a month or so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants