Skip to content

Commit 681d346

Browse files
authored
Merge pull request #65 from AnExiledDev/staging
Release v2.1.0
2 parents 178ad2a + fb7881e commit 681d346

File tree

218 files changed

+34074
-768
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

218 files changed

+34074
-768
lines changed

.github/workflows/ci.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ name: CI
33
on:
44
push:
55
branches: [main, staging]
6-
paths: ['container/**', 'cli/**']
6+
paths: ['container/**', 'cli/**', 'dashboard/**']
77
pull_request:
88
branches: [main, staging]
9-
paths: ['container/**', 'cli/**']
9+
paths: ['container/**', 'cli/**', 'dashboard/**']
1010

1111
jobs:
1212
test:
@@ -52,3 +52,13 @@ jobs:
5252
working-directory: cli
5353
- run: bun test
5454
working-directory: cli
55+
56+
test-dashboard:
57+
runs-on: ubuntu-latest
58+
steps:
59+
- uses: actions/checkout@v6
60+
- uses: oven-sh/setup-bun@v2
61+
- run: bun install
62+
working-directory: dashboard
63+
- run: bun test
64+
working-directory: dashboard
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Release Dashboard
2+
3+
on:
4+
push:
5+
tags: ['dashboard-v*']
6+
7+
jobs:
8+
validate:
9+
runs-on: ubuntu-latest
10+
outputs:
11+
version: ${{ steps.extract.outputs.version }}
12+
steps:
13+
- uses: actions/checkout@v6
14+
- id: extract
15+
name: Extract and validate version
16+
run: |
17+
TAG="${GITHUB_REF#refs/tags/dashboard-v}"
18+
PKG=$(node -p "require('./dashboard/package.json').version")
19+
echo "version=$TAG" >> "$GITHUB_OUTPUT"
20+
if [ "$TAG" != "$PKG" ]; then
21+
echo "::error::Tag dashboard-v${TAG} does not match dashboard/package.json version ${PKG}"
22+
exit 1
23+
fi
24+
25+
publish-and-release:
26+
needs: validate
27+
runs-on: ubuntu-latest
28+
permissions:
29+
contents: write
30+
steps:
31+
- uses: actions/checkout@v6
32+
33+
- uses: oven-sh/setup-bun@v2
34+
35+
- name: Install dependencies
36+
run: bun install
37+
working-directory: dashboard
38+
39+
- name: Run tests
40+
run: bun test
41+
working-directory: dashboard
42+
43+
- name: Build SPA
44+
run: bun run build
45+
working-directory: dashboard
46+
47+
- name: Verify package contents
48+
run: npm pack --dry-run
49+
working-directory: dashboard
50+
51+
- uses: actions/setup-node@v6
52+
with:
53+
node-version: 18
54+
registry-url: https://registry.npmjs.org
55+
56+
- name: Publish to npm
57+
run: npm publish
58+
working-directory: dashboard
59+
env:
60+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
61+
62+
- name: Extract changelog section
63+
id: changelog
64+
run: |
65+
VERSION="${{ needs.validate.outputs.version }}"
66+
NOTES=$(sed -n "/^## v${VERSION}/,/^## v/{ /^## v${VERSION}/d; /^## v/d; p; }" dashboard/CHANGELOG.md)
67+
[ -z "$NOTES" ] && NOTES="Dashboard Release v${VERSION}"
68+
echo "$NOTES" > /tmp/release-notes.md
69+
70+
- name: Create GitHub Release
71+
env:
72+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
73+
run: |
74+
VERSION="dashboard-v${{ needs.validate.outputs.version }}"
75+
gh release create "$VERSION" --title "$VERSION" --notes-file /tmp/release-notes.md

.gitignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,22 @@ container/.devcontainer/**/*.codeforge-new
4949
container/.devcontainer/**/*.bak
5050
container/.devcontainer/.codeforge-preserve
5151

52+
# Specs (local working directory)
53+
.specs/
54+
55+
# Claude Code local state
56+
.claude/
57+
5258
# CLI-specific
5359
cli/.pytest_cache/
5460
cli/.ruff_cache/
5561
.codeforge/data/
5662

63+
# Dashboard-specific
64+
dashboard/.svelte-kit/
65+
dashboard/build/
66+
dashboard/mockups/
67+
5768
# Docs-specific
5869
docs/.astro/
5970

CLAUDE.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# CodeForge Monorepo
22

3-
This repository contains three packages. Each package manages its own dependencies independently.
3+
This repository contains four packages. Each package manages its own dependencies independently.
44

55
## Packages
66

@@ -9,6 +9,7 @@ This repository contains three packages. Each package manages its own dependenci
99
| `container/` | Node.js | npm |
1010
| `cli/` | Bun | bun |
1111
| `docs/` | Node.js | npm |
12+
| `dashboard/` | Bun | npm (frontend) / bun (server) |
1213

1314
## Development Rules
1415

@@ -26,6 +27,7 @@ Each package has its own `CLAUDE.md` with package-specific development rules:
2627
- [`container/CLAUDE.md`](container/CLAUDE.md) — changelog, documentation, and configuration rules for the devcontainer package
2728
- `cli/` — Bun/TypeScript CLI; run `bun test` for tests
2829
- `docs/` — Astro/Starlight site; run `npm run build` to verify
30+
- [`dashboard/CLAUDE.md`](dashboard/CLAUDE.md) | [`dashboard/README.md`](dashboard/README.md) — Svelte 5 SPA + Bun backend for session analytics
2931

3032
### Cross-Package Changes
3133

