Skip to content

fix: v3 compatibility integration reference - #2516

Closed
benpsnyder wants to merge 38 commits into
analogjs:alphafrom
benpsnyder:feat/compat-for-st
Closed

benpsnyder wants to merge 38 commits into
analogjs:alphafrom
benpsnyder:feat/compat-for-st

Conversation

@benpsnyder

@benpsnyder benpsnyder commented Sep 5, 2026 •

Copy link
Copy Markdown
Contributor

PR Checklist

This closed PR is the preserved integration reference for the split requested in Brandon Roberts' review. Its original source is ecf569d47ddffc74950ce2e5c1e03a837c0211eb, based on alpha at 4225f45090a4cf4bdfb562a788e908787b6ec73c: 38 commits and 112 changed files.

Coverage audit: the identified porting omission is resolved. Original commit eeda7af8d stripped caller-supplied x-analog-no-ssr before forwarding to the internal renderer. That behavior is restored in analogjs/analog#2523 and the six necessary shared renderer copies. The committed-adapter reproduction now invokes SSR on every replacement head even when the caller supplies that header. Focused tests and built HTTP examples verify the fix, request preservation, configured SSR opt-outs, streaming policies, and prerender buffering. This closes the identified coverage gap; it does not qualify an untested combined merge result.

Affected scope

The table assigns primary review destinations. Shared CI prerequisites are identified in each replacement PR rather than treated as additional feature ownership.

Original concern Issue Replacement PR Scope and verification
Compiler and Vite compatibility analogjs/analog#2518 analogjs/analog#2520 AOT roots/replacements, lifecycle/HMR, declarations, installed Angular/Vite matrix.
Workspace and Vitest 5 analogjs/analog#2508 analogjs/analog#2527 Workspace, current starters/generators, CLI builders, Vitest 5 and retained Vitest 4 consumers.
SSR route policies analogjs/analog#2522 analogjs/analog#2523 Parent opt-out/child opt-in; caller-header sanitization and request-adapter preservation.
SSR entries and errors analogjs/analog#2522 analogjs/analog#2528 JS/MJS entries, safe HTTP failures, prerendering, and Worker output boundaries.
Server-function HTTP analogjs/analog#2524 analogjs/analog#2529 Cold registration, JSON values, status/redirect/cookie semantics, real HTTP fixture.
Request, hydration, and Query lifecycle analogjs/analog#2525 analogjs/analog#2530 Cancellation/disposal, forwarding boundaries, native load reuse, Query cache ownership.
Experimental streaming SSR analogjs/analog#2526 analogjs/analog#2531 Capture/cleanup, chunk delivery, deferred hydration, error/EOF framing, Node/Zone/Bun/Workerd.

Recommended merge strategy for maintainer [optional]

  • Squash merge
  • Rebase merge
  • Other: keep this PR closed as a superseded integration reference.

The replacement PRs recommend individual squash merges. The original branch and commit history remain preserved.

What is the new behavior?

The replacement PRs contain the current implementations, examples, tests, and documentation for the six requested workstreams. Their qualification goes beyond the original integration in several areas, including current Vitest templates, installed consumers, and streaming runtime coverage.

The audit accounts for every original path: 72 exact-source paths, 37 reworked or split paths, and three relocated files; no remaining partially covered paths in this audit. Path accounting alone is not proof that every behavior was preserved.

The original HTTP fixtures and declaration-rebuild test were relocated to their owning contributions. Other mixed tests and documentation were separated by behavior; those moves are listed below.

Test plan

  • Verified all 38 original commits and all 112 original paths; the file inventory uses paginated GitHub results and the Git diff.
  • Compared original file contents with the current replacement heads and reviewed non-exact code/test/fixture differences.
  • Verified the relocated fixtures and split transport, lifecycle, streaming, and declaration tests.
  • All seven replacement PRs have passing CI at the updated heads below, verified 2026-09-07T16:29:38.396207+00:00. Neutral Netlify page/redirect reports are not counted as test passes.
  • Re-ran the saved generated-adapter reproduction against all seven new committed heads. Each invokes SSR with and without caller-supplied x-analog-no-ssr: true, matching the original behavior on the explicitly SSR-enabled route.
  • Restored filtering and verified GET/HEAD/POST request adapters, URL/query, body, runtime context, abort reason propagation, and configured SSR opt-outs. Platform tests and lint pass on all seven branches.
  • Built the ordinary HTTP example and passed both request-level regressions: caller hints cannot disable configured SSR or enable configured client rendering. The HTTP test is shared across all seven PRs and passes its TypeScript check.
  • Built the streaming example and passed all three E2E tests; buffered and streamed hydration remain correct with caller SSR/streaming hints supplied. Focused tests preserve configured streaming rules and prerender buffering.
  • Resolve overlapping-file changes semantically and rerun relevant checks as PRs merge. Independent green CI does not qualify an untested combined merge result.
