Skip to content

[SYMPP-BE79] Stop managed backends after final MCP client - #623

Merged
Pimpmuckl merged 1 commit into
integration/mcp-first-caller-lifecyclefrom
feature/sympp-on-demand-01-zero-client-shutdown
Aug 17, 2026
Merged

[SYMPP-BE79] Stop managed backends after final MCP client#623
Pimpmuckl merged 1 commit into
integration/mcp-first-caller-lifecyclefrom
feature/sympp-on-demand-01-zero-client-shutdown

Conversation

@Pimpmuckl

Copy link
Copy Markdown
Owner

Context

Managed installed-artifact backends stayed resident after their final MCP client, so later client waves reused the old PID.

TL;DR

Stop every managed S++ backend after the final MCP client and cold-start a new PID for a later wave.

Summary

  • Remove the artifact-mode exception from last-client backend cleanup.
  • Preserve command-backed STDIO, singleton cold start, and warm attachment.
  • Prove zero listeners after drain and a distinct artifact-backed PID on the next installed-command wave.

Alternatives

  • Keeping artifact residency was rejected because it conflicts with the zero-client lifecycle contract.

Test Plan

  • make -C elixir all
  • make -C elixir ci-full when release/full validation is required (not required for this launcher-only slice)
  • pwsh -NoProfile -ExecutionPolicy Bypass -File plugins/symphony-plus-plus-mcp/tests/launcher/run-launcher-tests.ps1
  • Review Suite fast rvw_fd3fbf60 clean on exact head; simplification closure conforms

Summary:
- remove the installed-artifact residency exception from Node and
  PowerShell last-detach cleanup
- apply shutdown-on-idle uniformly and replace resident-PID assertions
  with zero-listener and PID-rotation proof
- keep cold singleton, warm attach, and nested PowerShell coverage intact

Rationale:
- managed Symphony++ backends must exist only while MCP clients are
  attached, regardless of source or artifact runtime mode
- the existing lease lock remains the shared owner for final cleanup

Tests:
- pwsh -NoProfile -ExecutionPolicy Bypass -File
  plugins/symphony-plus-plus-mcp/tests/launcher/run-launcher-tests.ps1
- make -C elixir all

Co-authored-by: Codex <codex@openai.com>
@Pimpmuckl
Pimpmuckl merged commit 9c157b6 into integration/mcp-first-caller-lifecycle Aug 17, 2026
18 checks passed
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