Skip to content

feat: v3 config layout, Docker Compose, new features, and CLI enhancements#88

Merged
AnExiledDev merged 28 commits into
stagingfrom
feat/wsl-performance-easy-wins
May 8, 2026
Merged

feat: v3 config layout, Docker Compose, new features, and CLI enhancements#88
AnExiledDev merged 28 commits into
stagingfrom
feat/wsl-performance-easy-wins

Conversation

@AnExiledDev
Copy link
Copy Markdown
Owner

Summary

Major update spanning all three packages — introduces the v3 config layout, Docker Compose integration, 6 new devcontainer features, and significant CLI improvements.

Container

  • V3 config layout: Replace flat config defaults with three-tier claude/, codex/, rtk/ directory structure under defaults/codeforge/
  • Docker Compose: Migrate to Compose for dynamic volume management with generate-compose.mjs
  • 6 new features: ccdiag, claude-code-karma, claude-mem, claude-session-analyzer, lamarck, rtk, sandcastle
  • Docker-native port forwarding and VS Code detection fix
  • Browser opener for gh auth login in devcontainers
  • Add AI-CONTEXT.md and /codeforge skill; remove skill-suggester
  • Modernize plugins, update settings profiles, add statusline metadata

CLI

  • Doctor module rewrite: Restructured as module with --fix TUI, new checks (auth, environment, git, volumes, WSL)
  • Hook management: New hooks list/enable/disable/status commands
  • Config apply merge: Smarter config application with merge support
  • Mount CLI: New mount add command
  • V3 config support: Manifest merging for the new layout
  • Indexer fixes: Performance improvements, debug logging, validation

Docs

  • Upgrade to Astro 6
  • Add changelog
  • Document v3 config layout, new features, migration path
  • Document doctor --fix, volume mounts, Compose migration
  • Add Karma hooks, settings boundary, environment reference updates
  • Add debugging with logs section to troubleshooting

CI/Infra

  • Add npm caching and expand CodeQL to staging branch
  • Update contributing guidelines and project configuration

Test plan

  • cd cli && bun test — all doctor, hooks-loader, and mount tests pass
  • cd container && npm test — setup scripts and plugin tests pass
  • cd docs && npm run build — Astro 6 site builds cleanly
  • Rebuild devcontainer to verify v3 config layout applies correctly
  • Verify Docker Compose volume generation with generate-compose.mjs
  • Test codeforge doctor --fix TUI in a running container
  • Test codeforge hooks list/enable/disable/status commands

AnExiledDev added 23 commits May 5, 2026 21:41
…hooks

Adds the claude-code-karma devcontainer feature with read-only session
tracking hooks in settings.base.json. Updates check-setup.sh with Karma
health checks, adds Karma tools to cc-tools listing, and fixes
GH_CONFIG_DIR default path in setup-aliases.sh.
…pdates

Documents Karma's read-only tracking hooks in the hooks page, adds the
Karma settings boundary section to settings-and-permissions, and updates
environment variables, whats-included, and accessing-services references.
Refactors the monolithic doctor.ts into a module directory with separate
files for types, checks, formatting, and fix orchestration. Adds three
new check categories:

- Volume candidates: scans for high-churn dirs (node_modules, .next,
  .venv, target, etc.) on slow filesystems, recommends Docker volumes
- WSL .wslconfig: detects host RAM, generates optimized config with
  memory limits, autoMemoryReclaim, and sparseVhd
- Windows Defender: provides PowerShell exclusion commands for Docker
  and WSL processes

Introduces --fix mode with @clack/prompts TUI multi-select grouped by
category, plus --yes (non-interactive), --dry-run (preview), and
--only <category> (filter) flags. Fix actions write .codeforge/mounts.json
for compose integration. WSL checks are hidden on non-WSL systems.
Replaces inline image/mounts/runArgs in devcontainer.json with a
docker-compose.yml base file and generated compose override. Volume names
are now fixed (no ${devcontainerId} suffix) for simpler management.

