Skip to content

[Bug] Bundle the correct pinned OfficeCLI per desktop target #106

@Astro-Han

Description

@Astro-Han

What task are you trying to do?

As a PawWork user, I want Word, Excel, and PowerPoint file handling to use the intended bundled OfficeCLI version, so document workflows keep improving as OfficeCLI ships fixes and new capabilities. This matters more as #100 makes file attach route more Office files into the local document-processing path, and it also connects to the longer-term #30 direction where OfficeCLI should become a first-party desktop plugin instead of an implicit bundled binary.

What do you do today?

Today packages/desktop-electron/resources/tools/officecli is a tracked binary bundled into the desktop app through electron-builder.config.ts. The download helper points at the latest OfficeCLI release asset, but packages/desktop-electron/scripts/download-tools.ts skips the download whenever the binary already exists. predev and prebuild do not refresh it.

On 2026-04-21, local verification found the checked-in macOS arm64 binary was 1.0.45, while the latest upstream release was v1.0.53, published on 2026-04-19. Running officecli --version locally can also self-update the binary in place, which dirties the git worktree without an intentional PawWork change.

What would a good result look like?

PawWork should make bundled OfficeCLI versioning explicit and release-safe.

A good near-term result:

  • Decide the intended OfficeCLI version for each PawWork desktop release.
  • Refresh the bundled binary intentionally during release prep, rather than depending on ad hoc local self-update behavior.
  • Add a check that reports the bundled OfficeCLI version and fails or warns when it does not match the expected release version.
  • Avoid dirtying the repo during ordinary verification, for example by documenting or enforcing OFFICECLI_SKIP_UPDATE=1 when checking the bundled binary.
  • Keep this scoped to the current bundled-tool model.

A good longer-term result, connected to #30:

  • Treat OfficeCLI as a first-party desktop plugin with explicit install, update, enable, and version state.
  • The plugin-management UI should eventually own OfficeCLI visibility and upgrades, instead of hiding it as a silent resource under resources/tools.

Which audience does this matter to most?

Both

Extra context

Related issues:

Current code pointers:

  • Bundled binary: packages/desktop-electron/resources/tools/officecli
  • Bundle config: packages/desktop-electron/electron-builder.config.ts
  • Download helper: packages/desktop-electron/scripts/download-tools.ts
  • Desktop prebuild path: packages/desktop-electron/scripts/prebuild.ts
  • Desktop predev path: packages/desktop-electron/scripts/predev.ts
  • Document skill: skills/document-processing/SKILL.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High prioritybugSomething isn't workingenhancementNew feature or requestplatformElectron shell, OS integration, packaging, updater, signing, paths, and permissionsupstreamTracked upstream or vendor behaviorwindowsWindows-specific

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions