vibe-coding-master 0.7.6 → 0.7.7

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 CHANGED
@@ -181,6 +181,12 @@ By default:
181
181
  Roles for the same task share the same task worktree. VCM does not create one
182
182
  worktree per role.
183
183
 
184
+ Project Manager may record an advisory task checkpoint under
185
+ `.ai/vcm/workflow/state.json`. VCM restores and displays this context after a
186
+ restart, but it does not infer transitions or choose the next role. Current
187
+ artifacts, Gate Review state, Round/Turn state, and the role rules remain
188
+ authoritative.
189
+
184
190
  Typical flow:
185
191
 
186
192
  ```text
@@ -412,10 +418,16 @@ Post-task processing is ordered by the backend:
412
418
  ```text
413
419
  Final Acceptance
414
420
  -> Review Task Harness
415
- -> Memory proposals and Harness Engineer review, when Auto Memory is enabled
421
+ -> Workflow-role memory proposals, when Auto Memory is enabled
422
+ -> Harness Engineer memory review, when Auto Memory is enabled
416
423
  -> Task Harness Retrospective
417
424
  ```
418
425
 
426
+ Memory proposal prompts sent to Project Manager, Architect, Coder, Tester, and
427
+ an enabled Gate Reviewer use their normal task sessions and participate in
428
+ Round/Turn tracking. Harness Engineer review and retrospective work remain tool
429
+ role activity and do not participate in Round completion.
430
+
419
431
  When Auto Memory is disabled, Review Task Harness does not collect proposals or
420
432
  ask Harness Engineer to update memory. When enabled, both automatic and manual
421
433
  review requests complete the memory phase before retrospective analysis. A
@@ -430,6 +442,11 @@ It stops every running session owned by the task, including Translator and
430
442
  Harness Engineer, then removes task-owned worktree/branch state. Commit or
431
443
  preserve anything important before closing.
432
444
 
445
+ Uncommitted changes, unmerged commits, and cleanup failures are reported as
446
+ warnings; they do not block logical task closure. VCM may discard the task
447
+ worktree and task branch even when they contain commits that are not present on
448
+ the connected repository branch.
449
+
433
450
  ## Troubleshooting
434
451
 
435
452
  ### The page does not open
@@ -517,7 +534,11 @@ npm start
517
534
  ## Documentation
518
535
 
519
536
  - `docs/ARCHITECTURE.md`: repository architecture
537
+ - `docs/CODING_STANDARDS.md`: shared implementation and test standards
538
+ - `docs/GLOSSARY.md`: allowed durable abbreviations
520
539
  - `docs/TESTING.md`: validation strategy
540
+ - `docs/known-issues.md`: current unresolved durable issues
541
+ - `src/backend/gateway/ARCHITECTURE.md`: mobile gateway sub-area architecture
521
542
  - `docs/vcm-cc-best-practices.md`: current VCM Claude Code harness practice
522
543
  - `docs/v0.5-custom-workflow-plan.md`: deferred custom workflow proposal
523
544
  - `docs/cc-best-practices.md`: archived generic Claude Code harness notes
@@ -142,6 +142,13 @@ export function registerHarnessRoutes(app, deps) {
142
142
  const taskSlug = await normalizeOptionalTaskSlug(deps, project.repoRoot, request.query.taskSlug);
143
143
  return deps.harnessFeedbackService.getState(project.repoRoot, taskSlug);
144
144
  });
145
+ app.post("/api/projects/harness/feedback/send", async (request) => {
146
+ const { project, task } = await requireHarnessTaskContext(deps, request.body?.taskSlug);
147
+ return deps.harnessFeedbackService.sendPendingFeedback(project.repoRoot, {
148
+ taskSlug: task.taskSlug,
149
+ feedbackPath: request.body?.feedbackPath ?? ""
150
+ });
151
+ });
145
152
  app.post("/api/projects/harness/task-retrospective", async (request) => {
146
153
  const { project, task } = await requireHarnessTaskContext(deps, request.body?.taskSlug);
147
154
  const trigger = request.body?.trigger === "auto" ? "auto" : "manual";
@@ -21,6 +21,23 @@ export function createHarnessFeedbackService(deps) {
21
21
  warnings: []
22
22
  };
23
23
  }
24
+ async function sendPendingFeedback(repoRoot, input) {
25
+ await cleanupLegacyState(repoRoot);
26
+ const feedbackPath = input.feedbackPath.trim();
27
+ const pending = await listPendingFeedback(repoRoot);
28
+ const feedback = pending.find((item) => item.path === feedbackPath);
29
+ if (!feedback) {
30
+ throw new VcmError({
31
+ code: "HARNESS_FEEDBACK_NOT_PENDING",
32
+ message: "The selected Harness Feedback is no longer pending.",
33
+ statusCode: 404,
34
+ hint: "Refresh Harness Studio and select a feedback item that is still listed in the Inbox."
35
+ });
36
+ }
37
+ const session = await ensureIdleHarnessEngineer(repoRoot, input.taskSlug);
38
+ await submitTerminalInput(deps.runtime, session.id, buildPendingFeedbackPrompt(repoRoot, feedback.path));
39
+ return session;
40
+ }
24
41
  async function startTaskRetrospective(repoRoot, input) {
25
42
  await cleanupLegacyState(repoRoot);
26
43
  const taskSlug = input.taskSlug.trim();
@@ -155,6 +172,16 @@ export function createHarnessFeedbackService(deps) {
155
172
  "End your turn after writing the result."
156
173
  ].join("\n");
157
174
  }
175
+ function buildPendingFeedbackPrompt(repoRoot, feedbackPath) {
176
+ return [
177
+ "[VCM Harness Feedback]",
178
+ "",
179
+ "Review this feedback:",
180
+ resolveRepoPath(repoRoot, feedbackPath),
181
+ "",
182
+ "Verify the issue against the current harness and project evidence. Report your findings and proposed changes to the user."
183
+ ].join("\n");
184
+ }
158
185
  async function loadTaskRetrospectiveMarker(repoRoot, taskSlug) {
159
186
  const markerPath = resolveRepoPath(repoRoot, getTaskRetrospectiveMarkerPath(taskSlug));
160
187
  if (!(await deps.fs.pathExists(markerPath))) {
@@ -185,6 +212,7 @@ export function createHarnessFeedbackService(deps) {
185
212
  }
186
213
  return {
187
214
  getState,
215
+ sendPendingFeedback,
188
216
  startTaskRetrospective,
189
217
  assertHarnessEngineerAvailable
190
218
  };