Skip to content

docs(decisions): accept DEC-101 — a failed plugin load stops mcp-server; document the escape - #833

Merged
Masterplanner25 merged 1 commit into
mainfrom
docs/dec-101-accepted
Oct 15, 2026
Merged

Masterplanner25 merged 1 commit into
mainfrom
docs/dec-101-accepted

Conversation

@Masterplanner25

Copy link
Copy Markdown
Owner

Records the owner's decision on DEC-101 (FR-53 (a), #831): "go with A". A plugin that fails to load stops aindy-runtime mcp-server, the same way it stops the API server's boot. DEC-101 moves from provisional to accepted, and the two declined options are recorded.

Declined options:

  • Warn and continue: that is the silent skip FR-53 (a) reported.
  • Stop only if an allowlisted syscall is missing: load_plugins() fails the whole profile, so it would decide against a half-loaded registry.

The case this breaks on upgrade, and its escape: an operator serving runtime tools only, whose app plugin is broken, had a working MCP server before #831 and won't after. Both escapes were checked against a deliberately broken plugin:

Manifest Default AINDY_BOOT_PROFILE=platform-only AINDY_BOOT_MODE=runtime-only AINDY_PLUGIN_MANIFEST unset
profile format (the app's, init's) stops loads nothing, starts loads nothing, starts loads nothing, starts
legacy flat {"plugins": […]} stops stops (no profiles) stops loads nothing, starts

Written into MCP_INTEGRATION.md, DEC-101, and the still-unreleased 00-831 changelog fragment (not yet published, so edited in place). A new test pins the profile escape, with the same manifest stopping the server when the variable is unset as its control.

No runtime code changes.

🤖 Generated with Claude Code

…er; document the escape

The owner chose option A (stop) over warn-and-continue and
stop-only-if-an-allowlisted-syscall-is-missing. Records the escape for an
operator serving runtime tools only with a broken plugin: run the MCP
process with AINDY_BOOT_PROFILE=platform-only (profile manifests), or leave
AINDY_PLUGIN_MANIFEST unset (legacy flat manifests ignore profiles).
Both verified; the profile escape is pinned by a test with a control.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@Masterplanner25
Masterplanner25 merged commit 7d9b262 into main Oct 15, 2026
12 checks passed
@Masterplanner25
Masterplanner25 deleted the docs/dec-101-accepted branch October 15, 2026 04:36
@Masterplanner25 Masterplanner25 mentioned this pull request Oct 15, 2026
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