PR Audited head CI
analogjs/analog#2523 535fb080ee9b29931a6f6232a08f532213f164f0 Passing at final audit
analogjs/analog#2520 e767273de6e3b8589b39c815ccdae4db1a6b7e62 Passing at final audit
analogjs/analog#2527 bd1fa640a406c4b31341618780da38ad271523cd Passing at final audit
analogjs/analog#2528 01ae947367216b3dbcea314111cb8d5d5a36ab03 Passing at final audit
analogjs/analog#2529 c1af22de104cd43067c60de3852751c5b857ae5b Passing at final audit
analogjs/analog#2530 1d89179bc62d1ce07afc979ec9e9f9bfad99ee27 Passing at final audit
analogjs/analog#2531 dcf5dcf91a93844e37ee5849e2781116396da9f0 Passing at final audit

Does this PR introduce a breaking change?

  • Yes
  • No

No merge is proposed for this reference. Compatibility and migration impact are documented in the individual PRs, including the Vitest/toolchain upgrade and Module/Durable Worker output-location correction.

Other information

Original 38-commit mapping
# Original commit Responsibility Primary review destination Status
1 27a62c283 Workspace versions, Node pin, setup docs analogjs/analog#2527 Mapped
2 38b084553 Compiler roots, lifecycle and HMR analogjs/analog#2520 Mapped
3 55091c79c Vitest integration target/config analogjs/analog#2527 Mapped
4 44cdd6d88 Nx generator formatting fixtures analogjs/analog#2527 Mapped
5 deda24273 Zone process isolation analogjs/analog#2527 Mapped
6 1e6063f41 SSR entry and route policies analogjs/analog#2523, analogjs/analog#2528 Mapped
7 68e0f30af HTTP serialization/status versus cancellation/injector/seed lifetimes analogjs/analog#2529, analogjs/analog#2530 Mapped
8 b352c3163 Docs app compiler wiring analogjs/analog#2527 Mapped
9 b83eaec7a Compiler matrix installation versus Nx Agent browser setup analogjs/analog#2520, analogjs/analog#2527 Mapped
10 385d5cca1 Plugin versus platform declaration development dependencies analogjs/analog#2520, analogjs/analog#2528 Mapped
11 f8c953a24 Compiler declarations/error causes versus Vitest migration hunk analogjs/analog#2520, analogjs/analog#2527 Mapped
12 4145b631c Platform declarations and Nitro service registration analogjs/analog#2528 Mapped
13 447006184 Stream disposal and capture isolation analogjs/analog#2531 Mapped
14 eeda7af8d Native dispatcher/proxy ordering versus streaming transform and host handoff analogjs/analog#2529, analogjs/analog#2531 Mapped; no-SSR filter/test restored in analogjs/analog#2523 and shared copies
15 2304cfa13 Streaming example and deferred hydration fixture analogjs/analog#2531 Mapped
16 17c051e84 Cold Nitro HTTP registration analogjs/analog#2529 Mapped
17 3637daf54 Built HTTP contract fixtures, relocated off streaming dependency analogjs/analog#2529 Mapped
18 8b302f8d7 Shared fixture dependency completeness analogjs/analog#2527 Mapped
19 8715885b9 Shared declaration emitter and relocated regression analogjs/analog#2520 Mapped
20 d10a19c13 JSON primitive return transport analogjs/analog#2529 Mapped
21 55acb3267 Worker stream disconnect lifecycle analogjs/analog#2531 Mapped
22 a8b01e087 Worker host lifetime handoff analogjs/analog#2531 Mapped
23 547da8a73 Worker streaming docs analogjs/analog#2531 Mapped
24 8d33dcc47 Buffered prerender under streaming opt-in analogjs/analog#2531 Mapped
25 c70d89b5d Query cancellation and hydration freshness analogjs/analog#2530 Mapped
26 19b0c2115 Native Angular lint configuration analogjs/analog#2527 Mapped
27 9c05703fe Worker dependency externalization analogjs/analog#2528 Mapped
28 2fdfc3bc5 Buffered navigation errors versus Query cache ownership versus progressive renderer errors analogjs/analog#2528, analogjs/analog#2530, analogjs/analog#2531 Mapped
29 bf63256e7 Safe SSR error responses analogjs/analog#2528 Mapped
30 d3b2c524c SSR error versus Query ownership docs analogjs/analog#2528, analogjs/analog#2530, analogjs/analog#2531 Mapped
31 3ca892d4a Incomplete streaming document errors analogjs/analog#2531 Mapped
32 a8aaf8d50 Progressive transport compression policy analogjs/analog#2531 Mapped
33 c61c727d8 Progressive HTTP failure framing analogjs/analog#2531 Mapped
34 6b9767d01 Platform error framing handoff analogjs/analog#2531 Mapped
35 9d0037833 Local-only cookie forwarding analogjs/analog#2530 Mapped
36 b5a54b06b Per-request internal fetch analogjs/analog#2530 Mapped
37 fd865b488 Request forwarding docs analogjs/analog#2530 Mapped
38 ecf569d47 Native page-load hydration reuse analogjs/analog#2530 Mapped
Relocated fixtures and split test/documentation coverage
Original location Replacement location PR Disposition
apps/streaming-app/src/app/server-fns/http.server.ts apps/analog-app/src/app/server-fns/http-contract.server.ts analogjs/analog#2529 Cold HTTP fixture moved to the ordinary app and expanded.
apps/streaming-app/src/app/server-label.ts apps/analog-app/src/app/server-fns/http-label.ts analogjs/analog#2529 Provider token moved with the HTTP fixture.
packages/platform/src/lib/oxc-dts-plugin.spec.ts packages/vite-plugin-angular/src/lib/oxc-dts-plugin.spec.ts analogjs/analog#2520 Declaration rebuild test moved to the compiler; its tools/build cache input moved too.
HTTP assertions in server-fn-defer-hydrate.spec.ts tools/scripts/server-function-http-smoke.mjs analogjs/analog#2529 The streaming test retains streaming/deferred hydration; real cold requests are tested independently.
HTTP cases in client-lifecycle.spec.ts packages/router/src/lib/server-fn/client-transport.spec.ts analogjs/analog#2529 GET/interceptors, JSON inputs, and mutation failures are retained.
Request-disposal assertions in event-handler.spec.ts packages/router/server/src/server-fn/dispatch-lifecycle.spec.ts analogjs/analog#2530 Request injector lifetime and Response-body cleanup remain covered.
Streaming cases in render-navigation.spec.ts packages/router/server/src/render-stream-navigation.spec.ts analogjs/analog#2531 Buffered renderStream navigation coverage is separate from ordinary render.
Streaming cases in ssr-renderer.spec.ts packages/platform/src/lib/nitro/streaming-renderer.spec.ts analogjs/analog#2531 Streaming rule and prerender tests remain separated. Caller SSR filtering and adapter preservation are restored in ssr-renderer.spec.ts, with combined-policy cases in streaming-renderer.spec.ts.
SSR error guidance in the Query guide apps/docs-analog/src/content/features/server/server-side-rendering.md analogjs/analog#2528 SSR guidance moved to the SSR contribution; Query and progressive-error guidance remain in their respective PRs.

