vibe-coding-master 0.3.23 → 0.3.24
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/dist/backend/adapters/git-adapter.js +53 -0
- package/dist/backend/api/artifact-routes.js +1 -28
- package/dist/backend/api/harness-routes.js +10 -0
- package/dist/backend/api/task-routes.js +2 -6
- package/dist/backend/gateway/gateway-service.js +3 -16
- package/dist/backend/server.js +3 -1
- package/dist/backend/services/artifact-service.js +1 -30
- package/dist/backend/services/harness-service.js +106 -0
- package/dist/backend/services/session-service.js +1 -4
- package/dist/backend/services/status-service.js +1 -6
- package/dist/backend/services/task-service.js +42 -110
- package/dist/backend/templates/harness/project-manager-agent.js +10 -1
- package/dist/backend/templates/harness/vcm-route-message-skill.js +8 -2
- package/dist-frontend/assets/{index-C2xTNLmb.js → index-CKWy15WL.js} +46 -47
- package/dist-frontend/index.html +1 -1
- package/docs/cc-best-practices.md +1 -1
- package/docs/full-harness-baseline.md +0 -1
- package/docs/gateway-design.md +9 -13
- package/docs/product-design.md +18 -39
- package/docs/vcm-cc-best-practices.md +0 -1
- package/package.json +1 -1
package/dist-frontend/index.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>VibeCodingMaster</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-CKWy15WL.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="/assets/index-Cfum1Prr.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
@@ -1669,7 +1669,7 @@ Branch rules:
|
|
|
1669
1669
|
Task close rules:
|
|
1670
1670
|
|
|
1671
1671
|
- after task completion, close the task only when the user is ready to delete task-local state
|
|
1672
|
-
-
|
|
1672
|
+
- task close deletes the task worktree, deletes the task branch, and removes task/session/message/orchestration/handoff metadata
|
|
1673
1673
|
- task close may stop harness-managed running role sessions, but it must not silently discard uncommitted changes; finish, commit, or preserve anything important before using it
|
|
1674
1674
|
|
|
1675
1675
|
Small commits:
|
|
@@ -148,7 +148,6 @@ durable docs, PR text, or commit history.
|
|
|
148
148
|
| Worktrees | `.claude/worktrees/<task-slug>/` | Runtime cleanup | One task worktree shared by all roles. |
|
|
149
149
|
| Handoff root | `.ai/vcm/handoffs/` | Runtime cleanup | Role artifacts and route files for the active task. |
|
|
150
150
|
| Route messages | `.ai/vcm/handoffs/messages/<from-role>-<to-role>.md` | Runtime cleanup | Pending route files written by `vcm-route-message`. |
|
|
151
|
-
| Handoff logs | `.ai/vcm/handoffs/logs/` | Runtime cleanup | Debug/recovery logs, not durable project truth. |
|
|
152
151
|
| Architecture plan | `.ai/vcm/handoffs/architecture-plan.md` | Task-temporary | Architect handoff for one executable task. |
|
|
153
152
|
| Review report | `.ai/vcm/handoffs/review-report.md` | Task-temporary | Reviewer handoff for one executable task. |
|
|
154
153
|
| Docs sync report | `.ai/vcm/handoffs/docs-sync-report.md` | Task-temporary | Architect docs-sync handoff for one executable task. |
|
package/docs/gateway-design.md
CHANGED
|
@@ -157,9 +157,8 @@ Task lifecycle commands:
|
|
|
157
157
|
- `/pull-current` calls `POST /api/projects/current/pull` for the selected
|
|
158
158
|
desktop VCM project. It runs the same connected-repository fast-forward-only
|
|
159
159
|
pull as the desktop button. It must fail if the base repo has uncommitted
|
|
160
|
-
changes
|
|
161
|
-
|
|
162
|
-
- `/create-task <task-slug> [title]` creates a normal worktree-backed task,
|
|
160
|
+
changes or if the branch has no upstream.
|
|
161
|
+
- `/create-task <task-slug> [title]` creates a task worktree,
|
|
163
162
|
selects it as the mobile current task, applies the saved launch template, and
|
|
164
163
|
starts the four role sessions (`project-manager`, `architect`, `coder`,
|
|
165
164
|
`reviewer`) through the same one-click-start path as the desktop UI. The saved
|
|
@@ -245,7 +244,7 @@ Rules:
|
|
|
245
244
|
```text
|
|
246
245
|
/create-task <task-slug> [title]
|
|
247
246
|
-> require current project
|
|
248
|
-
-> create a
|
|
247
|
+
-> create a task branch and worktree through existing task service/API
|
|
249
248
|
-> select it as gateway current task
|
|
250
249
|
-> load saved launch template from app preferences
|
|
251
250
|
-> set orchestration from template
|
|
@@ -258,8 +257,6 @@ Rules:
|
|
|
258
257
|
Rules:
|
|
259
258
|
|
|
260
259
|
- Use the same task creation validation as desktop VCM.
|
|
261
|
-
- Default to `createWorktree: true`. Gateway should not create inline tasks in
|
|
262
|
-
the MVP, because inline tasks make mobile pull/cleanup semantics harder.
|
|
263
260
|
- Use the same one-click-start semantics as desktop VCM: only start from a newly
|
|
264
261
|
created task with no existing role sessions.
|
|
265
262
|
- If one role session fails to start, reply with the role that failed and leave
|
|
@@ -341,9 +338,8 @@ If no task is selected:
|
|
|
341
338
|
No task is selected. Use /tasks and /use-task first.
|
|
342
339
|
```
|
|
343
340
|
|
|
344
|
-
If `/pull-current` cannot run because the base repo is dirty
|
|
345
|
-
|
|
346
|
-
desktop Connected Repository section.
|
|
341
|
+
If `/pull-current` cannot run because the base repo is dirty or has no upstream,
|
|
342
|
+
reply with the same VCM reason shown in the desktop Connected Repository section.
|
|
347
343
|
|
|
348
344
|
If `/create-task` fails task validation, reply with the VCM error and hint.
|
|
349
345
|
Common examples are invalid task slug, dirty base repo, existing task branch, or
|
|
@@ -674,7 +670,7 @@ Validation:
|
|
|
674
670
|
|
|
675
671
|
- Implement `/pull-current` by calling the connected repository pull path:
|
|
676
672
|
`POST /api/projects/current/pull` or the equivalent project service method.
|
|
677
|
-
- Implement `/create-task <task-slug> [title]` by creating a worktree
|
|
673
|
+
- Implement `/create-task <task-slug> [title]` by creating a task worktree
|
|
678
674
|
task, selecting it as mobile current task, applying the saved launch template,
|
|
679
675
|
setting orchestration mode, setting translation state, and starting the four
|
|
680
676
|
role sessions.
|
|
@@ -688,7 +684,7 @@ Validation:
|
|
|
688
684
|
- Parser tests for `/pull-current`, `/create-task`, `/close-task`, and
|
|
689
685
|
confirmation mismatch.
|
|
690
686
|
- Service tests for pull success and pull-blocked reasons.
|
|
691
|
-
- Service tests that task creation
|
|
687
|
+
- Service tests that task creation creates a task worktree and uses launch
|
|
692
688
|
template role settings.
|
|
693
689
|
- Service tests for partial role-session start failure reporting.
|
|
694
690
|
- Service tests that Close Task calls the existing cleanup path only after exact
|
|
@@ -781,8 +777,8 @@ Gateway MVP is complete when:
|
|
|
781
777
|
- Bound phone can list and select current project/task context.
|
|
782
778
|
- Bound phone can run `/pull-current` to update the connected base repository
|
|
783
779
|
through VCM's fast-forward-only pull path.
|
|
784
|
-
- Bound phone can run `/create-task <task-slug> [title]` to create a
|
|
785
|
-
worktree
|
|
780
|
+
- Bound phone can run `/create-task <task-slug> [title]` to create a task
|
|
781
|
+
worktree, select it, apply the saved launch template, and start
|
|
786
782
|
the four role sessions.
|
|
787
783
|
- Bound phone can send Chinese plain text to current task PM.
|
|
788
784
|
- PM receives only the translated English prompt, without original Chinese.
|
package/docs/product-design.md
CHANGED
|
@@ -47,7 +47,7 @@ VCM V1 must make multi-session Claude Code work visible and recoverable:
|
|
|
47
47
|
- Create a named task with its own branch and task-level worktree by default.
|
|
48
48
|
- Start, stop, restart, and resume one Claude Code session per role.
|
|
49
49
|
- Keep role terminals embedded in one GUI.
|
|
50
|
-
- Preserve task state, session state, handoff files, message history
|
|
50
|
+
- Preserve task state, session state, handoff files, and message history.
|
|
51
51
|
- Let roles communicate through a PM-mediated message bus.
|
|
52
52
|
- Let users choose between manual message approval and auto orchestration.
|
|
53
53
|
- Install or update VCM role rules into `CLAUDE.md` and `.claude/agents/*.md`.
|
|
@@ -122,7 +122,7 @@ The detailed design lives in `docs/codex-review-gates.md`.
|
|
|
122
122
|
|
|
123
123
|
### 4.2 Task Worktree Model
|
|
124
124
|
|
|
125
|
-
Task-level worktree management is the
|
|
125
|
+
Task-level worktree management is the required model for all tasks:
|
|
126
126
|
|
|
127
127
|
```text
|
|
128
128
|
one task
|
|
@@ -134,9 +134,7 @@ one task
|
|
|
134
134
|
|
|
135
135
|
VCM must not create worktrees per role. `project-manager`, `architect`, `coder`, and `reviewer` for the same task all run in the same task worktree and hand off sequentially.
|
|
136
136
|
|
|
137
|
-
When the user creates a task,
|
|
138
|
-
|
|
139
|
-
There is no separate later button named `Create task worktree`, and a task cannot be switched between worktree and non-worktree mode after creation.
|
|
137
|
+
When the user creates a task, VCM always creates the branch and worktree immediately. Tasks never run directly in the connected base repository, and there is no separate later button named `Create task worktree`.
|
|
140
138
|
|
|
141
139
|
Branch naming:
|
|
142
140
|
|
|
@@ -168,17 +166,13 @@ New Task submit
|
|
|
168
166
|
-> validate task name
|
|
169
167
|
-> verify .ai/vcm/ is ignored
|
|
170
168
|
-> verify .claude/worktrees/ is ignored
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
-> git worktree add -b feature/<task-name> .claude/worktrees/<task-name> <base-ref>
|
|
176
|
-
-> otherwise:
|
|
177
|
-
-> use the connected repo path and current branch
|
|
178
|
-
-> reject if another inline task is already active
|
|
169
|
+
-> derive branch feature/<task-name>
|
|
170
|
+
-> derive worktree path .claude/worktrees/<task-name>
|
|
171
|
+
-> verify the base repo is clean
|
|
172
|
+
-> git worktree add -b feature/<task-name> .claude/worktrees/<task-name> <base-ref>
|
|
179
173
|
-> create task metadata
|
|
180
|
-
-> create handoff structure inside the task
|
|
181
|
-
-> open the task workspace with role session cwd = task
|
|
174
|
+
-> create handoff structure inside the task worktree
|
|
175
|
+
-> open the task workspace with role session cwd = task worktree
|
|
182
176
|
```
|
|
183
177
|
|
|
184
178
|
Task close flow:
|
|
@@ -189,14 +183,12 @@ user clicks red Close Task
|
|
|
189
183
|
-> stop VCM-managed running role sessions for the task
|
|
190
184
|
-> explain that VCM deletes the task worktree and task branch
|
|
191
185
|
-> explain that VCM does not check running sessions or uncommitted changes
|
|
192
|
-
-> remove git worktree
|
|
193
|
-
-> delete the task branch
|
|
186
|
+
-> remove git worktree
|
|
187
|
+
-> delete the task branch
|
|
194
188
|
-> remove VCM task metadata from the base repo
|
|
195
|
-
-> remove task runtime metadata from the task
|
|
189
|
+
-> remove task runtime metadata from the task worktree
|
|
196
190
|
```
|
|
197
191
|
|
|
198
|
-
Tasks created without a worktree do not own a separate branch/worktree, so Close Task stops VCM-managed running role sessions and removes only VCM metadata for those tasks.
|
|
199
|
-
|
|
200
192
|
## 5. Roles
|
|
201
193
|
|
|
202
194
|
### Project Manager
|
|
@@ -316,8 +308,7 @@ Opening this section refreshes the connected repository status through
|
|
|
316
308
|
|
|
317
309
|
The `Pull` button runs `git pull --ff-only` only against the connected base
|
|
318
310
|
repository. It is disabled when the base repository has uncommitted changes,
|
|
319
|
-
when the branch has no upstream
|
|
320
|
-
the base repository directly. VCM does not stash, merge, or mutate task
|
|
311
|
+
or when the branch has no upstream. VCM does not stash, merge, or mutate task
|
|
321
312
|
worktrees from this button.
|
|
322
313
|
|
|
323
314
|
The old `Dirty: yes/no` label is not used. The UI uses `Working tree: clean` or
|
|
@@ -344,15 +335,11 @@ There is no separate `Pause orchestration` or `Resume orchestration` control in
|
|
|
344
335
|
`New Task` contains:
|
|
345
336
|
|
|
346
337
|
- `task name`
|
|
347
|
-
-
|
|
348
|
-
- generated
|
|
349
|
-
- generated worktree preview when selected: `.claude/worktrees/<task-name>`
|
|
350
|
-
- current repository/current branch note when cleared
|
|
338
|
+
- generated branch preview: `feature/<task-name>`
|
|
339
|
+
- generated worktree preview: `.claude/worktrees/<task-name>`
|
|
351
340
|
|
|
352
341
|
There is no optional title input in the current UI.
|
|
353
342
|
|
|
354
|
-
The worktree/branch path is the recommended VCM task model, but the user may clear the checkbox for an inline task. VCM should not require a separate worktree creation action later.
|
|
355
|
-
|
|
356
343
|
### Task Workspace
|
|
357
344
|
|
|
358
345
|
The task workspace header is one compact row:
|
|
@@ -491,7 +478,7 @@ For `.gitignore`, VCM uses hash comments:
|
|
|
491
478
|
|
|
492
479
|
VCM must preserve all user-authored content outside the managed block.
|
|
493
480
|
|
|
494
|
-
After applying harness changes, the UI
|
|
481
|
+
After applying harness changes in the base repo, the UI shows the changed files. When a task is active, the result area also shows `Commit & rebase task`: VCM stages only the changed harness files, creates a `chore: update VCM harness` commit in the base repo, and rebases the active task branch onto that commit. If the task worktree is dirty or the base repo already has staged changes, VCM stops and asks the user to clean up first.
|
|
495
482
|
|
|
496
483
|
Role sessions get VCM behavior from `CLAUDE.md` and `.claude/agents/*.md`, not from a pasted startup context.
|
|
497
484
|
|
|
@@ -505,11 +492,6 @@ Each task creates:
|
|
|
505
492
|
architect.md
|
|
506
493
|
coder.md
|
|
507
494
|
reviewer.md
|
|
508
|
-
logs/
|
|
509
|
-
project-manager.log
|
|
510
|
-
architect.log
|
|
511
|
-
coder.log
|
|
512
|
-
reviewer.log
|
|
513
495
|
architecture-plan.md
|
|
514
496
|
known-issues.md
|
|
515
497
|
review-report.md
|
|
@@ -814,8 +796,6 @@ Task worktree local files:
|
|
|
814
796
|
.claude/worktrees/<task>/.ai/vcm/handoffs/messages/<from-role>-<to-role>.md
|
|
815
797
|
```
|
|
816
798
|
|
|
817
|
-
For tasks created without a worktree, the task runtime repo is the connected base repo, so the runtime state resolves under the base repo's `.ai/vcm/`. Because `.ai/vcm/handoffs/` has no task-name segment, VCM allows only one active inline task in a connected repo.
|
|
818
|
-
|
|
819
799
|
External Claude transcripts:
|
|
820
800
|
|
|
821
801
|
```text
|
|
@@ -846,9 +826,8 @@ This protects against publishing raw TypeScript bin files or missing frontend as
|
|
|
846
826
|
VCM V1 is successful when:
|
|
847
827
|
|
|
848
828
|
- A user can connect a repo without global Git safe-directory setup.
|
|
849
|
-
- A user can create a
|
|
850
|
-
- A user can
|
|
851
|
-
- A user can start all four role sessions in the task runtime repo.
|
|
829
|
+
- A user can create a task, which creates `feature/<task>` and `.claude/worktrees/<task>`.
|
|
830
|
+
- A user can start all four role sessions in the task worktree.
|
|
852
831
|
- Switching roles never loses the embedded terminal.
|
|
853
832
|
- Restart creates a fresh Claude session; Resume reconnects to the persisted one.
|
|
854
833
|
- Permission modes are reflected in the Claude command.
|