Skip to content

feat(web-fetch): add OmniRoute web fetch provider - #77

Merged
ekinnee merged 2 commits into
mainfrom
codex/issue-16-web-fetch
Sep 18, 2026
Merged

ekinnee merged 2 commits into
mainfrom
codex/issue-16-web-fetch

Conversation

@ekinnee

@ekinnee ekinnee commented Sep 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • add an OmniRoute-backed OpenClaw web-fetch provider for POST /v1/web/fetch
  • map the OpenClaw 2026.7.1 contract (url, extractMode, and host-owned maxChars) without inventing provider-specific fallback behavior
  • preserve standard content, final URL, title, extractor, and upstream truncation fields while keeping response and error reads bounded
  • update manifest, package metadata, README, support roadmap, registration tests, and packed-artifact compatibility coverage

Closes #16

Contract and safety notes

OmniRoute is always requested in markdown because its endpoint does not accept OpenClaw's plain-text mode. Plain text is projected with OpenClaw's public markdownToText helper. OpenClaw owns final maxChars normalization; the adapter does not truncate before host normalization. Private, loopback, and other special-use target hostnames are rejected before forwarding. Provider selection, depth, selector wait, links, descriptions, and screenshots remain deferred because they are not representable in the current public OpenClaw web-fetch contract.

No provider fallback is added: OmniRoute retains ownership of its configured web-fetch routing and quota policy.

Validation

  • pnpm test — 150 tests passed
  • pnpm build
  • git diff --exit-code -- dist/
  • git diff --check
  • node .github/scripts/upstream-compatibility-probe.mjs --source-contract
  • packed artifact installed with OpenClaw 2026.7.1; all nine registrations passed exactly once, including web fetch, with envVars limited to OMNIROUTE_API_KEY
  • one bounded direct OmniRoute probe reached 192.168.1.254:20128; the gateway returned its explicit 400 that no web-fetch provider credentials are configured, so no live success is claimed

ClawSweeper is not installed in this checkout, so that local gate was unavailable.

@github-actions github-actions Bot added documentation Improvements or additions to documentation ci Continuous-integration or automation changes tests Unit or compatibility test coverage and test tooling dependencies Dependency, lockfile, or package metadata updates compatibility OpenClaw compatibility or packaged-artifact contract changes labels Sep 18, 2026
@ekinnee
ekinnee merged commit 210cea0 into main Sep 18, 2026
6 checks passed
@ekinnee
ekinnee deleted the codex/issue-16-web-fetch branch September 18, 2026 17:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci Continuous-integration or automation changes compatibility OpenClaw compatibility or packaged-artifact contract changes dependencies Dependency, lockfile, or package metadata updates documentation Improvements or additions to documentation tests Unit or compatibility test coverage and test tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: add OmniRoute web fetch provider

1 participant