Skip to content

Commit 3b46420

Browse files
Dchuong03claude
andcommitted
Initial release v0.3.0
Knowledge-powered AI coding assistant. Structured project knowledge, impact analysis, and governance for Claude Code. - Knowledge system with AI auto-bootstrap - Impact analysis for change risk assessment - Task management with governance and quality gates - Ticket queue for external issue intake - Training room for lessons-learned capture - Desktop app (Tauri 2.x + React) - MCP server with 25+ tools - CLI for project initialization and management - REST API server Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
0 parents  commit 3b46420

537 files changed

Lines changed: 147171 additions & 0 deletions

File tree

Some content is hidden

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

.env.example

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# SidStack Environment Configuration
2+
3+
# API Server
4+
API_PORT=19432
5+
NODE_ENV=development
6+
7+
# Web UI (Vite)
8+
VITE_API_URL=http://localhost:19432
9+
10+
# Database (SQLite - auto-created in ~/.sidstack/)
11+
# No configuration needed - uses ~/.sidstack/sidstack.db by default
12+
13+
# Logging
14+
LOG_LEVEL=info

.eslintrc.json

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"root": true,
3+
"parser": "@typescript-eslint/parser",
4+
"parserOptions": {
5+
"ecmaVersion": 2022,
6+
"sourceType": "module"
7+
},
8+
"plugins": ["@typescript-eslint", "import"],
9+
"extends": [
10+
"eslint:recommended",
11+
"plugin:@typescript-eslint/recommended",
12+
"plugin:import/recommended",
13+
"plugin:import/typescript",
14+
"prettier"
15+
],
16+
"rules": {
17+
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_", "varsIgnorePattern": "^_", "destructuredArrayIgnorePattern": "^_" }],
18+
"import/default": "off",
19+
"@typescript-eslint/explicit-function-return-type": "off",
20+
"@typescript-eslint/no-explicit-any": "warn",
21+
"import/order": [
22+
"error",
23+
{
24+
"groups": ["builtin", "external", "internal", "parent", "sibling", "index"],
25+
"newlines-between": "always",
26+
"alphabetize": { "order": "asc" }
27+
}
28+
]
29+
},
30+
"settings": {
31+
"import/resolver": {
32+
"typescript": true,
33+
"node": true
34+
}
35+
},
36+
"ignorePatterns": ["dist", "node_modules", "coverage", "*.js"]
37+
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Bug Report
2+
description: Report a bug in SidStack
3+
labels: ["bug"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for reporting a bug. Please fill out the sections below.
9+
10+
- type: textarea
11+
id: description
12+
attributes:
13+
label: Description
14+
description: A clear description of the bug.
15+
placeholder: What happened?
16+
validations:
17+
required: true
18+
19+
- type: textarea
20+
id: steps
21+
attributes:
22+
label: Steps to Reproduce
23+
description: Steps to reproduce the behavior.
24+
placeholder: |
25+
1. Go to '...'
26+
2. Click on '...'
27+
3. See error
28+
validations:
29+
required: true
30+
31+
- type: textarea
32+
id: expected
33+
attributes:
34+
label: Expected Behavior
35+
description: What you expected to happen.
36+
validations:
37+
required: true
38+
39+
- type: textarea
40+
id: actual
41+
attributes:
42+
label: Actual Behavior
43+
description: What actually happened.
44+
validations:
45+
required: true
46+
47+
- type: dropdown
48+
id: os
49+
attributes:
50+
label: Operating System
51+
options:
52+
- macOS (Apple Silicon)
53+
- macOS (Intel)
54+
- Windows
55+
- Linux
56+
validations:
57+
required: true
58+
59+
- type: input
60+
id: version
61+
attributes:
62+
label: SidStack Version
63+
description: Run `sidstack --version` or check Settings.
64+
placeholder: "0.1.0"
65+
validations:
66+
required: true
67+
68+
- type: textarea
69+
id: screenshots
70+
attributes:
71+
label: Screenshots
72+
description: If applicable, add screenshots to help explain the issue.
73+
validations:
74+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Documentation
4+
url: https://sidstack.dev/docs
5+
about: Check the docs before opening an issue
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Feature Request
2+
description: Suggest a new feature or improvement
3+
labels: ["enhancement"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for suggesting a feature. Please describe the problem and your proposed solution.
9+
10+
- type: textarea
11+
id: problem
12+
attributes:
13+
label: Problem Description
14+
description: What problem does this feature solve?
15+
placeholder: I'm always frustrated when...
16+
validations:
17+
required: true
18+
19+
- type: textarea
20+
id: solution
21+
attributes:
22+
label: Proposed Solution
23+
description: Describe the solution you'd like.
24+
validations:
25+
required: true
26+
27+
- type: textarea
28+
id: alternatives
29+
attributes:
30+
label: Alternatives Considered
31+
description: Any alternative solutions or features you've considered.
32+
validations:
33+
required: false
34+
35+
- type: textarea
36+
id: context
37+
attributes:
38+
label: Additional Context
39+
description: Any other context, screenshots, or references.
40+
validations:
41+
required: false

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## Summary
2+
3+
<!-- Brief description of the changes -->
4+
5+
## Type of Change
6+
7+
- [ ] Bug fix
8+
- [ ] New feature
9+
- [ ] Breaking change
10+
- [ ] Documentation update
11+
- [ ] Refactor / chore
12+
13+
## Checklist
14+
15+
- [ ] `pnpm typecheck` passes
16+
- [ ] `pnpm test` passes
17+
- [ ] Documentation updated (if applicable)
18+
- [ ] No new warnings or errors in console

.github/workflows/ci.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
check:
11+
name: Typecheck & Lint
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- uses: pnpm/action-setup@v4
17+
18+
- uses: actions/setup-node@v4
19+
with:
20+
node-version: 20
21+
cache: pnpm
22+
23+
- run: pnpm install --frozen-lockfile
24+
25+
- name: Build packages
26+
run: pnpm packages:build
27+
28+
- name: Typecheck
29+
run: pnpm typecheck
30+
31+
test:
32+
name: Tests
33+
runs-on: ubuntu-latest
34+
needs: check
35+
steps:
36+
- uses: actions/checkout@v4
37+
38+
- uses: pnpm/action-setup@v4
39+
40+
- uses: actions/setup-node@v4
41+
with:
42+
node-version: 20
43+
cache: pnpm
44+
45+
- run: pnpm install --frozen-lockfile
46+
47+
- name: Build packages
48+
run: pnpm packages:build
49+
50+
- name: Run tests
51+
run: pnpm test
52+
53+
build:
54+
name: Build Desktop App
55+
runs-on: ubuntu-latest
56+
needs: check
57+
steps:
58+
- uses: actions/checkout@v4
59+
60+
- uses: pnpm/action-setup@v4
61+
62+
- uses: actions/setup-node@v4
63+
with:
64+
node-version: 20
65+
cache: pnpm
66+
67+
- run: pnpm install --frozen-lockfile
68+
69+
- name: Build Vite
70+
run: pnpm build

.github/workflows/npm-publish.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Publish to npm
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
publish:
9+
name: Publish Packages
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: read
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- uses: pnpm/action-setup@v4
17+
18+
- uses: actions/setup-node@v4
19+
with:
20+
node-version: 20
21+
cache: pnpm
22+
registry-url: https://registry.npmjs.org
23+
24+
- run: pnpm install --frozen-lockfile
25+
26+
- name: Build packages
27+
run: pnpm packages:build
28+
29+
- name: Publish @sidstack/shared
30+
run: pnpm --filter @sidstack/shared publish --no-git-checks
31+
env:
32+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
33+
34+
- name: Publish @sidstack/api-server
35+
run: pnpm --filter @sidstack/api-server publish --no-git-checks
36+
env:
37+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
38+
39+
- name: Publish @sidstack/mcp-server
40+
run: pnpm --filter @sidstack/mcp-server publish --no-git-checks
41+
env:
42+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
43+
44+
- name: Publish @sidstack/cli
45+
run: pnpm --filter @sidstack/cli publish --no-git-checks
46+
env:
47+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

.github/workflows/release.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
jobs:
9+
release:
10+
strategy:
11+
matrix:
12+
include:
13+
- target: aarch64-apple-darwin
14+
runner: macos-latest
15+
- target: x86_64-apple-darwin
16+
runner: macos-15-intel
17+
18+
name: Build (${{ matrix.target }})
19+
runs-on: ${{ matrix.runner }}
20+
permissions:
21+
contents: write
22+
23+
steps:
24+
- uses: actions/checkout@v4
25+
26+
- uses: pnpm/action-setup@v4
27+
28+
- uses: actions/setup-node@v4
29+
with:
30+
node-version: 20
31+
cache: pnpm
32+
33+
- run: pnpm install --frozen-lockfile
34+
35+
- name: Install Rust stable
36+
uses: dtolnay/rust-toolchain@stable
37+
with:
38+
targets: ${{ matrix.target }}
39+
40+
- uses: Swatinem/rust-cache@v2
41+
with:
42+
workspaces: src-tauri
43+
44+
- name: Build packages
45+
run: pnpm packages:build
46+
47+
- name: Build Tauri app
48+
uses: tauri-apps/tauri-action@v0
49+
env:
50+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
51+
with:
52+
tagName: ${{ github.ref_name }}
53+
releaseName: "SidStack ${{ github.ref_name }}"
54+
releaseBody: "See the [CHANGELOG](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md) for details."
55+
releaseDraft: true
56+
prerelease: false
57+
args: --target ${{ matrix.target }}

0 commit comments

Comments
 (0)