Skip to content

Revert #7524#7533

Merged
schiller-manuel merged 3 commits into
mainfrom
revert-#7524
Jun 4, 2026
Merged

Revert #7524#7533
schiller-manuel merged 3 commits into
mainfrom
revert-#7524

Conversation

@birkskyum
Copy link
Copy Markdown
Member

@birkskyum birkskyum commented Jun 3, 2026

Revert

Summary by CodeRabbit

  • Bug Fixes

    • Immediate cleanup of transient stream state when server streams end, ensuring prompt resource release and preventing lingering client-side state.
  • Tests

    • Added automated tests validating client teardown and correct timing of stream cleanup across different document loading states.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 3, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f25edb7a-2db5-4acf-9a88-f492e5401d01

📥 Commits

Reviewing files that changed from the base of the PR and between 574e19a and 00b5045.

📒 Files selected for processing (1)
  • packages/router-core/tests/tsr-script-teardown.test.ts

📝 Walkthrough

Walkthrough

This PR makes TSR client teardown immediate when both hydration and stream-end are true (deleting $_TSR and window.$R.tsr), removes the previous DOMContentLoaded deferral, adds Vitest tests for teardown behavior, and records the change in a patch changeset.

Changes

TSR Teardown Behavior Fix

Layer / File(s) Summary
Immediate teardown logic
packages/router-core/src/ssr/tsrScript.ts
Replaces deferred cleanup closure with immediate deletion of self.$_TSR and self.$R['tsr'] when hydration and stream-end conditions are both met.
Teardown behavior test suite
packages/router-core/tests/tsr-script-teardown.test.ts
Installs the TSR bootstrap script, sets up/cleans test globals, and verifies teardown is deferred until stream-end and occurs only after tsr.e() (including checks across document ready states).
Release notes
.changeset/solid-symbols-sink.md
Adds a changeset marking a patch release and documents the immediate $_TSR deletion on stream end.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • TanStack/router#7524: Both PRs modify TSR teardown cleanup logic in packages/router-core/src/ssr/tsrScript.ts—specifically timing of self.$_TSR and self.$R['tsr'] deletion in relation to streamEnded/hydrated and DOMContentLoaded.

Suggested reviewers

  • schiller-manuel

Poem

🐰 I hop in soft when stream is done,
I nudge the globals, tidy each one.
$_TSR tucked away with care,
window.$R.tsr gone from there.
A little rabbit’s clean-up hum.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Revert #7524' directly and clearly indicates the pull request reverts a specific previous PR, which matches the changeset content (removing readyState logic from TSR cleanup).
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch revert-#7524

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 and usage tips.

@nx-cloud
Copy link
Copy Markdown
Contributor

nx-cloud Bot commented Jun 3, 2026

View your CI Pipeline Execution ↗ for commit 00b5045

Command Status Duration Result
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded 1m 35s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 5s View ↗

☁️ Nx Cloud last updated this comment at 2026-06-04 10:56:07 UTC

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

🚀 Changeset Version Preview

1 package(s) bumped directly, 22 bumped as dependents.

🟩 Patch bumps

Package Version Reason
@tanstack/router-core 1.171.9 → 1.171.10 Changeset
@tanstack/react-router 1.170.11 → 1.170.12 Dependent
@tanstack/react-start 1.168.19 → 1.168.20 Dependent
@tanstack/react-start-client 1.168.8 → 1.168.9 Dependent
@tanstack/react-start-rsc 0.1.18 → 0.1.19 Dependent
@tanstack/react-start-server 1.167.14 → 1.167.15 Dependent
@tanstack/router-cli 1.167.13 → 1.167.14 Dependent
@tanstack/router-generator 1.167.13 → 1.167.14 Dependent
@tanstack/router-plugin 1.168.14 → 1.168.15 Dependent
@tanstack/router-vite-plugin 1.167.14 → 1.167.15 Dependent
@tanstack/solid-router 1.170.11 → 1.170.12 Dependent
@tanstack/solid-start 1.168.19 → 1.168.20 Dependent
@tanstack/solid-start-client 1.168.8 → 1.168.9 Dependent
@tanstack/solid-start-server 1.167.14 → 1.167.15 Dependent
@tanstack/start-client-core 1.170.7 → 1.170.8 Dependent
@tanstack/start-plugin-core 1.171.11 → 1.171.12 Dependent
@tanstack/start-server-core 1.169.9 → 1.169.10 Dependent
@tanstack/start-static-server-functions 1.167.12 → 1.167.13 Dependent
@tanstack/start-storage-context 1.167.11 → 1.167.12 Dependent
@tanstack/vue-router 1.170.11 → 1.170.12 Dependent
@tanstack/vue-start 1.168.18 → 1.168.19 Dependent
@tanstack/vue-start-client 1.167.12 → 1.167.13 Dependent
@tanstack/vue-start-server 1.167.14 → 1.167.15 Dependent

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

