Skip to content

feat: add built-in PPT Capability - #278

Open
SuperstructureJH wants to merge 25 commits into
dataelement:mainfrom
SuperstructureJH:codex/ppt-capability-alpha4
Open

feat: add built-in PPT Capability#278
SuperstructureJH wants to merge 25 commits into
dataelement:mainfrom
SuperstructureJH:codex/ppt-capability-alpha4

Conversation

@SuperstructureJH

@SuperstructureJH SuperstructureJH commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add PPT Capability as a built-in DSH Desktop plugin while retaining the shared external-host Slides/JSX core
  • ship one Slides mode and remove the independent PPT/PPTD route, compiler, CLI, tools, production dependencies, and PPT mode button
  • place the Slides entry immediately to the right of the standard-mode selector in one compact control cluster
  • keep the Composer fixed when Slides opens; render categories directly below it and let the template gallery fill the remaining viewport with independent scrolling
  • keep the compact selected-template preview inline before prompt text and collapse the selection UI after the session starts
  • ship only the 44 MIT-licensed Kimi templates and remove the separately purchased data-analysis and vitality-blue templates and previews
  • let public-repository users run the Apple Silicon development build directly: the first npm run dev downloads and verifies the separately distributed closed-source Slides runtime, then later runs reuse the content-addressed cache
  • merge the current upstream/main@7cb9e04, including 0.8.0-rc.3

Implementation

  • pin reviewed Slides-only core and standard Composer adapter archives by SHA-256
  • mount the Harness 0.1.2-alpha.4 standard adapter in the Desktop profile
  • add a conversation.hero.modeActions host slot and group it with conversation.hero.agentPreset in one content-width flex container
  • collapse the agent-preset trigger wrapper's inherited 360 px minimum width inside that cluster, keeping Standard mode and Slides visually adjacent while preserving the dropdown width
  • retain the existing input accessory and Composer dock slots for the selected-template preview and independently scrolling gallery
  • persist one selected template state and inject the tencent-pptx Skill plus five Slides tools
  • preserve the 332 public Kimi source-page previews required for template and page reference
  • remove the purchased-template Host definitions, browser preview payloads, visual-reference loading branches, exports, and package content
  • keep SlideP and Tencent Docs AI engine source outside this repository; publish the darwin-arm64 runtime as a separately licensed binary archive
  • lock the public runtime URL, byte size, archive SHA-256, platform/version metadata, 9,919-file runtime tree, critical file hashes, and executable permission
  • download into a staging directory, reject unsafe archive paths, verify before atomic cache publication, and reuse only a fully verified cache
  • pass the verified development cache root only to Harness; copy the same locked runtime into Electron Resources during Apple Silicon packaging
  • keep development available with Slides disabled on platforms that do not yet have a published matching runtime
  • launch editor_sdk from the plugin data directory so logs do not modify App Resources
  • make development packaging deterministic with identity: null, then apply one bundle-wide ad-hoc signature in afterPack; formal release signing and notarization remain unchanged

Public runtime

  • Release: https://github.com/SuperstructureJH/dsh-desktop/releases/tag/ppt-capability-runtime-v1
  • asset: ppt-capability-runtime-darwin-arm64-5.4.1-0.2.112-wb.tar.gz
  • compressed size: 207,169,828 bytes
  • archive SHA-256: ca273302786617b722e98aa0976386a497e287db72880d07257bb32cd3d33a1d
  • runtime tree SHA-256: 6b65a93d812b51d10eb8b7d406afdc36579588c4c22b27a41bc2a6847f449ad8
  • unpacked runtime: about 563 MiB
  • the binary is a public download, remains closed-source, and is outside this repository's MIT license

Size

  • core archive: 29,238,986 bytes
  • standard adapter archive: 6,973,632 bytes
  • latest verified macOS arm64 internal-test ZIP: 412,510,079 bytes
  • ZIP SHA-256: 44a7892e56272f3685598b241168f75851bd6e75c3c5aedb3d7ada3bbf3242e5
  • artifact: ppt-capability-slides-adjacent-main-7cb9e04-mac-arm64.zip
  • the 332 source-page previews and the Slides platform runtime remain the main size contributors

Verification

  • Slides source and adapter bundles built cleanly; 35 focused source tests and both Host/Client TypeScript builds passed
  • release archives contain no PPTD CLI, PPTD bundle, Kimi/PPTD Skill entry, independent PPT tools, PPT compiler production dependencies, PPT mode button, or removed private-template payloads
  • a real empty-cache run downloaded all 207,169,828 bytes from the public Release, verified the archive and full extracted tree, and installed it under its content digest
  • the second runtime preparation reused and reverified the cache; the launcher passed the exact verified root to its child process
  • DSH Desktop runtime/resource/release focused suite: 50/50 passed
  • DSH Desktop full suite: 84 files / 695 tests passed
  • npm run typecheck and npm run build passed
  • Apple Silicon Electron Builder directory packaging consumed the downloaded runtime and embedded it in Resources/workbuddy-ppt-runtime
  • the embedded runtime passed the locked platform/version/tree/hash/permission gate
  • the final App passed strict deep code-signature verification, and Electron 43.4.0 loaded from the packaged executable

Delivery boundaries

  • zero-configuration Slides runtime download is currently published and verified for macOS Apple Silicon
  • Intel macOS and Windows keep the base Desktop development flow available with Slides disabled until matching runtime assets are published
  • native Slides UI regression and a fresh real deck generation remain user acceptance steps for this candidate
  • PowerPoint/WPS edit-save-close-reopen remains a separate Office acceptance gate
  • Developer ID signing and notarization remain release-pipeline work

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.

1 participant