This release closes a gap that let interpreter code recursively delete the root or home directory, and adds a shell-dialect option to explain.
Highlights
- Blocked native recursive deletes of root or home written in Python, Perl, Node, or Ruby code, at every safety level.
- DeepSeek Harness now tells the agent at runtime when a plugin's shell tool ran a command that CC Safety Net did not check.
Added
- Added
cc-safety-net explain --shell <auto|posix|powershell>so a command can be analyzed in the dialect of the host tool that ran it, instead of always usingauto. An unsupported value is rejected with an error and the usage line. (#292) - Added a DeepSeek Harness notice that fires once per session and tool when an undeclared plugin shell tool runs a command: it tells the agent to find out where that tool runs its commands and to declare it with
cc-safety-net rule tool add <tool-name>only if they run on the local machine. (#296)
Changed
- Changed the DeepSeek Harness install output: it no longer lists other installed plugins or prints the hint about declaring their shell tools, which only appeared at install time. The runtime notice replaces it. (#296)
Fixed
- Fixed a gap where an interpreter's own recursive delete of root or home was allowed in inline, heredoc, and stdin code.
shutil.rmtree('/'),rmtree($ENV{HOME}),fs.rmSync(os.homedir(), { recursive: true }), andFileUtils.rm_rf(Dir.home)now block asinterpreter.dangerous-command. Relative targets, non-recursive deletes, and computed or joined paths are unchanged and stay allowed. (#291)