@clipboard-health/groundcrew 4.32.0 → 4.32.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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* groundcrew orchestrator — polls Linear projects and spins up workspace +
|
|
3
3
|
* git-worktree pairs for ready tasks. Each tick fetches the board, runs
|
|
4
|
-
* the
|
|
4
|
+
* the dispatcher, the reviewer, and the cleaner; logging from those modules is
|
|
5
5
|
* the orchestrator's user-facing output.
|
|
6
6
|
*/
|
|
7
7
|
export interface OrchestratorOptions {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* groundcrew orchestrator — polls Linear projects and spins up workspace +
|
|
3
3
|
* git-worktree pairs for ready tasks. Each tick fetches the board, runs
|
|
4
|
-
* the
|
|
4
|
+
* the dispatcher, the reviewer, and the cleaner; logging from those modules is
|
|
5
5
|
* the orchestrator's user-facing output.
|
|
6
6
|
*/
|
|
7
7
|
import { createBoard } from "../lib/board.js";
|
|
@@ -106,8 +106,6 @@ export async function orchestrate(options) {
|
|
|
106
106
|
dryRun: options.dryRun,
|
|
107
107
|
...(signal === undefined ? {} : { signal }),
|
|
108
108
|
};
|
|
109
|
-
await cleaner.runOnce(tickArguments);
|
|
110
|
-
await reviewer.runOnce(tickArguments);
|
|
111
109
|
await dispatcher.runOnce({
|
|
112
110
|
...tickArguments,
|
|
113
111
|
// Lazy: dispatcher only invokes this after its own early-returns, so
|
|
@@ -115,6 +113,8 @@ export async function orchestrate(options) {
|
|
|
115
113
|
usage: async (usageSignal) => await fetchUsageOrEmpty(config, usageSignal),
|
|
116
114
|
...(idleSuffix === undefined ? {} : { idleSuffix }),
|
|
117
115
|
});
|
|
116
|
+
await reviewer.runOnce(tickArguments);
|
|
117
|
+
await cleaner.runOnce(tickArguments);
|
|
118
118
|
};
|
|
119
119
|
await (options.watch ? runWatchLoop(tick, config) : tick());
|
|
120
120
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-iteration scanner that advances a task based on its worktree's pull
|
|
3
|
-
* request state. Sits
|
|
3
|
+
* request state. Sits after the dispatcher and before the cleaner in each
|
|
4
4
|
* `orchestrate()` tick.
|
|
5
5
|
*
|
|
6
6
|
* - An **open** PR on an **in-progress** task → `markInReview`: frees a
|
|
@@ -15,10 +15,11 @@
|
|
|
15
15
|
* fallback. (Linear's own GitHub integration moves merged issues to Done,
|
|
16
16
|
* which groundcrew observes via `fetch()`.)
|
|
17
17
|
*
|
|
18
|
-
* The write-back lands in the task source, not the in-memory `BoardState`,
|
|
19
|
-
*
|
|
20
|
-
* the NEXT tick's `board.fetch()`. That one-tick latency is
|
|
21
|
-
* per `orchestrate()`; stateless across iterations. Mirrors
|
|
18
|
+
* The write-back lands in the task source, not the in-memory `BoardState`, and
|
|
19
|
+
* the dispatcher has already made the current tick's start decisions; the slot
|
|
20
|
+
* frees on the NEXT tick's `board.fetch()`. That one-tick latency is
|
|
21
|
+
* deliberate. One per `orchestrate()`; stateless across iterations. Mirrors
|
|
22
|
+
* `Cleaner`.
|
|
22
23
|
*/
|
|
23
24
|
import type { Board } from "../lib/board.ts";
|
|
24
25
|
import type { PullRequestSummary } from "../lib/pullRequests.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewer.d.ts","sourceRoot":"","sources":["../../src/commands/reviewer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"reviewer.d.ts","sourceRoot":"","sources":["../../src/commands/reviewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,KAAK,UAAU,EAIhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,KAAK,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAAC;AAE7C,UAAU,YAAY;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,sEAAsE;AACtE,UAAU,eAAe;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,eAAe,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AA+CD,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAwH3D"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-iteration scanner that advances a task based on its worktree's pull
|
|
3
|
-
* request state. Sits
|
|
3
|
+
* request state. Sits after the dispatcher and before the cleaner in each
|
|
4
4
|
* `orchestrate()` tick.
|
|
5
5
|
*
|
|
6
6
|
* - An **open** PR on an **in-progress** task → `markInReview`: frees a
|
|
@@ -15,10 +15,11 @@
|
|
|
15
15
|
* fallback. (Linear's own GitHub integration moves merged issues to Done,
|
|
16
16
|
* which groundcrew observes via `fetch()`.)
|
|
17
17
|
*
|
|
18
|
-
* The write-back lands in the task source, not the in-memory `BoardState`,
|
|
19
|
-
*
|
|
20
|
-
* the NEXT tick's `board.fetch()`. That one-tick latency is
|
|
21
|
-
* per `orchestrate()`; stateless across iterations. Mirrors
|
|
18
|
+
* The write-back lands in the task source, not the in-memory `BoardState`, and
|
|
19
|
+
* the dispatcher has already made the current tick's start decisions; the slot
|
|
20
|
+
* frees on the NEXT tick's `board.fetch()`. That one-tick latency is
|
|
21
|
+
* deliberate. One per `orchestrate()`; stateless across iterations. Mirrors
|
|
22
|
+
* `Cleaner`.
|
|
22
23
|
*/
|
|
23
24
|
import { naturalIdFromCanonical, } from "../lib/taskSource.js";
|
|
24
25
|
import { debug, errorMessage, log, logEvent } from "../lib/util.js";
|
package/package.json
CHANGED