Repository navigation
Conversation
PR template validation failedPlease fix the following issues by editing your PR description:
See CONTRIBUTING.md for the full contribution policy. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
The existing product harness serves the Astro/Vite development graph: its login loads about 67.4 MB across 418 resources, and regular Endform navigation exceeds the original heading assertion. Build the private fixtures and serve the compiled Node standalone application and Cloudflare Worker instead. A local built-login diagnostic loaded 12 resources and about 9.4 MB, without Vite/source-module requests.
Keep the native Playwright baseline on its existing eight CI shards. Run Endform in ONE CI job on ONE GitHub runner, with one complete unsharded invocation per target, no test-list partitioning and no concurrent-test cap. Node and Cloudflare use the built applications on that runner; Endform distributes the tests remotely at maximum parallelism. Endform alone receives a 240-second outer test budget; passing tests finish immediately. Existing assertions, explicit test timeouts and native browser installation remain unchanged.
The previous eight-shard, one-at-a-time Endform configuration prevented its intended execution model. Its timings do not establish how Endform performs at full parallelism and are superseded by this correction.
The application compiles in production mode. Narrow private-fixture adaptations retain setup/reset/auth helpers, captured emails, and the localhost mock registry. Manual locale routing, the canonical fixture URL, runtime registry initialization, and a direct Sharp dependency make the existing assertions work against the builds. No published package source changed.
Fork-only work in
endformdev/emdash, stacked on native baseline PR #1 at40152078f550ba50e012812450f175799d88db43. The original baseline used development servers and is not an equivalent timing comparator. This PR's native matrix supplies the matching built baseline. No upstream merge is requested.Type of change
Checklist
pnpm typecheckpasses — local package checks and the CI Typecheck job passedpnpm lintpasses — local quick/type-aware checks returned zero diagnostics; CI lint passedpnpm testpasses (or targeted tests for my change) — full unsharded Endform execution is under verification; prior serial local built suites passedpnpm formathas been runAI-generated code disclosure
Screenshots / test output
Screenshots: not applicable to this infrastructure change. Failure screenshots and Playwright traces are retained in the CI artifacts.
Root build, formatting, quick/type-aware lint (zero diagnostics), package type checks and 362-test discovery passed for the architecture correction.
Tested revision:
36723f59e9f52b8cf4426e7e8453f783598bf042.Completed CI run and standalone Endform job.
Counts include recovered retries as passed and cover the same 362 selected tests per target. Both configurations failed; these results do not establish the speed of a clean passing suite. The native lane includes one recovered retry. Endform has many recovered retries. One cohort was measured, so no stable median or cost claim is made.
Native job window: 13:17. Endform's single job: 18:27, comprising 0:34 setup/install, 1:12 package builds, 9:09 Node command, 0:28 Node failure-artifact upload, 6:07 Cloudflare command, 0:55 Cloudflare failure-artifact upload and about 0:02 cleanup. Both targets run sequentially on the one Endform host. Service execution windows were 8:16 Node and 5:43 Cloudflare. The combined workflow finished in 18:59 and includes both benchmark lanes and unrelated checks.
The corrected parallel architecture changes the failure analysis: failures and retries now dominate the critical path. Three Node setup cases each exhausted a 240-second timeout twice, accounting for almost the full 8:16 service window. In trace
0551937c8c1be375adfafc1dba51a687, the setup page navigates to login and the test then waits 222 seconds to fill the missing Site Title field. In Cloudflare tracef92c8948133e483d174322915ba7ff15, auth/me and media APIs return 401, followed by a 200-second wait to click Add new folder. Increasing timeouts cannot restore deleted authentication state.Two distinct correctness issues need resolution before a clean benchmark:
Additional native failures remain the byline alignment and marketplace-toast obstruction described in the earlier run. Neither test assertions nor suite coverage were weakened to make the comparison green.
Local full parallel runs also exposed SOCKS failures, relay-capacity drops and a delayed
finalization_timeouton CLI 0.81.5. Those transport/reporting symptoms did NOT reproduce in this CI Endform job: zero relay-capacity-drop messages, no finalization_timeout, and both commands returned promptly after service execution. They should be investigated as a separate local-network reproduction.Endform evidence:
Prior run 38824536265 used the incorrect serialized/sharded Endform architecture. Its performance conclusions are superseded. The current configuration is the intended unsharded architecture, but reliability and shared-state isolation must be fixed before presenting a successful-suite performance demonstration.