@brainervirus/workit-claude-code 8.31.0 → 8.31.1
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/.claude-plugin/plugin.json +1 -1
- package/dist/workit-hook.js +96 -95
- package/dist/workit.js +22 -9
- package/package.json +3 -3
package/dist/workit.js
CHANGED
|
@@ -9285,7 +9285,7 @@ var package_default;
|
|
|
9285
9285
|
var init_package = __esm(() => {
|
|
9286
9286
|
package_default = {
|
|
9287
9287
|
name: "@brainervirus/workit-cli",
|
|
9288
|
-
version: "8.31.
|
|
9288
|
+
version: "8.31.1",
|
|
9289
9289
|
private: false,
|
|
9290
9290
|
description: "Workit CLI — setup wizard, doctor, and task control for agentic coding workflows",
|
|
9291
9291
|
keywords: [
|
|
@@ -9323,13 +9323,13 @@ var init_package = __esm(() => {
|
|
|
9323
9323
|
},
|
|
9324
9324
|
dependencies: {
|
|
9325
9325
|
"@babel/parser": "7.29.9",
|
|
9326
|
-
"@brainervirus/workit-cursor": "^8.31.
|
|
9326
|
+
"@brainervirus/workit-cursor": "^8.31.1",
|
|
9327
9327
|
"@inkjs/ui": "2.0.0",
|
|
9328
9328
|
ink: "7.1.1",
|
|
9329
9329
|
react: "19.2.8"
|
|
9330
9330
|
},
|
|
9331
9331
|
devDependencies: {
|
|
9332
|
-
"@brainervirus/workit-core": "^8.31.
|
|
9332
|
+
"@brainervirus/workit-core": "^8.31.1"
|
|
9333
9333
|
},
|
|
9334
9334
|
engines: {
|
|
9335
9335
|
node: ">=24"
|
|
@@ -14621,6 +14621,18 @@ function diffHash(cwd, base, head) {
|
|
|
14621
14621
|
}
|
|
14622
14622
|
return `sha256:${hash.digest("hex")}`;
|
|
14623
14623
|
}
|
|
14624
|
+
function cleanRebase(cwd, range) {
|
|
14625
|
+
if (!Object.values(range).every(safeRef2))
|
|
14626
|
+
return false;
|
|
14627
|
+
const fromFork = git4(cwd, ["merge-base", range.fromBase, range.from]);
|
|
14628
|
+
const toFork = git4(cwd, ["merge-base", range.toBase, range.to]);
|
|
14629
|
+
if (!fromFork || !toFork || fromFork === toFork)
|
|
14630
|
+
return false;
|
|
14631
|
+
const merged = gitRun2(cwd, ["merge-tree", "--write-tree", "--no-messages", `--merge-base=${fromFork}`, toFork, range.from], GIT_TIMEOUTS.worktree);
|
|
14632
|
+
const tree = merged.ok ? merged.stdout.split(`
|
|
14633
|
+
`)[0]?.trim() : null;
|
|
14634
|
+
return Boolean(tree) && tree === git4(cwd, ["rev-parse", "--verify", "-q", `${range.to}^{tree}`]);
|
|
14635
|
+
}
|
|
14624
14636
|
function storeRoot(cwd) {
|
|
14625
14637
|
const location = resolveStore(path20.resolve(cwd));
|
|
14626
14638
|
if (location instanceof Error)
|
|
@@ -15142,23 +15154,24 @@ function checkVerdicts(cwd, branch, ledgerRows) {
|
|
|
15142
15154
|
return drift;
|
|
15143
15155
|
};
|
|
15144
15156
|
const exactCache = new Map;
|
|
15145
|
-
const
|
|
15146
|
-
if (FAILING.has(String(row.result)))
|
|
15147
|
-
return true;
|
|
15157
|
+
const exactMatch = (row) => {
|
|
15148
15158
|
let exact = exactCache.get(row);
|
|
15149
15159
|
if (exact === undefined) {
|
|
15150
15160
|
const toBase = row.base ?? fallbackBase;
|
|
15151
15161
|
const toBaseSha = toBase ? resolveCommit(cwd, toBase) : null;
|
|
15152
15162
|
const fromBase = row.baseSha ?? toBaseSha;
|
|
15153
|
-
|
|
15163
|
+
const range = row.head && head && toBaseSha && fromBase ? { from: row.head, to: head, fromBase, toBase: toBaseSha } : null;
|
|
15164
|
+
exact = !range ? null : sameOwnChange(cwd, range) ? "same" : cleanRebase(cwd, range) ? "rebase" : null;
|
|
15154
15165
|
exactCache.set(row, exact);
|
|
15155
15166
|
}
|
|
15156
15167
|
return exact;
|
|
15157
15168
|
};
|
|
15169
|
+
const exactCarry = (row) => FAILING.has(String(row.result)) || exactMatch(row) !== null;
|
|
15158
15170
|
const keyBasis = (row) => {
|
|
15159
15171
|
const basis = verdictBasis(row, { head, ...keyFor(row.base ?? fallbackBase) });
|
|
15160
15172
|
return basis === "carried" && !exactCarry(row) ? "stale" : basis;
|
|
15161
15173
|
};
|
|
15174
|
+
const rebaseNote = (row) => row.head && head && row.head !== head && !FAILING.has(String(row.result)) && keyBasis(row) === "carried" && exactMatch(row) === "rebase" ? { rule: "rebase", since: row.head, files: [] } : null;
|
|
15162
15175
|
const restacked = (row) => restackCarries(FAILING.has(String(row.result)) ? null : cwd, rows, branch, row.head, head);
|
|
15163
15176
|
const carryOf = (row) => {
|
|
15164
15177
|
if (keyBasis(row) !== "stale")
|
|
@@ -15236,7 +15249,7 @@ function checkVerdicts(cwd, branch, ledgerRows) {
|
|
|
15236
15249
|
independent: independence.length === 0,
|
|
15237
15250
|
accepted: reasons.length === 0,
|
|
15238
15251
|
reasons,
|
|
15239
|
-
carry: basis === "carried" ? carryOf(row) : null,
|
|
15252
|
+
carry: basis === "carried" ? rebaseNote(row) ?? carryOf(row) : null,
|
|
15240
15253
|
verdict: row
|
|
15241
15254
|
});
|
|
15242
15255
|
if (reasons.length === 0) {
|
|
@@ -15813,7 +15826,7 @@ ${body}`), TAIL_BYTES, lastLine = (fd, size) => {
|
|
|
15813
15826
|
session: str(actor.session),
|
|
15814
15827
|
agentId: str(actor.agentId)
|
|
15815
15828
|
};
|
|
15816
|
-
}, TAMPER_REASONS, tamperCache, fileStamp = (stat) => `${stat.ino}:${stat.mtimeMs}:${stat.ctimeMs}`, tamperedWarning = (cwd, breaks) => `the ledger was edited, or a row was removed or moved (${breaks.slice(0, 3).map((row) => `${row.reason} at row ${row.seq}`).join(", ")}${breaks.length > 3 ? ", …" : ""}): no verdict is accepted until it is repaired. ${tamperedUnblock(cwd)}`, carryLabel = (carry) => `carried (${carry.rule === "lane-none" ? "lane none" : "tests only"} since ${carry.since.slice(0, 12)})`, isLiveVerdict = (row, retired) => row.type === "verdict" && typeof row.result === "string" && !retired.has(row.id), RENAMED, renameAwareBranch = (scopeOf, branch) => {
|
|
15829
|
+
}, TAMPER_REASONS, tamperCache, fileStamp = (stat) => `${stat.ino}:${stat.mtimeMs}:${stat.ctimeMs}`, tamperedWarning = (cwd, breaks) => `the ledger was edited, or a row was removed or moved (${breaks.slice(0, 3).map((row) => `${row.reason} at row ${row.seq}`).join(", ")}${breaks.length > 3 ? ", …" : ""}): no verdict is accepted until it is repaired. ${tamperedUnblock(cwd)}`, carryLabel = (carry) => carry.rule === "rebase" ? "carried (rebase: patch unchanged)" : `carried (${carry.rule === "lane-none" ? "lane none" : "tests only"} since ${carry.since.slice(0, 12)})`, isLiveVerdict = (row, retired) => row.type === "verdict" && typeof row.result === "string" && !retired.has(row.id), RENAMED, renameAwareBranch = (scopeOf, branch) => {
|
|
15817
15830
|
return (target) => {
|
|
15818
15831
|
const own = typeof branch === "string" ? branch : null;
|
|
15819
15832
|
const theirs = typeof target.branch === "string" ? target.branch : null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brainervirus/workit-claude-code",
|
|
3
|
-
"version": "8.31.
|
|
3
|
+
"version": "8.31.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Workit Claude Code plugin — session and per-turn task context, branch policy on git shell commands, workit method skills, and verifier/reviewer/implementer agents",
|
|
6
6
|
"keywords": [
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"build": "bun scripts/build.ts"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@brainervirus/workit-cli": "^8.31.
|
|
43
|
-
"@brainervirus/workit-core": "^8.31.
|
|
42
|
+
"@brainervirus/workit-cli": "^8.31.1",
|
|
43
|
+
"@brainervirus/workit-core": "^8.31.1"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
|
46
46
|
"node": ">=24"
|