Skip to content

feat: keyless scans via the anonymous free tier#2

Merged
mlava merged 1 commit into
mainfrom
feat/keyless-anonymous-scan
Jul 18, 2026
Merged

feat: keyless scans via the anonymous free tier#2
mlava merged 1 commit into
mainfrom
feat/keyless-anonymous-scan

Conversation

@mlava

@mlava mlava commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Implements the activation fix from the Hermes commercial diagnosis (2026-07-18): ~466 monthly npm downloads currently hit No API key set before any value. Keyless scan now falls back to the public anonymous /api/scan path (3 scans/30 days/IP, 25 pages, synchronous) and upsells Pro after delivering a real result.

  • postAnonScan() client fn — no auth header, handles the {error, resetAt, upgrade} 429 body
  • --no-wait rejected keyless (anonymous scans are synchronous); --page-limit noted as ignored
  • get/list still require a Pro key; help/README/auth copy updated; version 0.5.0
  • 72/72 tests, tsc clean; live positive control against prod exercised the quota-429 path (this IP's anon quota was already spent — message, reset date, and exit 1 all correct)

Companion changes: agent-ready-mcp keyless fallback + main-repo pricing/docs copy (separate PRs).

🤖 Generated with Claude Code

`agent-ready scan <url>` no longer dies with 'No API key set' — without a
key it falls back to the public POST /api/scan path (anonymous IP quota,
3 scans/30 days, 25-page depth, synchronous) so the first installed
command produces a real scan. The result footer and the quota-exhausted
error both point at Pro for depth, history, and monitoring.

- client: postAnonScan() — keyless, string-error body handling,
  quota_exhausted mapping with the resetAt date
- cli: keyless branch in cmdScan (--no-wait rejected, --page-limit noted
  as ignored), refreshed help/auth copy
- get/list unchanged (still Pro); README + help updated; 0.5.0

Verified live against production: quota-429 path renders server message,
reset date, and upgrade pointer; exit 1.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@mlava
mlava merged commit 21ee981 into main Jul 18, 2026
@mlava
mlava deleted the feat/keyless-anonymous-scan branch July 18, 2026 13:01
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