gsd-pi 2.80.0-dev.c5c38454b → 2.80.0-dev.f55d16d13
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/resources/.managed-resources-content-hash +1 -1
- package/dist/resources/GSD-WORKFLOW.md +2 -2
- package/dist/resources/extensions/gsd/auto/phases.js +37 -30
- package/dist/resources/extensions/gsd/auto-post-unit.js +10 -10
- package/dist/resources/extensions/gsd/auto-prompts.js +111 -1
- package/dist/resources/extensions/gsd/auto.js +9 -1
- package/dist/resources/extensions/gsd/clean-root-preflight.js +42 -4
- package/dist/resources/extensions/gsd/detection.js +106 -0
- package/dist/resources/extensions/gsd/prompts/complete-milestone.md +7 -8
- package/dist/resources/extensions/gsd/prompts/plan-milestone.md +3 -1
- package/dist/resources/extensions/gsd/safety/evidence-collector.js +10 -2
- package/dist/resources/extensions/gsd/worktree-manager.js +16 -14
- package/dist/tsconfig.extensions.tsbuildinfo +1 -1
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +14 -14
- package/dist/web/standalone/.next/build-manifest.json +2 -2
- package/dist/web/standalone/.next/prerender-manifest.json +3 -3
- package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.html +1 -1
- package/dist/web/standalone/.next/server/app/index.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +14 -14
- package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/web/standalone/.next/server/pages/404.html +1 -1
- package/dist/web/standalone/.next/server/pages/500.html +1 -1
- package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
- package/package.json +1 -1
- package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +30 -0
- package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +2 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
- package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +36 -0
- package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +2 -0
- package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
- package/src/resources/GSD-WORKFLOW.md +2 -2
- package/src/resources/extensions/gsd/auto/loop-deps.ts +1 -0
- package/src/resources/extensions/gsd/auto/phases.ts +42 -28
- package/src/resources/extensions/gsd/auto-post-unit.ts +10 -10
- package/src/resources/extensions/gsd/auto-prompts.ts +116 -1
- package/src/resources/extensions/gsd/auto.ts +12 -1
- package/src/resources/extensions/gsd/clean-root-preflight.ts +41 -3
- package/src/resources/extensions/gsd/detection.ts +128 -0
- package/src/resources/extensions/gsd/prompts/complete-milestone.md +7 -8
- package/src/resources/extensions/gsd/prompts/plan-milestone.md +3 -1
- package/src/resources/extensions/gsd/safety/evidence-collector.ts +11 -2
- package/src/resources/extensions/gsd/tests/auto-loop.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/clean-root-preflight.test.ts +88 -2
- package/src/resources/extensions/gsd/tests/detection.test.ts +140 -0
- package/src/resources/extensions/gsd/tests/right-sized-workflow-prompts.test.ts +192 -0
- package/src/resources/extensions/gsd/tests/safety-harness-false-positives.test.ts +29 -0
- package/src/resources/extensions/gsd/tests/start-auto-detached.test.ts +46 -2
- package/src/resources/extensions/gsd/tests/worktree-health-dispatch.test.ts +37 -6
- package/src/resources/extensions/gsd/tests/worktree-manager.test.ts +7 -0
- package/src/resources/extensions/gsd/tests/worktree-nested-git-safety.test.ts +9 -2
- package/src/resources/extensions/gsd/worktree-manager.ts +15 -4
- /package/dist/web/standalone/.next/static/{TCSim36ZpcPu2WgeoC45g → mPZbi5BH9dwokaPZlrYuQ}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{TCSim36ZpcPu2WgeoC45g → mPZbi5BH9dwokaPZlrYuQ}/_ssgManifest.js +0 -0
|
@@ -14,6 +14,14 @@
|
|
|
14
14
|
import { existsSync, mkdirSync, readFileSync, writeFileSync, renameSync, unlinkSync, } from "node:fs";
|
|
15
15
|
import { join, dirname } from "node:path";
|
|
16
16
|
import { randomBytes } from "node:crypto";
|
|
17
|
+
const EXECUTION_TOOL_NAMES = new Set([
|
|
18
|
+
"bash",
|
|
19
|
+
"Bash",
|
|
20
|
+
"gsd_exec",
|
|
21
|
+
"gsd_exec_search",
|
|
22
|
+
"mcp__gsd-workflow__gsd_exec",
|
|
23
|
+
"mcp__gsd-workflow__gsd_exec_search",
|
|
24
|
+
]);
|
|
17
25
|
// ─── Module State ───────────────────────────────────────────────────────────
|
|
18
26
|
let unitEvidence = [];
|
|
19
27
|
// ─── Public API ─────────────────────────────────────────────────────────────
|
|
@@ -129,11 +137,11 @@ export function clearEvidenceFromDisk(basePath, milestoneId, sliceId, taskId) {
|
|
|
129
137
|
* Exit codes and output are filled in by recordToolResult after execution.
|
|
130
138
|
*/
|
|
131
139
|
export function recordToolCall(toolCallId, toolName, input) {
|
|
132
|
-
if (toolName
|
|
140
|
+
if (EXECUTION_TOOL_NAMES.has(toolName)) {
|
|
133
141
|
unitEvidence.push({
|
|
134
142
|
kind: "bash",
|
|
135
143
|
toolCallId,
|
|
136
|
-
command: String(input.command ?? ""),
|
|
144
|
+
command: String(input.command ?? input.cmd ?? input.query ?? ""),
|
|
137
145
|
exitCode: -1,
|
|
138
146
|
outputSnippet: "",
|
|
139
147
|
timestamp: Date.now(),
|
|
@@ -22,6 +22,16 @@ import { logWarning } from "./workflow-logger.js";
|
|
|
22
22
|
import { nativeBranchDelete, nativeBranchExists, nativeBranchForceReset, nativeCommit, nativeDetectMainBranch, nativeDiffContent, nativeDiffNameStatus, nativeDiffNumstat, nativeGetCurrentBranch, nativeIsAncestor, nativeLogOneline, nativeMergeSquash, nativeWorktreeAdd, nativeWorktreeList, nativeWorktreePrune, nativeWorktreeRemove, } from "./native-git-bridge.js";
|
|
23
23
|
import { emitCanonicalRootRedirect } from "./worktree-telemetry.js";
|
|
24
24
|
import { isGsdWorktreePath, normalizeWorktreePathForCompare, resolveWorktreeProjectRoot, } from "./worktree-root.js";
|
|
25
|
+
function deleteBranchIfPresent(basePath, branch, warningPrefix) {
|
|
26
|
+
try {
|
|
27
|
+
if (!nativeBranchExists(basePath, branch))
|
|
28
|
+
return;
|
|
29
|
+
nativeBranchDelete(basePath, branch, true);
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
logWarning("worktree", `${warningPrefix}: ${e.message}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
25
35
|
// ─── Path Helpers ──────────────────────────────────────────────────────────
|
|
26
36
|
function normalizePathForComparison(path) {
|
|
27
37
|
const normalized = path
|
|
@@ -311,7 +321,7 @@ export function listWorktrees(basePath) {
|
|
|
311
321
|
// of their object database, causing permanent silent data loss.
|
|
312
322
|
/** Directories to skip when scanning for nested .git dirs. */
|
|
313
323
|
const NESTED_GIT_SKIP_DIRS = new Set([
|
|
314
|
-
".git", ".gsd", "node_modules", ".next", ".nuxt", "dist", "build",
|
|
324
|
+
".git", ".gsd", ".bg-shell", "node_modules", ".next", ".nuxt", "dist", "build",
|
|
315
325
|
"__pycache__", ".tox", ".venv", "venv", "target", "vendor",
|
|
316
326
|
]);
|
|
317
327
|
/**
|
|
@@ -364,7 +374,9 @@ export function findNestedGitDirs(rootPath) {
|
|
|
364
374
|
}
|
|
365
375
|
}
|
|
366
376
|
catch (e) {
|
|
367
|
-
|
|
377
|
+
if (e.code !== "ENOENT") {
|
|
378
|
+
logWarning("worktree", `existsSync/.git check failed for ${fullPath}: ${e.message}`);
|
|
379
|
+
}
|
|
368
380
|
}
|
|
369
381
|
walk(fullPath, depth + 1);
|
|
370
382
|
}
|
|
@@ -430,12 +442,7 @@ export function removeWorktree(basePath, name, opts = {}) {
|
|
|
430
442
|
if (!existsSync(wtPath)) {
|
|
431
443
|
nativeWorktreePrune(basePath);
|
|
432
444
|
if (deleteBranch) {
|
|
433
|
-
|
|
434
|
-
nativeBranchDelete(basePath, branch, true);
|
|
435
|
-
}
|
|
436
|
-
catch (e) {
|
|
437
|
-
logWarning("worktree", `nativeBranchDelete failed: ${e.message}`);
|
|
438
|
-
}
|
|
445
|
+
deleteBranchIfPresent(basePath, branch, "nativeBranchDelete failed");
|
|
439
446
|
}
|
|
440
447
|
return;
|
|
441
448
|
}
|
|
@@ -549,12 +556,7 @@ export function removeWorktree(basePath, name, opts = {}) {
|
|
|
549
556
|
// Prune stale entries so git knows the worktree is gone
|
|
550
557
|
nativeWorktreePrune(basePath);
|
|
551
558
|
if (deleteBranch) {
|
|
552
|
-
|
|
553
|
-
nativeBranchDelete(basePath, branch, true);
|
|
554
|
-
}
|
|
555
|
-
catch (e) {
|
|
556
|
-
logWarning("worktree", `final branch delete failed: ${e.message}`);
|
|
557
|
-
}
|
|
559
|
+
deleteBranchIfPresent(basePath, branch, "final branch delete failed");
|
|
558
560
|
}
|
|
559
561
|
}
|
|
560
562
|
/**
|