source: GitHub releases

Release

Every blocked-pattern change, parser hardening, and CLI integration shipped to the guardrail.

Latest release

GitHub release

$ gh release view v1.0.6

tag: v1.0.6

published: Jun 15, 2026

channel: stable

v1.0.6

  • Fix

Changes

  • fix: avoid duplicate home rule scope (#62) — When the user config path and the project config path resolve to the same file (e.g. running inside $HOME), the rules config was loaded twice, producing duplicate rule entries. The policy loader now detects this via resolve() and realpathSync() and skips the redundant read.

Tests

  • test: isolate home scope regression — Added dedicated tests to verify that rules are not duplicated when the home and project scopes overlap.

Thanks to @sQVe for reporting the issue in #61 .

View release on GitHub

Signal index

Find changes by signal

Jump straight to the releases that changed safety behavior, migrations, integrations, fixes, or docs.

Security

Latest matching releases

  1. Jun 14, 2026

  2. Jun 13, 2026

  3. Jun 5, 2026

  4. Dec 29, 2025

Breaking

Latest matching releases

  1. Jun 5, 2026

  2. Jun 5, 2026

  3. May 7, 2026

  4. Jan 7, 2026

  5. Dec 29, 2025

Migration

Latest matching releases

  1. Jun 14, 2026

  2. Jun 5, 2026

  3. May 7, 2026

Integration

Latest matching releases

  1. Jun 14, 2026

  2. Jun 14, 2026

  3. Jun 5, 2026

  4. Jun 5, 2026

  5. May 7, 2026

Showing latest 5 of 17. The full chronological ledger stays below.

Fix

Latest matching releases

  1. Jun 15, 2026

  2. Jun 14, 2026

  3. Jun 13, 2026

  4. Jun 12, 2026

  5. May 7, 2026

Showing latest 5 of 19. The full chronological ledger stays below.

Docs

Latest matching releases

  1. Jun 14, 2026

  2. Jun 5, 2026

  1. v1.0.5

    v1.0.5

    • Migration
    • Integration
    • Docs

    Changes

    • kimi-code: resolve config from correct directory — Config path now resolves from KIMI_CODE_HOME / .kimi-code instead of the legacy KIMI_SHARE_DIR / .kimi.
    • kimi-code: match PreToolUse hook to `Bash` tool — The hook matcher was targeting Shell but Kimi Code exposes the tool as Bash. Updated to match the correct tool name.

    Docs

    • readme: note optional cc-safety-net skill for Kimi Code — Added a note about the /cc-safety-net skill for configuring custom rules.

    Jun 14, 2026

    GitHub release
  2. v1.0.4

    v1.0.4

    • Security
    • Integration
    • Fix

    Bug Fixes

    • opencode: write audit logs for blocked commands — When a command is blocked and a sessionID is present, the plugin now correctly writes an audit log entry. Previously, blocked commands in OpenCode sessions were not being logged.
    • opencode: inject audit log home directory — The plugin now accepts and forwards a homeDir parameter to the audit logger, ensuring logs are written to the correct location.

    Thanks to @johnatas-henrique for reporting the issue in #58 .

    Jun 14, 2026

    GitHub release
  3. v1.0.3

    v1.0.3

    • Security
    • Fix

    Security Fix

    • Bumped `shell-quote` to v1.8.4 — addresses a parsing vulnerability in the upstream dependency (#56)

    Thanks to @joerawr for reporting the shell-quote vulnerability in #55.

    Jun 13, 2026

    GitHub release
  4. v1.0.2

    v1.0.2

    • Fix

    Bug fix: Preserve effective cwd when cd targets the current directory.

    Previously, commands like cd . or cd /current/path would reset the effective cwd to unknown, potentially causing false-positive blocks on subsequent segments. The analyzer now resolves cd targets and recognizes when the directory hasn't actually changed, keeping the cwd intact.

    Changes

    • fix(analyze): Preserve effective cwd when cd targets the current directory
    • fix(explain): Align cwd trace with resolved cd-to-same-directory behavior
    • test(rm): Assert rm -rf stays allowed after cd to current cwd

    Jun 12, 2026

    GitHub release
  5. v1.0.1

    v1.0.1

    • Breaking
    • Integration
    • Docs

    Features

    • Expanded Pi shell tool safety analysis — Added support for custom working directories and additional tool adapters, broadening the scope of shell command interception.

    Refactors

    • Renamed `tool_use` → `tool_call` — Aligned internal event handling naming with upstream API terminology.
    • Pruned unused exports — Removed dead exports, marked test-only helpers with @internal, and updated AGENTS.md with new knip standards.

    Docs

    • Added plugin troubleshooting steps to README.

    Jun 5, 2026

    GitHub release
  6. v1.0.0

    v1.0.0

    • Security
    • Breaking
    • Migration
    • Integration

    CC Safety Net v1.0.0

    This project originally started as a Claude Code plugin and was previously known as "Claude Code Safety Net." With v1.0.0, it has been rebranded to CC Safety Net — where CC stands for Coding (agent) CLI — to reflect its expanded support for multiple coding agent platforms including Codex, Copilot CLI, Gemini CLI, Kimi CLI, Pi and more to come.

    Highlights

    • Rulebook-backed configuration — Custom rules now live under .cc-safety-net/rules/ with a declarative config, replacing the legacy verify-config workflow. New CLI subcommands (rule init, rule list, rule migrate, rule remove) manage the full lifecycle.
    • Pi coding agent extension — Added Pi as a supported integration with hook support and doctor detection via runtime probe.
    • Kimi CLI integration — Added as a supported coding agent with doctor detection, system info, and display.
    • Centralized integration registry — Hook integrations are now driven by a shared metadata module with flag-based lookup, replacing per-integration boilerplate.
    • Expanded destructive command detection — Better coverage for git long-option abbreviations, wrapper commands, find -exec nested analysis, awk escape decoding, ANSI-C quotes, time builtin prefixes, and shell variable targets in rm -rf.

    Breaking Change: Custom Rules Migration

    The custom rules system has moved from legacy inline config files to a rulebook-based layout. Legacy inline config files (.safety-net.json and ~/.cc-safety-net/config.json) are no longer loaded at runtime. If they contain rules, commands now fail closed (stay blocked) until you migrate. Please read more at here.

    Security & Reliability

    • Fail closed on invalid hook input, analysis errors, and config loading failures.
    • Expanded secret redaction (provider tokens, command substitution env assignments).
    • Block git SSH env overrides and shell/awk analyzer bypasses.
    • Resolve rm targets and TMPDIR symlinks before safety checks (TOCTOU hardening).
    • Rollback config and lock on --delete-source failure.

    CLI & UX

    • Renamed builtin OpenCode plugin export to cc-safety-net.
    • Migrated env mode reading to CC_SAFETY_NET_* prefixed variables.
    • Removed legacy verify-config command flags.
    • Improved rule command help output and formatting.

    Internal

    • Major refactor: modular shell/, analyze/, rules/, and git/ directory layout.
    • Declarative CLI command dispatch with const-asserted command registry.
    • Shared hook adapter, child-analyzer, and deny-output helpers to eliminate duplication.
    • Added jscpd duplicate detection to CI checks.
    • Comprehensive test coverage for all new features and edge cases.

    Jun 5, 2026

    GitHub release
  7. v0.9.0

    v0.9.0

    • Breaking
    • Migration
    • Integration
    • Fix

    New Features

    • Add Codex Plugin
    • Add WorkTreeMode

    Changed

    • Add worktreeMode option to AnalyzeOptions and TraceStep
    • Add linked worktree detection module
    • Relax local git discards in linked worktrees
    • Add SAFETY_NET_WORKTREE to CLI surfaces and explain
    • Add AnalyzeNestedOverrides type and envAssignments to AnalyzeOptions
    • Track cwd changes from env -C/--chdir in wrapper stripping
    • Propagate env/cwd/worktree overrides through analyzeNested
    • Propagate wrapper env/cwd to nested analysis in segment
    • Handle remote parallel execution and wrapper info propagation
    • Propagate wrapper env/cwd through xargs child analysis
    • Track sudo/env chdir and split-string in wrapper stripping
    • Track exported git context env vars across shell segments
    • Propagate wrapper env/cwd through interpreters, BusyBox, parallel, and xargs
    • Verify linked worktree config matches root before relaxing
    • Tighten worktree relaxation for recursive submodules and double-force clean
    • Support sudo --chdir and git context append env assignments
    • Handle typeset, declare, and shell git context env assignments
    • Track GIT_INDEX_FILE as git context override and verify gitdir backlink
    • Fail-closed on dynamic git arguments and sudo chdir/login in worktree mode
    • Track allexport mode and append assignments for shell git context
    • Track keyword export and readonly in shell env context, improve builtin resolution
    • Treat dynamic stdin and replacement tokens in parallel and xargs as non-worktree-safe
    • Fail-closed on dynamic arguments, recursive submodules, and forced branch resets in worktree mode
    • Physical path resolution and symlink hardening
    • Track git config envs, keyword exports, readonly, and builtin
    • Improve parallel placeholder detection and dynamic args handling
    • Worktree hardening with PATH bypass and config env detection
    • Seed exported names from process env and git config-affecting env vars
    • Read local git config for recursive submodule check before invoking git binary
    • Expand trusted git binaries and export for testing
    • Add Windows Git binary paths to trusted binaries list
    • Add Codex platform hook detection
    • Color error messages red in hooks section

    Breaking Changes

    • Migrate slash commands to skills format

    Fixed

    • Keep ref-moving resets blocked, relax only local discards
    • Use wrapper-resolved cwd in explain segment and disable fallback worktree relaxation
    • Propagate env assignments and wrapper cwd into nested analysis
    • Use platform-aware path separators for Windows compatibility
    • Use wrapper cwd in xargs and parallel rm analysis
    • Compare paths by inode identity with normalized realpath fallback
    • Handle Windows native realpath prefixes in path comparison
    • Handle double-quoted escapes in git config value parsing
    • Treat missing trusted git binary as recursive submodule config enabled
    • Parse commented JSON in Copilot CLI config files
    • Handle Claude Code plugin list without blank separators
    • Parse Codex config section headers with inline comments
    • Use effective enabled state for Gemini CLI extension detection
    • Exclude metadata email lines from Claude Code plugin block detection

    Related Issues

    • Issue #44: Relax destructive-change rules when running inside a git worktree
    • Issue #47: [Feature]: Allow to bypass some rules
    • Issue #46: [Feature]: Support for Codex (closed by PR #49)

    Related PRs

    • PR #48: Worktree mode (closes issue #123)
    • PR #49: Codex hooks compatibility (closes issue #46)

    May 7, 2026

    GitHub release
  8. v0.8.2

    v0.8.2

    • Integration
    • Fix

    Fixed

    - Allow rm -rf for explicit temp-directory targets such as /tmp/..., /var/tmp/..., and $TMPDIR/... even when the current working directory is $HOME - Move home-directory rm classification into the shared rules-rm analyzer so blocking decisions and explain output follow the same target-aware path

    Related Issues

    • Issue #41: False positives block legitimate cleanup operations and string literals in gh commands

    Related PRs

    • PR #42: fix(rules-rm): allow temp targets when cwd is home directory

    Mar 25, 2026

    GitHub release
  9. v0.8.1

    v0.8.1

    • Integration
    • Fix

    New Features

    • Detect copilot-safety-net plugin installs in doctor via copilot plugin list

    Fixed

    • Populate configPath consistently when Copilot CLI is detected through the plugin flow
    • Report copilot-plugin as the config path for plugin-based Copilot CLI detection

    Related PRs

    • PR #40: feat: add copilot cli plugin detection to doctor command

    Mar 24, 2026

    GitHub release
  10. v0.8.0

    v0.8.0

    • Integration
    • Fix

    New Features

    • Add doctor support for GitHub Copilot CLI, including detection of Safety Net hooks in repository hook files, user hook files, and inline Copilot settings with version-aware diagnostics.
    • Block git switch --force, git switch --discard-changes, and git checkout --force / -f.

    Changed

    • Show the detected Copilot CLI version in doctor output and probe Copilot version commands more quickly and reliably.
    • Expand Copilot CLI setup documentation to cover hook-file and inline config variants, config precedence, disableAllHooks, and COPILOT_HOME.

    Fixed

    • Close a TMPDIR path traversal bypass so non-temp overrides cannot escape /tmp, /var/tmp, or the system temp directory.
    • Harden shell parsing so destructive commands are still detected inside redirects, nested command substitutions, arithmetic expansions, grouped subshells, process substitutions, and attached backticks.
    • Fix git checkout argument parsing for ambiguous ref/pathspec cases and documented option variants without misclassifying value-taking flags such as git switch -cfeature.

    Mar 21, 2026

    GitHub release
  11. v0.7.1

    v0.7.1

    • Integration
    • Fix

    Core

    • c439be8 fix: strip trailing separators in path normalization for cross-platform comparison
    • 33012b1 fix: resolve cwd to absolute path in explain config
    • 300ee42 fix: handle Windows path separators in rm command analysis
    • a4db304 fix: windows path separator

    Claude Code

    No changes in this release

    OpenCode

    No changes in this release

    Jan 25, 2026

    GitHub release
  12. v0.7.0

    v0.7.0

    • Integration
    • Fix

    Core

    • 25c18a2 feat: add explain command and structured CLI help
    • 976e382 fix: add fallback for missing timestamp in session ID
    • e187b3f fix: rename outputDeny to outputCopilotDeny
    • db01a91 feat: add GitHub Copilot CLI hooks integration

    Claude Code

    No changes in this release

    OpenCode

    No changes in this release

    Thank you to 1 community contributor:

    • @crmitchelmore:
    • feat: add GitHub Copilot CLI hooks integration
    • fix: rename outputDeny to outputCopilotDeny
    • fix: add fallback for missing timestamp in session ID

    Jan 23, 2026

    GitHub release
  13. v0.6.2

    v0.6.2

    • Integration
    • Fix

    Core

    • 58cc257 feat: add doctor command diagnostics

    Claude Code

    • 44cb35c fix(windows): explicitly invoke cc-safety-net.js with node

    OpenCode

    No changes in this release

    Thanks to @jacoballen4534 for identifying and suggesting the fix for Windows support in #21.

    Jan 19, 2026

    GitHub release
  14. v0.6.0

    v0.6.0

    • Integration
    • Fix

    Core

    • 5e3b4d8 feat: add statusline command
    • b2eed5e fix: block commands that exceed recursion depth

    Claude Code

    • e121857 feat: add /set-statusline slash command
    • 8b0bb67 fix: use local binary in hook instead of npx for faster execution

    OpenCode

    No changes in this release

    Thanks to @lgandecki for identifying the npx performance overhead.

    Jan 15, 2026

    GitHub release
  15. v0.5.1

    v0.5.1

    • Integration

    Core

    • 6f40164 feat: add builtin commands for opencode plugin

    Claude Code

    No changes in this release

    OpenCode

    No changes in this release

    Jan 11, 2026

    GitHub release
  16. v0.5.0

    v0.5.0

    • Integration
    • Fix

    Core

    • cfb5b25 fix: drain stderr in gemini hook tests
    • 5075018 feat: add gemini cli compatibility

    Claude Code

    No changes in this release

    OpenCode

    No changes in this release

    Jan 10, 2026

    GitHub release
  17. v0.4.1

    v0.4.1

    • Integration
    • Fix

    Core

    No changes in this release

    Claude Code

    • 997bb25 fix(commands): simplify verify-custom-rules documentation
    • 23dd9e1 fix(commands): improve set-custom-rules flow and schema documentation

    OpenCode

    • b656671 feat(.opencode): add OpenCode command definitions

    Jan 8, 2026

    GitHub release
  18. v0.4.0

    v0.4.0

    • Breaking
    • Integration
    • Fix

    Core

    • 09aedb4 feat: add VERSION constant synchronization in bin file during publish
    • 415509e feat: add plugin.json version synchronization in publish script
    • e1ccc2d feat: add automated npm publishing script with changelog generation
    • aac915e fix: use GITHUB_REPOSITORY env var in changelog script
    • 02e0f7a feat: add schema build script
    • 980e8b2 feat: auto-add $schema to config files during verification
    • d464897 fix: improve TMPDIR override detection and implement strict mode
    • 9b3e56c fix: handle TMPDIR edge cases in override detection
    • e890307 feat: add paranoid mode support to OpenCode plugin
    • a6abab9 fix: use cwd from hook input instead of tool_input.workdir
    • 819ab9a fix: update HookInput type to match Claude Code schema
    • e1a0700 fix: handle undefined cwd in loadConfig
    • 1435c59 feat: display blocked segment in OpenCode plugin errors
    • 2f58977 feat: display blocked segment in deny output
    • 91acb1b feat: add AnalyzeResult type for structured block info
    • 1e298cb feat: rewrite from python to typescript

    Claude Code

    • ac46e94 fix: remove extra quotes from hook command path

    Jan 7, 2026

    GitHub release
  19. v0.3.2

    v0.3.2

    • Fix

    v0.3.2 (2026-01-03)

    Fix

    • add AskUserQuestion tool to improve UX

    Jan 2, 2026

    GitHub release
  20. v0.3.1

    v0.3.1

    • Fix

    v0.3.1 (2026-01-02)

    Fix

    • Add cross-platform script execution compatibility

    Jan 2, 2026

    GitHub release
  21. v0.3.0

    v0.3.0

    • Integration
    • Fix

    v0.3.0 (2026-01-01)

    Feat

    • add short option expansion to custom rule matching
    • add commands for custom rules management
    • detect find -exec rm -rf as destructive pattern
    • add verify_config script for config validation
    • integrate custom rules into hook analysis
    • add custom rule matching logic
    • add config loading module for user-configurable rules

    Fix

    • stop _short_opts parsing at non-alpha chars and -- marker
    • Block rm -rf of cwd itself even when under /tmp/

    Refactor

    • improve verify_config output formatting
    • return ValidationResult from validate_config_file

    Jan 1, 2026

    GitHub release
  22. v0.2.0

    v0.2.0

    • Security
    • Breaking
    • Fix

    v0.2.0 (2025-12-29)

    Feat

    • add audit logging for denied commands
    • add paranoid mode environment variable checks
    • detect dangerous commands via xargs and parallel
    • block git worktree remove --force
    • block git checkout <ref> <pathspec> without --
    • block find -delete destructive command

    Fix

    • Add cross-platform script execution compatibility
    • recognize rm -R (uppercase) as recursive and respect -- delimiter
    • preserve case sensitivity for git branch -D detection

    Refactor

    • rename strict to paranoid for rm rule parameter

    Dec 29, 2025

    GitHub release
  23. v0.1.0

    v0.1.0

    v0.1.0 (2025-12-26)

    Feat

    • initial implementation

    Dec 25, 2025

    GitHub release