Skip to content

feat: built-in community plugins, profile switches, and working skin center - #12

Merged
whitelonng merged 3 commits into
masterfrom
codex/electron-desktop
Aug 13, 2026
Merged

feat: built-in community plugins, profile switches, and working skin center#12
whitelonng merged 3 commits into
masterfrom
codex/electron-desktop

Conversation

@whitelonng

Copy link
Copy Markdown
Owner

Summary

Ship dsh-genui, dsh-annotation, and the dsh-web-ui aggregate inside the shipped Web profile with per-product Settings switches persisted to the profile patch, plus LINUX DO and plugin credits — and make the packaged desktop app's skin center actually work.

What changed

  • Web profile now layers the three community bundles after dsh-web-app; the web-app bundle declares the aggregate's nine entry packages and the whale-song skin as direct pinned dependencies (0.1.2) so the profile module fallback can resolve them from a profile directory.
  • Plugin switches: loopback-only dsh-host-plugin-control gateway (list / set-enabled) + a third Settings tab (插件开关) with three product cards writing restart-time {id, disabled} patches to the profile patch.
  • Skin center fix (patchedDependencies patch on @linxin666/dsh-client-ui-skin-center): resolves the skins/ tree beside an ancestor node_modules (bundled deployments have no checkout packages/skins), always inserts the active skin's row (the published 0.1.2 aggregate wires none), and reconciles the live Loader tree after apply — packaged Electron cannot provide Cordis HMR, so this is what makes 应用 take effect immediately. Desktop packaging stages the skins tree via extraResources; a postinstall script links the workspace copy for source launches.
  • Credits: bilingual thanks to LINUX DO and the three plugin projects; third-party notices regenerated (whale-song included).

Verification

  • pnpm run build clean; knip, doc-sync (28 gates), verify-cordis-config, agent-note gates, desktop runtime closure all pass.
  • Real Chromium settings suite (9 scenarios incl. the third Plugins tab), plugin-control host/client suites (24), profile launcher suites pass.
  • End-to-end on the packaged runtime: apply → payload reflects the skin without restart; switch across whale-song / xp / official; restart persistence verified for both.

…center

Ship dsh-genui, dsh-annotation, and the dsh-web-ui aggregate inside the Web profile with per-product Settings switches persisted to the profile patch, plus LINUX DO and plugin credits.

- Web profile template adds the three community bundles; the web-app bundle declares the aggregate's nine entry packages and the whale-song skin as direct pinned dependencies so the profile module fallback can resolve them
- Loopback-only host plugin-control gateway plus the browser Plugin switches tab (restart-time settings)
- Desktop declares the plugin-control peer, stages the skin-center skins tree through extraResources, and the postinstall links the workspace copy for source launches
- Patch @linxin666/dsh-client-ui-skin-center via patchedDependencies: resolve the skins tree beside an ancestor node_modules, always insert the active skin row (the published aggregate wires none), and reconcile the live Loader tree after apply so packaged Electron, which cannot provide Cordis HMR, applies skins instantly
- Bilingual credits for LINUX DO and the three plugin projects; third-party notices regenerated
…ntials

Issue lifecycle needs the DSH GitHub App credentials and Issue policy reads its repository identity from the upstream-owned config; both are absent on forks, so the jobs fail on every pull_request event. Guard them to skip cleanly outside the upstream repository.
@whitelonng whitelonng added the enhancement New feature or request label Aug 13, 2026
Job-level if cannot read the secrets context, so the fork guard failed workflow evaluation instead of skipping. Move the credential check onto the token step and gate the handler on the minted token, which lets forks complete the job with all steps skipped.
@whitelonng
whitelonng merged commit 19466d3 into master Aug 13, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant