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
Re-scoped 2026-08-16 after verifying this issue against the code. The original text is preserved at the bottom.
The quotas are real and tested. The fetcher does not fetch.
server/routes/research.js:38:
// 3. Perform "fetch" (stubbed for now as in memory path)constsnapshot={url: input.url,title: 'Snapshot',content: '...',created_at: ... };
There is no HTTP request anywhere in the file — no timeout, no size cap, no title/author/excerpt/canonical-URL extraction. Every snapshot ever written to research_cache has the literal title Snapshot and content ....
Shipped
research_usage_increment with quota_exceeded → 429 (db/rpc.sql:1035-1058, server/routes/research.js:21-28,54-55), tested with a real first-succeeds/second-429 sequence.
Cache dedup by url_hash (db/schema.sql:185-190), tested.
Remaining
An actual fetch with a timeout and a response size cap.
The quotas are real and tested. The fetcher does not fetch.
server/routes/research.js:38:There is no HTTP request anywhere in the file — no timeout, no size cap, no title/author/excerpt/canonical-URL extraction. Every snapshot ever written to
research_cachehas the literal titleSnapshotand content....Shipped
research_usage_incrementwithquota_exceeded→ 429 (db/rpc.sql:1035-1058,server/routes/research.js:21-28,54-55), tested with a real first-succeeds/second-429 sequence.url_hash(db/schema.sql:185-190), tested.Remaining
docs/specs/ResearchTools.mdspecifies and that the web preview card (fix(web): snippet previews read snapshot fields the server never returns #101) already tries to read.rooms.config, whichroom_createnever persists (#200).Original issue text
See docs/specs/ResearchTools.md. Snapshot fetcher with timeouts and size caps; enforce quotas per room/round.