Bundle Size Benchmarks

  • Commit: f26790f6598b
  • Measured at: 2026-06-04T10:55:27.749Z
  • Baseline source: history:7fc7c346dc7d
  • Dashboard: bundle-size history
Scenario Current (gzip) Delta vs baseline Initial gzip Raw Brotli Trend
react-router.minimal 87.25 KiB 0 B (0.00%) 87.12 KiB 273.94 KiB 75.84 KiB ████▁▁▁▁▁▁▁
react-router.full 90.69 KiB 0 B (0.00%) 90.55 KiB 285.30 KiB 78.83 KiB ████▁▁▁▁▁▁▁
solid-router.minimal 35.47 KiB 0 B (0.00%) 35.35 KiB 106.24 KiB 32.00 KiB ████▁▁▁▁▁▁▁
solid-router.full 40.18 KiB 0 B (0.00%) 40.05 KiB 120.43 KiB 36.18 KiB ████▁▁▁▁▁▁▁
vue-router.minimal 52.97 KiB 0 B (0.00%) 52.84 KiB 150.26 KiB 47.66 KiB ████▁▁▁▁▁▁▁
vue-router.full 58.60 KiB 0 B (0.00%) 58.47 KiB 167.99 KiB 52.51 KiB ████▁▁▁▁▁▁▁
react-start.minimal 101.88 KiB 0 B (0.00%) 101.74 KiB 322.26 KiB 88.15 KiB ████▁▁▁▁▁▁▁
react-start.deferred-hydration 102.61 KiB 0 B (0.00%) 101.76 KiB 323.63 KiB 88.82 KiB ████▁▁▁▁▁▁▁
react-start.full 105.26 KiB 0 B (0.00%) 105.12 KiB 332.57 KiB 91.09 KiB ████▁▁▁▁▁▁▁
react-start.rsbuild.minimal 99.58 KiB 0 B (0.00%) 99.41 KiB 316.74 KiB 85.74 KiB ████▁▁▄▄▄▄▄
react-start.rsbuild.full 102.85 KiB 0 B (0.00%) 102.68 KiB 327.13 KiB 88.45 KiB ████▁▁▄▄▄▄▄
solid-start.minimal 49.58 KiB 0 B (0.00%) 49.45 KiB 152.31 KiB 43.78 KiB ████▁▁▁▁▁▁▁
solid-start.deferred-hydration 52.84 KiB 0 B (0.00%) 49.51 KiB 160.35 KiB 46.76 KiB ████▁▁▁▁▁▁▁
solid-start.full 55.37 KiB 0 B (0.00%) 55.24 KiB 169.24 KiB 48.76 KiB ████▁▁▁▁▁▁▁

Current gzip tracks all emitted client JS chunks. Initial gzip tracks only the entry/import graph. Trend sparkline is historical current gzip ending with this PR measurement; lower is better.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
packages/router-core/tests/tsr-script-teardown.test.ts (1)

11-14: ⚡ Quick win

Replace the any window casts with a typed test-global shape.

These assertions currently sidestep TS safety with repeated (window as any). A small test-only Window augmentation keeps the file strict without changing behavior.

♻️ Suggested typing cleanup
 type TsrBootstrap = {
   h: () => void
   e: () => void
   c: () => void
 }
+
+declare global {
+  interface Window {
+    $_TSR?: TsrBootstrap
+    $R?: {
+      tsr?: Array<unknown>
+    }
+  }
+}
 
 // Assign `self.$_TSR`.
 function installBootstrap(): TsrBootstrap {
   new Function(minifiedTsrBootStrapScript)()
-  return (window as any).$_TSR
+  return window.$_TSR!
 }