The mapping names primary review destinations. Necessary shared prerequisites are deliberate:

  • The caller-header filter, request-adapter tests, and ordinary built HTTP regression originate in the route-policy contribution and appear in all seven independent renderer copies.
  • Streaming-specific filtering, policy, prerender, and hydration coverage remain in the streaming PR.
  • The existing compiler route-policy baseline, Node/Nx bootstrap, router lint setup, platform declaration/build dependencies, and Worker bundling prerequisites remain as recorded in the individual contributions.

The audit refresh compares the original inventory and current file contents, retains the documented fixture/test relocations, and verifies the repaired behavior directly. Matching paths and independent green CI are not substitutes for semantic resolution and validation when the PRs are eventually integrated.

@netlify

netlify Bot commented Sep 5, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for analog-app ready!

Name Link
🔨 Latest commit ecf569d
🔍 Latest deploy log https://app.netlify.com/projects/analog-app/deploys/6a9dbba3a50f1a000891d376
😎 Deploy Preview https://deploy-preview-2516--analog-app.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Sep 5, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for analog-blog ready!

Name Link
🔨 Latest commit ecf569d
🔍 Latest deploy log https://app.netlify.com/projects/analog-blog/deploys/6a9dbba33469930008523b87
😎 Deploy Preview https://deploy-preview-2516--analog-blog.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Sep 5, 2026 •

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The changes add abort-aware server-function calls, JSON request handling, injector cleanup, and native HTTP coverage. Nitro SSR now handles explicit streaming and SSR policies, build-entry discovery, request cancellation, client-shell removal, and stream lifecycle cleanup. Vite Angular updates Rolldown, HMR, error causes, and type contracts. Vitest configuration gains an Nx target and isolated cache. Node, Angular, Nx, Vite, Vitest, and related workspace versions are updated. Documentation and generator tests are revised.

