Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: CI

on:
push:
branches: [main]
pull_request:

jobs:
test:
name: test (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]

steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm run release:check-assets
- run: pnpm test
- run: pnpm run compile:cli
- run: pnpm run benchmark:smoke
- run: pnpm run eval:smoke
28 changes: 28 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Release

on:
push:
tags:
- 'v*'

jobs:
package:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm run compile
- run: pnpm exec vsce package
- name: Generate release notes
run: node dist/cli.js changelog > release-notes.md
- uses: softprops/action-gh-release@v2
with:
body_path: release-notes.md
files: '*.vsix'
22 changes: 21 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,24 @@ dist/
.thunder V2/
.mitii
project-goals/
mitii-debug-logs/
mitii-debug-logs/

# Benchmark / eval runtime (local generation and reports)
tools/benchmark/tasks/eval/generated/
tools/benchmark/tasks/eval/generated-smoke/
tools/benchmark/results/

# Fixture sandboxes — deps, builds, Mitii session state
tools/benchmark/fixtures/**/.mitii/
tools/benchmark/fixtures/**/.next/
tools/benchmark/fixtures/**/dist/
tools/benchmark/fixtures/**/node_modules/
tools/benchmark/fixtures/**/package-lock.json
tools/benchmark/fixtures/**/pnpm-lock.yaml

# Agent-created during eval (not part of pinned fixture baseline)
tools/benchmark/fixtures/**/docs/
tools/benchmark/fixtures/**/index.html
tools/benchmark/fixtures/**/src/index.css
tools/benchmark/fixtures/**/src/main.ts
tools/benchmark/fixtures/**/src/main.tsx
3 changes: 3 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# vsce runs `npm list` to resolve production dependencies; pnpm's default
# isolated linker hoists transitive packages that npm treats as extraneous.
node-linker=hoisted
2 changes: 1 addition & 1 deletion .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
{
"label": "thunder: rebuild native",
"type": "shell",
"command": "npm run rebuild:native",
"command": "pnpm run rebuild:native",
"problemMatcher": [],
"presentation": { "reveal": "always", "panel": "shared" }
},
Expand Down
4 changes: 3 additions & 1 deletion .vscodeignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ scripts/**
.gitignore
.vscodeignore
package-lock.json
pnpm-lock.yaml
tsconfig.json
vite.config.ts
vitest.config.ts
Expand All @@ -26,4 +27,5 @@ vitest.config.ts

!dist/**
!media/**
!bundled-skills/**

tools/benchmark/**
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Changelog

## [Unreleased]

## [2.7.17] - 2026-07-02

### Added
- Implemented the backlog end-to-end across the repo. What changed: Added diff-first micro-task routing for commit messages, changelog entries, and release notes. Unified SCM commit message generation through the new micro-task executor. Added changelog/release generation core, VS Code commands, CHANGELOG.md, and CI release workflow. Added one-click audit pack export with zip generation, redaction report, manifest, tool audit, and approvals. Improved reasoning stream UI: live reveal, no 1200-char hard cap, configurable visibility/preview size. Added enterprise settings/docs for local-only providers, audit redaction, procurement/security/compliance. Added Windows path hardening, Windows CI matrix, and Windows smoke checklist. Added CLI MVP for changelog, prepare-release, and export-audit. Updated README with the new enterprise, audit, release, CLI, and reasoning features. Added focused tests for all new core implementations. (8a00fd537ef2)
- add AWS Bedrock, Azure OpenAI, and OpenRouter provider support (cac73bc1a9a7)
- **modes:** add pilot and enterprise depth levels to Ask, Plan, and Act modes (ca3d2daf6375)
- **orchestrator:** add planning clarification question flow with resume support (0d052937fb8e)
- auto-discover verify commands, add retry with install, cap sequential-thinking calls (6786a1d904fe)
- improve plan step UI, add skipped tool handling, and strip channel markers (d65a81752037)
- add GitHub token setting and improve issue comment pagination (7c8e53d68036)
- Implemented the core folder structure migration safely. (017ddd4d0766)
- auto-fetch GitHub issue context when user pastes an issue URL (1f0b368dfb50)
- add retrieval timing metrics, repeated tool failure guard, and Act mode MCP exclusions (dda2e8f38881)
- add Act orchestration boundary for Agent mode execution (0620f2e55902)
- **docs:** update README with enhanced project description, features, and usage instructions (920bf12f6f38)
- **plan:** add skill-aware planning pipeline with phased PlanPanel UI (e23f19d9e929)
- bundle skill playbooks inside extension and auto-install on workspace init (07a83238eb87)
- add planDepth setting and skill frontmatter parsing (d77ed8f6062f)
- **plan-mode:** add Plan mode orchestration with intent routing and read-only grounding (14372af57d12)
- **core:** add file read caching and parallelize read files tool (95dee1dbc8ac)
- **scm:** add AI-generated commit messages and ask-mode depth controls (8ea94111e43f)
- **ask:** add structured ask mode with intent routing, scope resolution, and impact analysis (aa2660f9ef3d)

### Changed
- add project-goals entry to .gitignore configuration (81ecf0da086c)
- Merge branch 'main' of https://github.com/codewithshinde/thunder-ai-agent (957469705bc4)
- **tools:** remove unused resolveToolDirPath and related imports (44a3dd3d0a8c)
65 changes: 40 additions & 25 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ For bugs and feature ideas, open an [issue](https://github.com/codewithshinde/th
|------|---------|
| VS Code | 1.85+ (or Cursor, with native rebuild noted below) |
| Node.js | 20+ |
| npm | 9+ (ships with Node 20) |
| pnpm | 10.13+ |
| git | any recent version |

Optional but useful for full feature coverage:
Expand All @@ -36,12 +36,12 @@ Optional but useful for full feature coverage:
```bash
git clone https://github.com/codewithshinde/thunder-ai-agent.git
cd thunder-ai-agent
npm install
npm run rebuild:native # required for better-sqlite3 in VS Code
npm run compile
pnpm install
pnpm run rebuild:native # required for better-sqlite3 in VS Code
pnpm run compile
```

Git hooks are installed automatically via `npm install` `prepare` `scripts/install-git-hooks.mjs`. The pre-commit hook stages version bumps from `scripts/bump-version.mjs`.
Git hooks are installed automatically via `pnpm install` -> `prepare` -> `scripts/install-git-hooks.mjs`. The pre-commit hook stages version bumps from `scripts/bump-version.mjs`.

### Launch the extension

Expand All @@ -53,7 +53,7 @@ Git hooks are installed automatically via `npm install` → `prepare` → `scrip
### Watch mode (day-to-day dev)

```bash
npm run watch
pnpm run watch
```

Rebuilds the extension bundle and webview on save. Reload the Extension Development Host window after extension-side changes (`Ctrl/Cmd+R` in the host window, or restart the debug session).
Expand All @@ -63,7 +63,7 @@ Rebuilds the extension bundle and webview on save. Reload the Extension Developm
## Project layout

```
thunder-ai-agent/
mitii-ai-agent/
├── src/
│ ├── extension.ts # VS Code entry point
│ ├── core/ # Agent logic (editor-agnostic)
Expand All @@ -89,7 +89,9 @@ thunder-ai-agent/
│ └── src/
├── test/ # Vitest tests
├── scripts/ # Build, audit, hook helpers
├── tools/benchmark/ # @mitii/benchmark — fixtures, enterprise + eval harness
├── dist/ # Compiled output (gitignored)
├── pnpm-workspace.yaml # Workspace: tools/*
└── package.json # Extension manifest + settings schema
```

Expand All @@ -100,7 +102,20 @@ thunder-ai-agent/

Scaffolds may exist at `mitii-docs/` and `mitii-website/` in this tree while you split them out. Brand constants: `src/shared/brand.ts` (sync with each repo's `brand.ts`).

**Rule of thumb:** keep VS Code APIs out of `src/core/`. Core should be testable without launching an editor. Put platform glue in `src/vscode/`.
**Rule of thumb:** keep VS Code APIs out of `src/core/`. Core should be testable without launching an editor. Put platform glue in `src/vscode/`. Keep benchmark and eval in `tools/benchmark/` — they are not extension runtime code.

### Benchmark and eval

```bash
pnpm run compile:cli
pnpm run benchmark:smoke
pnpm run eval:preflight # before real-runtime eval
pnpm run eval:generate
pnpm run eval:standard -- --provider openai-compatible \
--base-url http://localhost:11434/v1 --model qwen3-coder:30b --limit 50
```

See [tools/benchmark/README.md](tools/benchmark/README.md) for sharded runs, Ollama matrix, and Inspect AI.

---

Expand All @@ -109,23 +124,23 @@ Scaffolds may exist at `mitii-docs/` and `mitii-website/` in this tree while you
### Run tests

```bash
npm run rebuild:node # if better-sqlite3 fails under vitest
npm test # full suite
npm run test:watch # watch mode
npm run smoke # smoke tests only
pnpm run rebuild:node # if better-sqlite3 fails under vitest
pnpm test # full suite
pnpm run test:watch # watch mode
pnpm run smoke # smoke tests only
```

### Typecheck

```bash
npm run lint # tsc --noEmit
pnpm run lint # tsc --noEmit
```

### Build a VSIX

```bash
npm run compile
npm run package # outputs thunder-ai-agent-<version>.vsix
pnpm run compile
pnpm run package # outputs thunder-ai-agent-<version>.vsix
```

Install locally: **Extensions → ... → Install from VSIX**.
Expand All @@ -134,20 +149,20 @@ Install locally: **Extensions → ... → Install from VSIX**.

| Scenario | Command |
|----------|---------|
| F5 / VS Code extension host | `npm run rebuild:native` |
| Cursor extension host | `THUNDER_EDITOR=cursor npm run rebuild:native` |
| Local vitest | `npm run rebuild:node` |
| Both | `npm run rebuild:all` |
| F5 / VS Code extension host | `pnpm run rebuild:native` |
| Cursor extension host | `THUNDER_EDITOR=cursor pnpm run rebuild:native` |
| Local vitest | `pnpm run rebuild:node` |
| Both | `pnpm run rebuild:all` |

If SQLite throws on startup, this is almost always the fix.

### Audit scripts

```bash
npm run audit:dependencies
npm run audit:dead-code
npm run check:circular-deps
npm run audit:engines
pnpm run audit:dependencies
pnpm run audit:dead-code
pnpm run check:circular-deps
pnpm run audit:engines
```

These are useful before large refactors. Not required on every PR, but run them if you touch imports or dependencies.
Expand All @@ -174,7 +189,7 @@ The pre-commit hook may stage a version bump in `package.json`. Include that in

### Code style

- TypeScript strict mode — `npm run lint` must pass
- TypeScript strict mode - `pnpm run lint` must pass
- Match surrounding patterns: no drive-by refactors in unrelated files
- Logging via `createLogger('ComponentName')` from `src/core/telemetry/Logger.ts`, not raw `console.log`
- New VS Code settings go in `package.json` contributes **and** `src/core/config/schema.ts` **and** `src/core/config/vscodeSettings.ts`
Expand All @@ -200,7 +215,7 @@ The pre-commit hook may stage a version bump in `package.json`. Include that in

1. Fork and branch from `main`
2. Make your change; keep the diff focused
3. Run `npm run lint` and `npm test`
3. Run `pnpm run lint` and `pnpm test`
4. Manually smoke-test in the Extension Development Host if you touched agent behavior or UI
5. Open a PR against `main` with:
- What changed and why (2–4 sentences is fine)
Expand Down
Loading
Loading