@@
   beforeEach(() => {
-    ;(window as any).$R = { tsr: [] }
-    delete (window as any).$_TSR
+    window.$R = { tsr: [] }
+    delete window.$_TSR
   })
@@
   afterEach(() => {
-    delete (window as any).$_TSR
-    delete (window as any).$R
+    delete window.$_TSR
+    delete window.$R
     setReadyState('complete')
   })
@@
-    expect((window as any).$_TSR).toBeDefined()
+    expect(window.$_TSR).toBeDefined()
@@
-    expect((window as any).$_TSR).toBeUndefined()
+    expect(window.$_TSR).toBeUndefined()
@@
-    expect((window as any).$_TSR).toBeUndefined()
-    expect((window as any).$R.tsr).toBeUndefined()
+    expect(window.$_TSR).toBeUndefined()
+    expect(window.$R?.tsr).toBeUndefined()

As per coding guidelines, **/*.{ts,tsx}: Use TypeScript strict mode with extensive type safety.

Also applies to: 25-31, 40-54

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/router-core/tests/tsr-script-teardown.test.ts` around lines 11 - 14,
The test uses (window as any).$_TSR which bypasses TS safety; add a test-only
global Window augmentation (e.g., declare global { interface Window { $_TSR?:
TsrBootstrap } }) at the top of the test file and replace all (window as
any).$_TSR occurrences with the typed access window.$_TSR (and update
installBootstrap to return window.$_TSR as TsrBootstrap). Ensure the
augmentation is scoped to the test file so other code is unaffected.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.changeset/solid-symbols-sink.md:
- Line 5: The release note is misleading: it says "delete $_TSR immediately on
stream end" but the code waits for both hydration and stream end before removing
$_TSR; update the changelog entry to reflect the actual behavior by stating that
$_TSR is deleted after stream end and hydration complete (or after both
conditions are met) rather than "immediately on stream end", and mention the
combined condition involving hydration and stream end (reference symbol $_TSR
and the hydration/stream-end condition) so the summary accurately matches the
implementation.

In `@packages/router-core/tests/tsr-script-teardown.test.ts`:
- Around line 35-55: Add a regression test for document.readyState ===
'loading': use setReadyState('loading'), call installBootstrap() to get tsr,
invoke tsr.h() and then tsr.e() and assert that (window as any).$_TSR and
(window as any).$R.tsr remain defined (teardown deferred), then simulate the
document finishing parse by setReadyState('complete') and dispatching a
DOMContentLoaded event (or call tsr.e() again) and finally assert both (window
as any).$_TSR and (window as any).$R.tsr are undefined; reference the helpers
setReadyState, installBootstrap and the tsr.h()/tsr.e() methods to locate where
to add the new test.

---

Nitpick comments:
In `@packages/router-core/tests/tsr-script-teardown.test.ts`:
- Around line 11-14: The test uses (window as any).$_TSR which bypasses TS
safety; add a test-only global Window augmentation (e.g., declare global {
interface Window { $_TSR?: TsrBootstrap } }) at the top of the test file and
replace all (window as any).$_TSR occurrences with the typed access window.$_TSR
(and update installBootstrap to return window.$_TSR as TsrBootstrap). Ensure the
augmentation is scoped to the test file so other code is unaffected.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: fc2aaa50-a868-40c1-add1-b04489a68719

📥 Commits

Reviewing files that changed from the base of the PR and between 7fc7c34 and 1a51b80.

📒 Files selected for processing (3)
  • .changeset/solid-symbols-sink.md
  • packages/router-core/src/ssr/tsrScript.ts
  • packages/router-core/tests/tsr-script-teardown.test.ts

'@tanstack/router-core': patch
---

delete $\_TSR immediately on stream end
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.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Clarify the release note timing.

The implementation still waits for both hydration and stream end before deleting $_TSR, so “immediately on stream end” is a bit too strong. Please align the note with the actual condition to avoid misleading the patch summary.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/solid-symbols-sink.md at line 5, The release note is misleading:
it says "delete $_TSR immediately on stream end" but the code waits for both
hydration and stream end before removing $_TSR; update the changelog entry to
reflect the actual behavior by stating that $_TSR is deleted after stream end
and hydration complete (or after both conditions are met) rather than
"immediately on stream end", and mention the combined condition involving
hydration and stream end (reference symbol $_TSR and the hydration/stream-end
condition) so the summary accurately matches the implementation.

Comment on lines +35 to +55
test('does not tear down until both hydrated and streamEnded', () => {
setReadyState('complete')
const tsr = installBootstrap()

tsr.h()
expect((window as any).$_TSR).toBeDefined()

tsr.e()
expect((window as any).$_TSR).toBeUndefined()
})

test('tears down immediately when the document is already parsed', () => {
setReadyState('complete')
const tsr = installBootstrap()

tsr.h()
tsr.e()

expect((window as any).$_TSR).toBeUndefined()
expect((window as any).$R.tsr).toBeUndefined()
})
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.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add a readyState === 'loading' regression case.

Both tests force document.readyState to 'complete', so the pre-revert DOMContentLoaded-deferred implementation from #7524 would still pass this suite. That means the reverted path is not actually protected here.

🧪 Minimal coverage fix
-  test('tears down immediately when the document is already parsed', () => {
-    setReadyState('complete')
+  test('tears down immediately after stream end even while the document is loading', () => {
+    setReadyState('loading')
     const tsr = installBootstrap()
 
     tsr.h()
     tsr.e()
 
     expect((window as any).$_TSR).toBeUndefined()
     expect((window as any).$R.tsr).toBeUndefined()
   })
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
test('does not tear down until both hydrated and streamEnded', () => {
setReadyState('complete')
const tsr = installBootstrap()
tsr.h()
expect((window as any).$_TSR).toBeDefined()
tsr.e()
expect((window as any).$_TSR).toBeUndefined()
})
test('tears down immediately when the document is already parsed', () => {
setReadyState('complete')
const tsr = installBootstrap()
tsr.h()
tsr.e()
expect((window as any).$_TSR).toBeUndefined()
expect((window as any).$R.tsr).toBeUndefined()
})
test('does not tear down until both hydrated and streamEnded', () => {
setReadyState('complete')
const tsr = installBootstrap()
tsr.h()
expect((window as any).$_TSR).toBeDefined()
tsr.e()
expect((window as any).$_TSR).toBeUndefined()
})
test('tears down immediately after stream end even while the document is loading', () => {
setReadyState('loading')
const tsr = installBootstrap()
tsr.h()
tsr.e()
expect((window as any).$_TSR).toBeUndefined()
expect((window as any).$R.tsr).toBeUndefined()
})
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/router-core/tests/tsr-script-teardown.test.ts` around lines 35 - 55,
Add a regression test for document.readyState === 'loading': use
setReadyState('loading'), call installBootstrap() to get tsr, invoke tsr.h() and
then tsr.e() and assert that (window as any).$_TSR and (window as any).$R.tsr
remain defined (teardown deferred), then simulate the document finishing parse
by setReadyState('complete') and dispatching a DOMContentLoaded event (or call
tsr.e() again) and finally assert both (window as any).$_TSR and (window as
any).$R.tsr are undefined; reference the helpers setReadyState, installBootstrap
and the tsr.h()/tsr.e() methods to locate where to add the new test.

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented Jun 3, 2026

More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/@tanstack/arktype-adapter@7533

@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/@tanstack/eslint-plugin-router@7533

@tanstack/eslint-plugin-start

npm i https://pkg.pr.new/@tanstack/eslint-plugin-start@7533

@tanstack/history

npm i https://pkg.pr.new/@tanstack/history@7533

@tanstack/nitro-v2-vite-plugin

npm i https://pkg.pr.new/@tanstack/nitro-v2-vite-plugin@7533

@tanstack/react-router

npm i https://pkg.pr.new/@tanstack/react-router@7533

@tanstack/react-router-devtools

npm i https://pkg.pr.new/@tanstack/react-router-devtools@7533

@tanstack/react-router-ssr-query

npm i https://pkg.pr.new/@tanstack/react-router-ssr-query@7533

@tanstack/react-start

npm i https://pkg.pr.new/@tanstack/react-start@7533

@tanstack/react-start-client

npm i https://pkg.pr.new/@tanstack/react-start-client@7533

@tanstack/react-start-rsc

npm i https://pkg.pr.new/@tanstack/react-start-rsc@7533

@tanstack/react-start-server

npm i https://pkg.pr.new/@tanstack/react-start-server@7533

@tanstack/router-cli

npm i https://pkg.pr.new/@tanstack/router-cli@7533

@tanstack/router-core

npm i https://pkg.pr.new/@tanstack/router-core@7533

@tanstack/router-devtools

npm i https://pkg.pr.new/@tanstack/router-devtools@7533

@tanstack/router-devtools-core

npm i https://pkg.pr.new/@tanstack/router-devtools-core@7533

@tanstack/router-generator

npm i https://pkg.pr.new/@tanstack/router-generator@7533

@tanstack/router-plugin

npm i https://pkg.pr.new/@tanstack/router-plugin@7533

@tanstack/router-ssr-query-core

npm i https://pkg.pr.new/@tanstack/router-ssr-query-core@7533

@tanstack/router-utils

npm i https://pkg.pr.new/@tanstack/router-utils@7533

@tanstack/router-vite-plugin

npm i https://pkg.pr.new/@tanstack/router-vite-plugin@7533

@tanstack/solid-router

npm i https://pkg.pr.new/@tanstack/solid-router@7533

@tanstack/solid-router-devtools

npm i https://pkg.pr.new/@tanstack/solid-router-devtools@7533

@tanstack/solid-router-ssr-query

npm i https://pkg.pr.new/@tanstack/solid-router-ssr-query@7533

@tanstack/solid-start

npm i https://pkg.pr.new/@tanstack/solid-start@7533

@tanstack/solid-start-client

npm i https://pkg.pr.new/@tanstack/solid-start-client@7533

@tanstack/solid-start-server

npm i https://pkg.pr.new/@tanstack/solid-start-server@7533

@tanstack/start-client-core

npm i https://pkg.pr.new/@tanstack/start-client-core@7533

@tanstack/start-fn-stubs

npm i https://pkg.pr.new/@tanstack/start-fn-stubs@7533

@tanstack/start-plugin-core

npm i https://pkg.pr.new/@tanstack/start-plugin-core@7533

@tanstack/start-server-core

npm i https://pkg.pr.new/@tanstack/start-server-core@7533

@tanstack/start-static-server-functions

npm i https://pkg.pr.new/@tanstack/start-static-server-functions@7533

@tanstack/start-storage-context

npm i https://pkg.pr.new/@tanstack/start-storage-context@7533

@tanstack/valibot-adapter

npm i https://pkg.pr.new/@tanstack/valibot-adapter@7533

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/@tanstack/virtual-file-routes@7533

@tanstack/vue-router

npm i https://pkg.pr.new/@tanstack/vue-router@7533

@tanstack/vue-router-devtools

npm i https://pkg.pr.new/@tanstack/vue-router-devtools@7533

@tanstack/vue-router-ssr-query

npm i https://pkg.pr.new/@tanstack/vue-router-ssr-query@7533

@tanstack/vue-start

npm i https://pkg.pr.new/@tanstack/vue-start@7533

@tanstack/vue-start-client

npm i https://pkg.pr.new/@tanstack/vue-start-client@7533

@tanstack/vue-start-server

npm i https://pkg.pr.new/@tanstack/vue-start-server@7533

@tanstack/zod-adapter

npm i https://pkg.pr.new/@tanstack/zod-adapter@7533

commit: 00b5045

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented Jun 3, 2026

Merging this PR will improve performance by 6.07%

⚡ 1 improved benchmark
✅ 4 untouched benchmarks
⏩ 1 skipped benchmark1

Performance Changes

Benchmark BASE HEAD Efficiency
ssr request loop (vue) 482.3 ms 454.7 ms +6.07%

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing revert-#7524 (00b5045) with main (ccf87fb)

Open in CodSpeed

Footnotes

  1. 1 benchmark was skipped, so the baseline result was used instead. If it was deleted from the codebase, click here and archive it to remove it from the performance reports.

}

function setReadyState(value: DocumentReadyState) {
Object.defineProperty(document, 'readyState', {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

why do we need to test for readyState? streaming is independent from that

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

we don't need it now that it's immediate again - I've removed it.

@schiller-manuel schiller-manuel merged commit 76b3d3b into main Jun 4, 2026
20 checks passed
@schiller-manuel schiller-manuel deleted the revert-#7524 branch June 4, 2026 22:04
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