ReviewOS

also looking at this

craft-native/craft

fix(native): preserve workspace sources and native overlay lifecycle

#384
Merged chris wants to merge codex/windows-zig-cache-diagnostics into main
20 files +500 -227

Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.

scripts/release-workflow.test.tsmodified+13-5
Changes to scripts/release-workflow.test.ts
@@ -203,11 +203,19 @@ test('workflow setup uses a known Pantry CLI instead of resolving latest', () =>
203203 for (const [name, job] of Object.entries(workflow.jobs)) {
204204 for (const step of job.steps ?? []) {
205205 if (step.uses?.startsWith('pantry-pm/pantry/packages/action@')) {
206 // Windows needs the published fix that removes workspace links
207 // without following them into the tracked source checkout.
208 const preservesWindowsSources = file === 'windows-source-provenance.yml' || (file === 'ci.yml' && name === 'windows-multi-window')
209 const version = preservesWindowsSources ? '0.11.109' : '0.11.101'
210 const source = preservesWindowsSources ? 'd160044a6fe4ad7e8463828f80dfbc55bcdc07d9' : 'ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf'
206 // Keep each workflow on the released Pantry version it declares.
207 // Windows uses the newer workspace-link fix; the native acceptance
208 // workflows intentionally stay on their current toolchain pin.
209 const version = file === 'windows-source-provenance.yml' || (file === 'ci.yml' && name === 'windows-multi-window')
210 ? '0.11.109'
211 : ['mobile-e2e.yml', 'benchmarks.yml', 'binary-size.yml'].includes(file)
212 ? '0.11.106'
213 : '0.11.101'
214 const source = version === '0.11.109'
215 ? 'd160044a6fe4ad7e8463828f80dfbc55bcdc07d9'
216 : version === '0.11.106'
217 ? 'e62755c21d946ed0f8dc8e4af39f6ea5f084537a'
218 : 'ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf'
211219 expect(step.with?.version, `${file} ${name} must pin Pantry CLI`).toBe(version)
212220 expect(step.uses, `${file} ${name} must pin the matching action source`).toBe(`pantry-pm/pantry/packages/action@${source}`)
213221 }