Skip to content

feat(tooling): add live RPC spec compatibility runner - #32

Draft
linuskendall wants to merge 4 commits into
mainfrom
feat/rpc-compatibility
Draft

linuskendall wants to merge 4 commits into
mainfrom
feat/rpc-compatibility

Conversation

@linuskendall

@linuskendall linuskendall commented Sep 14, 2026

Copy link
Copy Markdown
AI description, click for details

Related to SVM-390. No separate tooling ticket exists; this PR does not complete the implementation review.

Add a TypeScript CLI that reads executable tests from method YAML and checks a live endpoint against the spec. Select the full spec, YAML-defined categories, or individual methods. Transaction history and status queries belong to Ledger; Transactions is reserved for sendTransaction and simulateTransaction.

Each method YAML has a plain tests list and a separate category field. Only explicit tests execute; omitted or empty test lists are skipped. Documentation examples never execute. There is no read-only flag. Tests supply parameters and optional expectations; successful responses use the existing result schema. Fixtures, matrices, and subscription setup are optional. New methods need no TypeScript adapter. Validation checks declarations before requests. Only the generated OpenRPC document uses x- extension prefixes.

Text, JSON, and standalone HTML reports separate incompatibilities, unsupported methods, operational errors, and coverage gaps. Implementation notes do not relax expectations. Reports omit endpoint URLs, credentials, fixtures, raw responses, and server messages. Private targets and live artifacts remain outside this repository.

Validation: 88 tests, TypeScript checks, spec validation, and OpenRPC build pass. Fixture tests prove that plain YAML methods execute without runner changes and that an untested sendTransaction is never called, even when it has examples. Migration checks confirm that all 14 methods retain their schemas, examples, requests, assertions, categories, and setup calls. Earlier live validation passed all 86 Agave HTTP probes and found seven Cloudbreak and three Superbank behavioral failures; unsupported methods and data gaps remain separate. Coverage is sampled, not proof of full conformance. Prose requirements must be expressed as executable tests.

🤖 Generated with AI

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