ReviewOS

stacks/system-cleaner

Craft initialises COM — bump the pin and ship the Windows desktop app

#25
Closed github-actions[bot] opened this 8 days ago ·
8 days ago

Craft v0.0.247 imports CoInitializeEx, so its Windows runtime now puts the calling thread in a COM apartment and the desktop window should open.

ole32.dll: CoInitializeEx, CoTaskMemFree, CoUninitialize

craft-native/craft#342 is closed.

What this unblocks, and what to change:

  1. Bump craft-native.org in deps.yaml to ^0.0.247. Until then scripts/build-desktop-windows.ts keeps pinning v0.0.100 and nothing changes.
  2. CI's Guard why the window does not open will report the windowsHide spawns loading where CO_E_NOTINITIALIZED was expected. Drop those expectations in scripts/windows-webview-spawn-probe.ts.
  3. Remove the 0x800401f0 tolerance from the Open the window and photograph it step, so a window failing to open is a hard failure again.
  4. Update CHANGELOG.md and the v0.3.7 release notes, which say the desktop app is macOS-only pending craft-native/craft#335.

Opened by scripts/craft-com-watch.ts, which reads the import table of each new release rather than running anything.

8 days ago

Duplicate of #24, which this repeats because the watcher deduplicated on open issues only — closing #24 as done removed the one thing keeping it quiet, and it filed this 44 minutes later. All four items here shipped in v0.3.8:

  • The Windows floor moved, though not the way item 1 describes: MIN_WINDOWS_CRAFT in scripts/build-desktop-windows.ts is v0.0.175, so deps.yaml keeps ^0.0.90 and the macOS runtime does not move with it.
  • The CO_E_NOTINITIALIZED expectations and the 0x800401f0 tolerance are gone.
  • The changelog and release notes no longer say macOS-only.

scripts/craft-com-watch.ts has been inverted rather than retired: it now reports a release at or above the floor that drops CoInitializeEx, which ci.yml's spawn guard cannot see because it probes the pinned version. One issue per regressed release, named in its title, so closing it is final.

Incidentally, the first release carrying the call was v0.0.166, not v0.0.175 — v0.0.166 published 00:04Z on 14 Oct and this watcher's first scheduled run was 12:52Z the same day, by which point v0.0.175 was already latest. The pin stays at 175: that is the version the bundle was built and verified against.

Sign in to comment on this issue.