|
18 | 18 | - Merged setup variables (`.env` flags) into the Environment Variables reference |
19 | 19 | - Merged `.secrets` file authentication docs into the Configuration page |
20 | 20 | - Removed `.devcontainer/docs/` directory — all content now lives in the docs site |
| 21 | +- **Versioned docs infrastructure** — installed `starlight-versions` plugin; no archived versions yet, first snapshot will be taken when v3 development begins |
| 22 | +- **Fixed docs site URL** — updated `site` to `https://codeforge.core-directive.com` and removed `/CodeForge` base path (custom domain serves from root) |
21 | 23 |
|
22 | 24 | ### Fixed |
23 | 25 |
|
|
32 | 34 | #### Docs |
33 | 35 | - Removed stale merge conflict marker in first-session docs page |
34 | 36 |
|
| 37 | + |
| 38 | +#### CI/CD |
| 39 | +- **Release workflow** — switched from auto-publish on `package.json` change to tag-triggered (`v*` tags only); prevents accidental releases when PRs include version bumps. Tag must match `package.json` version or the workflow fails. |
| 40 | + |
| 41 | +#### CCStatusLine Deployment |
| 42 | +- **`CONFIG_SOURCE_DIR` deprecation guard** — `setup.sh` now detects stale `CONFIG_SOURCE_DIR=/workspaces/.claude` in `.env`, overrides to `$DEVCONTAINER_DIR/config`, and auto-comments the line on disk; the wrong path caused `setup-config.sh` to skip the file manifest entirely, leaving ccstatusline (and all manifest-based configs) undeployed |
| 43 | +- **System template directory permissions** — `install.sh` now chowns `/usr/local/share/ccstatusline/` to the target user so `setup-config.sh` can write the template file during post-start |
| 44 | +- **Silent copy failures** — `setup-config.sh` now reports warnings when file deployment fails instead of logging success after a failed `cp` |
| 45 | + |
| 46 | +#### Post-Integration Review Fixes |
| 47 | +- **skill-engine** — worktree skill definition uses weighted tuples (was plain strings, caused crash) |
| 48 | +- **dangerous-command-blocker** — fail closed on unexpected exceptions (was fail-open) |
| 49 | +- **ticket-workflow** — remove redundant `ValueError` from exception handlers |
| 50 | +- **workspace-scope-guard** — use maxsplit in variable assignment detection |
| 51 | +- **Shell scripts** — add executable bit to `check-setup.sh`, quote `PLUGIN_BLACKLIST` variable, add `set -uo pipefail` to tmux installer, replace deprecated `which` with `command -v`, normalize `&>` redirects in setup scripts |
| 52 | +- **Documentation** — update agent count to 21, skill count to 38, plugin count to 14 across all docs site pages |
| 53 | +- **Documentation** — add missing plugin pages for git-workflow and prompt-snippets |
| 54 | +- **Documentation** — add `cc-orc` and `dbr` to commands reference |
| 55 | +- **Documentation** — remove merge conflict marker from first-session.md |
| 56 | +- **Documentation** — update architecture.md directory tree with new plugins |
| 57 | + |
| 58 | +#### CodeRabbit Review Fixes |
| 59 | +- **`implementer.md`** — changed PostToolUse hook (fires every Edit) to Stop hook (fires once at task end) with 120s timeout; prevents redundant test runs during multi-file tasks |
| 60 | +- **`tester.md`** — increased Stop hook timeout from 30s to 120s to accommodate larger test suites |
| 61 | +- **`setup-aliases.sh`** — added `cc-orc` to `cc-tools` discovery loop so it appears in tool audit |
| 62 | +- **`CLAUDE.md`** — added missing `keybindings.json`, `orchestrator-system-prompt.md`, and `writing-system-prompt.md` to directory structure tree |
| 63 | +- **`agent-system/README.md`** — updated `verify-no-regression.py` comment to list both consumers (implementer, refactorer); hyphenated "question-surfacing protocol" |
| 64 | +- **`orchestrator-system-prompt.md`** — clarified plan mode allows investigator delegation for research; added catch-all entry in selection criteria pointing to the full specialist catalog |
| 65 | +- **MD040 compliance** — added `text` language specifiers to 7 fenced code blocks across `investigator.md`, `tester.md`, and `documenter.md` |
| 66 | +- **`setup.js` path traversal** — `configApply()` now validates that source paths resolve within `.codeforge/` and destination paths resolve within allowed directories (`CLAUDE_CONFIG_DIR`, `HOME`, `/usr/local/`), preventing directory traversal via `../` in manifest entries |
| 67 | +- **`setup.sh` CODEFORGE_DIR** — deprecation guard now uses default-assignment semantics (`:=`) instead of unconditional overwrite, preserving any user-defined `CODEFORGE_DIR` from `.env` |
| 68 | +- **Docs site URLs** — replaced `anexileddev.github.io/CodeForge/` with custom domain `codeforge.core-directive.com/` across README.md, CLAUDE.md, and .devcontainer/README.md |
| 69 | +- **Architecture docs** — added `.checksums/` and `.markers/` directories to the `.codeforge/` tree in architecture.md |
| 70 | +- **Troubleshooting docs** — renamed "Reset to Defaults" to "How to Reset" and clarified that `--reset` preserves `.codeforge/` user modifications; added step for restoring default config sources |
| 71 | + |
| 72 | + |
| 73 | +#### Claude Code Installation |
| 74 | +- **Update script no longer silently discards errors** — background update output now captured to log file instead of being discarded via `&>/dev/null` |
| 75 | +- **Update script simplified to native-binary-only** — removed npm fallback and `claude install` bootstrap code; added 60s timeout and transitional npm cleanup |
| 76 | +- **Alias resolution simplified** — `_CLAUDE_BIN` now resolves directly to native binary path (removed npm and `/usr/local/bin` fallbacks) |
| 77 | +- **POSIX redirect** — replaced `&>/dev/null` with `>/dev/null 2>&1` in dependency check for portability |
| 78 | +- **Installer shell** — changed `sh -s` to `bash -s` when piping the official installer (it requires bash) |
| 79 | +- **Unquoted `${TARGET}`** — quoted variable in `su -c` command to prevent word splitting |
| 80 | +- **Directory prep** — added `~/.local/state` and `~/.claude` pre-creation; consolidated `chown` to cover entire `~/.local` tree |
| 81 | + |
| 82 | +#### Plugin Marketplace |
| 83 | +- **`marketplace.json` schema fix** — changed all 11 plugin `source` fields from bare names (e.g., `"codeforge-lsp"`) to relative paths (`"./plugins/codeforge-lsp"`) so `claude plugin marketplace add` passes schema validation and all plugins register correctly |
| 84 | + |
| 85 | +#### ChromaTerm |
| 86 | +- **Regex lookbehinds** — replaced alternation inside lookbehinds (`(?<=[\s(]|^)` and `(?<=commit |merge |...)`) with non-capturing groups containing individual lookbehinds (`(?:(?<=[\s(])|^)` and `(?:(?<=commit )|(?<=merge )|...)`) for PCRE2 compatibility |
| 87 | + |
| 88 | +#### Terminal Color Support |
| 89 | +- **devcontainer.json** — added `TERM` and `COLORTERM=truecolor` to `remoteEnv`; Docker defaults to `TERM=xterm` (8 colors) which caused Claude Code and other CLI tools to downgrade rendering |
| 90 | +- **devcontainer.json** — `TERM` uses `${localEnv:TERM:xterm-256color}` to forward the host terminal type (e.g., `xterm-kitty`) instead of unconditionally overriding it |
| 91 | +- **setup-aliases.sh** — added terminal color defaults to managed shell block so tmux panes, `docker exec`, and SSH sessions also get 256-color and truecolor support |
| 92 | +- **kitty-terminfo/README.md** — updated documentation to reflect `localEnv` forwarding and clarify behavior across VS Code vs non-VS Code entry points |
| 93 | +- **CLAUDE.md** — documented `TERM` and `COLORTERM` environment variables in the Environment section |
| 94 | + |
35 | 95 | ### Added |
36 | 96 |
|
37 | 97 | #### Startup |
|
83 | 143 | - **`documenter`** — consolidated documentation and specification agent (opus) merging doc-writer and spec-writer; handles README, API docs, docstrings, and the full spec lifecycle (create, refine, build, review, update, check) |
84 | 144 | - **Question Surfacing Protocol** — all 4 workhorse agents carry an identical protocol requiring them to STOP and return `## BLOCKED: Questions` sections when hitting ambiguities, ensuring no assumptions are made without user input |
85 | 145 |
|
86 | | -### Fixed |
87 | | - |
88 | | -#### CI/CD |
89 | | -- **Release workflow** — switched from auto-publish on `package.json` change to tag-triggered (`v*` tags only); prevents accidental releases when PRs include version bumps. Tag must match `package.json` version or the workflow fails. |
90 | | - |
91 | | -#### CCStatusLine Deployment |
92 | | -- **`CONFIG_SOURCE_DIR` deprecation guard** — `setup.sh` now detects stale `CONFIG_SOURCE_DIR=/workspaces/.claude` in `.env`, overrides to `$DEVCONTAINER_DIR/config`, and auto-comments the line on disk; the wrong path caused `setup-config.sh` to skip the file manifest entirely, leaving ccstatusline (and all manifest-based configs) undeployed |
93 | | -- **System template directory permissions** — `install.sh` now chowns `/usr/local/share/ccstatusline/` to the target user so `setup-config.sh` can write the template file during post-start |
94 | | -- **Silent copy failures** — `setup-config.sh` now reports warnings when file deployment fails instead of logging success after a failed `cp` |
95 | | - |
96 | | -#### Post-Integration Review Fixes |
97 | | -- **skill-engine** — worktree skill definition uses weighted tuples (was plain strings, caused crash) |
98 | | -- **dangerous-command-blocker** — fail closed on unexpected exceptions (was fail-open) |
99 | | -- **ticket-workflow** — remove redundant `ValueError` from exception handlers |
100 | | -- **workspace-scope-guard** — use maxsplit in variable assignment detection |
101 | | -- **Shell scripts** — add executable bit to `check-setup.sh`, quote `PLUGIN_BLACKLIST` variable, add `set -uo pipefail` to tmux installer, replace deprecated `which` with `command -v`, normalize `&>` redirects in setup scripts |
102 | | -- **Documentation** — update agent count to 21, skill count to 38, plugin count to 14 across all docs site pages |
103 | | -- **Documentation** — add missing plugin pages for git-workflow and prompt-snippets |
104 | | -- **Documentation** — add `cc-orc` and `dbr` to commands reference |
105 | | -- **Documentation** — remove merge conflict marker from first-session.md |
106 | | -- **Documentation** — update architecture.md directory tree with new plugins |
107 | | - |
108 | | -#### CodeRabbit Review Fixes |
109 | | -- **`implementer.md`** — changed PostToolUse hook (fires every Edit) to Stop hook (fires once at task end) with 120s timeout; prevents redundant test runs during multi-file tasks |
110 | | -- **`tester.md`** — increased Stop hook timeout from 30s to 120s to accommodate larger test suites |
111 | | -- **`setup-aliases.sh`** — added `cc-orc` to `cc-tools` discovery loop so it appears in tool audit |
112 | | -- **`CLAUDE.md`** — added missing `keybindings.json`, `orchestrator-system-prompt.md`, and `writing-system-prompt.md` to directory structure tree |
113 | | -- **`agent-system/README.md`** — updated `verify-no-regression.py` comment to list both consumers (implementer, refactorer); hyphenated "question-surfacing protocol" |
114 | | -- **`orchestrator-system-prompt.md`** — clarified plan mode allows investigator delegation for research; added catch-all entry in selection criteria pointing to the full specialist catalog |
115 | | -- **MD040 compliance** — added `text` language specifiers to 7 fenced code blocks across `investigator.md`, `tester.md`, and `documenter.md` |
116 | | -- **`setup.js` path traversal** — `configApply()` now validates that source paths resolve within `.codeforge/` and destination paths resolve within allowed directories (`CLAUDE_CONFIG_DIR`, `HOME`, `/usr/local/`), preventing directory traversal via `../` in manifest entries |
117 | | -- **`setup.sh` CODEFORGE_DIR** — deprecation guard now uses default-assignment semantics (`:=`) instead of unconditional overwrite, preserving any user-defined `CODEFORGE_DIR` from `.env` |
118 | | -- **Docs site URLs** — replaced `anexileddev.github.io/CodeForge/` with custom domain `codeforge.core-directive.com/` across README.md, CLAUDE.md, and .devcontainer/README.md |
119 | | -- **Architecture docs** — added `.checksums/` and `.markers/` directories to the `.codeforge/` tree in architecture.md |
120 | | -- **Troubleshooting docs** — renamed "Reset to Defaults" to "How to Reset" and clarified that `--reset` preserves `.codeforge/` user modifications; added step for restoring default config sources |
121 | | - |
122 | 146 | ### Changed |
123 | 147 |
|
124 | 148 | #### Skill Engine: Auto-Suggestion |
|
173 | 197 | - Added `CLAUDE_AUTH_TOKEN` setup flow to README, configuration reference, and troubleshooting |
174 | 198 | - ccstatusline README verification commands now respect `CLAUDE_CONFIG_DIR` |
175 | 199 |
|
176 | | -### Fixed |
177 | | - |
178 | | -#### Claude Code Installation |
179 | | -- **Update script no longer silently discards errors** — background update output now captured to log file instead of being discarded via `&>/dev/null` |
180 | | -- **Update script simplified to native-binary-only** — removed npm fallback and `claude install` bootstrap code; added 60s timeout and transitional npm cleanup |
181 | | -- **Alias resolution simplified** — `_CLAUDE_BIN` now resolves directly to native binary path (removed npm and `/usr/local/bin` fallbacks) |
182 | | -- **POSIX redirect** — replaced `&>/dev/null` with `>/dev/null 2>&1` in dependency check for portability |
183 | | -- **Installer shell** — changed `sh -s` to `bash -s` when piping the official installer (it requires bash) |
184 | | -- **Unquoted `${TARGET}`** — quoted variable in `su -c` command to prevent word splitting |
185 | | -- **Directory prep** — added `~/.local/state` and `~/.claude` pre-creation; consolidated `chown` to cover entire `~/.local` tree |
186 | | - |
187 | | -#### Plugin Marketplace |
188 | | -- **`marketplace.json` schema fix** — changed all 11 plugin `source` fields from bare names (e.g., `"codeforge-lsp"`) to relative paths (`"./plugins/codeforge-lsp"`) so `claude plugin marketplace add` passes schema validation and all plugins register correctly |
189 | | - |
190 | | -#### ChromaTerm |
191 | | -- **Regex lookbehinds** — replaced alternation inside lookbehinds (`(?<=[\s(]|^)` and `(?<=commit |merge |...)`) with non-capturing groups containing individual lookbehinds (`(?:(?<=[\s(])|^)` and `(?:(?<=commit )|(?<=merge )|...)`) for PCRE2 compatibility |
192 | | - |
193 | | -#### Terminal Color Support |
194 | | -- **devcontainer.json** — added `TERM` and `COLORTERM=truecolor` to `remoteEnv`; Docker defaults to `TERM=xterm` (8 colors) which caused Claude Code and other CLI tools to downgrade rendering |
195 | | -- **devcontainer.json** — `TERM` uses `${localEnv:TERM:xterm-256color}` to forward the host terminal type (e.g., `xterm-kitty`) instead of unconditionally overriding it |
196 | | -- **setup-aliases.sh** — added terminal color defaults to managed shell block so tmux panes, `docker exec`, and SSH sessions also get 256-color and truecolor support |
197 | | -- **kitty-terminfo/README.md** — updated documentation to reflect `localEnv` forwarding and clarify behavior across VS Code vs non-VS Code entry points |
198 | | -- **CLAUDE.md** — documented `TERM` and `COLORTERM` environment variables in the Environment section |
199 | | - |
200 | 200 | ### Removed |
201 | 201 |
|
202 | 202 | #### Scripts |
|
0 commit comments