Skip to content

wallet.help discovery method - #42

Merged
TeoSlayer merged 3 commits into
mainfrom
feat/wallet-help
Oct 1, 2026
Merged

TeoSlayer merged 3 commits into
mainfrom
feat/wallet-help

Conversation

@Alexgodoroja

Copy link
Copy Markdown
Collaborator

The wallet was the only app-store app without a <ns>.help method, the discovery contract every app answers. So agents couldn't learn its surface, and pilotctl appstore call io.pilot.wallet wallet.help failed.

wallet.help returns {app, version, description, methods[{method, summary, params, duration}]}. It lists exactly the methods the dispatcher serves: core methods, plus the EVM set when EVM is enabled, plus the settler set when a settler is wired. TestHelpListsEveryRegisteredMethod fails if help and the dispatcher drift apart. The version comes from the binary's Version (already pinned to manifest.json by manifest_test.go).

0.3.4

The catalogue's wallet 0.3.3 is a single Mach-O bundle, so it can't install on Linux. Its signing key is also lost. I cut 0.3.4 on release/0.3.x so the fix doesn't ship the unreleased settler work on main. It is 0.3.3 plus the merged fixes up to #27 (including tamper-evident spend-cap state), the Base Sepolia EIP-712 fix (#30), and this help method. It is built for all four platforms and signed by a new Pilot-held publisher key (ed25519:8LTmMLNN…), which the audit's catalogue PR re-pins.

Tested on macOS through a signed test catalogue: install, spawn, wallet.help, wallet.address, wallet.evm.chains, wallet.balances.

Related: app-store#42 fixes wallet.address returning the supervisor's sentinel 0:0001.0000.0000 on every node.

🤖 Generated with Claude Code

Every app answers <ns>.help with its methods and params. The wallet didn't,
so agents had no way to learn its surface from the store. wallet.help lists
exactly the methods the dispatcher serves, including the EVM and settler sets
when those are wired; a test keeps help and the dispatcher in step.

Also released as 0.3.4 from release/0.3.x.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 75.00000% with 4 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
pkg/walletipc/help.go 71.42% 2 Missing and 2 partials ⚠️

📢 Thoughts on this report? Let us know!

Teo Calin and others added 2 commits October 1, 2026 17:26
wallet.request and wallet.topup were documented as taking a string
amount, but Amount is a uint64 and both handlers reject a JSON string.
Document it as an int, as wallet.settler_transfer already does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@TeoSlayer
TeoSlayer merged commit 8c5af94 into main Oct 1, 2026
2 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.

2 participants