lanekeeper 0.1.0 → 0.1.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/dist/land.js +7 -2
- package/dist/sync.d.ts +16 -2
- package/dist/sync.js +16 -3
- package/package.json +3 -3
package/dist/land.js
CHANGED
|
@@ -101,8 +101,13 @@ export async function land() {
|
|
|
101
101
|
// Landing isn't "done" until the checkout that actually serves your
|
|
102
102
|
// dev server can see it — call sync in-process rather than shelling
|
|
103
103
|
// back out to the CLI, so this doesn't depend on `lanekeeper` being
|
|
104
|
-
// resolvable on PATH.
|
|
105
|
-
|
|
104
|
+
// resolvable on PATH. Pass this lane's own already-loaded cfg through
|
|
105
|
+
// rather than letting sync() reload from MAIN — MAIN hasn't been
|
|
106
|
+
// fast-forwarded yet at this exact moment (that's what sync is about
|
|
107
|
+
// to do), so if this push just introduced or changed
|
|
108
|
+
// lanekeeper.config.mjs itself, a fresh MAIN-side load would silently
|
|
109
|
+
// fall back to DEFAULTS instead of the real config.
|
|
110
|
+
exitCode = await sync(cfg);
|
|
106
111
|
// Housekeeping, never a reason to fail this landing: sweep sibling
|
|
107
112
|
// lanes whose OWN branch already made it upstream (nothing created
|
|
108
113
|
// ever tears a worktree down on the way out) so they don't
|
package/dist/sync.d.ts
CHANGED
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { type LaneKeeperConfig } from "./lib/config.js";
|
|
2
|
+
/**
|
|
3
|
+
* Fast-forwards the MAIN checkout. Returns a process exit code; never throws.
|
|
4
|
+
*
|
|
5
|
+
* Accepts an already-loaded config, for `land` calling this immediately
|
|
6
|
+
* after a push that ITSELF introduced or changed lanekeeper.config.mjs: the
|
|
7
|
+
* MAIN checkout hasn't been fast-forwarded yet at that exact moment (that's
|
|
8
|
+
* this function's whole job), so loading fresh from MAIN would silently
|
|
9
|
+
* fall back to DEFAULTS and could reject a perfectly good sync — the same
|
|
10
|
+
* bootstrap gap createLane had to be fixed for. The lane's own config,
|
|
11
|
+
* which just successfully rebased onto and pushed to the real
|
|
12
|
+
* integrationBranch, is the more trustworthy answer at that moment. A bare
|
|
13
|
+
* `lanekeeper sync` (no caller-provided config) still loads fresh from
|
|
14
|
+
* MAIN, same as before.
|
|
15
|
+
*/
|
|
16
|
+
export declare function sync(providedCfg?: LaneKeeperConfig): Promise<number>;
|
package/dist/sync.js
CHANGED
|
@@ -40,8 +40,21 @@ function sleep(ms) {
|
|
|
40
40
|
/* tiny synchronous backoff for index.lock */
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
/**
|
|
44
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Fast-forwards the MAIN checkout. Returns a process exit code; never throws.
|
|
45
|
+
*
|
|
46
|
+
* Accepts an already-loaded config, for `land` calling this immediately
|
|
47
|
+
* after a push that ITSELF introduced or changed lanekeeper.config.mjs: the
|
|
48
|
+
* MAIN checkout hasn't been fast-forwarded yet at that exact moment (that's
|
|
49
|
+
* this function's whole job), so loading fresh from MAIN would silently
|
|
50
|
+
* fall back to DEFAULTS and could reject a perfectly good sync — the same
|
|
51
|
+
* bootstrap gap createLane had to be fixed for. The lane's own config,
|
|
52
|
+
* which just successfully rebased onto and pushed to the real
|
|
53
|
+
* integrationBranch, is the more trustworthy answer at that moment. A bare
|
|
54
|
+
* `lanekeeper sync` (no caller-provided config) still loads fresh from
|
|
55
|
+
* MAIN, same as before.
|
|
56
|
+
*/
|
|
57
|
+
export async function sync(providedCfg) {
|
|
45
58
|
let MAIN;
|
|
46
59
|
try {
|
|
47
60
|
MAIN = resolveMainCheckout(process.cwd());
|
|
@@ -50,7 +63,7 @@ export async function sync() {
|
|
|
50
63
|
console.error("lanekeeper sync: not inside a git repo — nothing to do.");
|
|
51
64
|
return 0;
|
|
52
65
|
}
|
|
53
|
-
const cfg = await loadConfig(MAIN);
|
|
66
|
+
const cfg = providedCfg ?? (await loadConfig(MAIN));
|
|
54
67
|
const regenerable = new Set(cfg.regenerableFiles);
|
|
55
68
|
const branchRes = git(MAIN, ["rev-parse", "--abbrev-ref", "HEAD"], { allowFail: true });
|
|
56
69
|
const branch = branchRes.out.trim();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lanekeeper",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "The local, zero-cost merge queue for parallel Claude Code agents. Plugs into Claude Code's native worktree isolation; one build at a time, one landing at a time, zero races.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"homepage": "https://github.com/funador/lanekeeper",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "https://github.com/funador/lanekeeper.git"
|
|
11
|
+
"url": "git+https://github.com/funador/lanekeeper.git"
|
|
12
12
|
},
|
|
13
13
|
"keywords": [
|
|
14
14
|
"claude-code",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"monorepo-tooling"
|
|
21
21
|
],
|
|
22
22
|
"bin": {
|
|
23
|
-
"lanekeeper": "
|
|
23
|
+
"lanekeeper": "dist/bin/lanekeeper.js"
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
26
26
|
"dist",
|