Skip to content

fix: align wall geometry and autosave canonical edits - #23

Open
wtj-0527 wants to merge 8 commits into
mainfrom
fix/issue-22-wall-parity-autosave
Open

wtj-0527 wants to merge 8 commits into
mainfrom
fix/issue-22-wall-parity-autosave

Conversation

@wtj-0527

@wtj-0527 wtj-0527 commented Aug 12, 2026 •

Copy link
Copy Markdown
Owner

Closes #22

Summary

  • preserve the retained latest local intent on expectedRevision conflict and offer explicit local / remote / merged resolution against the newly fetched remote revision
  • render saving, saved, failed, conflict, retry, and merge-saving states consistently across Steps 3/5/6 with D1.3 blue/red/amber semantics
  • derive bounded per-piece Rust/WASM fields from the same canonical wall/opening spans used by selection overlays, so the minimum legal narrow opening remains visibly open on long walls while every piece retains its canonical wallId
  • keep autosave serialized/latest-intent-wins after conflict resolution and reset merged canonical data to Step 3 for renewed 2D/3D review

RED → GREEN

Focused RED reproduced all three review blockers:

  • project session had no local/remote/merge conflict-resolution API and discarded the retained intent on reload
  • D1.3 state tests found conflict copy in red and Step 6 fixed green/purple regardless of real request state
  • the legal 4000-unit wall / width 8 door probe produced a real WASM surface ray hit through the supposed doorway

GREEN regressions now prove:

  • local, remote, and merged choices use the freshly fetched remote revision; local intent is retained, merged by stable IDs, persisted, and re-opened for parity review
  • Step 3/5/6 display one truthful blue saving state, red failure state, or amber conflict state, including explicit retry and three conflict actions
  • the same narrow-door probe produces compiled Rust/WASM geometry with no ray intersection through the doorway; resource bounds remain nx <= 97, ny = 33, nz = 9 per solid piece

Validation

Local validation on the final source candidate:

  • frontend Vitest: 24 files / 146 tests passed (includes compiled real-WASM narrow-opening regression)
  • frontend lint and TypeScript: passed
  • frontend production build + real WASM build: passed
  • Go: go test -p 1 ./... passed
  • Rust/WASM: 12 tests passed
  • production browser/PostgreSQL/S3/restart E2E: 15 passed
  • git diff --check: passed

Exact-head CI for f5b31ecc3e82a2e1c2e3140c4a28c52c27c4679c:

  • Backend tests: passed
  • Frontend, WASM, and production build: passed
  • Production browser persistence E2E: passed
  • Socket Security checks: passed

LPK consistency

No packaging/install contract changed. package.yml, lzc-manifest.yml, lzc-build.yml, lzc-deploy-params.yml, and lzc-icon.png are unchanged from the frozen base and remain consistent with the same frontend/backend/PostgreSQL/S3 build, routing, persistence, health, and install behavior.

Candidate identity

  • Base: f63f1c35bad793964165f91502aa14ae3fbb95fd
  • Base Tree: a49bc7999b8af4f04812301e49daafc05769f5bd
  • HEAD: f5b31ecc3e82a2e1c2e3140c4a28c52c27c4679c
  • Tree: c74b4d7adf5ea871705f7ffd5874b052e90b37bc
  • Patch SHA-256 (base...HEAD, binary diff): cf2fbce145eca12e7b0480f1cf132d7d9efaa9061562f549ea32a7a7243d655e

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: align 2D/3D walls and add automatic project saving

1 participant