Estimated code review effort: 5 (Critical) | ~120 minutes

Merge Risk: ⚪ Minimal · up to 2304c

No concrete merge-blocking behavior is established; only additional Zone-path test coverage remains requested.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The description links issue #2508 and clearly states which Vitest 5 upgrade work this pull request covers and which work remains open.
Out of Scope Changes check ✅ Passed The broad file set matches the stated coordinated v3 compatibility scope. Workspace dependencies, package fixes, documentation, examples, tests, and CI are all described as supporting the same upgrade…
Title check ✅ Passed The title uses Conventional Commit syntax and accurately identifies the changes as a v3 compatibility integration reference. An unscoped title is reasonable because the changes span multiple supported…
Description check ✅ Passed The description is directly related to the changeset. It identifies the superseded integration status, affected workstreams, replacement PRs, merge strategy, scope, and validation context.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added scope:docs Documentation changes scope:platform Changes in @analogjs/platform scope:repo Repository metadata and tooling scope:router Changes in @analogjs/router scope:vite-plugin-angular Changes in @analogjs/vite-plugin-angular scope:vitest-angular Changes in @analogjs/vitest-angular labels Sep 5, 2026
@github-actions

github-actions Bot commented Sep 5, 2026 •

Copy link
Copy Markdown

This PR touches multiple package scopes: content, nx-plugin, platform, router, vite-plugin-angular, vitest-angular.

Please confirm the changes are closely related. Squash merge is highly preferred. If you recommend a non-squash merge, add a brief note explaining why the commit boundaries matter and why this PR should bypass focused changes per package.

@nx-cloud

nx-cloud Bot commented Sep 5, 2026 •

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit ecf569d

Command Status Duration Result
nx run-many --target e2e --projects=analog-app-... ✅ Succeeded 1m 7s View ↗
nx run-many --target test ✅ Succeeded 52s View ↗
nx run-many --target build --all --parallel=1 -... ✅ Succeeded 1m 12s View ↗
nx run-many --target lint --all --exclude=conte... ✅ Succeeded 1m 21s View ↗
nx-cloud record -- pnpm prettier:check ✅ Succeeded 14s View ↗

💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗


☁️ Nx Cloud last updated this comment at 2026-09-06 19:20:56 UTC

@github-actions github-actions Bot added scope:nx-plugin Changes in @analogjs/nx-plugin scope:ci GitHub workflow changes labels Sep 5, 2026

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

At least one additional CI pipeline execution has run since the conclusion below was written and it may no longer be applicable.

Nx Cloud has identified a possible root cause for your failed CI:

This CI failure appears to be related to the environment or external dependencies rather than your code changes.

No code changes were suggested for this issue.

You can trigger a rerun by pushing an empty commit:

git commit --allow-empty -m "chore: trigger rerun"
git push

Nx Cloud View detailed reasoning on Nx Cloud ↗


🎓 Learn more about Self-Healing CI on nx.dev

