You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
web fetch: https://example.com returns r.jina.ai's stale cached snapshot, not the page #1771
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
web fetch: reject the reader's cached snapshot and fetch the page dir…