Adds generate-mounts.mjs as an initializeCommand that reads
.codeforge/mounts.json and produces docker-compose.codeforge.yml with
project-specific volume mounts. The script runs on the host (Node.js,
cross-platform) and gracefully falls back to an empty override when no
mounts config exists.
Updates CHANGELOG, AGENTS, and README with doctor --fix, volume
candidate detection, WSL .wslconfig generator, Defender exclusion guide,
and Docker Compose migration entries. Adds volume mounts section to
container-configuration docs and doctor --fix row to cli-tools reference.
Move packaged defaults from defaults/codeforge/config/ into organized
subdirectories (claude/, codex/, rtk/) with a new container.json for
setup identity. Settings profiles are now minimal overlays instead of
full copies. Remove legacy .env.example and .secrets.example files.
Add new features (rtk, claude-mem, lamarck, ccdiag, sandcastle,
claude-session-analyzer), update formatter versions to latest, add
VS Code settings for terminal/editor UX. Rename generate-mounts.mjs
to generate-compose.mjs with expanded compose generation. Simplify
secrets model and remove deprecated env vars (CLAUDE_CONFIG_DIR).
Rewrite setup.js to support three-tier manifest merging (packaged
defaults + generated output + user overrides). Refactor setup-config.sh
and setup-auth.sh for file-per-secret model. Add v3 migration script.
Update generate-settings-profiles.js for base + overlay architecture.
Rewrite test.js in TAP format to validate new config pipeline.
Bump to v3.0.0, require Node >= 18.
Update config discovery to search .devcontainer/defaults/codeforge/
alongside .codeforge/. Add multi-root manifest loading that merges
packaged defaults with user overrides by entry id. Add generated
settings path resolution and on-demand profile generation. Expand
variable substitution to support WORKSPACE_ROOT and CODEFORGE_DIR.
Bump to v3.0.0.
Cache file content before DB mutations in indexer to reduce disk I/O.
Add DEBUG env var logging to plan/task/plugin loaders for silent failure
diagnostics. Add port range validation to proxy command. Add strict
JSON parsing with type guards in search engine. Respect CLAUDE_PROJECTS_DIR
in session discovery. Add null check for CA cert generation.
Add RTK (Rust Token Killer) for transparent Bash output compression.
Add claude-mem for persistent memory via SQLite + Chroma vectors.
Add ccdiag for Go-based session diagnostics (orphans, errors, tokens).
Add claude-session-analyzer for session quality metrics.
Add lamarck for automated skill analysis from session history.
Add sandcastle for multi-agent orchestration via git worktrees.
Replace task-tracker with activity-tracker to track subagents and
background bash commands. Add stale-entry pruning to quality gate.
Extend protected-files-guard to block .codeforge/secrets/. Remove
CLAUDE_CONFIG_DIR references from all features and agent-system
scripts. Add rate limit reset time widgets to ccstatusline. Update
AGENTS.md, CHANGELOG.md, and README for v3 architecture.
Rewrite secrets-and-auth for file-per-secret model. Update all config
path references for three-tier layout. Rewrite migration guide for
v2/v3 transition. Add changelog entries for RTK, claude-mem, sandcastle,
ccdiag, lamarck, and Docker Compose migration. Update Hero stats
(4 agents, 17 plugins, 26 tools, 34 skills). Add OG meta tags.
Bump docs to v3.0.0.
Cover devcontainer build/up log capture, runtime container logs,
log storage locations, and diagnostic tools (ccdiag, analyze-sessions,
karma-status).
gh auth setup-git was nested inside the GH_TOKEN secret block, so the
git credential helper was never configured when users relied on manual
gh auth login. Now runs on every container start regardless of token
presence. Also detects persisted GitHub CLI credentials from the Docker
named volume and derives git identity without requiring a secret.
Tools like `gh auth login` try to open a browser but fail with "executable
not found" in containers. Add a BROWSER fallback script that uses VS Code's
remote CLI when available, or prints the URL cleanly for manual copy.
Does not override VS Code's native BROWSER in integrated terminals.
…tection

Docker Compose port mappings provide reliable port forwarding independent
of VS Code, working with WSL mirrored networking and all devcontainer
clients. Switch VS Code from broken hybrid mode to output-based detection
as a supplementary mechanism.

- Map 6 service ports in docker-compose.yml bound to 127.0.0.1
- Change autoForwardPortsSource from hybrid to output
- Add missing portsAttributes for Astro (4321) and mitmproxy (8081)
- Update accessing-services docs to reflect Docker Compose as primary
…l-suggester

Ship machine-readable environment documentation for AI assistants and
a complementary /codeforge skill for on-demand deep context. Remove the
deprecated skill auto-suggestion system and the Codex AGENTS.md bad pattern.

- Add AI-CONTEXT.md with toolchain, filesystem, constraints, auth, persistence
- Add /codeforge skill with detailed reference files (toolchain, filesystem, constraints)
- Update AGENTS.md with AI context reference and maintenance directive
- Update README.md with user-facing AI context guidance
- Remove skill-suggester.py and UserPromptSubmit hook
- Remove Codex AGENTS.md from defaults and file-manifest
- Update skill-engine plugin metadata and README
Add `codeforge hooks list|disable|enable|status` subcommands for managing
plugin hook enablement via ~/.claude/disabled-hooks.json, replacing the
need to hand-edit JSON. Includes security warnings for safety-critical
plugins and dual-write to both deployed and source configs.

Add enabledPlugins merge logic to `codeforge config apply` and setup.js
so user plugin disable/enable choices survive config redeployment.

Includes hooks-loader utility, 18 unit tests, and documentation updates
to AGENTS.md and constraints.md.
…elog

- Update ccstatusline session-usage and weekly-usage widgets with compact,
  cursor, and absolute metadata; switch reset-timer to dateMode/hourFormat
- Upgrade docs dependencies to Astro 6.x and Starlight 0.39.x, remove
  zod override
- Add unreleased changelog entries for networking, status line, config,
  auth fixes, tooling, AI-CONTEXT.md, /codeforge skill, and removals
…volume scan, rebuild messaging

- Increase doctor volume detection depth from 4 to 8 to catch nested projects
- Add git safe directory doctor check with immediate fix (no rebuild needed)
- Auto-detect and register all git repos as safe.directory on container startup
- Add `codeforge mount add <path>` command for manual volume registration
- Extract shared mounts.json utilities to dedicated module
- Standardize rebuild messaging with specific VS Code and CLI instructions
- Add rebuildType field to FixAction for normal vs full rebuild guidance
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 8, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ba2a7daa-c5aa-4f1b-b7f2-c0e2a806a261

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/wsl-performance-easy-wins

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

- Remove npm cache config from test/lint jobs (container has no lockfile)
- Skip WSL .wslconfig fix test on non-Linux platforms (/proc/meminfo unavailable)
…ce-easy-wins

# Conflicts:
#	cli/bun.lock
#	cli/package.json
#	docs/package-lock.json
#	docs/package.json
…indows

- Use template literal in setup.js to satisfy biome linter
- Normalize stored mount paths to forward slashes for cross-platform consistency
- Use template literal instead of string concat (line 109)
- Add radix parameter to parseInt calls (line 157)
@AnExiledDev AnExiledDev merged commit 813939a into staging May 8, 2026
10 checks passed
@AnExiledDev AnExiledDev deleted the feat/wsl-performance-easy-wins branch May 8, 2026 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant