surrogate-protocol-mcp 3.0.1 → 3.0.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/dist/utils/artifacts.d.ts +3 -3
- package/dist/utils/artifacts.d.ts.map +1 -1
- package/dist/utils/artifacts.js +22 -13
- package/dist/utils/artifacts.js.map +1 -1
- package/dist/utils/critique.d.ts +1 -1
- package/dist/utils/critique.d.ts.map +1 -1
- package/dist/utils/critique.js +10 -8
- package/dist/utils/critique.js.map +1 -1
- package/dist/utils/gates.d.ts +11 -0
- package/dist/utils/gates.d.ts.map +1 -1
- package/dist/utils/gates.js +137 -13
- package/dist/utils/gates.js.map +1 -1
- package/dist/utils/project-gates.d.ts +1 -0
- package/dist/utils/project-gates.d.ts.map +1 -1
- package/dist/utils/project-gates.js +15 -3
- package/dist/utils/project-gates.js.map +1 -1
- package/dist/utils/state-db.d.ts.map +1 -1
- package/dist/utils/state-db.js +16 -13
- package/dist/utils/state-db.js.map +1 -1
- package/dist/utils/state.d.ts.map +1 -1
- package/dist/utils/state.js +49 -17
- package/dist/utils/state.js.map +1 -1
- package/dist/utils/workspace-manager.d.ts +1 -1
- package/dist/utils/workspace-manager.d.ts.map +1 -1
- package/dist/utils/workspace-manager.js +71 -15
- package/dist/utils/workspace-manager.js.map +1 -1
- package/dist/utils/worktree.d.ts.map +1 -1
- package/dist/utils/worktree.js +5 -2
- package/dist/utils/worktree.js.map +1 -1
- package/package.json +1 -1
|
@@ -46,11 +46,11 @@ export declare function readResultMarker(worktreePath: string): SurrogateResultM
|
|
|
46
46
|
/**
|
|
47
47
|
* Get current git state for a worktree.
|
|
48
48
|
*/
|
|
49
|
-
export declare function getGitState(worktreePath: string): SurrogateResultMarker['git_state'];
|
|
49
|
+
export declare function getGitState(worktreePath: string, baseBranch?: string): SurrogateResultMarker['git_state'];
|
|
50
50
|
/**
|
|
51
51
|
* Get change summary for a worktree.
|
|
52
52
|
*/
|
|
53
|
-
export declare function getChangeSummary(worktreePath: string): SurrogateResultMarker['changes'];
|
|
53
|
+
export declare function getChangeSummary(worktreePath: string, baseBranch?: string): SurrogateResultMarker['changes'];
|
|
54
54
|
export interface SurrogateReport {
|
|
55
55
|
surrogate_id: string;
|
|
56
56
|
role: string;
|
|
@@ -80,7 +80,7 @@ export declare function generateReport(surrogateId: string, worktreePath: string
|
|
|
80
80
|
startedAt: string;
|
|
81
81
|
success: boolean;
|
|
82
82
|
error?: string;
|
|
83
|
-
}): SurrogateReport;
|
|
83
|
+
}, baseBranch?: string): SurrogateReport;
|
|
84
84
|
/**
|
|
85
85
|
* Read a saved report.
|
|
86
86
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/utils/artifacts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/utils/artifacts.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/artifacts.js
CHANGED
|
@@ -4,6 +4,7 @@ import * as fs from 'fs';
|
|
|
4
4
|
import * as path from 'path';
|
|
5
5
|
import { execSync } from 'child_process';
|
|
6
6
|
import { PROJECT_ROOT } from './state.js';
|
|
7
|
+
import { resolveBaseRef } from './gates.js';
|
|
7
8
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
8
9
|
// MARKER SCHEMA V1 (WS5-2) - Fixed contract for .surrogate-result.json
|
|
9
10
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
@@ -115,11 +116,11 @@ function upgradeLegacyMarker(legacy) {
|
|
|
115
116
|
/**
|
|
116
117
|
* Get current git state for a worktree.
|
|
117
118
|
*/
|
|
118
|
-
export function getGitState(worktreePath) {
|
|
119
|
+
export function getGitState(worktreePath, baseBranch = 'main') {
|
|
119
120
|
const defaultState = {
|
|
120
121
|
branch: 'unknown',
|
|
121
122
|
head_commit: 'unknown',
|
|
122
|
-
base_branch:
|
|
123
|
+
base_branch: baseBranch,
|
|
123
124
|
commits_ahead: 0,
|
|
124
125
|
};
|
|
125
126
|
if (!fs.existsSync(worktreePath)) {
|
|
@@ -136,9 +137,13 @@ export function getGitState(worktreePath) {
|
|
|
136
137
|
encoding: 'utf8',
|
|
137
138
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
138
139
|
}).trim();
|
|
140
|
+
// Dynamically resolve base ref
|
|
139
141
|
let commitsAhead = 0;
|
|
142
|
+
let resolvedBaseBranch = baseBranch;
|
|
140
143
|
try {
|
|
141
|
-
const
|
|
144
|
+
const baseRef = resolveBaseRef(worktreePath, baseBranch);
|
|
145
|
+
resolvedBaseBranch = baseRef;
|
|
146
|
+
const count = execSync(`git rev-list --count ${baseRef}..HEAD`, {
|
|
142
147
|
cwd: worktreePath,
|
|
143
148
|
encoding: 'utf8',
|
|
144
149
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
@@ -146,12 +151,12 @@ export function getGitState(worktreePath) {
|
|
|
146
151
|
commitsAhead = parseInt(count, 10) || 0;
|
|
147
152
|
}
|
|
148
153
|
catch {
|
|
149
|
-
//
|
|
154
|
+
// Base ref resolution or counting failed
|
|
150
155
|
}
|
|
151
156
|
return {
|
|
152
157
|
branch,
|
|
153
158
|
head_commit: headCommit,
|
|
154
|
-
base_branch:
|
|
159
|
+
base_branch: resolvedBaseBranch,
|
|
155
160
|
commits_ahead: commitsAhead,
|
|
156
161
|
};
|
|
157
162
|
}
|
|
@@ -162,7 +167,7 @@ export function getGitState(worktreePath) {
|
|
|
162
167
|
/**
|
|
163
168
|
* Get change summary for a worktree.
|
|
164
169
|
*/
|
|
165
|
-
export function getChangeSummary(worktreePath) {
|
|
170
|
+
export function getChangeSummary(worktreePath, baseBranch = 'main') {
|
|
166
171
|
const defaultChanges = {
|
|
167
172
|
files_changed: [],
|
|
168
173
|
files_added: [],
|
|
@@ -174,8 +179,10 @@ export function getChangeSummary(worktreePath) {
|
|
|
174
179
|
return defaultChanges;
|
|
175
180
|
}
|
|
176
181
|
try {
|
|
182
|
+
// Dynamically resolve base ref
|
|
183
|
+
const baseRef = resolveBaseRef(worktreePath, baseBranch);
|
|
177
184
|
// Get file changes
|
|
178
|
-
const nameStatus = execSync(
|
|
185
|
+
const nameStatus = execSync(`git diff ${baseRef}..HEAD --name-status`, {
|
|
179
186
|
cwd: worktreePath,
|
|
180
187
|
encoding: 'utf8',
|
|
181
188
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
@@ -203,7 +210,7 @@ export function getChangeSummary(worktreePath) {
|
|
|
203
210
|
let insertions = 0;
|
|
204
211
|
let deletions = 0;
|
|
205
212
|
try {
|
|
206
|
-
const shortstat = execSync(
|
|
213
|
+
const shortstat = execSync(`git diff ${baseRef}..HEAD --shortstat`, {
|
|
207
214
|
cwd: worktreePath,
|
|
208
215
|
encoding: 'utf8',
|
|
209
216
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
@@ -233,18 +240,20 @@ export function getChangeSummary(worktreePath) {
|
|
|
233
240
|
/**
|
|
234
241
|
* Generate a comprehensive report for a surrogate.
|
|
235
242
|
*/
|
|
236
|
-
export function generateReport(surrogateId, worktreePath, metadata) {
|
|
243
|
+
export function generateReport(surrogateId, worktreePath, metadata, baseBranch = 'main') {
|
|
237
244
|
ensureReportsDir();
|
|
238
245
|
const completedAt = new Date().toISOString();
|
|
239
246
|
const startTime = new Date(metadata.startedAt).getTime();
|
|
240
247
|
const endTime = new Date(completedAt).getTime();
|
|
248
|
+
// Dynamically resolve base ref
|
|
249
|
+
const baseRef = resolveBaseRef(worktreePath, baseBranch);
|
|
241
250
|
// Get git info
|
|
242
|
-
const gitState = getGitState(worktreePath);
|
|
243
|
-
const changes = getChangeSummary(worktreePath);
|
|
251
|
+
const gitState = getGitState(worktreePath, baseBranch);
|
|
252
|
+
const changes = getChangeSummary(worktreePath, baseBranch);
|
|
244
253
|
// Get commits
|
|
245
254
|
const commits = [];
|
|
246
255
|
try {
|
|
247
|
-
const log = execSync(
|
|
256
|
+
const log = execSync(`git log --oneline ${baseRef}..HEAD`, {
|
|
248
257
|
cwd: worktreePath,
|
|
249
258
|
encoding: 'utf8',
|
|
250
259
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
@@ -259,7 +268,7 @@ export function generateReport(surrogateId, worktreePath, metadata) {
|
|
|
259
268
|
// Get diff stat
|
|
260
269
|
let diffStat = '';
|
|
261
270
|
try {
|
|
262
|
-
diffStat = execSync(
|
|
271
|
+
diffStat = execSync(`git diff ${baseRef}..HEAD --stat`, {
|
|
263
272
|
cwd: worktreePath,
|
|
264
273
|
encoding: 'utf8',
|
|
265
274
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/utils/artifacts.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,sDAAsD;AAEtD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/utils/artifacts.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/critique.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export interface ReviewRule {
|
|
|
2
2
|
name: string;
|
|
3
3
|
description: string;
|
|
4
4
|
severity: 'error' | 'warning' | 'info';
|
|
5
|
-
check: (file: string, content: string) => ReviewViolation[];
|
|
5
|
+
check: (file: string, content: string, worktreePath: string) => ReviewViolation[];
|
|
6
6
|
}
|
|
7
7
|
export interface ReviewViolation {
|
|
8
8
|
rule: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"critique.d.ts","sourceRoot":"","sources":["../../src/utils/critique.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"critique.d.ts","sourceRoot":"","sources":["../../src/utils/critique.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,eAAe,EAAE,CAAC;CACnF;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AA0OD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,GAAE,UAAU,EAAmB,GACnC,YAAY,CAsDd;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,CAmBtE;AAsBD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,YAAY,CAiEvG;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAEpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,eAAe,EAAE,CAEzH"}
|
package/dist/utils/critique.js
CHANGED
|
@@ -11,7 +11,7 @@ const BUILT_IN_RULES = [
|
|
|
11
11
|
name: 'no-any-types',
|
|
12
12
|
description: 'Avoid using "any" type - use proper types instead',
|
|
13
13
|
severity: 'warning',
|
|
14
|
-
check: (file, content) => {
|
|
14
|
+
check: (file, content, worktreePath) => {
|
|
15
15
|
if (!file.endsWith('.ts') && !file.endsWith('.tsx'))
|
|
16
16
|
return [];
|
|
17
17
|
const violations = [];
|
|
@@ -39,7 +39,7 @@ const BUILT_IN_RULES = [
|
|
|
39
39
|
name: 'async-error-handling',
|
|
40
40
|
description: 'Async functions should have try-catch blocks',
|
|
41
41
|
severity: 'warning',
|
|
42
|
-
check: (file, content) => {
|
|
42
|
+
check: (file, content, worktreePath) => {
|
|
43
43
|
if (!file.endsWith('.ts') && !file.endsWith('.js'))
|
|
44
44
|
return [];
|
|
45
45
|
const violations = [];
|
|
@@ -88,7 +88,7 @@ const BUILT_IN_RULES = [
|
|
|
88
88
|
name: 'missing-tests',
|
|
89
89
|
description: 'Source files should have corresponding test files',
|
|
90
90
|
severity: 'info',
|
|
91
|
-
check: (file, content) => {
|
|
91
|
+
check: (file, content, worktreePath) => {
|
|
92
92
|
// Skip if file is already a test
|
|
93
93
|
if (file.includes('.test.') || file.includes('.spec.') || file.includes('__tests__')) {
|
|
94
94
|
return [];
|
|
@@ -104,7 +104,7 @@ const BUILT_IN_RULES = [
|
|
|
104
104
|
const dir = path.dirname(file);
|
|
105
105
|
const baseName = path.basename(file, path.extname(file));
|
|
106
106
|
const ext = path.extname(file);
|
|
107
|
-
// Check for test file patterns
|
|
107
|
+
// Check for test file patterns (using absolute paths from worktreePath)
|
|
108
108
|
const testPatterns = [
|
|
109
109
|
path.join(dir, `${baseName}.test${ext}`),
|
|
110
110
|
path.join(dir, `${baseName}.spec${ext}`),
|
|
@@ -113,7 +113,9 @@ const BUILT_IN_RULES = [
|
|
|
113
113
|
];
|
|
114
114
|
const hasTest = testPatterns.some((p) => {
|
|
115
115
|
try {
|
|
116
|
-
|
|
116
|
+
// CRITICAL FIX: Use worktreePath to build absolute path
|
|
117
|
+
const absolutePath = path.join(worktreePath, p);
|
|
118
|
+
return fs.existsSync(absolutePath);
|
|
117
119
|
}
|
|
118
120
|
catch {
|
|
119
121
|
return false;
|
|
@@ -137,7 +139,7 @@ const BUILT_IN_RULES = [
|
|
|
137
139
|
name: 'no-console-log',
|
|
138
140
|
description: 'Remove console.log statements before committing',
|
|
139
141
|
severity: 'warning',
|
|
140
|
-
check: (file, content) => {
|
|
142
|
+
check: (file, content, worktreePath) => {
|
|
141
143
|
if (!file.endsWith('.ts') && !file.endsWith('.js'))
|
|
142
144
|
return [];
|
|
143
145
|
const violations = [];
|
|
@@ -165,7 +167,7 @@ const BUILT_IN_RULES = [
|
|
|
165
167
|
name: 'public-api-docs',
|
|
166
168
|
description: 'Exported functions should have JSDoc comments',
|
|
167
169
|
severity: 'info',
|
|
168
|
-
check: (file, content) => {
|
|
170
|
+
check: (file, content, worktreePath) => {
|
|
169
171
|
if (!file.endsWith('.ts') && !file.endsWith('.js'))
|
|
170
172
|
return [];
|
|
171
173
|
const violations = [];
|
|
@@ -220,7 +222,7 @@ export function runSemanticReview(worktreePath, changedFiles, rules = BUILT_IN_R
|
|
|
220
222
|
filesReviewed++;
|
|
221
223
|
// Run all rules on this file
|
|
222
224
|
for (const rule of rules) {
|
|
223
|
-
const ruleViolations = rule.check(file, content);
|
|
225
|
+
const ruleViolations = rule.check(file, content, worktreePath);
|
|
224
226
|
violations.push(...ruleViolations);
|
|
225
227
|
}
|
|
226
228
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"critique.js","sourceRoot":"","sources":["../../src/utils/critique.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"critique.js","sourceRoot":"","sources":["../../src/utils/critique.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/gates.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamically resolve the base ref to compare against.
|
|
3
|
+
* Prevents hard-coded origin/main from collapsing in repos with different defaults.
|
|
4
|
+
*
|
|
5
|
+
* Strategy:
|
|
6
|
+
* 1. Try upstream branch of current HEAD
|
|
7
|
+
* 2. Try origin/<defaultBranch> from remote HEAD
|
|
8
|
+
* 3. Try local main/master
|
|
9
|
+
* 4. Fallback to provided baseBranch with origin/ prefix
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveBaseRef(worktreePath: string, baseBranch?: string): string;
|
|
1
12
|
export interface GateResult {
|
|
2
13
|
gate: string;
|
|
3
14
|
passed: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../src/utils/gates.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAgFD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EAAE,EACtB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,UAAU,CAiCZ;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EAAE,EACrB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,UAAU,CA+DZ;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAsCjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,GAAE,MAAe,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../src/utils/gates.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/gates.js
CHANGED
|
@@ -4,6 +4,78 @@ import { execSync } from 'child_process';
|
|
|
4
4
|
import * as fs from 'fs';
|
|
5
5
|
import * as path from 'path';
|
|
6
6
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
7
|
+
// BASE REF RESOLUTION (fixes hard-coded origin/main)
|
|
8
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
9
|
+
/**
|
|
10
|
+
* Dynamically resolve the base ref to compare against.
|
|
11
|
+
* Prevents hard-coded origin/main from collapsing in repos with different defaults.
|
|
12
|
+
*
|
|
13
|
+
* Strategy:
|
|
14
|
+
* 1. Try upstream branch of current HEAD
|
|
15
|
+
* 2. Try origin/<defaultBranch> from remote HEAD
|
|
16
|
+
* 3. Try local main/master
|
|
17
|
+
* 4. Fallback to provided baseBranch with origin/ prefix
|
|
18
|
+
*/
|
|
19
|
+
export function resolveBaseRef(worktreePath, baseBranch = 'main') {
|
|
20
|
+
try {
|
|
21
|
+
// Try to get the upstream branch
|
|
22
|
+
const upstream = execSync('git rev-parse --abbrev-ref --symbolic-full-name @{u}', {
|
|
23
|
+
cwd: worktreePath,
|
|
24
|
+
encoding: 'utf8',
|
|
25
|
+
}).trim();
|
|
26
|
+
if (upstream && upstream !== '@{u}') {
|
|
27
|
+
return upstream;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// No upstream set, continue
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
// Try to get default branch from origin
|
|
35
|
+
const originHead = execSync('git symbolic-ref refs/remotes/origin/HEAD', {
|
|
36
|
+
cwd: worktreePath,
|
|
37
|
+
encoding: 'utf8',
|
|
38
|
+
}).trim();
|
|
39
|
+
if (originHead) {
|
|
40
|
+
return originHead.replace('refs/remotes/', '');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// origin/HEAD not set, continue
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
// Check if origin/<baseBranch> exists
|
|
48
|
+
execSync(`git rev-parse --verify origin/${baseBranch}`, {
|
|
49
|
+
cwd: worktreePath,
|
|
50
|
+
stdio: 'pipe',
|
|
51
|
+
});
|
|
52
|
+
return `origin/${baseBranch}`;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// origin/<baseBranch> doesn't exist
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
// Fallback: check if local main or master exists
|
|
59
|
+
for (const branch of ['main', 'master']) {
|
|
60
|
+
try {
|
|
61
|
+
execSync(`git rev-parse --verify ${branch}`, {
|
|
62
|
+
cwd: worktreePath,
|
|
63
|
+
stdio: 'pipe',
|
|
64
|
+
});
|
|
65
|
+
return branch;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// Local branches don't exist
|
|
74
|
+
}
|
|
75
|
+
// Ultimate fallback: return what was requested (may fail later)
|
|
76
|
+
return `origin/${baseBranch}`;
|
|
77
|
+
}
|
|
78
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
7
79
|
// INDIVIDUAL GATES
|
|
8
80
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
9
81
|
function runGate(name, worktreePath, command, required = true) {
|
|
@@ -205,19 +277,30 @@ export function runHasChangesGate(worktreePath, baseBranch = 'main') {
|
|
|
205
277
|
console.error('[Gate] HasChanges: Checking for actual changes...');
|
|
206
278
|
const start = Date.now();
|
|
207
279
|
try {
|
|
208
|
-
// 1.
|
|
209
|
-
|
|
210
|
-
|
|
280
|
+
// 1. Resolve base ref dynamically (prevents origin/main hard-coding issues)
|
|
281
|
+
const baseRef = resolveBaseRef(worktreePath, baseBranch);
|
|
282
|
+
console.error(`[Gate] HasChanges: Comparing against ${baseRef}`);
|
|
283
|
+
// 2. Fetch to ensure fresh refs (only if it's a remote ref)
|
|
284
|
+
if (baseRef.startsWith('origin/')) {
|
|
285
|
+
try {
|
|
286
|
+
const remoteBranch = baseRef.replace('origin/', '');
|
|
287
|
+
execSync(`git fetch origin ${remoteBranch}`, { cwd: worktreePath, stdio: 'pipe' });
|
|
288
|
+
}
|
|
289
|
+
catch {
|
|
290
|
+
// Fetch failed, continue with existing refs
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
// 3. Check if already merged to baseRef
|
|
211
294
|
let isMerged = false;
|
|
212
295
|
try {
|
|
213
|
-
execSync(`git merge-base --is-ancestor HEAD
|
|
296
|
+
execSync(`git merge-base --is-ancestor HEAD ${baseRef}`, { cwd: worktreePath });
|
|
214
297
|
isMerged = true;
|
|
215
298
|
}
|
|
216
299
|
catch {
|
|
217
300
|
// Not merged, continue with normal checks
|
|
218
301
|
}
|
|
219
|
-
//
|
|
220
|
-
const diff = execSync(`git diff
|
|
302
|
+
// 4. TWO-DOT diff (correct syntax) - shows commits in HEAD not in baseRef
|
|
303
|
+
const diff = execSync(`git diff ${baseRef}..HEAD --name-only`, {
|
|
221
304
|
cwd: worktreePath,
|
|
222
305
|
encoding: 'utf8',
|
|
223
306
|
}).trim();
|
|
@@ -241,16 +324,42 @@ export function runHasChangesGate(worktreePath, baseBranch = 'main') {
|
|
|
241
324
|
};
|
|
242
325
|
}
|
|
243
326
|
catch (error) {
|
|
244
|
-
// If
|
|
327
|
+
// If we can't compare to base branch, require stricter proof of work
|
|
245
328
|
try {
|
|
246
|
-
|
|
329
|
+
// Check if there are any commits on the current branch
|
|
330
|
+
const commitCount = execSync('git rev-list --count HEAD', {
|
|
247
331
|
cwd: worktreePath,
|
|
248
332
|
encoding: 'utf8',
|
|
249
333
|
}).trim();
|
|
334
|
+
if (commitCount === '0' || commitCount === '1') {
|
|
335
|
+
return {
|
|
336
|
+
gate: 'HAS_CHANGES',
|
|
337
|
+
passed: false,
|
|
338
|
+
error: `Cannot verify changes: unable to compare to ${baseBranch} and insufficient commit history`,
|
|
339
|
+
duration_ms: Date.now() - start,
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
// Check if there are any uncommitted changes or recent commits
|
|
343
|
+
const hasUncommitted = execSync('git diff --name-only HEAD', {
|
|
344
|
+
cwd: worktreePath,
|
|
345
|
+
encoding: 'utf8',
|
|
346
|
+
}).trim();
|
|
347
|
+
const lastCommitFiles = execSync('git show --name-only --pretty="" HEAD', {
|
|
348
|
+
cwd: worktreePath,
|
|
349
|
+
encoding: 'utf8',
|
|
350
|
+
}).trim();
|
|
351
|
+
if (!hasUncommitted && !lastCommitFiles) {
|
|
352
|
+
return {
|
|
353
|
+
gate: 'HAS_CHANGES',
|
|
354
|
+
passed: false,
|
|
355
|
+
error: `No changes detected (cannot verify against ${baseBranch})`,
|
|
356
|
+
duration_ms: Date.now() - start,
|
|
357
|
+
};
|
|
358
|
+
}
|
|
250
359
|
return {
|
|
251
360
|
gate: 'HAS_CHANGES',
|
|
252
361
|
passed: true,
|
|
253
|
-
output: `Has
|
|
362
|
+
output: `Has changes (could not compare to ${baseBranch}, verified local changes)`,
|
|
254
363
|
duration_ms: Date.now() - start,
|
|
255
364
|
};
|
|
256
365
|
}
|
|
@@ -258,7 +367,7 @@ export function runHasChangesGate(worktreePath, baseBranch = 'main') {
|
|
|
258
367
|
return {
|
|
259
368
|
gate: 'HAS_CHANGES',
|
|
260
369
|
passed: false,
|
|
261
|
-
error:
|
|
370
|
+
error: `Cannot verify changes: git comparison failed for ${baseBranch}`,
|
|
262
371
|
duration_ms: Date.now() - start,
|
|
263
372
|
};
|
|
264
373
|
}
|
|
@@ -269,15 +378,27 @@ export function runHasChangesGate(worktreePath, baseBranch = 'main') {
|
|
|
269
378
|
*/
|
|
270
379
|
export function getChangedFiles(worktreePath, baseBranch = 'main') {
|
|
271
380
|
try {
|
|
272
|
-
|
|
381
|
+
// Use dynamic base ref resolution
|
|
382
|
+
const baseRef = resolveBaseRef(worktreePath, baseBranch);
|
|
383
|
+
const diff = execSync(`git diff ${baseRef}..HEAD --name-only`, {
|
|
273
384
|
cwd: worktreePath,
|
|
274
385
|
encoding: 'utf8',
|
|
275
386
|
}).trim();
|
|
276
387
|
return diff ? diff.split('\n').filter(Boolean) : [];
|
|
277
388
|
}
|
|
278
389
|
catch {
|
|
279
|
-
// Fallback:
|
|
390
|
+
// Fallback: compare commits, not working tree
|
|
391
|
+
// This ensures we detect changes even after commits
|
|
280
392
|
try {
|
|
393
|
+
// Try to get files changed in the last commit
|
|
394
|
+
const lastCommit = execSync('git show --name-only --pretty="" HEAD', {
|
|
395
|
+
cwd: worktreePath,
|
|
396
|
+
encoding: 'utf8',
|
|
397
|
+
}).trim();
|
|
398
|
+
if (lastCommit) {
|
|
399
|
+
return lastCommit.split('\n').filter(Boolean);
|
|
400
|
+
}
|
|
401
|
+
// If no last commit, fall back to working tree changes
|
|
281
402
|
const status = execSync('git diff --name-only HEAD', {
|
|
282
403
|
cwd: worktreePath,
|
|
283
404
|
encoding: 'utf8',
|
|
@@ -398,7 +519,10 @@ export function runTestGate(worktreePath, changedFiles, scopedTests = true) {
|
|
|
398
519
|
}
|
|
399
520
|
// Use scoped tests if Jest and changed files provided
|
|
400
521
|
if (scopedTests && isJest && changedFiles && changedFiles.length > 0) {
|
|
401
|
-
|
|
522
|
+
// Properly quote file paths to prevent shell injection and handle spaces
|
|
523
|
+
const filesArg = changedFiles
|
|
524
|
+
.map(f => `"${f.replace(/"/g, '\\"')}"`) // Escape quotes and wrap in quotes
|
|
525
|
+
.join(' ');
|
|
402
526
|
testCommand = `npx jest --findRelatedTests ${filesArg} --passWithNoTests`;
|
|
403
527
|
console.error(`[Gate] Test: Running scoped tests for ${changedFiles.length} changed files`);
|
|
404
528
|
}
|