Skip to content

feat(run): pass --docs-check to selat-pay for --allow-unlisted pins - #180

Merged
SELAT-DEV merged 2 commits into
mainfrom
claude/objective-babbage-6c8f86
Sep 4, 2026
Merged

feat(run): pass --docs-check to selat-pay for --allow-unlisted pins#180
SELAT-DEV merged 2 commits into
mainfrom
claude/objective-babbage-6c8f86

Conversation

@SELAT-DEV

@SELAT-DEV SELAT-DEV commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Problem

Unlisted pins have no catalog terms and no vetting — the merchant's own published docs (llms.txt / openapi.json) are the only request contract there is, and merchants in this class can capture payment BEFORE validating the body. Observed 2026-09-04 on api.auto.exchange via selat run --allow-unlisted: three MPP charges settled on Tempo, then the handler 400'd on input vs the documented required prompt — $0.004581 lost with nothing pre-sign to catch it.

Change

selat run now appends --docs-check to the validated selat-pay argv for --allow-unlisted pins (exported withDocsCheck helper: unlisted-only, idempotent, never emitted for catalog picks). With the flag, selat-pay resolves the merchant's published docs pre-sign and refuses a body missing a documented-required field — see SELAT-AI/selat-pay#76 for the gate itself. --allow-unlisted help text documents the behavior.

Merge ordering

Draft until SELAT-AI/selat-pay#76 releases. Resolved: selat-pay v0.10.0 is on npm latest; the dep pin here is bumped to ^0.10.0 and the bundled selat-pay accepts --docs-check. Ready to merge.

Tests

New withDocsCheck seam test (appended for unlisted pins only, idempotent); suite 543/543.

🤖 Generated with Claude Code

karensheng and others added 2 commits September 4, 2026 00:22
Unlisted pins have no catalog terms and no vetting — the merchant's own
published docs (llms.txt / openapi.json) are the only request contract
there is, and merchants in this class can capture payment BEFORE
validating the body (observed: api.auto.exchange, three charges settled
on Tempo then 400'd on 'input' vs the documented required 'prompt',
2026-09-04). With --docs-check, selat-pay resolves those docs pre-sign
and refuses a body missing a documented-required field.

Ships with the selat-pay release that adds the flag (older selat-pay
rejects unknown flags) — land after that release and bump the dep pin
in the same change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The run command now passes --docs-check for --allow-unlisted pins; selat-pay
<=0.9.14 rejects unknown flags, so this pin is the compatibility floor.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@SELAT-DEV
SELAT-DEV marked this pull request as ready for review September 4, 2026 07:50
@SELAT-DEV
SELAT-DEV merged commit 522c280 into main Sep 4, 2026
1 check 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