Devotd Github
NewCoding agents

harvil1/codeagent e48780be — Dead code removal and false-positive fixes

The latest commit of harvil1/codeagent, an open-source coding agent that runs in the terminal, bundles dead-code cleanup, false-positive fixes, and hardening against external input.

Repositoryharvil1/codeagent ↗

The latest commit of harvil1/codeagent, an open-source coding agent that runs in the terminal, bundles dead-code cleanup, false-positive fixes, and hardening against external input.

GitHub description: CodeAgent is an open-source coding agent that lives in your terminal. It understands your repository, plans multi-step changes, writes and edits files, runs commands and tests, and iterates until the task is done — all with a transparent, extensible tool loop.

stars
★ 1K
Forks
69
Language
Python
License
MIT
Read original source ↗View on GitHub ↗

harvil1/codeagent is an open-source coding agent that runs in the terminal. It reads a repository, plans changes spanning multiple steps, modifies files, and runs commands and tests, repeating all of that inside a single tool loop. The commit e48780be of October 14, 2026 is work on polishing that loop. The commit message is "chore: 清一批卫生死角 + 几个误伤点", meaning it cleaned up dead spots and a few false positives, and the change statistics are 165 lines added and 88 lines deleted.

The cleanup targets come in two branches. One is unused code. In agent/fork_messages.py, a dead parameter that used to pass the parent agent's system prompt was deleted; in agent/scratchpad.py, a description-block generation function that nobody called was removed. agent/cache_monitor.py stripped away defensive code that had needlessly wrapped a module-variable read in try/except. The other is false positives. agent/team/hallucination_check.py removes URLs wholesale before checking, which stops it from cutting "com/docs/x.html" out of example.com/docs/x.html and reporting it as a false positive, as it used to. Single-letter abbreviations such as e.g or i.e are likewise not treated as paths.

Wherever values coming in from outside are accepted, one more guard was added. agent/skill_bundle.py discards entries that are not dict-shaped in the configuration file and does not read names that contain separators. agent/mcp_client.py takes a lock and writes to stdin when sending MCP notifications, so that the two frames do not get mixed into each other. Broken inbox files are quarantined as .bad (agent/channel_inbox.py), and checkpoint entries that have lost fields are skipped so that recovery does not stop midway (agent/checkpoint.py). The progress thread does not show up twice, and the default budget for goal_start is read from the same configuration as the CLI.

That said, this is not a feature addition but a hygiene pass. The change statistics contain no test results or performance numbers. Because the approach of stripping URLs wholesale also erases the real paths mixed inside URLs from the scope of inspection, how much genuine detection is lost cannot be known from the commit material alone. It is still too early to judge whether the number of silently suppressed warnings has increased or decreased. Still, since most of this agent's paths consist of re-reading the files and configurations it created itself, as the defensive code grows, the points that fail silently during operation presumably shrink along with it.