{"repo":"NousResearch/hermes-agent","public_id":"122011","display_label":"Fix stdin/heredoc corrupting file write commands","summary":"A bug where SDK stdin was incorrectly embedded in command arguments caused write_file and patch operations to empty target files on certain platforms (Modal, Daytona, Vercel). Fixes involve streaming stdin separately rather than including it in command argv.","subsystem":null,"counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":2,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":122012},"resolution":{"state":"resolved","by":"pr-122012"},"freshness":{"state":"verified","last_verified_at":"2026-09-26T18:14:57+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":122011,"pr_number":122012,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":122011,"pr_number":124206,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false}],"members":[{"kind":"issue","number":122011,"title":"[Bug]: write_file and patch empty the target file on Modal/Daytona/Vercel (heredoc stdin lands on the last command)","url":null,"state":"closed"},{"kind":"pr","number":122012,"title":"fix(environments): write_file/patch no longer empty the target on Modal/Daytona/Vercel — heredoc stdin byte-exact","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["contributors/emails/[redacted:email]","tests/tools/test_base_environment.py","tests/tools/test_file_ops_single_roundtrip.py","tests/tools/test_tool_result_storage.py","tools/environments/base.py","tools/tool_result_storage.py"]},{"kind":"pr","number":122214,"title":"fix(environments): keep SDK stdin out of command argv","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#122218","number":122218},{"kind":"pr","value":"#122218","number":122218}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":122218,"title":"fix(environments): keep SDK stdin out of command argv","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"95fc717460","number":0},{"kind":"pr","value":"#124206","number":124206}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":124206,"title":"fix(environments): stream SDK stdin instead of embedding it in command argv","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tests/tools/test_modal_bulk_upload.py","tests/tools/test_vercel_sandbox_environment.py","tools/environments/base.py","tools/environments/daytona.py","tools/environments/modal.py","tools/environments/vercel_sandbox.py","tools/terminal_tool_sudo.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}