Repository navigation
Conversation
# Conflicts: # electron/src/main/index.ts
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.
Problem and resulting behavior
Community TTS, MCP and Skill packages need one install/configure/bind/update/remove lifecycle while preserving each native execution owner. This experimental implementation adds Settings → Extensions, local-wheel private environments, encrypted settings and backend-restart activation. Packages install disabled. Electron owns installation/removal; nonempty Host permissions are rejected; TTS runs through a process-lifetime proxy and selected Work Agents own MCP/Skill execution.
Review map and scope
main. This PR no longer changes those output boundaries.Review fixes
speed=1.0without GPT-SoVITS pacing.stdio_clientcontext manager.Compatibility
Manual MCP probes and Pi stdio calls now receive the platform allowlist plus explicitly configured encrypted environment values. This intentionally changes existing manual connections, including users who install no extensions. Required tokens/toolchain variables must be added under Providers → MCP → Encrypted environment values; arbitrary Host
.envinheritance is not supported. Existing version-1 connection records, command/arguments and working directory remain supported. Native Agent launchers retain their own environment behavior; the UI and Host profile explain the distinction. Restoring broad Host credential inheritance is not the migration strategy.Older experimental session handles with only an opaque Skill digest upgrade when unchanged. A changed legacy digest cannot identify its old contribution set and requires a new session. Newly stored handles support additive bindings.
Validation
cd electron && npm test: 452 passed on the final code;npm run build: passed. Tests include encrypted legacy-manual-MCP migration/reload and installing from the packaged SDK location when no source-build wheel exists.55551e1: corrected an obsolete manual-MCP mock assertion to inspect the official stdio parameter boundary. Replaced the VN semantic test's 5-second throughput assumption with one 30-second deadlock watchdog; the blocked-model barriers, order, cadence, snapshots and persistence assertions remain. Related MCP/VN suites: 50 passed. With an added 70 ms per real line persistence call, the original watchdog timed out after 60 admissions while both repaired source paths completed all 81 lines and semantic assertions in approximately 7 seconds. This follow-up changes tests only.python -X utf8 tools/run_tests.py --shard-count 3 --shard-index 0: 1,872 passed, 6 skipped. Optional-dependency availability differs from CI; this is a local partition result, not the total across CI's three partitions.python -m pytest tests/test_extension_sdk_build.py tests/test_mcp_connections.py tests/test_subprocess_environment.py tests/test_release_tooling.py tests/test_mcp_stdio_lifetime.py: 37 passed. An extracted source fixture with no Git checkout/prebuilt wheel runs the desktop SDK build entry, then installs/imports the wheel in a fresh environment offline. A real legacy manual MCP peer fails with ambient-only credentials, succeeds with its explicit binding, retains cwd and cannot read an unrelated Host secret.npx electron-builder --win --x64 --dir --publish never: passed; verified the SDK wheel inside the actual Windows application'sresources/extension-sdkdirectory. Source Release and Windows Electron CI also passed on implementation commit00b2d9d.tools/smoke_electron_model_less.py: 11 checks passed on the plugin-only branch, including authenticated startup, GUI settings/navigation and clean Electron/backend exit.git diff --checkpassed. The companion protocol suite has 61 passed, 1 skipped.Latest head
55551e1: all 17 CI checks passed, including all three Python partitions, desktop smoke, the aggregatecpu-model-lessgate, Source Release and Windows Electron build. On30d2dc8, Python shard 0 had failed on the stale MCP assertion and VN watchdog; the corrected tests now pass in the full run. Earlier implementation-CI results above refer specifically to00b2d9d. Local counts are Windows results. The native GUI test used a local synthetic tone and loopback response endpoint, not a paid speech service or remote model; it verifies the real lifecycle/playback path, not speech quality. Prior native Skill/Runner counts describe their unchanged code paths and are not added to this pass's 37-test count. The isolated app exited cleanly and released its backend port after acceptance.Remaining limits and merge gate
DSH 0.2.0-rc.2 + MCP Client 2.0.0 still emits non-JSON diagnostics for unsupported resource enumeration. Windows DSH workspace-write requires suitable DACL/integrity-label access, including
WRITE_OWNER; inadequate locations fail closed. Neither is a blocker for reviewing this disabled-by-default experiment, but both block stable DSH support. There is no parser filter, ACL repair or unrestricted fallback.MiMo has no Japanese support and its live English acceptance remains deferred. Fish has prior live Japanese evidence, not general listening/performance certification. The bundled SDK delivery gap is fixed; public SDK publication/licensing decisions, other-platform runtime qualification and natural-voice Chat/Wallpaper/VN acceptance remain release work.
Keep draft for Claude/maintainer review. Required CI and review concerns must pass before merge;
CONTRIBUTING.mdalso requires a linked design Issue. This PR does not claim release readiness.