feat(office): offline Python authoring on Windows and macOS - #649
Merged
yaojin3616 merged 4 commits intoOct 3, 2026
Merged
Conversation
yaojin3616
marked this pull request as ready for review
October 2, 2026 12:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Based on #646 (
fix/node-pty-unpacked-helper). Ordinary Windows and macOS conversations lack the upstream general Office skills and bundled Python libraries, so agents can hand-assemble OOXML with PowerShell Compress-Archive and produce ZIP names that strict preview rejects. The existing template PPTD/PptxGenJS workflow remains in place. This enables upstream DOCX/PPTX/XLSX skills andload_workspace_dependencies, backed by an offline, hash-locked Python payload.dsh-desktop-officecomposition using the published Harness 0.2.0-rc.2 plugins. Skills are visible through a real session's skill catalog; dependency queries return the current installation's Python directly. No PATH modification, first-call download, or Profile copy.office-pptx; active template mode retainsdsh-ppt, the selected template and PPTD tools. Apply current-session invocation policy after discovery caching to both catalogs and loaded bodies, disabling automatic model loading ofoffice-pptxonly in template mode. Word/Excel and explicit user invocation remain available; disabling mode or unloading the PPT plugin restores the general skill. Validation/export failures do not silently switch engines.Patch scope: the existing
@deepseek-ai/dsh@0.2.0-rc.2dependency-closure patch gains one local host package, following the other Desktop plugins. No slots or client bootstrap changes. Remove this injection when upstream provides equivalent host-package closure registration. A minimaldsh-skill@0.2.0-rc.2patch adds a sharedskills/invocationwaterfall for catalog/body views; the existingdsh-api-session-controllerpatch passes the durable Session ID to catalog views before Agent activation. The PPT plugin owns the policy and its lifecycle. Remove the seam patch when upstream exposes equivalent dynamic invocation policy. Provider precedence and client slots/bootstrap remain unchanged.Validation:
npm ci, including complete patch-package/postinstallnpm test: 181 files / 1612 testsnpm run typecheck,npm run build,git diff --checknode scripts/verify-target.mjs darwin arm64: Electron 43.0.0 / Node 24.17.0 native-loader checkcf9c113, including clean patch replay, full tests, typecheck, build, target verification, actual development packages and packaged Office generation/checks/DOCX-PPTX-XLSX PDF conversion:Signed/notarized artifacts, final signed installation, and model-driven UI authoring are not yet verified. The arm64 development directory package carries about 205 MiB of Office resources; this is not a compressed-installer delta. Runtime discovery adds no first-use installation; installer time/size still needs native artifact comparison.