fix(site-editor): v7 Advanced → Local behaves as on main
Draft
TL
4d ago+177+177+012345678901234567890123456789-12-12-01234567890123456789
Part of the v8 Studio stack (base: #7796). v8 Fast Preview + Localhost track, on top of #7873. PO decisions of 2026-10-11.
R1: v7's draft picker → Advanced → Local behaves as on main. The stack had turned Local into a deco serve probe for every site: an async save, a "checking" state, and a different hint. v7 sites get main's code back.
What
- The picker now knows the site version:
isV8 = isBlocksV8Project(vmcp.metadata)(the server marker from #7871), passedChatModeRow→BranchPill→BranchPicker→AdvancedPicker. - v7:
LocalUrlForm(moved tolocal-url-form.tsxso it can be tested) is main's component verbatim.- It saves
productionUrlFromDomain(url)synchronously, with no request, no checking state and no error line, and shows main's hint. - The picker also stops clearing or writing the
deco serveconnection for v7. Since #7873, that connection reads as none on v7 anyway.
- It saves
- v8: the Advanced Local tab keeps the
deco serveform (ServeLocalUrlForm) for now. The next PR replaces it with a Localhost item in the drafts list.
Tests
local-url-form.test.tsx:- On v7, saving
localhost:3000callsonSave(productionUrlFromDomain("localhost:3000"))in the same tick, andfetchis never called (spy). - An empty field can't be saved.
- The hint is main's, and Turn off clears.
- On v7, saving
tsc --noEmitforapps/web, oxlint, and biome format are clean. The 20 test files underthread/repositoryandchat/pillspass, one process per file.
Stack
v8 Fast Preview track: previous: #7873 · next: #7875
🤖 Generated with Claude Code