Skip to content
This repository was archived by the owner on Oct 21, 2026. It is now read-only.

chore(solid-start): Solid rc.10 + vite-plugin next.46(草稿:todos store 回归待查) - #3

Merged
ethan-huo merged 3 commits into
mainfrom
solid-start-rc10
Sep 30, 2026
Merged

ethan-huo merged 3 commits into
mainfrom
solid-start-rc10

Conversation

@ethan-huo

@ethan-huo ethan-huo commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

与 celados/delta#56 同步:solid-start 和 extension 都升级到 Solid 2.0.0-rc.10(web、diagnostics 同步),vite-plugin 升到 next.46,两份 lockfile 一起更新。typecheck 和 web 构建都通过。

被上游回归卡住:solidjs/solid#3687。attribution 引擎开着时(captureArtifact,或 vite-plugin next.46 在 dev 下默认开启的 performance tracks),失败的 action 不会回滚 createOptimisticStore;rc.9 正常,createOptimistic 不受影响,生产环境不受影响。

  • web/src/lib/todos.test.tsx 里受影响的 2 个用例改为 it.fails 并附链接:上游修好后它们会失败,提醒我们改回 it(),不会被静默跳过。
  • 同一个文件里,attribution 的回滚检查还会抛一个 unhandled rejection(_host,调用栈已追加到上游 issue),所以在上游修好之前这个测试文件的运行结果仍然是失败的。
  • 保持草稿,等上游修复后再改回 it()、重跑并合并。

2026-09-30:关闭 attribution,解除阻塞

dio 定:attribution 引擎现阶段不成熟,先关掉,等成熟再开。

  • vite:web 和 extension 都设 performanceTracks: false。性能轨道功能内部持有 attribution 引擎,这个选项只影响 vite dev。
  • 测试:captureArtifact 统一传 attribution: false。断言用的是诊断通道,不依赖这个引擎。
  • 两个 it.fails 用例恢复为普通用例:13 个全部通过,退出码 0,_host 的未处理异常消失。
  • 对照:把失败场景的 attribution: false 去掉,它会重新以 _host 失败,证明起作用的是这个开关。
  • bun run check 通过(web 13 个、extension 24 个测试)。

不再等 rc.12:上游 bug(solidjs/solid#3687)只在引擎开启时触发。

…/solid#3687)

Two todos store scenarios fail on Solid 2.0.0-rc.10 because the
attribution engine (captureArtifact) stops a failed action from reverting
an optimistic store. They are it.fails with the issue link, so they turn
red once upstream fixes it; the engine's revert check also throws an
unhandled rejection in this file, which keeps the run failing until then.
@ethan-huo
ethan-huo changed the base branch from solid-start-router-next30 to main September 28, 2026 01:07
@ethan-huo

Copy link
Copy Markdown
Contributor Author

暂缓升级,继续保持 Draft。已评估 Solid 2.0.0-rc.13,但目前还没有足够证据确认它在我们的 SSR/水合路径上可以安全替代当前版本。

本轮验证结果:

  • solidjs/solid#3687 的修复已包含在 RC13 中。模板原测试的业务状态断言通过,失败 action 的 optimistic store 回滚恢复正常,未再出现此前的 _host 异常。
  • 将本 PR 的两个 it.fails 恢复为普通 it 后,todos + Convex 的 13 个用例中,11 个通过、2 个因 attribution 诊断失败。失败回滚产生的 OPTIMISTIC_REVERTED 是预期行为;重叠 mutation 仍出现「showed 1; settled to 1」的疑似误报。
  • 仅在 todos 的 captureArtifact 中设置 attribution: false 后,上述 13 个测试全部通过。关闭 attribution 可以绕开这两条诊断,但不能证明 SSR/水合行为安全。

仍需关注的 SSR/水合问题:

  • solidjs/solid#3719:首个 shell 输出前渲染失败时,createSSRResponse 不结束。本地在 RC13 和 RC10 上均已复现,因此它不是已证实的 RC13 新回归;但升级也没有解决这条失败路径。
  • solidjs/solid#3721:上游报告 RC13 在流式水合未完成时导航,transition 不结束,之后的路由导航被吞掉。本轮尚未在我们的应用中复现,也没有完成当前版本与 RC13 的浏览器对照验收。

决策:本轮不升级、不合并,不以关闭 attribution 后的单测通过作为放行依据。对 optimistic store 的修复不足以抵消目前 SSR/水合行为仍未验证的风险。待相关上游修复或进一步证据到位,再在隔离环境中复查慢查询/流式水合期间导航、后续连续导航、SSR 失败响应和现有业务回归用例。

后续若重启 RC13 验证,需要同步升级运行时、signals、web、diagnostics 与编译器/vite-plugin(本轮验证使用 next.47,router next.32)。RC12 未实际发布,其变更包含在 RC13 中。本轮未修改本 PR 分支、主 checkout 或部署。

It is not mature yet: RC10's cost checks flood dev pages, and an optimistic
store fails to revert while the engine is on (solidjs/solid#3687).

- vite: performanceTracks false for the web app and the extension (the tracks
  hold the engine; dev-serve only)
- tests: captureArtifact runs with attribution false; the two it.fails cases
  are ordinary tests again and the suite exits 0. Diagnostics assertions do
  not need the engine.
@ethan-huo
ethan-huo marked this pull request as ready for review September 30, 2026 12:04
@ethan-huo
ethan-huo merged commit 432f199 into main Sep 30, 2026
1 check passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant