Skip to content

Commit cad367e

Browse files
committed
Update devcontainer for @CoreDirective NPM packages
Rename dashboard feature from claude-session-dashboard to codeforge-dashboard, enable it by default, update CLI feature description to reflect NPM install, and update changelog with NPM migration notes.
1 parent 18e81f0 commit cad367e

File tree

4 files changed

+42
-11
lines changed

4 files changed

+42
-11
lines changed

container/.devcontainer/CHANGELOG.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@
1010

1111
### CLI
1212

13+
- **CLI feature now installs from NPM**`codeforge-cli` feature installs `@coredirective/cf-cli` via `bun install -g` instead of running from workspace source. Auto-falls back to source when developing CodeForge itself.
1314
- **`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.
1415
- **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`.
1516

1617
### Dashboard
1718

18-
- **First-party dashboard** — replaced third-party `claude-session-dashboard` npm package with `codeforge-dashboard` (built from monorepo `dashboard/` package)
19+
- **First-party dashboard** — replaced third-party `claude-session-dashboard` npm package with `@coredirective/cf-dash` (built from monorepo `dashboard/` package)
20+
- Dashboard feature now installs from NPM registry via `bun install -g @coredirective/cf-dash`
1921
- Auto-launch on container start via poststart hook (controllable with `autostart` option)
20-
- Install switched from npm to Bun (`bun install -g`)
2122
- Command renamed: `claude-dashboard``codeforge-dashboard`
2223
- Removed persistence symlink hook (dashboard DB now lives on bind mount at `~/.codeforge/data/`)
2324

container/.devcontainer/devcontainer.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
// then Claude Code native binary (no Node dependency), then custom features.
4949
// npm-dependent features (agent-browser, ccusage,
5050
// biome, lsp-servers) must come after Node. bun-dependent features
51-
// (claude-session-dashboard) must come after Bun. uv-dependent features (ruff, claude-monitor) must
51+
// (codeforge-dashboard) must come after Bun. uv-dependent features (ruff, claude-monitor) must
5252
// come after uv. notify-hook is second-to-last (lightweight, no dependencies).
5353
// dbr (devcontainer-bridge) is last — standalone binary, no dependencies.
5454
"overrideFeatureInstallOrder": [
@@ -65,7 +65,7 @@
6565
"./features/ccusage",
6666
// "./features/ccburn",
6767
"./features/ccstatusline",
68-
"./features/claude-session-dashboard",
68+
"./features/codeforge-dashboard",
6969
"./features/ast-grep",
7070
"./features/tree-sitter",
7171
"./features/lsp-servers",
@@ -123,12 +123,12 @@
123123
},
124124
// Uncomment to add ccms (requires Rust):
125125
// "./features/ccms": {},
126-
// "./features/claude-session-dashboard": {
127-
// "version": "latest",
128-
// "port": "7847",
129-
// "shells": "both",
130-
// "username": "automatic"
131-
// },
126+
"./features/codeforge-dashboard": {
127+
"version": "latest",
128+
"port": "7847",
129+
"autostart": true,
130+
"username": "automatic"
131+
},
132132
"./features/ast-grep": {},
133133
"./features/tree-sitter": {},
134134
"./features/lsp-servers": { "version": "none" },

container/.devcontainer/features/codeforge-cli/devcontainer-feature.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"id": "codeforge-cli",
33
"version": "1.0.0",
44
"name": "CodeForge CLI",
5-
"description": "Installs a self-bootstrapping wrapper that runs the CodeForge CLI from workspace source for session search, plugin management, and configuration (experimental)",
5+
"description": "Installs the CodeForge CLI from NPM (@coredirective/cf-cli) for session search, plugin management, and configuration. Auto-falls back to workspace source when developing CodeForge itself.",
66
"documentationURL": "https://github.com/AnExiledDev/CodeForge/tree/main/cli",
77
"options": {
88
"version": {
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"id": "codeforge-dashboard",
3+
"version": "1.0.0",
4+
"name": "CodeForge Dashboard",
5+
"description": "Session analytics dashboard for Claude Code — Svelte 5 SPA with cost tracking, conversation replay, and activity heatmaps. Installs from NPM (@coredirective/cf-dash).",
6+
"documentationURL": "https://github.com/AnExiledDev/CodeForge/tree/main/dashboard",
7+
"options": {
8+
"version": {
9+
"type": "string",
10+
"description": "Version to install ('latest' or a specific semver). Use 'none' to skip.",
11+
"default": "latest"
12+
},
13+
"port": {
14+
"type": "string",
15+
"description": "Port for the dashboard server",
16+
"default": "7847"
17+
},
18+
"autostart": {
19+
"type": "boolean",
20+
"description": "Auto-launch dashboard on container start via poststart hook",
21+
"default": true
22+
},
23+
"username": {
24+
"type": "string",
25+
"description": "Container user to install for",
26+
"default": "automatic"
27+
}
28+
},
29+
"installsAfter": ["ghcr.io/rails/devcontainer/features/bun"]
30+
}

0 commit comments

Comments
 (0)