Skip to content

chore: remove the retired Surf integration - #502

Merged
VickyXAI merged 1 commit into
mainfrom
chore/remove-retired-surf
Oct 21, 2026
Merged

VickyXAI merged 1 commit into
mainfrom
chore/remove-retired-surf

Conversation

@VickyXAI

Copy link
Copy Markdown
Contributor

BlockRun retired the Surf data API on 2026-09-06. GET https://blockrun.ai/api/v1/surf/* now returns 410 endpoint_retired with retired_on: 2026-09-06 (re-verified with curl today). #501 dropped Surf from the clawrouter skill's description; this removes the rest.

Removed / changed

  • skills/surf/SKILL.md: deleted. Skills ship as the whole skills/ directory (package.json files and openclaw.plugin.json "skills": ["./skills"]), so deleting the folder removes it from both. No other index lists skills by name.
  • src/proxy.ts: surf is out of the paid partner-prefix regex, the isSurf label and telemetry branches (tier: "SURF", service: "surf") are gone, and so is surf in the unsupported_endpoint hint's prefix list. Nothing else read the SURF tier or the surf service.
  • openclaw.plugin.json: the Surf clause is gone, and so is the hand-typed "82 models". No test guards that count; brand-numbers.test.ts only guards the NN% cost savings figure, which stays.
  • skills/clawrouter/SKILL.md: removed the "Crypto Data (Surf)" section and its seven Surf-only triggers (blockrun surf, surf crypto api, on-chain sql query, clickhouse onchain, wallet labels api, crypto mindshare, crypto news api).
  • README: removed the "Crypto Data (Surf)" section, and Surf from the list of what an API key covers. Same change in the api-key.ts 404 hint.

What /v1/surf/* does now

  • Wallet mode: the proxy answers it locally with 404 unsupported_endpoint. Nothing reaches the gateway and nothing is signed.
  • API-key mode: it goes through the generic account passthrough, so the caller gets the gateway's own 410 endpoint_retired, including its alternatives hint.

There's no special-case code. The path just falls through to the handling every other non-partner path already gets.

Tests

  • src/proxy.surf-routing.test.ts is replaced by src/proxy.surf-retired.test.ts. The old file was a copy of the regex. The new one is a behavioural test against a stub gateway. In wallet mode it checks for a local 404 and that the gateway is never hit. In key mode it checks that the 410 is relayed and no payment header is sent. Against origin/main's proxy.ts the two wallet cases fail, so the test does catch the change.
  • Removed the surf rows from the proxy.api-key-services.test.ts forwarding table.
  • Full vitest: 1212 passed, 1 skipped. On the first run proxy.solana-batch.test.ts hit a 30s timeout under load. Run on its own it passed 6/6, and a full rerun was all green.
  • npm run lint, npm run typecheck, prettier on the touched files, and node scripts/sync-brand-numbers.mjs --check all pass.

Dated CHANGELOG history is left alone. This repo has no "Unreleased" section; its CHANGELOG entries are written at release time, so the next release entry should mention this removal.

BlockRun retired the Surf data API on 2026-09-06; every /api/v1/surf/* path
now answers 410 endpoint_retired. ClawRouter still shipped a skill, a proxy
whitelist entry, telemetry branches, README/skill sections and a plugin
description that sent agents at it.

- Delete skills/surf/ (shipped via package.json "skills" and the plugin
  manifest's "./skills" directory, so removing the folder drops it from both).
- proxy.ts: drop surf from the paid partner-prefix regex, the isSurf
  label/telemetry branches (tier SURF, service surf), and the 404 hint's
  prefix list. Wallet mode now refuses /v1/surf/* locally with
  unsupported_endpoint (nothing signed, nothing sent); API-key mode forwards it
  through the account passthrough and relays the gateway's 410.
- openclaw.plugin.json: drop the Surf clause and the unguarded hand-typed
  "82 models" count (the guarded 84% savings figure stays).
- skills/clawrouter/SKILL.md: drop the Surf section and its seven triggers.
- README: drop the "Crypto Data (Surf)" section and the Surf mention in the
  API-key coverage list; api-key.ts 404 hint likewise.
- Tests: replace the regex-mirror proxy.surf-routing.test.ts with a behavioural
  proxy.surf-retired.test.ts (wallet: local 404, gateway never hit; key: 410
  relayed, no payment header); drop the surf rows from the account-services
  forwarding table.
@coderabbitai

coderabbitai Bot commented Oct 21, 2026

Copy link
Copy Markdown

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: Repository: BlockRunAI/ClawRouter/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 23b85486-8356-4317-a4bd-1dde49407b7b
📥 Commits

Reviewing files that changed from the base of the PR and between eeafa64 and 5a8bb6c.

📒 Files selected for processing: 9
  • README.md
  • openclaw.plugin.json
  • skills/clawrouter/SKILL.md
  • skills/surf/SKILL.md
  • src/api-key.ts
  • src/proxy.api-key-services.test.ts
  • src/proxy.surf-retired.test.ts
  • src/proxy.surf-routing.test.ts
  • src/proxy.ts
+----------------------------------------------+
| Easter bunny by day, code reviewer by night. |
+----------------------------------------------+
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@VickyXAI
VickyXAI merged commit 78e489a into main Oct 21, 2026
4 of 5 checks 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.

1 participant