@github-actions github-actions Bot added the scope:content Changes in @analogjs/content label Sep 5, 2026
benpsnyder and others added 9 commits September 5, 2026 19:54
Align Angular 22.1, Nx 23.2, Vite 8.2.2, Rolldown 1.2.7, and Vitest 5. Retain
older Vitest peers and declare the docs compiler dependency alongside its
lockfile entry.

Pin Node 24.15.0 through .node-version and the shared .nvmrc symlink, permit
Node 26, and synchronize contributor prerequisites.

Refs analogjs#2508

Co-Authored-By: Codex <noreply@openai.com>
Retain every configured root in both compilation paths and pass test mode
separately from transformer ownership. Consume iterable compiler output, await
active compilation before transforms, and mark HMR acceptance on the client
environment module. Add focused regression coverage.

Co-Authored-By: Codex <noreply@openai.com>
Expose the suite through an explicit Nx target with its build prerequisite.
Use ESM configuration and the Vite cache directory, retain extensible
serializer patterns, and document Vitest 5 compatibility.

Refs analogjs#2508

Co-Authored-By: Codex <noreply@openai.com>
Select Prettier explicitly when creating generator test workspaces so the
fixture assertions remain stable after the Nx formatter default changes.

Co-Authored-By: Codex <noreply@openai.com>
Run content tests in forked processes so Zone patches do not retain stale
native API references across reused VM contexts.

Co-Authored-By: Codex <noreply@openai.com>
Resolve JavaScript and ESM server entries deterministically and fail the build
for missing or ambiguous output. Read matched SSR rules before response-header
middleware runs, and allow an explicit SSR policy to override inherited
opt-outs.

Cover renderer behavior, entry discovery, and route-policy headers with
regressions, and correct the i18n plugin return type.

Co-Authored-By: Codex <noreply@openai.com>
Preserve primitive JSON inputs, cancel obsolete browser requests, discard
aborted SSR results, and distinguish null hydration inputs. Dispose request
injectors after handlers and response bodies finish, and apply status and
headers through h3.

Add client lifecycle, request disposal, and native HTTP regression tests with
matching documentation.

Co-Authored-By: Codex <noreply@openai.com>
Register the Angular Vite plugin explicitly so the docs application and its
tests compile Angular components with the split v3 plugin setup.

Co-Authored-By: Codex <noreply@openai.com>
Skip the workspace prepare build in the matrix that tests compiler APIs across
Angular versions. Keep browser installation aligned with Vitest and Playwright
by removing the unused Cypress install.

Co-Authored-By: Codex <noreply@openai.com>
@benpsnyder benpsnyder changed the title fix(platform): harden v3 consumer compatibility fix(platform): align v3 toolchain, SSR, and server function handling Sep 5, 2026
@benpsnyder
benpsnyder marked this pull request as ready for review September 5, 2026 20:11
@benpsnyder

Copy link
Copy Markdown
Contributor Author

@brandonroberts made this with rebase merge because I wanted 1 PR when doing a modernization of our usage. Using pnpm patches until this merges. Thx

@benpsnyder benpsnyder changed the title fix(platform): align v3 toolchain, SSR, and server function handling fix: align v3 toolchain, SSR, and server function handling Sep 5, 2026
@brandonroberts

Copy link
Copy Markdown
Member

Thanks for the substantial work here, but this PR is too large to review or merge confidently as one unit: 38 commits and 112 files spanning compiler infrastructure, dependencies, SSR, server functions, Query integration, streaming, CI, and documentation.

@analogjs/vite-plugin-angular is the backbone of this repository. Its compiler roots, transforms, lifecycle, HMR, and compatibility paths require a dedicated issue and PR with focused review across both compilation modes, experimental and disabled branches, Angular versions, and Vite 6–8. It should not be secondary scope in a broad platform change.

Please split this into separate issues and PRs:

  1. vite-plugin-angular compiler and Vite compatibility
  2. Workspace/Vitest 5 toolchain upgrade, continuing analogjs/analog#2508
  3. Platform SSR entry discovery, route policies, and error handling
  4. Server-function HTTP transport and cold registration
  5. Request, hydration, and Query lifecycle isolation
  6. Experimental streaming SSR

Each PR should include its own tests and documentation. Use stacked PRs where dependencies prevent independent green builds, with vite-plugin-angular as the carefully reviewed foundation.

This PR can remain as the integration reference and be closed as superseded once the smaller issues and PRs are linked. I do not think the current scope is reasonably reviewable or should be merged atomically.

