Skip to content

Commit 0772395

Browse files
Rebrand
1 parent 6617a34 commit 0772395

33 files changed

Lines changed: 624 additions & 562 deletions

.vscode-test.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { tmpdir } from 'os';
44
import { join } from 'path';
55

66
// Copy fixtures to a temp directory so tests run in full isolation
7-
const testWorkspace = mkdtempSync(join(tmpdir(), 'tasktree-test-'));
7+
const testWorkspace = mkdtempSync(join(tmpdir(), 'commandtree-test-'));
88
cpSync('./src/test/fixtures/workspace', testWorkspace, { recursive: true });
99

1010
export default defineConfig({

.vscode/commandtree.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"tags": {
3+
"quick": [
4+
"npm:/Users/christianfindlay/Documents/Code/TaskTree/package.json:build-and-install"
5+
],
6+
"build": [
7+
"npm:/Users/christianfindlay/Documents/Code/TaskTree/package.json:build-and-install"
8+
]
9+
}
10+
}

.vscode/launch.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "0.2.0",
44
"configurations": [
55
{
6-
"name": "Run TaskTree Extension",
6+
"name": "Run CommandTree Extension",
77
"type": "extensionHost",
88
"request": "launch",
99
"args": [

Claude.md

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
# CLAUDE.md - TaskTree Extension
1+
# CLAUDE.md - CommandTree Extension
22

33
## Too Many Cooks
44

5-
- Don't use too many cooks right now
5+
You are working with many other agents. Make sure there is effective cooperation
6+
- Register on TMC immediately
7+
- Don't edit files that are locked; lock files when editing
8+
- COMMUNICATE REGULARLY AND COORDINATE WITH OTHERS THROUGH MESSAGES
69

710
## Coding Rules
811

@@ -44,8 +47,8 @@ Only test the UI **THROUGH the UI**. Do not run command etc. to coerce the state
4447
* - ❌ Calling provider.refresh() directly
4548
* - ❌ Manipulating internal state directly
4649
* - ❌ Using any method not exposed via VS Code commands
47-
* - ❌ Using commands that should just happen as part of normal use. e.g.: `await vscode.commands.executeCommand('tasktree.refresh');`
48-
* -`executeCommand('tasktree.addToQuick', item)` - TAP the item via the DOM!!!
50+
* - ❌ Using commands that should just happen as part of normal use. e.g.: `await vscode.commands.executeCommand('commandtree.refresh');`
51+
* -`executeCommand('commandtree.addToQuick', item)` - TAP the item via the DOM!!!
4952

5053
### Test First Process
5154
- Write test that fails because of bug/missing feature
@@ -90,12 +93,12 @@ assert.ok(true, 'Command ran');
9093
## Project Structure
9194

9295
```
93-
TaskTree/
96+
CommandTree/
9497
├── src/
9598
│ ├── extension.ts # Entry point, command registration
96-
│ ├── TaskTreeProvider.ts # TreeDataProvider implementation
99+
│ ├── CommandTreeProvider.ts # TreeDataProvider implementation
97100
│ ├── config/
98-
│ │ └── TagConfig.ts # Tag configuration from tasktree.json
101+
│ │ └── TagConfig.ts # Tag configuration from commandtree.json
99102
│ ├── discovery/
100103
│ │ ├── index.ts # Discovery orchestration
101104
│ │ ├── shell.ts # Shell script discovery
@@ -119,14 +122,14 @@ TaskTree/
119122

120123
| Command ID | Description |
121124
|------------|-------------|
122-
| `tasktree.refresh` | Reload all tasks |
123-
| `tasktree.run` | Run task in new terminal |
124-
| `tasktree.runInCurrentTerminal` | Run in active terminal |
125-
| `tasktree.debug` | Launch with debugger |
126-
| `tasktree.filter` | Text filter input |
127-
| `tasktree.filterByTag` | Tag filter picker |
128-
| `tasktree.clearFilter` | Clear all filters |
129-
| `tasktree.editTags` | Open tasktree.json |
125+
| `commandtree.refresh` | Reload all tasks |
126+
| `commandtree.run` | Run task in new terminal |
127+
| `commandtree.runInCurrentTerminal` | Run in active terminal |
128+
| `commandtree.debug` | Launch with debugger |
129+
| `commandtree.filter` | Text filter input |
130+
| `commandtree.filterByTag` | Tag filter picker |
131+
| `commandtree.clearFilter` | Clear all filters |
132+
| `commandtree.editTags` | Open commandtree.json |
130133

131134
## Build Commands
132135

@@ -137,7 +140,7 @@ See [text](package.json)
137140
1. Create discovery module in `src/discovery/`
138141
2. Export discovery function: `discoverXxxTasks(root: string, excludes: string[]): Promise<TaskItem[]>`
139142
3. Add to `discoverAllTasks()` in `src/discovery/index.ts`
140-
4. Add category in `TaskTreeProvider.buildRootCategories()`
143+
4. Add category in `CommandTreeProvider.buildRootCategories()`
141144
5. Handle execution in `TaskRunner.run()`
142145
6. Add E2E tests in `src/test/suite/discovery.test.ts`
143146

@@ -146,7 +149,7 @@ See [text](package.json)
146149
```typescript
147150
// Register command
148151
context.subscriptions.push(
149-
vscode.commands.registerCommand('tasktree.xxx', handler)
152+
vscode.commands.registerCommand('commandtree.xxx', handler)
150153
);
151154

152155
// File watcher
@@ -155,18 +158,18 @@ watcher.onDidChange(() => refresh());
155158
context.subscriptions.push(watcher);
156159

157160
// Tree view
158-
const treeView = vscode.window.createTreeView('tasktree', {
161+
const treeView = vscode.window.createTreeView('commandtree', {
159162
treeDataProvider: provider,
160163
showCollapseAll: true
161164
});
162165

163166
// Context for when clauses
164-
vscode.commands.executeCommand('setContext', 'tasktree.hasFilter', true);
167+
vscode.commands.executeCommand('setContext', 'commandtree.hasFilter', true);
165168
```
166169

167170
## Configuration
168171

169172
Settings defined in `package.json` under `contributes.configuration`:
170-
- `tasktree.excludePatterns` - Glob patterns to exclude
171-
- `tasktree.showEmptyCategories` - Show empty category nodes
172-
- `tasktree.sortOrder` - Task sort order (folder/name/type)
173+
- `commandtree.excludePatterns` - Glob patterns to exclude
174+
- `commandtree.showEmptyCategories` - Show empty category nodes
175+
- `commandtree.sortOrder` - Task sort order (folder/name/type)

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
# TaskTree
1+
# CommandTree
22

33
One sidebar. Every task in your workspace.
44

5-
TaskTree scans your project and surfaces all runnable tasks in a single tree view: shell scripts, npm scripts, Makefile targets, VS Code tasks, launch configurations, and Python scripts. Filter by text or tag, run in terminal or debugger.
5+
CommandTree scans your project and surfaces all runnable tasks in a single tree view: shell scripts, npm scripts, Makefile targets, VS Code tasks, launch configurations, and Python scripts. Filter by text or tag, run in terminal or debugger.
66

77
## Features
88

99
- **Auto-discovery** - Shell scripts (`.sh`, `.bash`, `.zsh`), npm scripts, Makefile targets, VS Code tasks, launch configurations, and Python scripts
1010
- **Quick Tasks** - Pin frequently-used tasks to a dedicated panel at the top
11-
- **Tagging** - Auto-tag tasks by type, label, or exact ID using pattern rules in `.vscode/tasktree.json`
11+
- **Tagging** - Auto-tag tasks by type, label, or exact ID using pattern rules in `.vscode/commandtree.json`
1212
- **Filtering** - Filter the tree by text search or by tag
1313
- **Run anywhere** - Execute in a new terminal, the current terminal, or launch with the debugger
1414
- **Folder grouping** - Tasks grouped by directory with collapsible nested hierarchy
@@ -33,10 +33,10 @@ Install from the VS Code Marketplace, or from source:
3333
```bash
3434
npm install
3535
npm run package
36-
code --install-extension tasktree-*.vsix
36+
code --install-extension commandtree-*.vsix
3737
```
3838

39-
Open a workspace and the TaskTree panel appears in the sidebar. All discovered tasks are listed by category.
39+
Open a workspace and the CommandTree panel appears in the sidebar. All discovered tasks are listed by category.
4040

4141
## Usage
4242

@@ -46,18 +46,18 @@ Open a workspace and the TaskTree panel appears in the sidebar. All discovered t
4646
- **Star a task** - Click the star icon to pin it to Quick Tasks
4747
- **Filter** - Use the toolbar icons to filter by text or tag
4848
- **Tag tasks** - Right-click > "Add Tag" to group related tasks
49-
- **Edit tags** - Configure auto-tagging patterns in `.vscode/tasktree.json`
49+
- **Edit tags** - Configure auto-tagging patterns in `.vscode/commandtree.json`
5050

5151
## Settings
5252

5353
| Setting | Description | Default |
5454
|---------|-------------|---------|
55-
| `tasktree.excludePatterns` | Glob patterns to exclude from discovery | `**/node_modules/**`, `**/.git/**`, etc. |
56-
| `tasktree.sortOrder` | Sort tasks by `folder`, `name`, or `type` | `folder` |
55+
| `commandtree.excludePatterns` | Glob patterns to exclude from discovery | `**/node_modules/**`, `**/.git/**`, etc. |
56+
| `commandtree.sortOrder` | Sort tasks by `folder`, `name`, or `type` | `folder` |
5757

5858
## Tag Configuration
5959

60-
Create `.vscode/tasktree.json` to define tag patterns:
60+
Create `.vscode/commandtree.json` to define tag patterns:
6161

6262
```json
6363
{

SPEC.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# TaskTree Specification
1+
# CommandTree Specification
22

33
## Table of Contents
44

@@ -41,12 +41,12 @@
4141
## Overview
4242
**overview**
4343

44-
TaskTree scans a VS Code workspace and surfaces all runnable tasks in a single tree view sidebar panel. It discovers shell scripts, npm scripts, Makefile targets, VS Code tasks, launch configurations, etc then presents them in a categorized, filterable tree.
44+
CommandTree scans a VS Code workspace and surfaces all runnable tasks in a single tree view sidebar panel. It discovers shell scripts, npm scripts, Makefile targets, VS Code tasks, launch configurations, etc then presents them in a categorized, filterable tree.
4545

4646
## Task Discovery
4747
**task-discovery**
4848

49-
TaskTree recursively scans the workspace for runnable tasks grouped by type. Discovery respects exclude patterns configured in settings. It does this in the background on low priority.
49+
CommandTree recursively scans the workspace for runnable tasks grouped by type. Discovery respects exclude patterns configured in settings. It does this in the background on low priority.
5050

5151
### Shell Scripts
5252
**task-discovery/shell-scripts**
@@ -86,22 +86,22 @@ Tasks can be executed three ways via inline buttons or context menu.
8686
### Run in New Terminal
8787
**task-execution/new-terminal**
8888

89-
Opens a new VS Code terminal and runs the task command. Triggered by the play button or `tasktree.run` command.
89+
Opens a new VS Code terminal and runs the task command. Triggered by the play button or `commandtree.run` command.
9090

9191
### Run in Current Terminal
9292
**task-execution/current-terminal**
9393

94-
Sends the task command to the currently active terminal. Triggered by the circle-play button or `tasktree.runInCurrentTerminal` command.
94+
Sends the task command to the currently active terminal. Triggered by the circle-play button or `commandtree.runInCurrentTerminal` command.
9595

9696
### Debug
9797
**task-execution/debug**
9898

99-
Launches the task using the VS Code debugger. Only applicable to launch configurations. Triggered by the bug button or `tasktree.debug` command.
99+
Launches the task using the VS Code debugger. Only applicable to launch configurations. Triggered by the bug button or `commandtree.debug` command.
100100

101101
## Quick Tasks
102102
**quick-tasks**
103103

104-
Users can star tasks to pin them in a "Quick Tasks" panel at the top of the tree view. Starred task identifiers are persisted in the `quick` array inside `.vscode/tasktree.json`:
104+
Users can star tasks to pin them in a "Quick Tasks" panel at the top of the tree view. Starred task identifiers are persisted in the `quick` array inside `.vscode/commandtree.json`:
105105

106106
```json
107107
{
@@ -120,7 +120,7 @@ Tags group related tasks for organization and filtering.
120120
### Tag Configuration File
121121
**tagging/config-file**
122122

123-
Tags are defined in `.vscode/tasktree.json` under the `tags` key:
123+
Tags are defined in `.vscode/commandtree.json` under the `tags` key:
124124

125125
```json
126126
{
@@ -154,25 +154,25 @@ This file can be committed to version control to share task organization with a
154154

155155
- **Add tag to task**: Right-click a task > "Add Tag" > select existing or create new
156156
- **Remove tag from task**: Right-click a task > "Remove Tag"
157-
- **Edit tags file directly**: Command Palette > "TaskTree: Edit Tags Configuration"
157+
- **Edit tags file directly**: Command Palette > "CommandTree: Edit Tags Configuration"
158158

159159
## Filtering
160160
**filtering**
161161

162162
### Text Filter
163163
**filtering/text**
164164

165-
Free-text filter via toolbar or `tasktree.filter` command. Matches against task names.
165+
Free-text filter via toolbar or `commandtree.filter` command. Matches against task names.
166166

167167
### Tag Filter
168168
**filtering/tag**
169169

170-
Pick a tag from the toolbar picker (`tasktree.filterByTag`) to show only tasks matching that tag's patterns.
170+
Pick a tag from the toolbar picker (`commandtree.filterByTag`) to show only tasks matching that tag's patterns.
171171

172172
### Clear Filter
173173
**filtering/clear**
174174

175-
Remove all active filters via toolbar button or `tasktree.clearFilter` command.
175+
Remove all active filters via toolbar button or `commandtree.clearFilter` command.
176176

177177
## Parameterized Tasks
178178
**parameterized-tasks**
@@ -197,12 +197,12 @@ All settings are configured via VS Code settings (`Cmd+,` / `Ctrl+,`).
197197
### Exclude Patterns
198198
**settings/exclude-patterns**
199199

200-
`tasktree.excludePatterns` - Glob patterns to exclude from task discovery. Default includes `**/node_modules/**`, `**/.vscode-test/**`, and others.
200+
`commandtree.excludePatterns` - Glob patterns to exclude from task discovery. Default includes `**/node_modules/**`, `**/.vscode-test/**`, and others.
201201

202202
### Sort Order
203203
**settings/sort-order**
204204

205-
`tasktree.sortOrder` - How tasks are sorted within categories:
205+
`commandtree.sortOrder` - How tasks are sorted within categories:
206206

207207
| Value | Description |
208208
|-------|-------------|
@@ -213,12 +213,12 @@ All settings are configured via VS Code settings (`Cmd+,` / `Ctrl+,`).
213213
### Show Empty Categories
214214
**settings/show-empty-categories**
215215

216-
`tasktree.showEmptyCategories` - Whether to display category nodes that contain no discovered tasks.
216+
`commandtree.showEmptyCategories` - Whether to display category nodes that contain no discovered tasks.
217217

218218
## User Data Storage
219219
**user-data-storage**
220220

221-
TaskTree stores workspace-specific data in `.vscode/tasktree.json`. This file is automatically created and updated as you use the extension. It holds both quick task pins and tag definitions.
221+
CommandTree stores workspace-specific data in `.vscode/commandtree.json`. This file is automatically created and updated as you use the extension. It holds both quick task pins and tag definitions.
222222

223223
---
224224

@@ -230,7 +230,7 @@ TaskTree stores workspace-specific data in `.vscode/tasktree.json`. This file is
230230
### Overview
231231
**semantic-search/overview**
232232

233-
TaskTree will use an LLM to generate a plain-language summary of what each discovered script does. These summaries, along with vector embeddings of the script content and summary, are stored in a local database. This enables **semantic search**: users can describe what they want in natural language and find the right script without knowing its exact name or path.
233+
CommandTree will use an LLM to generate a plain-language summary of what each discovered script does. These summaries, along with vector embeddings of the script content and summary, are stored in a local database. This enables **semantic search**: users can describe what they want in natural language and find the right script without knowing its exact name or path.
234234

235235
### LLM Integration
236236
**semantic-search/llm-integration**
@@ -239,9 +239,9 @@ The preferred integration path is **GitHub Copilot** via the VS Code Language Mo
239239

240240
**Opt-in flow:**
241241

242-
1. On first workspace load (or when the user enables the feature), TaskTree shows a simple prompt:
242+
1. On first workspace load (or when the user enables the feature), CommandTree shows a simple prompt:
243243
> *"Would you like to use GitHub Copilot to summarise scripts in your workspace?"*
244-
2. If the user accepts, TaskTree uses `vscode.lm.selectChatModels({ vendor: 'copilot' })` to access a lightweight model (e.g. `gpt-4o-mini`) for summarisation. The VS Code API handles Copilot authentication and consent automatically.
244+
2. If the user accepts, CommandTree uses `vscode.lm.selectChatModels({ vendor: 'copilot' })` to access a lightweight model (e.g. `gpt-4o-mini`) for summarisation. The VS Code API handles Copilot authentication and consent automatically.
245245
3. If the user declines, the feature remains **dormant**. No summaries are generated, and the extension behaves as before. The user can enable it later via settings.
246246

247247
**Alternative providers:**
@@ -256,9 +256,9 @@ The summarisation interface is provider-agnostic — any model that accepts a te
256256
### Database and Config Migration
257257
**semantic-search/database-migration**
258258

259-
All workspace configuration currently stored in `.vscode/tasktree.json` (quick task pins, tag definitions) will migrate into a **local embedded database** (e.g. SQLite). This database also stores script summaries and vector embeddings.
259+
All workspace configuration currently stored in `.vscode/commandtree.json` (quick task pins, tag definitions) will migrate into a **local embedded database** (e.g. SQLite). This database also stores script summaries and vector embeddings.
260260

261-
The migration is automatic and transparent. The `.vscode/tasktree.json` file is read once during migration, and the database becomes the single source of truth going forward.
261+
The migration is automatic and transparent. The `.vscode/commandtree.json` file is read once during migration, and the database becomes the single source of truth going forward.
262262

263263
### Data Structure
264264
**semantic-search/data-structure**
@@ -290,7 +290,7 @@ erDiagram
290290
### Search UX
291291
**semantic-search/search-ux**
292292

293-
The existing filter bar (`tasktree.filter`) gains a semantic search mode:
293+
The existing filter bar (`commandtree.filter`) gains a semantic search mode:
294294

295295
1. User types a natural-language query (e.g. *"deploy to staging"*, *"run database migrations"*, *"lint and format code"*).
296296
2. The query is embedded using the same model that produced the stored embeddings.

cspell.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"scripts"
1313
],
1414
"words": [
15-
"tasktree",
15+
"commandtree",
1616
"nimblesite",
1717
"vsix",
1818
"vsce",

package-lock.json

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

0 commit comments

Comments
 (0)