-
Notifications
You must be signed in to change notification settings - Fork 2
Release v2.0.0: security hardening, test suite, CI pipeline #43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
1823140
9ec1377
bcfbe06
9c713b9
a46a598
dc0521f
4b09004
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,6 +2,46 @@ | |
|
|
||
| ## [Unreleased] | ||
|
|
||
| ### Security | ||
| - Removed environment variable injection vector in agent redirect log path (S2-01) | ||
| - Narrowed config deployment allowed destinations from `/usr/local` to `/usr/local/share` (S2-09) | ||
| - Protected files guard now fails closed on unexpected errors instead of failing open (S2-04) | ||
|
|
||
| ### Testing | ||
| - **Plugin test suite** — 289 pytest tests covering 6 critical plugin scripts that previously had zero tests: | ||
| - `block-dangerous.py` (62 tests) — all 33 dangerous command patterns with positive/negative/edge cases | ||
| - `guard-workspace-scope.py` (40 tests) — blacklist, scope, allowlist, bash enforcement layers, primary command extraction | ||
| - `guard-protected.py` (56 tests) — all protected file patterns (secrets, locks, keys, credentials, auth dirs) | ||
| - `guard-protected-bash.py` (49 tests) — write target extraction, multi-target commands, and protected path integration | ||
| - `guard-readonly-bash.py` (69 tests) — general-readonly and git-readonly modes, bypass prevention, global flag handling | ||
| - `redirect-builtin-agents.py` (13 tests) — redirect mapping, passthrough, output structure | ||
| - Added `test:plugins` and `test:all` npm scripts for running plugin tests | ||
| - Python plugin tests (`pytest`) added to CI pipeline (Q3-08) | ||
|
|
||
| ### Dangerous Command Blocker | ||
| - **Force push block now suggests `git merge` as workaround** — error message explains how to avoid diverged history instead of leaving the agent to improvise destructive workarounds | ||
| - **Block `--force-with-lease`** — was slipping through regex; all force push variants now blocked uniformly | ||
| - **Block remote branch deletion** — `git push origin --delete` and colon-refspec deletion (`git push origin :branch`) now blocked; deleting remote branches closes associated PRs | ||
| - **Fixed README** — error handling was documented as "fails open" but code actually fails closed; corrected to match behavior | ||
| - Dangerous command blocker handles prefix bypasses (`\rm`, `command rm`, `env rm`) and symbolic chmod (S2-03) | ||
|
|
||
| ### Guards | ||
| - Fixed greedy alternation in write-target regex — `>>` now matched before `>` (Q3-01) | ||
| - Unified write-target extraction patterns across guards — protected-files bash guard expanded from 5 to 20 patterns (C1-02) | ||
| - Multi-target command support — `rm`, `touch`, `mkdir`, `chmod`, `chown` with multiple file operands now check all targets | ||
| - Bare `git stash` (equivalent to push) now blocked in read-only mode (Q3-04) | ||
| - Fixed git global flag handling — `git -C /path stash list` no longer misidentifies the stash subcommand | ||
|
Comment on lines
+22
to
+33
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Rewrite implementation-centric bullets from user-impact perspective. Several bullets describe internal mechanics (e.g., “was slipping through regex”, “greedy alternation”, “misidentifies subcommand”). Prefer outcome language (“force-with-lease is now blocked”, “append redirects are correctly detected first”, etc.) so release notes stay user-focused. As per coding guidelines "Write CHANGELOG entries from the user's perspective — what changed, not how it was implemented". 🤖 Prompt for AI Agents |
||
|
|
||
| ### Documentation | ||
| - **DevContainer CLI guide** — dedicated Getting Started page for terminal-only workflows without VS Code | ||
| - **v2 Migration Guide** — path changes, automatic migration, manual steps, breaking changes, and troubleshooting | ||
| - Documented 4 previously undocumented agents in agents.md: implementer, investigator, tester, documenter | ||
| - Added missing git-workflow and prompt-snippets to configuration.md enabledPlugins example | ||
| - Added CONFIG_SOURCE_DIR deprecation note in environment variables reference | ||
| - Added cc-orc orchestrator command to first-session launch commands table | ||
| - Tabbed client-specific instructions on the installation page | ||
| - Dedicated port forwarding reference page covering VS Code auto-detect, devcontainer-bridge, and SSH tunneling | ||
|
|
||
| ## v2.0.0 — 2026-02-26 | ||
|
|
||
| ### .codeforge/ Configuration System | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.