{"repo":"NousResearch/hermes-agent","public_id":"97378","display_label":"Fix web_extract URL-to-result positional matching bug","summary":"A bug caused web_extract to associate provider results with requested URLs by position rather than by URL, meaning reordering or partial failures could poison the cache with mismatched content. These changes fix the matching logic to use URL identity instead of positional order.","subsystem":null,"counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":112245,"merged_at":"2026-09-16T01:42:39+00:00"},"resolution":{"state":"resolved","by":"pr-112245"},"freshness":{"state":"verified","last_verified_at":"2026-09-16T01:42:39+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":97378,"pr_number":112245,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-16T01:42:39+00:00"},{"issue_number":111803,"pr_number":112245,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-16T01:42:39+00:00"}],"members":[{"kind":"issue","number":97378,"title":"[Bug]: web_extract associates provider results with requested URLs by position — reorder/failure poisons the extract cache","url":null,"state":"closed"},{"kind":"pr","number":96859,"title":"fix(web): match extract results to requested URLs instead of by position","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"793529467d","number":0},{"kind":"pr","value":"#112245","number":112245}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":97430,"title":"fix(web_extract): match provider results to URLs by URL instead of position","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"793529467d","number":0},{"kind":"pr","value":"#112245","number":112245}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":112245,"title":"fix(web): web_extract caches each page under its own requested URL, never by batch position (#111803, #97378, salvage #111806)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["plugins/web/tavily/provider.py","tests/tools/test_web_tools_tavily.py","tools/web_tools_extract.py","website/docs/user-guide/features/web-search.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}