{"repo":"NousResearch/hermes-agent","public_id":"44496","display_label":"Validate required args in file and todo tools","summary":"These issues and fixes address missing or empty argument validation across file tools (read_file, write_file) and the todo tool, where absent or empty inputs were silently accepted and produced corrupt or zero-byte output. The changes add upfront rejection of invalid arguments instead of silent substitution or misleading errors.","subsystem":"agent","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":133864,"merged_at":"2026-10-06T13:53:36+00:00"},"resolution":{"state":"resolved","by":"pr-133864"},"freshness":{"state":"verified","last_verified_at":"2026-10-06T13:53:36+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":44496,"pr_number":133864,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-10-06T13:53:36+00:00"}],"members":[{"kind":"issue","number":44496,"title":"todo_tool: silent substitution of '(no description)' for empty content corrupts todo list","url":null,"state":"closed"},{"kind":"pr","number":44498,"title":"fix(todo): reject empty content instead of substituting (no description) (#44496)","url":null,"state":"closed","close_reason":{"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":83712,"title":"fix(todo): reject empty content instead of silent placeholder","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#44498","number":44498},{"kind":"pr","value":"#44496","number":44496}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":133864,"title":"fix(todo): reject empty content instead of substituting '(no description)'","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tests/tools/test_todo_tool.py","tools/todo_tool.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}