@urateam/core 0.1.12 → 0.1.14
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/__tests__/push-stale-info-recovery.test.d.ts +2 -0
- package/dist/__tests__/push-stale-info-recovery.test.d.ts.map +1 -0
- package/dist/__tests__/push-stale-info-recovery.test.js +90 -0
- package/dist/__tests__/push-stale-info-recovery.test.js.map +1 -0
- package/dist/__tests__/test-quality.test.js +83 -0
- package/dist/__tests__/test-quality.test.js.map +1 -1
- package/dist/executor/test-quality.d.ts +25 -1
- package/dist/executor/test-quality.d.ts.map +1 -1
- package/dist/executor/test-quality.js +54 -5
- package/dist/executor/test-quality.js.map +1 -1
- package/dist/repo/git.d.ts +12 -0
- package/dist/repo/git.d.ts.map +1 -1
- package/dist/repo/git.js +27 -1
- package/dist/repo/git.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-stale-info-recovery.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/push-stale-info-recovery.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
2
|
+
import { execFileSync } from "node:child_process";
|
|
3
|
+
import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { tmpdir } from "node:os";
|
|
6
|
+
import { pushBranchForce } from "../repo/git.js";
|
|
7
|
+
/**
|
|
8
|
+
* Fixture mirroring the reproduction context for urateam#115:
|
|
9
|
+
*
|
|
10
|
+
* - A bare "origin" repo (acts as the remote).
|
|
11
|
+
* - A local clone with `origin` configured + a checked-out feature branch.
|
|
12
|
+
* - The local clone's `refs/remotes/origin/<branch>` points at a commit
|
|
13
|
+
* that is no longer present on the bare origin (simulating "branch
|
|
14
|
+
* was deleted from origin between runs").
|
|
15
|
+
*
|
|
16
|
+
* This is the exact state that produces the `force-with-lease` "stale
|
|
17
|
+
* info" rejection in the rotulus#17 OSS validation rerun.
|
|
18
|
+
*/
|
|
19
|
+
async function makeOriginAndCloneWithStaleTrackingRef() {
|
|
20
|
+
const root = await mkdtemp(join(tmpdir(), "push-stale-test-"));
|
|
21
|
+
const originDir = join(root, "origin.git");
|
|
22
|
+
const cloneDir = join(root, "clone");
|
|
23
|
+
const branch = "agent/iss-1";
|
|
24
|
+
// 1. Build a bare origin with a baseline commit on main.
|
|
25
|
+
execFileSync("git", ["init", "--bare", "-b", "main", originDir], { stdio: "pipe" });
|
|
26
|
+
// 2. Build a worker clone, push baseline, and push the agent branch.
|
|
27
|
+
const seedDir = join(root, "seed");
|
|
28
|
+
execFileSync("git", ["clone", originDir, seedDir], { stdio: "pipe" });
|
|
29
|
+
execFileSync("git", ["config", "user.email", "test@test.com"], { cwd: seedDir, stdio: "pipe" });
|
|
30
|
+
execFileSync("git", ["config", "user.name", "Test"], { cwd: seedDir, stdio: "pipe" });
|
|
31
|
+
await writeFile(join(seedDir, "README.md"), "init\n");
|
|
32
|
+
execFileSync("git", ["add", "."], { cwd: seedDir, stdio: "pipe" });
|
|
33
|
+
execFileSync("git", ["commit", "-m", "init"], { cwd: seedDir, stdio: "pipe" });
|
|
34
|
+
execFileSync("git", ["push", "origin", "main"], { cwd: seedDir, stdio: "pipe" });
|
|
35
|
+
execFileSync("git", ["checkout", "-b", branch], { cwd: seedDir, stdio: "pipe" });
|
|
36
|
+
await writeFile(join(seedDir, "feature.ts"), "export const a = 1;\n");
|
|
37
|
+
execFileSync("git", ["add", "."], { cwd: seedDir, stdio: "pipe" });
|
|
38
|
+
execFileSync("git", ["commit", "-m", "feat: agent work"], { cwd: seedDir, stdio: "pipe" });
|
|
39
|
+
execFileSync("git", ["push", "origin", branch], { cwd: seedDir, stdio: "pipe" });
|
|
40
|
+
// 3. Build the actual clone the test will operate on. Mirrors what the
|
|
41
|
+
// runner has after a previous run pushed.
|
|
42
|
+
execFileSync("git", ["clone", "--branch", branch, originDir, cloneDir], { stdio: "pipe" });
|
|
43
|
+
execFileSync("git", ["config", "user.email", "test@test.com"], { cwd: cloneDir, stdio: "pipe" });
|
|
44
|
+
execFileSync("git", ["config", "user.name", "Test"], { cwd: cloneDir, stdio: "pipe" });
|
|
45
|
+
// 4. DELETE the agent branch from origin (simulating: operator closed
|
|
46
|
+
// the PR with --delete-branch). Local clone's tracking ref is now
|
|
47
|
+
// stale — it still points at the deleted commit.
|
|
48
|
+
execFileSync("git", ["push", "origin", "--delete", branch], { cwd: seedDir, stdio: "pipe" });
|
|
49
|
+
// 5. Stage a NEW commit on top of the agent branch in the test clone
|
|
50
|
+
// (mirrors the new run's work).
|
|
51
|
+
await writeFile(join(cloneDir, "feature.ts"), "export const a = 2; // updated\n");
|
|
52
|
+
execFileSync("git", ["add", "."], { cwd: cloneDir, stdio: "pipe" });
|
|
53
|
+
execFileSync("git", ["commit", "-m", "fix: agent rerun work"], { cwd: cloneDir, stdio: "pipe" });
|
|
54
|
+
await rm(seedDir, { recursive: true, force: true });
|
|
55
|
+
return { originDir, cloneDir, branch };
|
|
56
|
+
}
|
|
57
|
+
describe("pushBranchForce — stale-info recovery (urateam#115)", () => {
|
|
58
|
+
let setup;
|
|
59
|
+
beforeEach(async () => {
|
|
60
|
+
setup = await makeOriginAndCloneWithStaleTrackingRef();
|
|
61
|
+
});
|
|
62
|
+
afterEach(async () => {
|
|
63
|
+
// Clean both fixture dirs (they're under the same root).
|
|
64
|
+
await rm(setup.originDir, { recursive: true, force: true });
|
|
65
|
+
await rm(setup.cloneDir, { recursive: true, force: true });
|
|
66
|
+
});
|
|
67
|
+
it("recovers from 'stale info' rejection by fetching+pruning and retrying", async () => {
|
|
68
|
+
// Sanity check: bare `git push --force-with-lease` would fail here.
|
|
69
|
+
let bareErr = null;
|
|
70
|
+
try {
|
|
71
|
+
execFileSync("git", ["push", "origin", setup.branch, "--force-with-lease"], { cwd: setup.cloneDir, stdio: "pipe" });
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
bareErr = e.stderr?.toString() ?? String(e);
|
|
75
|
+
}
|
|
76
|
+
expect(bareErr).toContain("stale info");
|
|
77
|
+
// Real test: pushBranchForce should auto-recover.
|
|
78
|
+
await pushBranchForce(setup.cloneDir, setup.branch);
|
|
79
|
+
// Verify the push actually landed on origin.
|
|
80
|
+
const remoteRefs = execFileSync("git", ["ls-remote", "origin", `refs/heads/${setup.branch}`], { cwd: setup.cloneDir }).toString();
|
|
81
|
+
expect(remoteRefs).toContain(setup.branch);
|
|
82
|
+
});
|
|
83
|
+
it("propagates non-stale-info push errors instead of swallowing them", async () => {
|
|
84
|
+
// Negative control: a push error that's NOT "stale info" must reach
|
|
85
|
+
// the caller. Trigger one by pointing origin at a non-existent path.
|
|
86
|
+
execFileSync("git", ["remote", "set-url", "origin", "/nonexistent/origin.git"], { cwd: setup.cloneDir, stdio: "pipe" });
|
|
87
|
+
await expect(pushBranchForce(setup.cloneDir, setup.branch)).rejects.toThrow();
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
//# sourceMappingURL=push-stale-info-recovery.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-stale-info-recovery.test.js","sourceRoot":"","sources":["../../src/__tests__/push-stale-info-recovery.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,sCAAsC;IAKnD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,aAAa,CAAC;IAE7B,yDAAyD;IACzD,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEpF,qEAAqE;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACtE,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAChG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACtF,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IACtD,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/E,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACjF,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACjF,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,uBAAuB,CAAC,CAAC;IACtE,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3F,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEjF,uEAAuE;IACvE,6CAA6C;IAC7C,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3F,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACjG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvF,sEAAsE;IACtE,qEAAqE;IACrE,oDAAoD;IACpD,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAE7F,qEAAqE;IACrE,mCAAmC;IACnC,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAClF,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACpE,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEjG,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACzC,CAAC;AAED,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;IACnE,IAAI,KAA8D,CAAC;IAEnE,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,KAAK,GAAG,MAAM,sCAAsC,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,yDAAyD;QACzD,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,oEAAoE;QACpE,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,YAAY,CACV,KAAK,EACL,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACtD,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CACvC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAI,CAAyB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAExC,kDAAkD;QAClD,MAAM,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAEpD,6CAA6C;QAC7C,MAAM,UAAU,GAAG,YAAY,CAC7B,KAAK,EACL,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,KAAK,CAAC,MAAM,EAAE,CAAC,EACrD,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CACxB,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,oEAAoE;QACpE,qEAAqE;QACrE,YAAY,CACV,KAAK,EACL,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,yBAAyB,CAAC,EAC1D,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CACvC,CAAC;QACF,MAAM,MAAM,CACV,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAC9C,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -313,6 +313,89 @@ it("throws on bad input", () => { expect(() => sum(null, 2)).toThrow(); });
|
|
|
313
313
|
expect(typeof v.description).toBe("string");
|
|
314
314
|
expect(typeof v.fix).toBe("string");
|
|
315
315
|
});
|
|
316
|
+
// ---------------------------------------------------------------------------
|
|
317
|
+
// urateam#97 / rotulus#17 PR #18: constant-self-equality stub detection
|
|
318
|
+
// ---------------------------------------------------------------------------
|
|
319
|
+
it("flags constant-self-equality stubs even when buried among real assertions (rotulus#17 case)", async () => {
|
|
320
|
+
// Reproduces the PR #18 regression: nav test file had 4 stubs of the
|
|
321
|
+
// form `expect(BRAND_COLOR).toBe(BRAND_COLOR)` mixed in with many
|
|
322
|
+
// real behavioral assertions. Pre-fix, the stubs counted as
|
|
323
|
+
// "behavioral" (toBe matcher), the file's trivialRatio stayed below
|
|
324
|
+
// the 0.8 threshold, and the file was NOT flagged. Post-fix, the
|
|
325
|
+
// stubs are reclassified to trivial AND any non-zero stubAssertions
|
|
326
|
+
// unconditionally flags the file.
|
|
327
|
+
const content = `
|
|
328
|
+
describe("nav constants", () => {
|
|
329
|
+
it("uses brand color", () => { expect(BRAND_COLOR).toBe(BRAND_COLOR); });
|
|
330
|
+
it("uses bg color", () => { expect(TAB_BAR_BG).toBe(TAB_BAR_BG); });
|
|
331
|
+
it("uses inactive color", () => { expect(TAB_INACTIVE_COLOR).toBe(TAB_INACTIVE_COLOR); });
|
|
332
|
+
it("uses ac3", () => { expect(AC3).toBe(AC3); });
|
|
333
|
+
it("real test 1", () => { expect(getValue()).toEqual({ a: 1, b: 2 }); });
|
|
334
|
+
it("real test 2", () => { expect(items).toHaveLength(3); });
|
|
335
|
+
it("real test 3", () => { expect(spy).toHaveBeenCalledWith("foo"); });
|
|
336
|
+
it("real test 4", () => { expect(promise).resolves.toEqual("done"); });
|
|
337
|
+
it("real test 5", () => { expect(error).toThrow("BadInput"); });
|
|
338
|
+
});`;
|
|
339
|
+
mockReadFile({ [join("/worktree", "nav.test.tsx")]: content });
|
|
340
|
+
const result = await checkTestQuality(["nav.test.tsx"], "/worktree");
|
|
341
|
+
expect(result.analyses[0].stubAssertions).toBe(4);
|
|
342
|
+
expect(result.analyses[0].isFlagged).toBe(true);
|
|
343
|
+
expect(result.violations).toHaveLength(1);
|
|
344
|
+
expect(result.violations[0].description).toContain("4 constant-self-equality stub(s)");
|
|
345
|
+
});
|
|
346
|
+
it("reclassifies expect(X).toEqual(X) and toStrictEqual(X) as trivial too", async () => {
|
|
347
|
+
const content = `
|
|
348
|
+
it("a", () => { expect(VAR).toEqual(VAR); });
|
|
349
|
+
it("b", () => { expect(VAR2).toStrictEqual(VAR2); });
|
|
350
|
+
it("c", () => { expect(real).toBe(42); });`;
|
|
351
|
+
mockReadFile({ [join("/worktree", "x.test.ts")]: content });
|
|
352
|
+
const result = await checkTestQuality(["x.test.ts"], "/worktree");
|
|
353
|
+
const a = result.analyses[0];
|
|
354
|
+
expect(a.stubAssertions).toBe(2);
|
|
355
|
+
// Real `toBe(42)` stays behavioral.
|
|
356
|
+
expect(a.behavioralAssertions).toBe(1);
|
|
357
|
+
// Trivial pool gains the 2 stubs (despite using behavioral matchers).
|
|
358
|
+
expect(a.trivialAssertions).toBe(2);
|
|
359
|
+
expect(a.isFlagged).toBe(true);
|
|
360
|
+
});
|
|
361
|
+
it("matches member-access identifiers (expect(obj.foo).toBe(obj.foo))", async () => {
|
|
362
|
+
const content = `it("a", () => { expect(config.brandColor).toBe(config.brandColor); });`;
|
|
363
|
+
mockReadFile({ [join("/worktree", "y.test.ts")]: content });
|
|
364
|
+
const result = await checkTestQuality(["y.test.ts"], "/worktree");
|
|
365
|
+
expect(result.analyses[0].stubAssertions).toBe(1);
|
|
366
|
+
expect(result.analyses[0].isFlagged).toBe(true);
|
|
367
|
+
});
|
|
368
|
+
it("does NOT flag expect(X).toBe(Y) when identifiers differ (negative control)", async () => {
|
|
369
|
+
const content = `
|
|
370
|
+
it("a", () => { expect(actual).toBe(expected); });
|
|
371
|
+
it("b", () => { expect(brandColor).toBe(theme.brandColor); });
|
|
372
|
+
it("c", () => { expect(items).toEqual([1, 2, 3]); });`;
|
|
373
|
+
mockReadFile({ [join("/worktree", "z.test.ts")]: content });
|
|
374
|
+
const result = await checkTestQuality(["z.test.ts"], "/worktree");
|
|
375
|
+
expect(result.analyses[0].stubAssertions).toBe(0);
|
|
376
|
+
expect(result.analyses[0].behavioralAssertions).toBe(3);
|
|
377
|
+
expect(result.analyses[0].isFlagged).toBe(false);
|
|
378
|
+
expect(result.violations).toHaveLength(0);
|
|
379
|
+
});
|
|
380
|
+
it("flags a file where ONE test has a constant-self-equality stub (no dilution-grace)", async () => {
|
|
381
|
+
// The diluted-ratio defense was the rotulus#17 regression. Even one
|
|
382
|
+
// stub in a file with otherwise-real tests should fire the flag.
|
|
383
|
+
const content = `
|
|
384
|
+
it("real 1", () => { expect(a).toEqual({ x: 1 }); });
|
|
385
|
+
it("real 2", () => { expect(b).toHaveLength(5); });
|
|
386
|
+
it("stub", () => { expect(THEME).toBe(THEME); });
|
|
387
|
+
it("real 3", () => { expect(spy).toHaveBeenCalledWith("ok"); });`;
|
|
388
|
+
mockReadFile({ [join("/worktree", "mixed.test.ts")]: content });
|
|
389
|
+
const result = await checkTestQuality(["mixed.test.ts"], "/worktree");
|
|
390
|
+
const a = result.analyses[0];
|
|
391
|
+
expect(a.stubAssertions).toBe(1);
|
|
392
|
+
expect(a.behavioralAssertions).toBe(3); // 3 real, 1 stub reclassified out
|
|
393
|
+
// Trivial ratio is 1/4 = 25% — way below the 0.8 threshold. Pre-fix
|
|
394
|
+
// this would NOT have been flagged. Post-fix the unconditional
|
|
395
|
+
// stub-count flag fires.
|
|
396
|
+
expect(a.trivialRatio).toBeLessThan(TRIVIAL_THRESHOLD);
|
|
397
|
+
expect(a.isFlagged).toBe(true);
|
|
398
|
+
});
|
|
316
399
|
it("identifies BEC-52 pattern: 13 tests all with toBeDefined", async () => {
|
|
317
400
|
// Reproduce the problematic BEC-52 dashboard server.test.ts pattern
|
|
318
401
|
const tests = Array.from({ length: 13 }, (_, i) => ` it("test ${i + 1}", () => { expect(app).toBeDefined(); });`).join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-quality.test.js","sourceRoot":"","sources":["../../src/__tests__/test-quality.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test-quality.test.js","sourceRoot":"","sources":["../../src/__tests__/test-quality.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,6 +57,24 @@ export declare const BEHAVIORAL_MATCHERS: readonly ["toEqual", "toStrictEqual",
|
|
|
57
57
|
* Files with >80% trivial assertions are considered low quality.
|
|
58
58
|
*/
|
|
59
59
|
export declare const TRIVIAL_THRESHOLD = 0.8;
|
|
60
|
+
/**
|
|
61
|
+
* Regex for "constant-self-equality" stubs: `expect(X).toBe(X)`,
|
|
62
|
+
* `expect(X).toEqual(X)`, or `expect(X).toStrictEqual(X)` where the
|
|
63
|
+
* same identifier (possibly with member access like `obj.foo`) appears on
|
|
64
|
+
* both sides. These use behavioral matchers but assert a tautology
|
|
65
|
+
* (X === X) — which is always true and verifies nothing meaningful.
|
|
66
|
+
*
|
|
67
|
+
* Reclassified as trivial in countAssertions(). Triggers an unconditional
|
|
68
|
+
* flag (not just when the file's overall trivial ratio is high) — these
|
|
69
|
+
* patterns are unambiguous stubs and shouldn't ship even when diluted
|
|
70
|
+
* by real assertions elsewhere in the file.
|
|
71
|
+
*
|
|
72
|
+
* Pattern observed in rotulus#17 PR #18 where the agent left
|
|
73
|
+
* `expect(BRAND_COLOR).toBe(BRAND_COLOR)` and similar stubs intact —
|
|
74
|
+
* the previous detector counted them as behavioral and the file passed.
|
|
75
|
+
* See urateam#97 evidence comment.
|
|
76
|
+
*/
|
|
77
|
+
export declare const CONSTANT_SELF_EQUALITY_PATTERN: RegExp;
|
|
60
78
|
/**
|
|
61
79
|
* Analysis result for a single test file.
|
|
62
80
|
*/
|
|
@@ -65,10 +83,16 @@ export interface TestFileAnalysis {
|
|
|
65
83
|
file: string;
|
|
66
84
|
/** Total assertions (trivial + behavioral) */
|
|
67
85
|
totalAssertions: number;
|
|
68
|
-
/** Number of trivial assertions */
|
|
86
|
+
/** Number of trivial assertions (includes constant-self-equality stubs) */
|
|
69
87
|
trivialAssertions: number;
|
|
70
88
|
/** Number of behavioral assertions */
|
|
71
89
|
behavioralAssertions: number;
|
|
90
|
+
/**
|
|
91
|
+
* Number of constant-self-equality stubs (`expect(X).toBe(X)` etc).
|
|
92
|
+
* Subset of trivialAssertions — already counted there. Tracked
|
|
93
|
+
* separately so the violation description can call them out specifically.
|
|
94
|
+
*/
|
|
95
|
+
stubAssertions: number;
|
|
72
96
|
/** Ratio of trivial to total (0–1) */
|
|
73
97
|
trivialRatio: number;
|
|
74
98
|
/** Test function names that contain no behavioral assertion */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-quality.d.ts","sourceRoot":"","sources":["../../src/executor/test-quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,kFAMnB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB,6jBA+BtB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"test-quality.d.ts","sourceRoot":"","sources":["../../src/executor/test-quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,kFAMnB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB,6jBA+BtB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,8BAA8B,QAC+C,CAAC;AAW3F;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sCAAsC;IACtC,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,+BAA+B,EAAE,MAAM,EAAE,CAAC;IAC1C,qEAAqE;IACrE,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,gCAAgC;IAChC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB3F;AA8CD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA0DjF;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAqF5B"}
|
|
@@ -97,6 +97,24 @@ export const BEHAVIORAL_MATCHERS = [
|
|
|
97
97
|
* Files with >80% trivial assertions are considered low quality.
|
|
98
98
|
*/
|
|
99
99
|
export const TRIVIAL_THRESHOLD = 0.8;
|
|
100
|
+
/**
|
|
101
|
+
* Regex for "constant-self-equality" stubs: `expect(X).toBe(X)`,
|
|
102
|
+
* `expect(X).toEqual(X)`, or `expect(X).toStrictEqual(X)` where the
|
|
103
|
+
* same identifier (possibly with member access like `obj.foo`) appears on
|
|
104
|
+
* both sides. These use behavioral matchers but assert a tautology
|
|
105
|
+
* (X === X) — which is always true and verifies nothing meaningful.
|
|
106
|
+
*
|
|
107
|
+
* Reclassified as trivial in countAssertions(). Triggers an unconditional
|
|
108
|
+
* flag (not just when the file's overall trivial ratio is high) — these
|
|
109
|
+
* patterns are unambiguous stubs and shouldn't ship even when diluted
|
|
110
|
+
* by real assertions elsewhere in the file.
|
|
111
|
+
*
|
|
112
|
+
* Pattern observed in rotulus#17 PR #18 where the agent left
|
|
113
|
+
* `expect(BRAND_COLOR).toBe(BRAND_COLOR)` and similar stubs intact —
|
|
114
|
+
* the previous detector counted them as behavioral and the file passed.
|
|
115
|
+
* See urateam#97 evidence comment.
|
|
116
|
+
*/
|
|
117
|
+
export const CONSTANT_SELF_EQUALITY_PATTERN = /\bexpect\s*\(\s*([\w$][\w$.]*)\s*\)\s*\.(?:toBe|toEqual|toStrictEqual)\s*\(\s*\1\s*\)/g;
|
|
100
118
|
/**
|
|
101
119
|
* Glob-style test file name patterns.
|
|
102
120
|
*/
|
|
@@ -138,15 +156,35 @@ export function extractTestBlocks(content) {
|
|
|
138
156
|
}
|
|
139
157
|
return blocks;
|
|
140
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Counts the number of constant-self-equality stubs in the given content.
|
|
161
|
+
* Resets the regex `lastIndex` defensively since the pattern is /g.
|
|
162
|
+
*/
|
|
163
|
+
function countStubAssertions(content) {
|
|
164
|
+
CONSTANT_SELF_EQUALITY_PATTERN.lastIndex = 0;
|
|
165
|
+
return Array.from(content.matchAll(CONSTANT_SELF_EQUALITY_PATTERN)).length;
|
|
166
|
+
}
|
|
141
167
|
/**
|
|
142
168
|
* Counts how many times each assertion group appears in the given content.
|
|
169
|
+
* Constant-self-equality stubs (e.g. `expect(X).toBe(X)`) are reclassified
|
|
170
|
+
* from behavioral to trivial — they use behavioral matchers but assert a
|
|
171
|
+
* tautology and verify nothing.
|
|
143
172
|
*/
|
|
144
173
|
function countAssertions(content) {
|
|
145
174
|
const trivialPattern = new RegExp(`\\.(?:${TRIVIAL_MATCHERS.join("|")})\\s*\\(`, "g");
|
|
146
175
|
const behavioralPattern = new RegExp(`\\.(?:${BEHAVIORAL_MATCHERS.join("|")})\\s*\\(|\\.(?:rejects|resolves)\\b`, "g");
|
|
147
|
-
const
|
|
148
|
-
const
|
|
149
|
-
|
|
176
|
+
const rawTrivial = (content.match(trivialPattern) ?? []).length;
|
|
177
|
+
const rawBehavioral = (content.match(behavioralPattern) ?? []).length;
|
|
178
|
+
const stubs = countStubAssertions(content);
|
|
179
|
+
// Each stub match was originally counted in the behavioral pool (the
|
|
180
|
+
// matcher is toBe / toEqual / toStrictEqual). Move them to trivial.
|
|
181
|
+
// Math.max guards against arithmetic surprises if the regex ever picks
|
|
182
|
+
// up something the behavioral counter doesn't (unlikely but defensive).
|
|
183
|
+
return {
|
|
184
|
+
trivial: rawTrivial + stubs,
|
|
185
|
+
behavioral: Math.max(0, rawBehavioral - stubs),
|
|
186
|
+
stubs,
|
|
187
|
+
};
|
|
150
188
|
}
|
|
151
189
|
/**
|
|
152
190
|
* Analyzes a single test file for assertion quality.
|
|
@@ -164,13 +202,14 @@ export async function analyzeTestFile(filePath) {
|
|
|
164
202
|
totalAssertions: 0,
|
|
165
203
|
trivialAssertions: 0,
|
|
166
204
|
behavioralAssertions: 0,
|
|
205
|
+
stubAssertions: 0,
|
|
167
206
|
trivialRatio: 0,
|
|
168
207
|
testsWithoutBehavioralAssertion: [],
|
|
169
208
|
isFlagged: false,
|
|
170
209
|
};
|
|
171
210
|
}
|
|
172
211
|
// File-level counts
|
|
173
|
-
const { trivial: trivialAssertions, behavioral: behavioralAssertions } = countAssertions(content);
|
|
212
|
+
const { trivial: trivialAssertions, behavioral: behavioralAssertions, stubs: stubAssertions, } = countAssertions(content);
|
|
174
213
|
const totalAssertions = trivialAssertions + behavioralAssertions;
|
|
175
214
|
const trivialRatio = totalAssertions === 0 ? 0 : trivialAssertions / totalAssertions;
|
|
176
215
|
// Per-test-function check: find tests that have zero behavioral assertions
|
|
@@ -185,12 +224,17 @@ export async function analyzeTestFile(filePath) {
|
|
|
185
224
|
}
|
|
186
225
|
}
|
|
187
226
|
const isFlagged = (totalAssertions > 0 && trivialRatio > TRIVIAL_THRESHOLD) ||
|
|
188
|
-
(testBlocks.length > 0 && testsWithoutBehavioralAssertion.length === testBlocks.length)
|
|
227
|
+
(testBlocks.length > 0 && testsWithoutBehavioralAssertion.length === testBlocks.length) ||
|
|
228
|
+
// Constant-self-equality stubs are unambiguous regression markers — flag
|
|
229
|
+
// even one (the rotulus#17 PR #18 case where 4 such stubs slipped through
|
|
230
|
+
// the diluted-ratio check on a file with otherwise-real assertions).
|
|
231
|
+
stubAssertions > 0;
|
|
189
232
|
return {
|
|
190
233
|
file: filePath,
|
|
191
234
|
totalAssertions,
|
|
192
235
|
trivialAssertions,
|
|
193
236
|
behavioralAssertions,
|
|
237
|
+
stubAssertions,
|
|
194
238
|
trivialRatio,
|
|
195
239
|
testsWithoutBehavioralAssertion,
|
|
196
240
|
isFlagged,
|
|
@@ -224,6 +268,10 @@ export async function checkTestQuality(changedFiles, workdir) {
|
|
|
224
268
|
details.push(`${pct}% of assertions are trivial existence checks ` +
|
|
225
269
|
`(${analysis.trivialAssertions}/${analysis.totalAssertions} are toBeDefined/toBeTruthy/etc.)`);
|
|
226
270
|
}
|
|
271
|
+
if (analysis.stubAssertions > 0) {
|
|
272
|
+
details.push(`${analysis.stubAssertions} constant-self-equality stub(s) — ` +
|
|
273
|
+
`expect(X).toBe(X) / .toEqual(X) tautologies that always pass`);
|
|
274
|
+
}
|
|
227
275
|
if (analysis.testsWithoutBehavioralAssertion.length > 0) {
|
|
228
276
|
const names = analysis.testsWithoutBehavioralAssertion.slice(0, 3).join(", ");
|
|
229
277
|
const extra = analysis.testsWithoutBehavioralAssertion.length > 3
|
|
@@ -247,6 +295,7 @@ export async function checkTestQuality(changedFiles, workdir) {
|
|
|
247
295
|
trivialRatio: analysis.trivialRatio,
|
|
248
296
|
trivialAssertions: analysis.trivialAssertions,
|
|
249
297
|
behavioralAssertions: analysis.behavioralAssertions,
|
|
298
|
+
stubAssertions: analysis.stubAssertions,
|
|
250
299
|
testsWithoutBehavioralAssertion: analysis.testsWithoutBehavioralAssertion.length,
|
|
251
300
|
}, "test-quality: flagged file with low-quality assertions");
|
|
252
301
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-quality.js","sourceRoot":"","sources":["../../src/executor/test-quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,aAAa;IACb,YAAY;IACZ,WAAW;IACX,UAAU;IACV,eAAe;CACP,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS;IACT,eAAe;IACf,MAAM;IACN,WAAW;IACX,gBAAgB;IAChB,sBAAsB;IACtB,kBAAkB;IAClB,uBAAuB;IACvB,yBAAyB;IACzB,0BAA0B;IAC1B,SAAS;IACT,SAAS;IACT,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,iBAAiB;IACjB,uBAAuB;IACvB,iBAAiB;IACjB,wBAAwB;IACxB,cAAc;IACd,qBAAqB;IACrB,aAAa;IACb,gBAAgB;IAChB,oBAAoB;IACpB,wBAAwB;IACxB,uBAAuB;IACvB,gBAAgB;IAChB,WAAW;IACX,eAAe;CACP,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC;;GAEG;AACH,MAAM,kBAAkB,GAAG;IACzB,kBAAkB;IAClB,kBAAkB;IAClB,yBAAyB;CAC1B,CAAC;
|
|
1
|
+
{"version":3,"file":"test-quality.js","sourceRoot":"","sources":["../../src/executor/test-quality.ts"],"names":[],"mappings":"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"}
|
package/dist/repo/git.d.ts
CHANGED
|
@@ -101,6 +101,18 @@ export declare function abortRebase(worktreePath: string): Promise<void>;
|
|
|
101
101
|
* the original (possibly diverged) branch for human review.
|
|
102
102
|
* Verifies that the worktree HEAD is on the expected branch before pushing
|
|
103
103
|
* to prevent cross-branch contamination (BEC-99).
|
|
104
|
+
*
|
|
105
|
+
* Recovers from "stale info" rejections (urateam#115): when the local
|
|
106
|
+
* tracking ref `refs/remotes/origin/<branch>` points at a commit that
|
|
107
|
+
* no longer exists on origin (because the branch was deleted between
|
|
108
|
+
* runs), force-with-lease can't verify its lease and rejects. Running
|
|
109
|
+
* `git fetch --prune origin` removes stale local tracking refs, after
|
|
110
|
+
* which the lease is either consistent with the new origin state or
|
|
111
|
+
* absent (which is fine — push then creates the branch fresh).
|
|
112
|
+
*
|
|
113
|
+
* Reactive recovery (only fetch+prune on actual failure) matches the
|
|
114
|
+
* existing `worktreeAddWithRetry` pattern from urateam#112 and avoids
|
|
115
|
+
* the network round-trip on the happy path.
|
|
104
116
|
*/
|
|
105
117
|
export declare function pushBranchForce(worktreePath: string, branch: string): Promise<void>;
|
|
106
118
|
/**
|
package/dist/repo/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/repo/git.ts"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,SAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBzF;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,SAAS,SAAS,GACjB,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAY3F;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BvE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE;AA4DD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAA0B,GAClC,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAA0B,GAClC,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5E;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DvE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBxE;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CAAC,CA2BtD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE;AAED
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/repo/git.ts"],"names":[],"mappings":"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"}
|
package/dist/repo/git.js
CHANGED
|
@@ -369,10 +369,36 @@ export async function abortRebase(worktreePath) {
|
|
|
369
369
|
* the original (possibly diverged) branch for human review.
|
|
370
370
|
* Verifies that the worktree HEAD is on the expected branch before pushing
|
|
371
371
|
* to prevent cross-branch contamination (BEC-99).
|
|
372
|
+
*
|
|
373
|
+
* Recovers from "stale info" rejections (urateam#115): when the local
|
|
374
|
+
* tracking ref `refs/remotes/origin/<branch>` points at a commit that
|
|
375
|
+
* no longer exists on origin (because the branch was deleted between
|
|
376
|
+
* runs), force-with-lease can't verify its lease and rejects. Running
|
|
377
|
+
* `git fetch --prune origin` removes stale local tracking refs, after
|
|
378
|
+
* which the lease is either consistent with the new origin state or
|
|
379
|
+
* absent (which is fine — push then creates the branch fresh).
|
|
380
|
+
*
|
|
381
|
+
* Reactive recovery (only fetch+prune on actual failure) matches the
|
|
382
|
+
* existing `worktreeAddWithRetry` pattern from urateam#112 and avoids
|
|
383
|
+
* the network round-trip on the happy path.
|
|
372
384
|
*/
|
|
373
385
|
export async function pushBranchForce(worktreePath, branch) {
|
|
386
|
+
const log = getLog();
|
|
374
387
|
await verifyBranchMatch(worktreePath, branch);
|
|
375
|
-
|
|
388
|
+
try {
|
|
389
|
+
await gitExec(["push", "origin", branch, "--force-with-lease"], worktreePath);
|
|
390
|
+
}
|
|
391
|
+
catch (err) {
|
|
392
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
393
|
+
if (!msg.includes("stale info"))
|
|
394
|
+
throw err;
|
|
395
|
+
log.warn({ branch }, "force-with-lease push rejected with stale info — fetching+pruning origin and retrying (urateam#115)");
|
|
396
|
+
await gitExec(["fetch", "--prune", "origin"], worktreePath);
|
|
397
|
+
// Retry once — if fetch+prune didn't actually clear the staleness
|
|
398
|
+
// (possible only if origin re-created the branch in the same window),
|
|
399
|
+
// bubbling the second failure to the caller is the right outcome.
|
|
400
|
+
await gitExec(["push", "origin", branch, "--force-with-lease"], worktreePath);
|
|
401
|
+
}
|
|
376
402
|
}
|
|
377
403
|
/**
|
|
378
404
|
* Determines the push strategy for a given branch and rebase state.
|
package/dist/repo/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/repo/git.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/repo/git.ts"],"names":[],"mappings":"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"}
|