@benpsnyder

Copy link
Copy Markdown
Contributor Author

I agree with you; it started at under 10 then grew over 30 so I just let Astra continue. I will do follow-up PRs and break it out.

@benpsnyder benpsnyder changed the title fix: align v3 toolchain, SSR, and server function handling fix: v3 compatibility integration reference Sep 7, 2026
@benpsnyder
benpsnyder marked this pull request as draft September 7, 2026 00:49
@benpsnyder benpsnyder closed this Sep 7, 2026
benpsnyder added a commit to benpsnyder/analog that referenced this pull request Sep 7, 2026
Restore caller-header filtering from eeda7af.
Preserve Request adapter fields, runtime context and cancellation; verify
configured SSR rules over built HTTP.

The route-policy contribution owns this shared prerequisite for independent
renderer copies in the split.

Refs: analogjs#2523, analogjs#2516
benpsnyder added a commit to benpsnyder/analog that referenced this pull request Sep 7, 2026
Restore caller-header filtering from eeda7af.
Preserve Request adapter fields, runtime context and cancellation; verify
configured SSR rules over built HTTP.

The route-policy contribution owns this shared prerequisite for independent
renderer copies in the split.

Refs: analogjs#2523, analogjs#2516
benpsnyder added a commit to benpsnyder/analog that referenced this pull request Sep 7, 2026
Restore caller-header filtering from eeda7af.
Preserve Request adapter fields, runtime context and cancellation; verify
configured SSR rules over built HTTP.

The route-policy contribution owns this shared prerequisite for independent
renderer copies in the split.

Refs: analogjs#2523, analogjs#2516
benpsnyder added a commit to benpsnyder/analog that referenced this pull request Sep 7, 2026
Restore caller-header filtering from eeda7af.
Preserve Request adapter fields, runtime context and cancellation; verify
configured SSR rules over built HTTP.

The route-policy contribution owns this shared prerequisite for independent
renderer copies in the split.

Refs: analogjs#2523, analogjs#2516
benpsnyder added a commit to benpsnyder/analog that referenced this pull request Sep 7, 2026
Restore caller-header filtering from eeda7af.
Preserve Request adapter fields, runtime context and cancellation; verify
configured SSR rules over built HTTP.

The route-policy contribution owns this shared prerequisite for independent
renderer copies in the split.

Refs: analogjs#2523, analogjs#2516
benpsnyder added a commit to benpsnyder/analog that referenced this pull request Sep 7, 2026
Restore caller-header filtering from eeda7af.
Preserve Request adapter fields, runtime context and cancellation; verify
configured SSR rules over built HTTP.

The route-policy contribution owns this shared prerequisite for independent
renderer copies in the split.

Refs: analogjs#2523, analogjs#2516
benpsnyder added a commit to benpsnyder/analog that referenced this pull request Sep 7, 2026
Restore caller-header filtering from eeda7af.
Preserve Request adapter fields, runtime context and cancellation; verify
configured SSR rules over built HTTP.

The route-policy contribution owns this shared prerequisite for independent
renderer copies in the split.

Refs: analogjs#2523, analogjs#2516
@benpsnyder

Copy link
Copy Markdown
Contributor Author

Thanks, Brandon. The split is complete across seven feature-specific PRs targeting alpha. All seven are now ready for review, with passing CI on the exact heads listed in the description.

The coverage audit maps all 38 original commits and 112 files. It caught and repaired the lost caller-supplied x-analog-no-ssr filter in analogjs/analog#2523 and the necessary shared copies. Committed-adapter tests and built HTTP/streaming examples verify the repair. Intentional relocations and shared prerequisites are documented; no identified omission remains.

The original branch stays preserved as the integration reference. The replacements are intended for individual review and squash merges, with combined validation still required as they land.

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

Labels

scope:ci GitHub workflow changes scope:content Changes in @analogjs/content scope:docs Documentation changes scope:nx-plugin Changes in @analogjs/nx-plugin scope:platform Changes in @analogjs/platform scope:repo Repository metadata and tooling scope:router Changes in @analogjs/router scope:vite-plugin-angular Changes in @analogjs/vite-plugin-angular scope:vitest-angular Changes in @analogjs/vitest-angular

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants