Skip to content

fix: support proto 0.60+ (upgrade proto_pdk, pin pest) - #6

Open
nzjess wants to merge 2 commits into
BarretoTech:mainfrom
nzjess:fix/proto-0.63-compat
Open

nzjess wants to merge 2 commits into
BarretoTech:mainfrom
nzjess:fix/proto-0.63-compat

Conversation

@nzjess

@nzjess nzjess commented Oct 22, 2026

Copy link
Copy Markdown

Problem

On proto 0.60+ (tested on 0.63.2), proto install claude-code fails:

Error: plugin::wasm::failed_function_call
  × missing field `tool_dir` at line 1 column 94

The plugin is built against proto_pdk 0.32, which predates the current plugin API.

Changes

  • Upgrade proto_pdk 0.32.7 → 0.36.0, plus the matching dev dependencies (proto_pdk_test_utils 0.51.1, starbase_sandbox 0.12.1). No API changes were needed in the plugin. get_host_environment() now returns a reference, so two redundant &env borrows are removed for clippy.
  • Pin pest to 2.9.2. pest 2.9.4 pulls in stacker/psm through its default std feature, which proto's version_spec crate turns on. On wasm32-wasip1 this adds an env::rust_psm_stack_pointer import, and proto refuses to load the plugin with plugin::wasm::incompatible_runtime. pest is now an exact direct dependency (proto's own lockfile is also on 2.9.2), so cargo update can't move it, and Renovate updates for it are turned off. The pin can go once version_spec stops enabling pest's std feature, or pest leaves out stacker on wasm.
  • Pin iocraft-macros to 0.2.4 in Cargo.lock. 0.2.5 breaks starbase_console, a test-only dependency, so cargo test didn't compile.

Testing

  • cargo fmt --check, cargo clippy --target wasm32-wasip1, cargo test and the release wasm build pass.
  • With proto 0.63.2, pointing plugins.tools at the locally built wasm: proto install claude-code installs Claude Code 2.1.308, and proto run claude-code 2.1.308 -- --version prints 2.1.308 (Claude Code).

A new tagged release is needed before github://BarretoTech/proto-claude-code-plugin users get the fix.

🤖 Generated with Claude Code

Jesse McLaughlin and others added 2 commits October 22, 2026 17:24
proto 0.60+ fails to load the plugin with "missing field `tool_dir`"
because it was built against proto_pdk 0.32. Upgrade to proto_pdk 0.36
and the matching dev-dependencies.

Pin pest to 2.9.2 (as proto itself does): 2.9.4 pulls in stacker/psm,
which imports env::rust_psm_stack_pointer and makes proto reject the
wasm as an incompatible runtime. Pin iocraft-macros to 0.2.4 so the
test dependencies compile.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The pest 2.9.2 pin previously only lived in Cargo.lock, so a plain
`cargo update` would move to 2.9.4 and reintroduce the psm import
that proto rejects. Add pest as an exact direct dependency so it
survives lockfile updates, and stop Renovate from bumping it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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