Qualify getLedgers history by provider retention - #73
Conversation
The skill promised Infinite Scroll back to genesis unconditionally.
Reality, reproduced live against the public testnet RPC while writing
this: getHealth reports oldestLedger/ledgerRetentionWindow, and
getLedgers with startLedger=2 fails with -32600 ('must be between the
oldest ledger ... for this rpc instance'). Deep history is a property
of the provider's data-lake integration, not of the method.
All four references now say so, and the historical-data example
checks getHealth().oldestLedger before paging back.
Closes #52.
|
|
Verified before merging — both the failure mode and the fix's code, live. The failure reproduces today, exactly as #52 recorded it. Raw JSON-RPC against the public SDF testnet instance: The server's own error text ("for this rpc instance") is the finding in miniature — depth is a property of the instance, not the method. The new code line was dry-run against the real SDK, not just read. With
Completeness: grepping the file for |
Three scenarios per skill plus cross-skill routing checks and an
off-topic negative control, in the {skills, query, expected_behavior}
format with optional machine_checkable assertions. evals/README.md
documents the tiers (compile checks, LLM-judged behavior, trigger
checks), the baseline process, and how to run a scenario; the root
README links it and documents the 500-line router convention.
Scenario expectations reflect current protocol reality rather than the
July proposal where they diverged: Noir/UltraHonk verifies on-chain
since Protocol 26 (#72), MPP Channel mode is now Session (#71), and
getLedgers depth is provider-retention dependent (#73).
Closes #52.
Applies the report, re-verified live while writing the fix:
getHealthon the public testnet RPC returnedoldestLedger: 3590554,latestLedger: 3711513,ledgerRetentionWindow: 120960, andgetLedgerswithstartLedger: 2failed with JSON-RPC-32600— the error text itself says "must be between the oldest ledger ... for this rpc instance", which is the whole point: deep history is a property of the provider's data-lake integration, not of the method.All four "back to genesis" references are qualified (RPC limitations bullet, the historical-data code comment, the Historical Data Access intro, and the Data Lake section), and per the issue's recommendation the code example now checks
getHealth().oldestLedgerbefore paging back.