@@ -39,3 +41,21 @@ Run tests for each affected package before committing:
3941
- **Container**: `cd container && npm test`
4042
- **CLI**: `cd cli && bun test`
4143
- **Docs**: `cd docs && npm run build`
44+
- **Dashboard**: `cd dashboard && bun test`
45+
46+
### Dashboard vs CLI
47+
48+
The `dashboard/` and `cli/` packages serve different audiences:
49+
50+
- **CLI** (`codeforge` command) — terminal-first, text/JSON output, scriptable,
51+
runs inside or outside the container. Features: session search, task search/list/show,
52+
plan search, plugin management, index/config commands.
53+
- **Dashboard** (Svelte 5 SPA) — visual analytics, charts, expandable detail views,
54+
real-time SSE updates. Features: session browsing with conversation replay,
55+
task/plan/agent/memory views, project analytics, cost tracking.
56+
57+
When adding a new data view:
58+
- If it's browsable/visual (tables, charts, detail drill-down) → dashboard
59+
- If it's scriptable/automatable (piped output, filters, JSON) → CLI
60+
- If it's both → implement in both, but don't import CLI as a dashboard dependency.
61+
Fork patterns instead.

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Monorepo for CodeForge — an AI-powered development environment for Claude Code
88
|---------|-------------|---------|
99
| [`container/`](container/) | CodeForge DevContainer (`codeforge-dev` on npm) | 2.0.0 |
1010
| [`cli/`](cli/) | CodeForge CLI (`codeforge-cli`) | 0.1.0 |
11+
| [`dashboard/`](dashboard/) | Session analytics dashboard (Svelte 5 SPA + Bun backend) ||
1112
| [`docs/`](docs/) | Documentation site ([codeforge.core-directive.com](https://codeforge.core-directive.com)) ||
1213

1314
## Quick Start
@@ -30,6 +31,9 @@ cd container && npm test
3031
# CLI (Bun)
3132
cd cli && bun test
3233

34+
# Dashboard (Bun)
35+
cd dashboard && bun test
36+
3337
# Docs (npm)
3438
cd docs && npm run build
3539
```

cli/README.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# CodeForge CLI
2+
3+
CLI for CodeForge development workflows. Manages sessions, plugins, configuration, codebase indexing, and devcontainers.
4+
5+
> **Experimental** — v0.1.0. Ships with CodeForge v2.1.1.
6+
7+
## Install
8+
9+
```bash
10+
npm install -g codeforge-dev-cli
11+
```
12+
13+
Requires [Bun](https://bun.sh) runtime.
14+
15+
## Usage
16+
17+
```bash
18+
codeforge <command> [options]
19+
```
20+
21+
### Global Options
22+
23+
| Flag | Description |
24+
|------|-------------|
25+
| `--local` | Run against the host filesystem (skip container proxy) |
26+
| `--container <name>` | Target a specific container by name |
27+
28+
When run outside a devcontainer, commands auto-proxy into the running CodeForge container. Use `--local` to bypass.
29+
30+
## Commands
31+
32+
### `codeforge session` — Session History
33+
34+
```bash
35+
codeforge session search "query" # Search session history
36+
codeforge session list # List recent sessions
37+
codeforge session show <id> # Show session details
38+
```
39+
40+
### `codeforge task` — Task Management
41+
42+
```bash
43+
codeforge task search "query" # Search tasks across sessions
44+
codeforge task list # List tasks
45+
codeforge task show <id> # Show task details
46+
```
47+
48+
### `codeforge plan` — Plan Search
49+
50+
```bash
51+
codeforge plan search "query" # Search plans across sessions
52+
```
53+
54+
### `codeforge plugin` — Plugin Management
55+
56+
```bash
57+
codeforge plugin list # List installed plugins
58+
codeforge plugin show <name> # Show plugin details
59+
codeforge plugin enable <name> # Enable a plugin
60+
codeforge plugin disable <name> # Disable a plugin
61+
codeforge plugin hooks [name] # Show hooks (all or per-plugin)
62+
codeforge plugin agents [name] # Show agents (all or per-plugin)
63+
codeforge plugin skills [name] # Show skills (all or per-plugin)
64+
```
65+
66+
### `codeforge config` — Configuration
67+
68+
```bash
69+
codeforge config show # Show current configuration
70+
codeforge config apply # Deploy config files to ~/.claude/
71+
```
72+
73+
### `codeforge index` — Codebase Index
74+
75+
```bash
76+
codeforge index build # Build symbol index for current project
77+
codeforge index search "query" # Search the symbol index
78+
codeforge index show <symbol> # Show symbol details
79+
codeforge index stats # Index statistics
80+
codeforge index tree # Symbol tree view
81+
codeforge index clean # Remove index data
82+
```
83+
84+
### `codeforge container` — Devcontainer Management
85+
86+
These commands always run on the host (never proxied).
87+
88+
```bash
89+
codeforge container up # Start the devcontainer
90+
codeforge container down # Stop the devcontainer
91+
codeforge container rebuild # Rebuild the devcontainer
92+
codeforge container exec <cmd> # Execute a command in the container
93+
codeforge container ls # List running containers
94+
codeforge container shell # Open a shell in the container
95+
```
96+
97+
## License
98+
99+
GPL-3.0 — see [LICENSE](../LICENSE.txt).

cli/bun.lock

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cli/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
"homepage": "https://github.com/AnExiledDev/CodeForge/tree/main/cli#readme",
4848
"files": [
4949
"dist/",
50-
"prompts/",
5150
"README.md"
5251
],
5352
"bugs": {

0 commit comments

Comments
 (0)