feat(tooling): add live RPC spec compatibility runner - #32
Draft
linuskendall wants to merge 4 commits into
Draft
linuskendall wants to merge 4 commits into
linuskendall wants to merge 4 commits into
Conversation
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.
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
testslist and a separatecategoryfield. 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 usesx-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