Repository navigation
Check plugin data writability through native observations - #4
Merged
Merged
Conversation
jonathanhefner
commented
Sep 18, 2026
The existing data-path check does not establish that a plugin subprocess can write there. Have each default `observe` call exclusively create, write, close, and remove a temporary file in `PLUGIN_DATA`, preserving operation facts for deterministic evaluation. Keep cleanup warnings separate from writability outcomes and render saved warnings in human summaries. Repeat the write on each observation so clients that retain MCP processes still collect current evidence.
jonathanhefner
force-pushed
the
agent/plugin-data-writability
branch
from
September 18, 2026 01:16
577aa38 to
20ddeb4
Compare
jonathanhefner
marked this pull request as ready for review
September 18, 2026 01:27
34 tasks done
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.
Add
mcp.stdio.data.writableto the core suite. The existing absolute-path check does not establish that the plugin subprocess can write to its data directory.Each call to the default server’s
observetool exclusively creates a temporary file inPLUGIN_DATA, writes and closes it, and removes the file it created. The observation preserves filesystem errors for deterministic evaluation. Repeating the check on each call supplies current evidence when a client retains the MCP process across runs.Cleanup failures appear as warnings in JSON and human summaries without changing a successful writability result. The tool description and annotations disclose the write, and the existing guide records the expanded observation through the same workflow.
Validation:
jqqueries produce the expected outcomes.Native validation used unchanged copies of commit
577aa38, the ordinary guide request, and each client’s native plugin loading mechanism:Both runs saved all seven observations unchanged, matched deterministic evaluation, and removed the temporary probe file. Independent review checked the traces, recorded evidence, and package integrity. Programmatic acceptance of
mcp.stdio.data.writablepassed for both reports.Copilot retained its previously observed argument and environment expansion failures:
$APC_VALUEexpanded in an argument, while${PLUGIN_DATA}remained literal in a configured environment value. It also batched the four observation calls before recording them, contrary to the guide’s instruction to record each observation immediately. Every recording command completed sequentially, and all returned evidence matched the saved report.