Skip to content

Store complete packages atomically in the mxpak cache - #8

Merged
GG-O-BP merged 1 commit into
mainfrom
fix/cache-package-completeness
Sep 3, 2026
Merged

Store complete packages atomically in the mxpak cache#8
GG-O-BP merged 1 commit into
mainfrom
fix/cache-package-completeness

Conversation

@GG-O-BP

@GG-O-BP GG-O-BP commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • mendraw#12 reported that partially extracted classic-widget caches were treated as valid. The mxpak successor had the same defect class: store.put wrote directly into the final hash directory and store.has trusted directory existence, so interrupted writes later restored incomplete packages and silently dropped widget bindings.
  • Package stores now build in a unique temp directory, write a manifest.mxpak after all entries, atomically rename into place, and replace pre-existing incomplete directories.
  • cache.has_package verifies the manifest plus original.mpk; the downloader uses it for cache hits, and project restore excludes both internal files.
  • Also repairs a test-comment ordering issue from Lock corrupted ZIP directory offsets to explicit errors #7 that triggered workspace style warnings.

Fixes glendix-labs/mendraw#12

Verification

  • gleam test — 118 passed.
  • ./scripts/verify.sh inner mxpak — passed.
  • ./scripts/check-all.sh — passed.
  • pre-push verify.sh final — passed (family checks, widget build, Lustre E2E, Mendix full E2E).

@GG-O-BP
GG-O-BP merged commit 9e25426 into main Sep 3, 2026
@GG-O-BP
GG-O-BP deleted the fix/cache-package-completeness branch September 3, 2026 01:47
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.

[codegen] Classic 위젯 부분 추출 실패가 캐시를 오염시킴

1 participant