chore: version packages - #704
Merged
Merged
Conversation
Deploying paddock with
|
| Latest commit: |
8bd37a4
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://34a500f3.paddock-7u2.pages.dev |
| Branch Preview URL: | https://changeset-release-main.paddock-7u2.pages.dev |
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 6, 2026 02:19
ce6b388 to
d33d57e
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 6, 2026 02:25
d33d57e to
8bd37a4
Compare
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@paddock/server@0.63.0
Minor Changes
#705
571def3Thanks @edspencer! - Inherit the host's Claude Code plugins, and stop degradingsse/header-authenticated MCP servers (Plugin-provided MCP servers cannot reach Paddock agents — needs a herdctl plugins passthrough #700).
Requires
@herdctl/core5.32.0, which adds the two things Paddock had no channelfor.
Plugins. A plugin that provides an MCP server — a Slack plugin installed on
your laptop, say — was invisible in Paddock on every setting, because the SDK
enables a discovered plugin from
enabledPluginsin the user settings sourceand Paddock's agents are invoked with
setting_sources: ["project"]. Paddock nowenumerates the host's installed plugin directories from the CLI's own
installed_plugins.jsonregistry and passes them explicitly, which needs nosettings-source grant. Two levers gate it, because a plugin is mostly
instructions and only sometimes MCP servers:
claude.instructionsclaude.mcpServershosthosthostownowninstructionsis what bridgesplugins/)Each plugin server's
mcp__plugin_<plugin>_<server>__*pattern is added to thekeeper's allowed tools automatically — without it the server connects and then has
every call auto-denied with no prompt. A plugin whose manifest points
mcpServersat a bundle rather than declaring them inline cannot be enumerated that way; it is
still attached, and a boot warning names it and the pattern to add by hand.
MCP server fields.
headersand an explicittype(sse) are now carriedthrough verbatim instead of being stripped. So a bearer-authenticated or
sseserver inherited under
claude.mcpServers: hostarrives intact and finds itsstored OAuth token (which is keyed on a hash of
{type, url, headers}), and theboot warnings v0.62.0 shipped for both are gone. The instance's own
mcpServers:block accepts both keys too —
headersvalues takeenv:VAR_NAMEreferences likeeverything else there, and are never printed.
Patch Changes
#703
a789260Thanks @edspencer! -paddock --helpnow documents the fifth sharing lever.The "Sharing your Claude Code state" section listed four keys —
transcripts,credentials,instructions,hooks— and omittedclaude.mcpServers, which shipped alongside them in Design: independent levers for what Paddock shares with the host's Claude Code (transcripts / credentials / MCP / instructions / hooks) #691 step 5. Someonereading
--helpto find out what an instance shares would have concluded thatMCP servers were not part of the block at all.
It now lists all five, and adds a line for the sibling top-level
mcpServers:block (Design: independent levers for what Paddock shares with the host's Claude Code (transcripts / credentials / MCP / instructions / hooks) #691 step 6) — the way to give an instance a server the host machine does
not have, which is the case
hostcannot serve. That line also carries fix(server): warn that a declared MCP server's env reaches the claude command line (#691) #702'scaveat, so
--helpdoes not imply more thanenv:VAR_NAMEdelivers: it keeps acredential out of the git-tracked file, and under
driveMode: batchit does notkeep it out of
ps. Help text only; no behaviour change.#702
f5cf1d2Thanks @edspencer! - Say where a declared MCP server's credential actually ends up (follow-up toDesign: independent levers for what Paddock shares with the host's Claude Code (transcripts / credentials / MCP / instructions / hooks) #691 step 6).
mcpServers:keeps a resolved secret out of every surface Paddock owns — theboot log, error messages, the Settings API. It does that completely, and it was
still not the whole story: on the CLI runtime (
driveMode: batch) the engineserialises the entire server definition,
envvalues included, into a single--mcp-configcommand-line argument. A process argument is world-readable onLinux, so the token is legible to any local user through
/proc/<pid>/cmdlineand
psfor as long as the turn runs.The default
driveMode: sessiondoes not have this problem: the same record goesto the SDK in-process, and the stdio server it spawns receives the value in its
environment, where
/proc/<pid>/environis owner-only — which is where ClaudeCode itself puts it.
Paddock cannot close this from its side (the fix is upstream: the Claude CLI's
--mcp-configalso accepts a file path), so it refuses to be silent instead.An instance on
batchwith a credential-carrying declared server now gets awarning at startup naming the server; one on
sessiongets the same as aninformational note, because a single project pinning
driveMode: batchbringsthe exposure back. Documented alongside the block.
Verified rather than inferred: a new integration test drives a real turn and
reads the token back out of the spawned process's argv. It is a characterisation
test — if it ever starts failing, the engine has stopped doing this and both the
test and the warning should be deleted.
@paddock/web@0.63.0
Minor Changes
#705
571def3Thanks @edspencer! - Inherit the host's Claude Code plugins, and stop degradingsse/header-authenticated MCP servers (Plugin-provided MCP servers cannot reach Paddock agents — needs a herdctl plugins passthrough #700).
Requires
@herdctl/core5.32.0, which adds the two things Paddock had no channelfor.
Plugins. A plugin that provides an MCP server — a Slack plugin installed on
your laptop, say — was invisible in Paddock on every setting, because the SDK
enables a discovered plugin from
enabledPluginsin the user settings sourceand Paddock's agents are invoked with
setting_sources: ["project"]. Paddock nowenumerates the host's installed plugin directories from the CLI's own
installed_plugins.jsonregistry and passes them explicitly, which needs nosettings-source grant. Two levers gate it, because a plugin is mostly
instructions and only sometimes MCP servers:
claude.instructionsclaude.mcpServershosthosthostownowninstructionsis what bridgesplugins/)Each plugin server's
mcp__plugin_<plugin>_<server>__*pattern is added to thekeeper's allowed tools automatically — without it the server connects and then has
every call auto-denied with no prompt. A plugin whose manifest points
mcpServersat a bundle rather than declaring them inline cannot be enumerated that way; it is
still attached, and a boot warning names it and the pattern to add by hand.
MCP server fields.
headersand an explicittype(sse) are now carriedthrough verbatim instead of being stripped. So a bearer-authenticated or
sseserver inherited under
claude.mcpServers: hostarrives intact and finds itsstored OAuth token (which is keyed on a hash of
{type, url, headers}), and theboot warnings v0.62.0 shipped for both are gone. The instance's own
mcpServers:block accepts both keys too —
headersvalues takeenv:VAR_NAMEreferences likeeverything else there, and are never printed.