@runfusion/fusion 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/bin.js +14866 -12340
- package/dist/client/assets/index-BuenKJX0.css +1 -0
- package/dist/client/assets/index-CjGu8HRV.js +1250 -0
- package/dist/client/index.html +2 -2
- package/dist/client/sw.js +45 -1
- package/dist/client/theme-data.css +109 -0
- package/dist/extension.js +12264 -11527
- package/dist/pi-claude-cli/index.ts +131 -0
- package/dist/pi-claude-cli/package.json +39 -0
- package/dist/pi-claude-cli/src/control-handler.ts +68 -0
- package/dist/pi-claude-cli/src/event-bridge.ts +386 -0
- package/dist/pi-claude-cli/src/mcp-config.ts +111 -0
- package/dist/pi-claude-cli/src/mcp-schema-server.cjs +49 -0
- package/dist/pi-claude-cli/src/process-manager.ts +218 -0
- package/dist/pi-claude-cli/src/prompt-builder.ts +536 -0
- package/dist/pi-claude-cli/src/provider.ts +354 -0
- package/dist/pi-claude-cli/src/stream-parser.ts +37 -0
- package/dist/pi-claude-cli/src/thinking-config.ts +83 -0
- package/dist/pi-claude-cli/src/tool-mapping.ts +147 -0
- package/dist/pi-claude-cli/src/types.ts +87 -0
- package/package.json +12 -9
- package/skill/fusion/SKILL.md +6 -4
- package/skill/fusion/references/cli-commands.md +22 -22
- package/skill/fusion/references/extension-tools.md +3 -1
- package/skill/fusion/references/fusion-capabilities.md +30 -38
- package/skill/fusion/references/task-structure.md +4 -4
- package/skill/fusion/workflows/dashboard-cli.md +6 -6
- package/skill/fusion/workflows/specifications.md +5 -3
- package/skill/fusion/workflows/task-lifecycle.md +1 -1
- package/skill/fusion/workflows/task-management.md +3 -1
- package/dist/client/assets/index-B3ZN3sln.css +0 -1
- package/dist/client/assets/index-cgKoCmZP.js +0 -1241
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// Wire protocol types for Claude CLI stream-json NDJSON communication
|
|
2
|
+
|
|
3
|
+
// NDJSON message types from Claude CLI stdout
|
|
4
|
+
|
|
5
|
+
export interface ClaudeStreamEventMessage {
|
|
6
|
+
type: "stream_event";
|
|
7
|
+
event: ClaudeApiEvent;
|
|
8
|
+
/** Present on sub-agent stream events; null/undefined for top-level events. */
|
|
9
|
+
parent_tool_use_id?: string | null;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface ClaudeResultMessage {
|
|
13
|
+
type: "result";
|
|
14
|
+
subtype: "success" | "error";
|
|
15
|
+
result?: string;
|
|
16
|
+
error?: string;
|
|
17
|
+
session_id?: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface ClaudeSystemMessage {
|
|
21
|
+
type: "system";
|
|
22
|
+
subtype: string;
|
|
23
|
+
session_id?: string;
|
|
24
|
+
tools?: unknown[];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface ClaudeControlRequest {
|
|
28
|
+
type: "control_request";
|
|
29
|
+
request_id: string;
|
|
30
|
+
request: {
|
|
31
|
+
subtype: "can_use_tool";
|
|
32
|
+
tool_name: string;
|
|
33
|
+
input: Record<string, unknown>;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export type NdjsonMessage =
|
|
38
|
+
| ClaudeStreamEventMessage
|
|
39
|
+
| ClaudeResultMessage
|
|
40
|
+
| ClaudeSystemMessage
|
|
41
|
+
| ClaudeControlRequest;
|
|
42
|
+
|
|
43
|
+
// Claude API event types (inside stream_event wrapper)
|
|
44
|
+
|
|
45
|
+
export interface ClaudeApiEvent {
|
|
46
|
+
type: string; // message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop
|
|
47
|
+
index?: number;
|
|
48
|
+
message?: {
|
|
49
|
+
id?: string;
|
|
50
|
+
type?: string;
|
|
51
|
+
role?: string;
|
|
52
|
+
content?: unknown[];
|
|
53
|
+
model?: string;
|
|
54
|
+
usage?: ClaudeUsage;
|
|
55
|
+
};
|
|
56
|
+
content_block?: {
|
|
57
|
+
type: string; // "text", "tool_use", "thinking"
|
|
58
|
+
text?: string;
|
|
59
|
+
id?: string;
|
|
60
|
+
name?: string;
|
|
61
|
+
input?: string;
|
|
62
|
+
};
|
|
63
|
+
delta?: {
|
|
64
|
+
type?: string; // "text_delta", "input_json_delta", "thinking_delta", "signature_delta"
|
|
65
|
+
text?: string;
|
|
66
|
+
partial_json?: string;
|
|
67
|
+
thinking?: string;
|
|
68
|
+
signature?: string;
|
|
69
|
+
stop_reason?: string;
|
|
70
|
+
};
|
|
71
|
+
usage?: ClaudeUsage;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface ClaudeUsage {
|
|
75
|
+
input_tokens?: number;
|
|
76
|
+
output_tokens?: number;
|
|
77
|
+
cache_read_input_tokens?: number;
|
|
78
|
+
cache_creation_input_tokens?: number;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Content block tracking during stream processing
|
|
82
|
+
|
|
83
|
+
export interface TrackedContentBlock {
|
|
84
|
+
type: "text" | "thinking";
|
|
85
|
+
text: string;
|
|
86
|
+
index: number; // Claude's content_block index
|
|
87
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runfusion/fusion",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Fusion CLI: HTTP API server, daemon, dashboard launcher, and task tooling for the Fusion AI coding agent.",
|
|
6
6
|
"homepage": "https://github.com/Runfusion/Fusion#readme",
|
|
@@ -33,12 +33,13 @@
|
|
|
33
33
|
"dist/**/*.d.ts.map",
|
|
34
34
|
"dist/**/*.js.map",
|
|
35
35
|
"dist/client/**",
|
|
36
|
+
"dist/pi-claude-cli/**",
|
|
36
37
|
"skill/**",
|
|
37
38
|
"README.md"
|
|
38
39
|
],
|
|
39
40
|
"dependencies": {
|
|
40
|
-
"@mariozechner/pi-ai": "^0.
|
|
41
|
-
"@mariozechner/pi-coding-agent": "^0.
|
|
41
|
+
"@mariozechner/pi-ai": "^0.70.0",
|
|
42
|
+
"@mariozechner/pi-coding-agent": "^0.70.0",
|
|
42
43
|
"express": "^5.1.0",
|
|
43
44
|
"ioredis": "^5.6.0",
|
|
44
45
|
"multer": "^2.1.1"
|
|
@@ -46,7 +47,7 @@
|
|
|
46
47
|
"peerDependencies": {
|
|
47
48
|
"@mariozechner/pi-ai": "*",
|
|
48
49
|
"@mariozechner/pi-coding-agent": "*",
|
|
49
|
-
"
|
|
50
|
+
"typebox": "*"
|
|
50
51
|
},
|
|
51
52
|
"peerDependenciesMeta": {
|
|
52
53
|
"@mariozechner/pi-ai": {
|
|
@@ -55,12 +56,12 @@
|
|
|
55
56
|
"@mariozechner/pi-coding-agent": {
|
|
56
57
|
"optional": true
|
|
57
58
|
},
|
|
58
|
-
"
|
|
59
|
+
"typebox": {
|
|
59
60
|
"optional": true
|
|
60
61
|
}
|
|
61
62
|
},
|
|
62
63
|
"devDependencies": {
|
|
63
|
-
"
|
|
64
|
+
"typebox": "^1.0.0",
|
|
64
65
|
"@types/node": "^22.0.0",
|
|
65
66
|
"@vitest/coverage-v8": "^3.1.0",
|
|
66
67
|
"tsup": "^8.5.1",
|
|
@@ -68,9 +69,10 @@
|
|
|
68
69
|
"typescript": "^5.7.0",
|
|
69
70
|
"vitest": "^3.1.0",
|
|
70
71
|
"yaml": "^2.8.3",
|
|
71
|
-
"@fusion/core": "0.1.0",
|
|
72
72
|
"@fusion/dashboard": "0.1.0",
|
|
73
|
-
"@fusion/engine": "0.1.0"
|
|
73
|
+
"@fusion/engine": "0.1.0",
|
|
74
|
+
"@fusion/pi-claude-cli": "0.3.1",
|
|
75
|
+
"@fusion/core": "0.1.0"
|
|
74
76
|
},
|
|
75
77
|
"repository": {
|
|
76
78
|
"type": "git",
|
|
@@ -82,6 +84,7 @@
|
|
|
82
84
|
"build:exe": "bun run build.ts",
|
|
83
85
|
"build:exe:all": "bun run build.ts --all",
|
|
84
86
|
"typecheck": "tsc --noEmit",
|
|
85
|
-
"test": "vitest run --silent=passed-only --reporter=dot"
|
|
87
|
+
"test": "vitest run --silent=passed-only --reporter=dot",
|
|
88
|
+
"test:build-exe": "FUSION_TEST_BUILD_EXE=1 vitest run --config vitest.build-exe.config.ts --silent=passed-only --reporter=dot"
|
|
86
89
|
}
|
|
87
90
|
}
|
package/skill/fusion/SKILL.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fusion
|
|
3
|
-
description: AI-orchestrated task board (Fusion
|
|
3
|
+
description: AI-orchestrated task board (Fusion) interface. Use when working with the Fusion task management system, creating or managing tasks, understanding task workflows, organizing work into missions, or interfacing with the Fusion dashboard. Triggers on "create a task", "list tasks", "show board", "plan a mission", "check task status", "import issues", or any Fusion interaction.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<essential_principles>
|
|
7
7
|
|
|
8
|
-
Fusion
|
|
8
|
+
Fusion is an AI-orchestrated task board. You throw in rough ideas; AI specifies, executes, reviews, and delivers them.
|
|
9
9
|
|
|
10
10
|
**Task lifecycle:** Triage → Todo → In Progress → In Review → Done → Archived
|
|
11
11
|
|
|
@@ -21,6 +21,8 @@ Mission → Milestone → Slice → Feature → Task
|
|
|
21
21
|
|
|
22
22
|
**Available tools:** Fusion registers tools via the pi extension (prefixed `fn_*`). No CLI commands or Bash needed — use the registered tools directly.
|
|
23
23
|
|
|
24
|
+
**Naming boundary:** The published skill surface always uses `fn_*` tool names (for example `fn_task_create`, `fn_mission_create`). Internal engine runtime tools like `task_create`, `task_update`, `task_log`, and `task_done` are intentionally unprefixed and not part of this skill.
|
|
25
|
+
|
|
24
26
|
**Tool categories:**
|
|
25
27
|
- **Task tools** — `fn_task_create`, `fn_task_update`, `fn_task_list`, `fn_task_show`, `fn_task_attach`, `fn_task_pause`, `fn_task_unpause`, `fn_task_retry`, `fn_task_duplicate`, `fn_task_refine`, `fn_task_archive`, `fn_task_unarchive`, `fn_task_delete`, `fn_task_plan`
|
|
26
28
|
- **GitHub tools** — `fn_task_import_github`, `fn_task_import_github_issue`, `fn_task_browse_github_issues`
|
|
@@ -59,7 +61,7 @@ Use `fn_task_create` with a descriptive message. Include the problem AND desired
|
|
|
59
61
|
Use `fn_task_list` to see all tasks grouped by column. Use `column` param to filter.
|
|
60
62
|
|
|
61
63
|
**Show task details:**
|
|
62
|
-
Use `fn_task_show` with the task ID (e.g.,
|
|
64
|
+
Use `fn_task_show` with the task ID (e.g., FN-001) to see steps, progress, and log.
|
|
63
65
|
|
|
64
66
|
**Plan complex work:**
|
|
65
67
|
Use `fn_task_plan` for AI-guided planning that interviews you before creating the task.
|
|
@@ -82,7 +84,7 @@ These operations are **not available** via pi extension tools and require the da
|
|
|
82
84
|
- **Moving tasks between columns** — No tool for column moves (handled by the AI engine)
|
|
83
85
|
- **Workflow steps** — Creating/managing workflow step definitions requires the dashboard
|
|
84
86
|
- **Settings** — Changing settings requires the dashboard or `fn settings set` CLI command
|
|
85
|
-
- **
|
|
87
|
+
- **Task comments** — Adding comments or steering guidance requires CLI (`fn task comment`, `fn task steer`) or the dashboard comments tab
|
|
86
88
|
- **Merge operations** — Merging completed tasks requires CLI (`fn task merge`) or auto-merge
|
|
87
89
|
|
|
88
90
|
For these operations, guide the user to the dashboard (`/fn`) or CLI commands documented in workflows/dashboard-cli.md.
|
|
@@ -17,27 +17,27 @@ fn dashboard --dev # Web UI only (no AI engine)
|
|
|
17
17
|
```bash
|
|
18
18
|
fn task create "description" # Create task → triage
|
|
19
19
|
fn task create "desc" --attach file.png # Create with attachment
|
|
20
|
-
fn task create "desc" --depends
|
|
20
|
+
fn task create "desc" --depends FN-001 # Create with dependency
|
|
21
21
|
fn task plan "description" # AI-guided planning mode
|
|
22
22
|
fn task list # List all tasks by column
|
|
23
|
-
fn task show
|
|
24
|
-
fn task move
|
|
25
|
-
fn task merge
|
|
26
|
-
fn task duplicate
|
|
27
|
-
fn task refine
|
|
28
|
-
fn task archive
|
|
29
|
-
fn task unarchive
|
|
30
|
-
fn task delete
|
|
31
|
-
fn task retry
|
|
32
|
-
fn task comment
|
|
33
|
-
fn task comments
|
|
34
|
-
fn task steer
|
|
35
|
-
fn task pause
|
|
36
|
-
fn task unpause
|
|
37
|
-
fn task logs
|
|
38
|
-
fn task logs
|
|
39
|
-
fn task logs
|
|
40
|
-
fn task logs
|
|
23
|
+
fn task show FN-001 # Show task details + steps + log
|
|
24
|
+
fn task move FN-001 todo # Move task to column
|
|
25
|
+
fn task merge FN-001 # Merge in-review task to main
|
|
26
|
+
fn task duplicate FN-001 # Copy task to triage
|
|
27
|
+
fn task refine FN-001 --feedback "..." # Create follow-up task
|
|
28
|
+
fn task archive FN-001 # Move done → archived
|
|
29
|
+
fn task unarchive FN-001 # Move archived → done
|
|
30
|
+
fn task delete FN-001 [--force] # Permanently delete
|
|
31
|
+
fn task retry FN-001 # Retry failed task → todo
|
|
32
|
+
fn task comment FN-001 "text" # Add general comment
|
|
33
|
+
fn task comments FN-001 # List task comments
|
|
34
|
+
fn task steer FN-001 "guidance" # Add steering comment for AI
|
|
35
|
+
fn task pause FN-001 # Pause automation
|
|
36
|
+
fn task unpause FN-001 # Resume automation
|
|
37
|
+
fn task logs FN-001 # View agent execution logs
|
|
38
|
+
fn task logs FN-001 --follow # Stream logs in real-time
|
|
39
|
+
fn task logs FN-001 --limit 50 # Limit log lines
|
|
40
|
+
fn task logs FN-001 --type tool # Filter by log type
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
## Mission Management
|
|
@@ -57,9 +57,9 @@ fn task import owner/repo # Import all open issues
|
|
|
57
57
|
fn task import owner/repo --interactive # Select issues interactively
|
|
58
58
|
fn task import owner/repo --limit 10 # Limit import count
|
|
59
59
|
fn task import owner/repo --labels bug # Filter by labels
|
|
60
|
-
fn task pr-create
|
|
61
|
-
fn task pr-create
|
|
62
|
-
fn task pr-create
|
|
60
|
+
fn task pr-create FN-001 # Create GitHub PR
|
|
61
|
+
fn task pr-create FN-001 --title "Fix" # PR with custom title
|
|
62
|
+
fn task pr-create FN-001 --base main # PR targeting specific base
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
## Git Operations
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
All tools are registered via the pi extension. They are available in any pi agent session when the Fusion extension is installed.
|
|
4
4
|
|
|
5
|
+
> Naming contract: all externally exposed Fusion extension tools are `fn_*` (for example `fn_task_create`). Internal engine/executor runtime tools (`task_create`, `task_update`, `task_log`, `task_done`, etc.) are separate and intentionally out of scope for this skill surface.
|
|
6
|
+
|
|
5
7
|
## Task Tools
|
|
6
8
|
|
|
7
9
|
### fn_task_create
|
|
@@ -239,7 +241,7 @@ Activate a pending slice for implementation.
|
|
|
239
241
|
|
|
240
242
|
### fn_feature_link_task
|
|
241
243
|
|
|
242
|
-
Link a feature to a
|
|
244
|
+
Link a feature to a Fusion task. Updates feature status to triaged.
|
|
243
245
|
|
|
244
246
|
| Parameter | Type | Required | Description |
|
|
245
247
|
|-----------|------|----------|-------------|
|
|
@@ -2,17 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
4
|
|
|
5
|
-
Fusion
|
|
5
|
+
Fusion is an AI-orchestrated task board. Tasks flow through columns:
|
|
6
6
|
Triage → Todo → In Progress → In Review → Done → Archived
|
|
7
7
|
|
|
8
8
|
## Pi Extension Tools (Available to Agents)
|
|
9
9
|
|
|
10
|
+
All skill/extension tool invocations in this catalog use the public `fn_*` namespace. Engine runtime tools (for example `task_create`, `task_update`, `task_log`, `task_done`) are internal and intentionally not listed here.
|
|
11
|
+
|
|
10
12
|
| Tool | Purpose |
|
|
11
13
|
|------|---------|
|
|
12
14
|
| `fn_task_create` | Create a new task in triage |
|
|
13
15
|
| `fn_task_update` | Update task title, description, or dependencies |
|
|
14
16
|
| `fn_task_list` | List all tasks grouped by column |
|
|
15
|
-
| `fn_task_show` | Show full task details, steps, log |
|
|
17
|
+
| `fn_task_show` | Show full task details, steps, and log preview |
|
|
16
18
|
| `fn_task_attach` | Attach a file to a task |
|
|
17
19
|
| `fn_task_pause` | Pause automation for a task |
|
|
18
20
|
| `fn_task_unpause` | Resume automation for a task |
|
|
@@ -42,54 +44,44 @@ Triage → Todo → In Progress → In Review → Done → Archived
|
|
|
42
44
|
|
|
43
45
|
## CLI Commands (fn)
|
|
44
46
|
|
|
45
|
-
### Dashboard
|
|
47
|
+
### Dashboard and Node Runtime
|
|
46
48
|
- `fn dashboard` — Start web UI + AI engine
|
|
47
49
|
- `fn dashboard --paused` — Start with automation paused
|
|
48
50
|
- `fn dashboard --dev` — Start web UI only (no AI engine)
|
|
51
|
+
- `fn serve` — Start headless node mode (API + engine, no UI)
|
|
52
|
+
- `fn daemon` — Start daemon mode with auth
|
|
49
53
|
|
|
50
54
|
### Task Management
|
|
51
55
|
- `fn task create "description"` — Create a new task
|
|
52
56
|
- `fn task plan "description"` — AI-guided planning mode
|
|
53
57
|
- `fn task list` — List all tasks
|
|
54
|
-
- `fn task show
|
|
55
|
-
- `fn task move
|
|
56
|
-
- `fn task merge
|
|
57
|
-
- `fn task duplicate
|
|
58
|
-
- `fn task refine
|
|
59
|
-
- `fn task archive/unarchive
|
|
60
|
-
- `fn task delete
|
|
61
|
-
- `fn task retry
|
|
62
|
-
- `fn task comment
|
|
63
|
-
- `fn task steer
|
|
64
|
-
- `fn task pause/unpause
|
|
65
|
-
- `fn task logs
|
|
66
|
-
|
|
67
|
-
### GitHub
|
|
58
|
+
- `fn task show FN-001` — Show task details
|
|
59
|
+
- `fn task move FN-001 todo` — Move task to a column
|
|
60
|
+
- `fn task merge FN-001` — Merge an in-review task
|
|
61
|
+
- `fn task duplicate FN-001` — Duplicate a task
|
|
62
|
+
- `fn task refine FN-001 --feedback "..."` — Create refinement task
|
|
63
|
+
- `fn task archive FN-001` / `fn task unarchive FN-001` — Archive/restore tasks
|
|
64
|
+
- `fn task delete FN-001` — Delete a task
|
|
65
|
+
- `fn task retry FN-001` — Retry a failed task
|
|
66
|
+
- `fn task comment FN-001 "..."` — Add a task comment
|
|
67
|
+
- `fn task steer FN-001 "..."` — Add steering comment
|
|
68
|
+
- `fn task pause FN-001` / `fn task unpause FN-001` — Control automation
|
|
69
|
+
- `fn task logs FN-001` — View task agent logs
|
|
70
|
+
|
|
71
|
+
### GitHub, Skills, and Settings
|
|
68
72
|
- `fn task import owner/repo` — Batch import issues
|
|
69
|
-
- `fn task
|
|
70
|
-
- `fn
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
- `fn git status/fetch/pull/push` — Git operations
|
|
74
|
-
|
|
75
|
-
### Settings
|
|
76
|
-
- `fn settings` — Show current settings
|
|
77
|
-
- `fn settings set key value` — Update a setting
|
|
78
|
-
|
|
79
|
-
## AI Engine Components
|
|
80
|
-
|
|
81
|
-
1. **TriageProcessor** — Auto-specifications for tasks in triage column
|
|
82
|
-
2. **Scheduler** — Dependency resolution, concurrency management
|
|
83
|
-
3. **TaskExecutor** — Creates worktrees, executes tasks with coding tools
|
|
73
|
+
- `fn task pr-create FN-001` — Create PR for task
|
|
74
|
+
- `fn skills search "react"` — Search skill registry
|
|
75
|
+
- `fn skills install owner/repo --skill <name>` — Install a skill
|
|
76
|
+
- `fn settings` / `fn settings set key value` — View/update settings
|
|
84
77
|
|
|
85
78
|
## Task Storage Structure
|
|
86
79
|
|
|
87
80
|
```
|
|
88
|
-
.
|
|
89
|
-
├──
|
|
90
|
-
├── config.json # Board config
|
|
81
|
+
.fusion/
|
|
82
|
+
├── fusion.db # SQLite database (WAL mode)
|
|
91
83
|
└── tasks/
|
|
92
|
-
└──
|
|
84
|
+
└── FN-001/
|
|
93
85
|
├── PROMPT.md # Task specification
|
|
94
86
|
├── agent.log # Execution logs
|
|
95
87
|
└── attachments/ # File attachments
|
|
@@ -106,7 +98,7 @@ Triage → Todo → In Progress → In Review → Done → Archived
|
|
|
106
98
|
- Workflow step manager
|
|
107
99
|
- Scheduled tasks (automations)
|
|
108
100
|
- GitHub import modal
|
|
109
|
-
- Theme system
|
|
101
|
+
- Theme system with dark/light support and color themes
|
|
110
102
|
|
|
111
103
|
## Key Settings
|
|
112
104
|
|
|
@@ -116,6 +108,6 @@ Triage → Todo → In Progress → In Review → Done → Archived
|
|
|
116
108
|
| `maxTriageConcurrent` | 2 | Concurrent triage/specification agents. Falls back to `maxConcurrent` when undefined. |
|
|
117
109
|
| `autoMerge` | true | Auto-merge completed tasks |
|
|
118
110
|
| `requirePlanApproval` | false | Manual approval for specs |
|
|
119
|
-
| `prCompletionMode` | direct | Completion: direct/pr-first |
|
|
111
|
+
| `prCompletionMode` | direct | Completion mode: direct/pr-first |
|
|
120
112
|
| `taskStuckTimeoutMs` | — | Stuck task detection timeout |
|
|
121
113
|
| `recycleWorktrees` | false | Pool and reuse worktrees |
|
|
@@ -12,7 +12,7 @@ Fusion uses a hybrid storage architecture: structured metadata in SQLite, large
|
|
|
12
12
|
├── fusion.db # SQLite database (WAL mode)
|
|
13
13
|
├── config.json # Board config + workflow steps
|
|
14
14
|
└── tasks/
|
|
15
|
-
└──
|
|
15
|
+
└── FN-001/
|
|
16
16
|
├── PROMPT.md # Task specification (generated by triage AI)
|
|
17
17
|
├── agent.log # Execution logs from the AI agent
|
|
18
18
|
└── attachments/ # File attachments
|
|
@@ -26,7 +26,7 @@ Key fields stored in the `tasks` table:
|
|
|
26
26
|
|
|
27
27
|
| Field | Type | Description |
|
|
28
28
|
|-------|------|-------------|
|
|
29
|
-
| `id` | string | Task ID (e.g.,
|
|
29
|
+
| `id` | string | Task ID (e.g., FN-001) |
|
|
30
30
|
| `title` | string? | Short title (optional, can be auto-generated) |
|
|
31
31
|
| `description` | string | Full task description |
|
|
32
32
|
| `column` | string | Current column: triage/todo/in-progress/in-review/done/archived |
|
|
@@ -56,7 +56,7 @@ Key fields stored in the `tasks` table:
|
|
|
56
56
|
The AI triage agent generates this file with the following structure:
|
|
57
57
|
|
|
58
58
|
```markdown
|
|
59
|
-
# Task:
|
|
59
|
+
# Task: FN-001 — Task Title
|
|
60
60
|
|
|
61
61
|
**Created:** 2026-03-31
|
|
62
62
|
**Size:** M
|
|
@@ -69,7 +69,7 @@ What the task should accomplish.
|
|
|
69
69
|
|
|
70
70
|
## Dependencies
|
|
71
71
|
|
|
72
|
-
-
|
|
72
|
+
- FN-040 — Prerequisite task description
|
|
73
73
|
|
|
74
74
|
## Context to Read First
|
|
75
75
|
|
|
@@ -32,11 +32,11 @@ These cannot be done with pi extension tools:
|
|
|
32
32
|
|
|
33
33
|
| Operation | CLI Command | Dashboard |
|
|
34
34
|
|-----------|-------------|-----------|
|
|
35
|
-
| Move task to column | `fn task move
|
|
36
|
-
| Merge completed task | `fn task merge
|
|
37
|
-
| Add steering comment | `fn task steer
|
|
38
|
-
| Add general comment | `fn task comment
|
|
39
|
-
| View agent logs | `fn task logs
|
|
35
|
+
| Move task to column | `fn task move FN-001 todo` | Drag card between columns |
|
|
36
|
+
| Merge completed task | `fn task merge FN-001` | Click merge in task detail |
|
|
37
|
+
| Add steering comment | `fn task steer FN-001 "Use TypeScript"` | Comments tab in task detail |
|
|
38
|
+
| Add general comment | `fn task comment FN-001 "Looks good"` | Comments tab in task detail |
|
|
39
|
+
| View agent logs | `fn task logs FN-001 --follow` | Agent log tab in task detail |
|
|
40
40
|
| Change settings | `fn settings set maxConcurrent 4` | Settings modal |
|
|
41
41
|
| Create workflow steps | — | Workflow Steps button in header |
|
|
42
42
|
| Git operations | `fn git status/fetch/pull/push` | Git manager panel |
|
|
@@ -60,7 +60,7 @@ Key settings (configure via dashboard Settings or `fn settings set`):
|
|
|
60
60
|
|
|
61
61
|
When `prCompletionMode` is set to "pr-first":
|
|
62
62
|
- Completed tasks create a GitHub PR instead of direct-merging
|
|
63
|
-
- Use `fn task pr-create
|
|
63
|
+
- Use `fn task pr-create FN-001` to manually create a PR for any in-review task
|
|
64
64
|
- PRs can be reviewed and merged through the normal GitHub workflow
|
|
65
65
|
|
|
66
66
|
**Backup operations:**
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
<objective>
|
|
7
7
|
Guide the agent through creating well-specified tasks and organizing work using the mission hierarchy for complex multi-phase projects.
|
|
8
|
+
|
|
9
|
+
All tool examples in this workflow intentionally use the public `fn_*` extension namespace.
|
|
8
10
|
</objective>
|
|
9
11
|
|
|
10
12
|
<process>
|
|
@@ -92,11 +94,11 @@ For large-scale projects spanning multiple tasks, use the mission hierarchy:
|
|
|
92
94
|
fn_slice_activate({ id: "SL-001" })
|
|
93
95
|
```
|
|
94
96
|
|
|
95
|
-
6. **Link features to tasks** — Connect features to
|
|
97
|
+
6. **Link features to tasks** — Connect features to Fusion tasks
|
|
96
98
|
```
|
|
97
99
|
fn_task_create({ description: "Create user model with email, password hash, and timestamps" })
|
|
98
|
-
# → Created
|
|
99
|
-
fn_feature_link_task({ featureId: "F-001", taskId: "
|
|
100
|
+
# → Created FN-101
|
|
101
|
+
fn_feature_link_task({ featureId: "F-001", taskId: "FN-101" })
|
|
100
102
|
```
|
|
101
103
|
|
|
102
104
|
**Mission status flows automatically:**
|
|
@@ -87,7 +87,7 @@ The AI triage agent sets the review level based on task complexity and risk asse
|
|
|
87
87
|
**Interpreting `fn_task_show` output:**
|
|
88
88
|
|
|
89
89
|
```
|
|
90
|
-
|
|
90
|
+
FN-042: Fix login validation
|
|
91
91
|
Column: In Progress · Size: M · Review: 2
|
|
92
92
|
|
|
93
93
|
Steps (2/5):
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
<objective>
|
|
7
7
|
Guide the agent through creating, viewing, and managing tasks on the Fusion board using pi extension tools.
|
|
8
|
+
|
|
9
|
+
Use only the public `fn_*` extension tools in this workflow. Do not substitute internal engine runtime tools like `task_create`, `task_update`, `task_log`, or `task_done`.
|
|
8
10
|
</objective>
|
|
9
11
|
|
|
10
12
|
<process>
|
|
@@ -27,7 +29,7 @@ Example:
|
|
|
27
29
|
```
|
|
28
30
|
fn_task_create({
|
|
29
31
|
description: "The login form doesn't validate email format before submission. Add client-side email validation that shows an inline error message when the email is invalid. Use the existing form validation pattern from the signup form.",
|
|
30
|
-
depends: ["
|
|
32
|
+
depends: ["FN-042"]
|
|
31
33
|
})
|
|
32
34
|
```
|
|
33
35
|
|