Skip to content

web fetch: https://example.com returns r.jina.ai's stale cached snapshot, not the page #1771

Open

Description

@ZeroPoint95

What happened

2026-10-05, dev@f81638787 (dev-20261005-f816387875e5). Found in the v0.7.1 happy-path pass.

$ codeaf web fetch https://example.com

It returns a page titled "Test Document" with a "test article" body, which is r.jina.ai's own stale cached snapshot and carries Jina's own "cached snapshot" warning. It is not the Example Domain page. codeaf web fetch https://www.iana.org/... returns the right page. The model's web tool goes through the same reader, so a model asked to read a page can be handed someone else's cache of it without knowing.

Replication

Field. OPENROUTER_API_KEY (the command needs a key), then run codeaf web fetch https://example.com. Compare with curl -s https://example.com.

Where

The Jina reader in internal/search/jina.go (and its use in internal/search/search.go), and the request headers it sends.

The fix

The fetch asks the reader for a fresh copy (Jina's no-cache header), or falls back to a direct GET when the reader marks its answer as a cached snapshot. What comes back is the page at that address now.

Acceptance

  • e2e: codeaf web fetch https://example.com contains Example Domain.

Activity

  1. added
    bugSomething the code does that it should not
    area:toolsThe tool layer: built-in tools, registries, belts
    sev:papercutA wording, a hint, a small wrongness that costs a moment
    on Oct 5, 2026
  2. added a commit that references this issue on Oct 24, 2026
    eceb873
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:toolsThe tool layer: built-in tools, registries, beltsbugSomething the code does that it should notsev:papercutA wording, a hint, a small wrongness that costs a moment

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions