|
1 | 1 | # CodeForge Devcontainer Changelog |
2 | 2 |
|
3 | | -## Unreleased |
| 3 | +## v2.1.0 — 2026-03-25 |
4 | 4 |
|
5 | | -### Hooks |
6 | | -- **Per-hook disable mechanism** — add script names to `.codeforge/config/disabled-hooks.json` to disable individual hooks without disabling the entire plugin. Takes effect immediately, no restart needed. |
7 | | -- Disabled by default: `git-state-injector`, `ticket-linker`, `spec-reminder` |
| 5 | +### CLI |
| 6 | + |
| 7 | +- **`codeforge proxy`** — launch Claude Code through mitmproxy for full API traffic inspection. Starts mitmweb in the background, proxies all Claude API requests through it, and opens a browser UI at `http://localhost:8081` for real-time request/response inspection. Auto-installs mitmproxy via pipx on first use, handles CA certificate generation and system trust store installation. Supports `--no-web` for headless mitmdump output, `--setup` for install-only, and `-- <claude-args>` passthrough. Useful for monitoring token usage, cache behavior, and rate limit utilization — the `anthropic-ratelimit-unified-*` response headers on `/v1/messages` requests show 5-hour and 7-day quota utilization even with long-lived auth tokens. |
| 8 | +- **Version lock** — set `CLAUDE_VERSION_LOCK=<semver>` in `.env` to pin Claude Code to a specific version. The update script installs the exact version instead of updating to latest. Background auto-updater disabled via `DISABLE_AUTOUPDATER`. |
8 | 9 |
|
9 | 10 | ### Dashboard |
| 11 | + |
10 | 12 | - **First-party dashboard** — replaced third-party `claude-session-dashboard` npm package with `codeforge-dashboard` (built from monorepo `dashboard/` package) |
11 | 13 | - Auto-launch on container start via poststart hook (controllable with `autostart` option) |
12 | 14 | - Install switched from npm to Bun (`bun install -g`) |
13 | 15 | - Command renamed: `claude-dashboard` → `codeforge-dashboard` |
14 | 16 | - Removed persistence symlink hook (dashboard DB now lives on bind mount at `~/.codeforge/data/`) |
15 | 17 |
|
16 | | -### Testing |
17 | | -- **Plugin test suite** — 241 pytest tests covering 6 critical plugin scripts that previously had zero tests: |
18 | | - - `block-dangerous.py` (46 tests) — all 22 dangerous command patterns with positive/negative/edge cases |
19 | | - - `guard-workspace-scope.py` (40 tests) — blacklist, scope, allowlist, bash enforcement layers, primary command extraction |
20 | | - - `guard-protected.py` (55 tests) — all protected file patterns (secrets, locks, keys, credentials, auth dirs) |
21 | | - - `guard-protected-bash.py` (24 tests) — write target extraction and protected path integration |
22 | | - - `guard-readonly-bash.py` (63 tests) — general-readonly and git-readonly modes, bypass prevention |
23 | | - - `redirect-builtin-agents.py` (13 tests) — redirect mapping, passthrough, output structure |
24 | | -- Added `test:plugins` and `test:all` npm scripts for running plugin tests |
| 18 | +### Hooks |
25 | 19 |
|
26 | | -### Skills |
27 | | -- Added `agent-browser` skill to skill-engine plugin — guides headless browser automation with CLI reference, workflow patterns, and authentication |
| 20 | +- **Per-hook disable mechanism** — add script names to `.codeforge/config/disabled-hooks.json` to disable individual hooks without disabling the entire plugin. Takes effect immediately, no restart needed. |
| 21 | +- Disabled by default: `git-state-injector`, `ticket-linker`, `spec-reminder` |
28 | 22 |
|
29 | 23 | ### Scope Guard |
30 | 24 |
|
|
35 | 29 |
|
36 | 30 | - Remove system directory write redirect blocks (`> /usr/`, `> /etc/`, `> /bin/`, `> /sbin/`) — caused false positives on text content in command arguments (e.g. PR body text containing paths); write location enforcement is the scope guard's responsibility |
37 | 31 |
|
38 | | -### CLI Integration |
| 32 | +### Skills |
39 | 33 |
|
40 | | -- Add codeforge-cli devcontainer feature — installs the CodeForge CLI (`codeforge` command) globally via npm |
41 | | -- Remove dead `codeforge` alias from setup-aliases.sh (was pointing to obsolete `setup.js`) |
| 34 | +- Added `agent-browser` skill to skill-engine plugin — guides headless browser automation with CLI reference, workflow patterns, and authentication |
| 35 | + |
| 36 | +### Configuration |
| 37 | + |
| 38 | +- Add `autoMemoryDirectory` setting — auto-memory now stored in project-local `.claude/memory/` instead of deep inside `~/.claude/projects/`, making it visible and version-controllable |
| 39 | +- Enhanced system prompts with auto-memory system, hooks awareness, safety rules, and anti-over-engineering guidance |
| 40 | + |
| 41 | +### Status Bar |
| 42 | + |
| 43 | +- Replace `ccburn-compact` statusline widget with native `session-usage` and `weekly-usage` ccstatusline widgets — eliminates external command dependency and 8s timeout |
| 44 | +- Comment out `ccburn` devcontainer feature (disabled by default) — functionality replaced by native widgets |
42 | 45 |
|
43 | 46 | ### Windows Compatibility |
44 | 47 |
|
45 | 48 | - Fix `claude-code-native` install failure on Windows/macOS Docker Desktop — installer now falls back to `HOME` override when `su` is unavailable |
46 | 49 | - Remove `preflight.sh` runtime check — redundant with Docker's own error reporting and caused failures on Windows |
47 | 50 |
|
| 51 | +### CLI Integration |
| 52 | + |
| 53 | +- Add codeforge-cli devcontainer feature — installs the CodeForge CLI (`codeforge` command) globally via npm |
| 54 | +- Remove dead `codeforge` alias from setup-aliases.sh (was pointing to obsolete `setup.js`) |
| 55 | + |
| 56 | +### Testing |
| 57 | + |
| 58 | +- **Plugin test suite** — 241 pytest tests covering 6 critical plugin scripts that previously had zero tests: |
| 59 | + - `block-dangerous.py` (46 tests) — all 22 dangerous command patterns with positive/negative/edge cases |
| 60 | + - `guard-workspace-scope.py` (40 tests) — blacklist, scope, allowlist, bash enforcement layers, primary command extraction |
| 61 | + - `guard-protected.py` (55 tests) — all protected file patterns (secrets, locks, keys, credentials, auth dirs) |
| 62 | + - `guard-protected-bash.py` (24 tests) — write target extraction and protected path integration |
| 63 | + - `guard-readonly-bash.py` (63 tests) — general-readonly and git-readonly modes, bypass prevention |
| 64 | + - `redirect-builtin-agents.py` (13 tests) — redirect mapping, passthrough, output structure |
| 65 | +- Added `test:plugins` and `test:all` npm scripts for running plugin tests |
| 66 | + |
48 | 67 | ### Documentation |
| 68 | + |
49 | 69 | - **DevContainer CLI guide** — dedicated Getting Started page for terminal-only workflows without VS Code |
50 | 70 | - **v2 Migration Guide** — path changes, automatic migration, manual steps, breaking changes, and troubleshooting |
51 | 71 | - Documented 4 previously undocumented agents in agents.md: implementer, investigator, tester, documenter |
|
54 | 74 | - Added cc-orc orchestrator command to first-session launch commands table |
55 | 75 | - Tabbed client-specific instructions on the installation page |
56 | 76 | - Dedicated port forwarding reference page covering VS Code auto-detect, devcontainer-bridge, and SSH tunneling |
57 | | - |
58 | | -### Configuration |
59 | | - |
60 | | -- Add `autoMemoryDirectory` setting — auto-memory now stored in project-local `.claude/memory/` instead of deep inside `~/.claude/projects/`, making it visible and version-controllable |
61 | | -- Enhanced system prompts with auto-memory system, hooks awareness, safety rules, and anti-over-engineering guidance |
62 | | - |
63 | | -### Status Bar |
64 | | - |
65 | | -- Replace `ccburn-compact` statusline widget with native `session-usage` and `weekly-usage` ccstatusline widgets — eliminates external command dependency and 8s timeout |
66 | | -- Comment out `ccburn` devcontainer feature (disabled by default) — functionality replaced by native widgets |
67 | | - |
68 | | -### Documentation |
69 | | - |
70 | 77 | - Document `${CLAUDE_PLUGIN_DATA}` variable in CLAUDE.md for future plugin persistent storage |
71 | 78 |
|
72 | 79 | ## v2.1.1 — 2026-03-13 |
|
0 commit comments