mirror of
https://github.com/webstudio-is/webstudio.git
synced 2026-11-03 18:48:06 +09:00
## Summary Fix the dry-run/commit mismatch for folder index pages. Page mutations could plan an empty local path inside a folder, but persistence rejected the same page because the shared Pages schema treated every non-home empty path as invalid. ## Technical choices - Derive valid folder-index page IDs from non-root folder children in the shared SDK schema. - Continue rejecting empty paths for non-home pages at the root. - Keep the existing home-page and root-folder invariants unchanged. - Cover both an existing page update and the transaction shape used when duplicating a folder index page. The other reports from this batch were verified against current main and closed against their existing fixes: browser process failures are covered by #6135, and fragment conflict options are covered by #6122. ## Checklist - [x] Reproduce the persistence failure - [x] Add regressions that fail before the schema fix and pass after it - [x] Allow empty local paths only for pages parented by non-root folders - [x] Verify update and duplicate persistence paths - [x] Run the fixture sync/build pipeline and inspect generated output - [x] Review documentation impact — no documentation change is needed because this restores the existing folder-index behavior - [x] Review the final diff for duplicated logic, edge cases, and unrelated changes ## Verification - `pnpm --filter @webstudio-is/sdk test` — 513 tests passed - SDK typecheck passed - `pnpm --filter @webstudio-is/project test` — 85 tests passed - Project typecheck passed - `pnpm --filter @webstudio-is/project-build test` — 2,094 tests passed - Project-build typecheck passed - `pnpm --filter ./packages/cli test` — 980 tests passed - CLI typecheck passed - `pnpm lint` - `pnpm check:generated-api` - `pnpm fixtures` — completed with no tracked fixture changes - Real local Chrome and auto-browser screenshot reproductions passed, including parallel captures Agent evaluations were not run because they require separate explicit approval. Closes #6142