@indigoai-us/hq-cloud 6.4.0 → 6.6.0
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/bin/sync-runner.d.ts +4 -35
- package/dist/bin/sync-runner.d.ts.map +1 -1
- package/dist/bin/sync-runner.js +14 -104
- package/dist/bin/sync-runner.js.map +1 -1
- package/dist/bin/sync-runner.test.js +19 -0
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/cli/rescue-classify-ordering.test.d.ts +2 -0
- package/dist/cli/rescue-classify-ordering.test.d.ts.map +1 -0
- package/dist/cli/rescue-classify-ordering.test.js +241 -0
- package/dist/cli/rescue-classify-ordering.test.js.map +1 -0
- package/dist/cli/rescue-core.js +68 -22
- package/dist/cli/rescue-core.js.map +1 -1
- package/dist/cli/sync-scope.test.js +67 -0
- package/dist/cli/sync-scope.test.js.map +1 -1
- package/dist/cli/sync.d.ts +19 -0
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +62 -19
- package/dist/cli/sync.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/s3.d.ts.map +1 -1
- package/dist/s3.js +15 -5
- package/dist/s3.js.map +1 -1
- package/dist/s3.test.js +71 -2
- package/dist/s3.test.js.map +1 -1
- package/dist/scope-shrink.d.ts +70 -7
- package/dist/scope-shrink.d.ts.map +1 -1
- package/dist/scope-shrink.js +102 -23
- package/dist/scope-shrink.js.map +1 -1
- package/dist/scope-shrink.test.js +63 -0
- package/dist/scope-shrink.test.js.map +1 -1
- package/dist/sync/pull-scope.d.ts +50 -0
- package/dist/sync/pull-scope.d.ts.map +1 -0
- package/dist/sync/pull-scope.js +129 -0
- package/dist/sync/pull-scope.js.map +1 -0
- package/package.json +1 -1
- package/src/bin/sync-runner.test.ts +23 -0
- package/src/bin/sync-runner.ts +19 -116
- package/src/cli/rescue-classify-ordering.test.ts +263 -0
- package/src/cli/rescue-core.ts +82 -26
- package/src/cli/sync-scope.test.ts +84 -0
- package/src/cli/sync.ts +90 -17
- package/src/index.ts +11 -0
- package/src/s3.test.ts +91 -1
- package/src/s3.ts +15 -5
- package/src/scope-shrink.test.ts +71 -0
- package/src/scope-shrink.ts +164 -20
- package/src/sync/pull-scope.ts +161 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-shrink.test.js","sourceRoot":"","sources":["../src/scope-shrink.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scope-shrink.test.js","sourceRoot":"","sources":["../src/scope-shrink.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ExplicitGrant, MembershipSyncConfig, SyncMode } from "../vault-client.js";
|
|
2
|
+
/**
|
|
3
|
+
* Minimal structural surface `resolvePullScope` needs. Both the runner's
|
|
4
|
+
* `VaultClientSurface` and hq-cli's concrete `VaultClient` satisfy it, so
|
|
5
|
+
* either can be passed without an adapter.
|
|
6
|
+
*/
|
|
7
|
+
export interface PullScopeClient {
|
|
8
|
+
listMyMemberships(): Promise<Array<{
|
|
9
|
+
companyUid: string;
|
|
10
|
+
membershipKey: string;
|
|
11
|
+
}>>;
|
|
12
|
+
getMembershipSyncConfig?: (membershipId: string) => Promise<MembershipSyncConfig>;
|
|
13
|
+
listMyExplicitGrants?: (companyUid: string) => Promise<ExplicitGrant[]>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Effective download scope for one company leg (US-005). Resolved per company
|
|
17
|
+
* just before its pull, then handed to `sync()` as `{ syncMode, prefixSet }`.
|
|
18
|
+
*/
|
|
19
|
+
export interface PullScope {
|
|
20
|
+
syncMode: SyncMode;
|
|
21
|
+
/** Coalesced company-relative prefixes; omitted/undefined for `all`. */
|
|
22
|
+
prefixSet?: string[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolve the effective download scope for a company target.
|
|
26
|
+
*
|
|
27
|
+
* - `all` → no prefix set; full-bucket pull (legacy behavior).
|
|
28
|
+
* - `shared` → coalesced caller explicit grants (company-relative paths,
|
|
29
|
+
* same namespace as `RemoteFile.key`).
|
|
30
|
+
* - `custom` → coalesced `customPaths` from the sync-config row.
|
|
31
|
+
*
|
|
32
|
+
* DEGRADE-TO-`all` CONTRACT: any failure (missing client method, membership
|
|
33
|
+
* not found, network error, grant fetch error) returns `{ syncMode: "all" }`.
|
|
34
|
+
* A transient failure must NEVER silently narrow scope — that would prune the
|
|
35
|
+
* local tree. A genuinely-empty grant list (the method exists and returns `[]`)
|
|
36
|
+
* is a real "nothing shared with me" and IS allowed to narrow.
|
|
37
|
+
*/
|
|
38
|
+
export declare function resolvePullScope(client: PullScopeClient, companyUid: string, slug: string, hqRoot?: string): Promise<PullScope>;
|
|
39
|
+
/**
|
|
40
|
+
* Read the per-machine pin set (`<hqRoot>/.hq/pins.json`) and return the
|
|
41
|
+
* company-relative pinned prefixes for `slug`. These are prefixes the user
|
|
42
|
+
* materialized on demand via `hq files get` that must survive a scoped pull.
|
|
43
|
+
*
|
|
44
|
+
* Tolerant by construction: a missing, unreadable, or malformed file yields
|
|
45
|
+
* `[]` (no pins) — pins only ever widen scope, so "no pins" is the safe
|
|
46
|
+
* default. Empty-string entries are dropped (an everything-pin is meaningless
|
|
47
|
+
* here; `all` mode already covers that case).
|
|
48
|
+
*/
|
|
49
|
+
export declare function readPinnedPrefixes(hqRoot: string, slug: string): string[];
|
|
50
|
+
//# sourceMappingURL=pull-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-scope.d.ts","sourceRoot":"","sources":["../../src/sync/pull-scope.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,iBAAiB,IAAI,OAAO,CAC1B,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CACrD,CAAC;IACF,uBAAuB,CAAC,EAAE,CACxB,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnC,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CACzE;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,MAAM,EAGlB,IAAI,EAAE,MAAM,EAGZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CAwDpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAczE"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Effective per-company PULL scope resolution (US-005), shared between
|
|
3
|
+
* `hq-sync-runner` (the menubar's background sync) and `hq sync pull|now`
|
|
4
|
+
* (the hq-cli foreground sync).
|
|
5
|
+
*
|
|
6
|
+
* BACKGROUND — why this lives in one place. The runner historically owned
|
|
7
|
+
* this resolver while hq-cli's pull paths resolved the membership's sync-mode
|
|
8
|
+
* only to drive the narrow-hint banner and then called `sync()` WITHOUT a
|
|
9
|
+
* `syncMode`/`prefixSet`. That meant every hq-cli pull silently ran
|
|
10
|
+
* `syncMode: "all"` and stamped an `all`-mode `PullRecord` (prefixSet `[""]`)
|
|
11
|
+
* — even for a membership whose real mode is `shared`/`custom`. For an owner
|
|
12
|
+
* (whose STS is wide by role-bypass) that journals the WHOLE company. The next
|
|
13
|
+
* menubar runner sync then resolves the REAL narrowed scope, scope-shrinks
|
|
14
|
+
* against the seeded `[""]`, and — if any out-of-scope file was edited locally
|
|
15
|
+
* — throws `ScopeShrinkBlockedError(all → shared)` and exits 2 on every
|
|
16
|
+
* subsequent run: a permanent wedge (DEV-1768 / feedback_f7663e92).
|
|
17
|
+
*
|
|
18
|
+
* The two surfaces drifting apart is exactly what caused the wedge, so the
|
|
19
|
+
* resolver is defined ONCE here and consumed by both. Any future change to how
|
|
20
|
+
* scope is derived now lands for the runner and the CLI in lockstep.
|
|
21
|
+
*/
|
|
22
|
+
import * as fs from "fs";
|
|
23
|
+
import * as path from "path";
|
|
24
|
+
import { coalescePrefixes, grantPathToPrefix } from "../prefix-coalesce.js";
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the effective download scope for a company target.
|
|
27
|
+
*
|
|
28
|
+
* - `all` → no prefix set; full-bucket pull (legacy behavior).
|
|
29
|
+
* - `shared` → coalesced caller explicit grants (company-relative paths,
|
|
30
|
+
* same namespace as `RemoteFile.key`).
|
|
31
|
+
* - `custom` → coalesced `customPaths` from the sync-config row.
|
|
32
|
+
*
|
|
33
|
+
* DEGRADE-TO-`all` CONTRACT: any failure (missing client method, membership
|
|
34
|
+
* not found, network error, grant fetch error) returns `{ syncMode: "all" }`.
|
|
35
|
+
* A transient failure must NEVER silently narrow scope — that would prune the
|
|
36
|
+
* local tree. A genuinely-empty grant list (the method exists and returns `[]`)
|
|
37
|
+
* is a real "nothing shared with me" and IS allowed to narrow.
|
|
38
|
+
*/
|
|
39
|
+
export async function resolvePullScope(client, companyUid,
|
|
40
|
+
// Company slug — required to normalize grant paths (which may be anchored
|
|
41
|
+
// at `companies/<slug>/` or `<slug>/`) into the company-relative namespace.
|
|
42
|
+
slug,
|
|
43
|
+
// Local HQ root — used to read the per-machine pin set (`.hq/pins.json`).
|
|
44
|
+
// When omitted, pins are simply not unioned (no behavior change).
|
|
45
|
+
hqRoot) {
|
|
46
|
+
if (!client.getMembershipSyncConfig)
|
|
47
|
+
return { syncMode: "all" };
|
|
48
|
+
try {
|
|
49
|
+
const memberships = await client.listMyMemberships();
|
|
50
|
+
const m = memberships.find((x) => x.companyUid === companyUid);
|
|
51
|
+
if (!m)
|
|
52
|
+
return { syncMode: "all" };
|
|
53
|
+
const cfg = await client.getMembershipSyncConfig(m.membershipKey);
|
|
54
|
+
if (cfg.syncMode === "all")
|
|
55
|
+
return { syncMode: "all" };
|
|
56
|
+
// Pins are company-relative prefixes a user explicitly materialized via
|
|
57
|
+
// `hq files get`. They're unioned into the scope so a scoped pull keeps
|
|
58
|
+
// them instead of pruning them as out-of-scope orphans. Pins only WIDEN
|
|
59
|
+
// scope, never narrow — and `all` mode (handled above) ignores them since
|
|
60
|
+
// it pulls everything anyway.
|
|
61
|
+
const pinPrefixes = hqRoot ? readPinnedPrefixes(hqRoot, slug) : [];
|
|
62
|
+
if (cfg.syncMode === "custom") {
|
|
63
|
+
const customPrefixes = (cfg.customPaths ?? []).map((p) => grantPathToPrefix(p, slug));
|
|
64
|
+
// A bare-everything entry ("" — e.g. a `*` path) collapses under
|
|
65
|
+
// `coalescePrefixes` (which drops empties) to "nothing", which would
|
|
66
|
+
// prune the whole tree. An everything-scope is semantically `all`.
|
|
67
|
+
if (customPrefixes.some((p) => p === ""))
|
|
68
|
+
return { syncMode: "all" };
|
|
69
|
+
return {
|
|
70
|
+
syncMode: "custom",
|
|
71
|
+
prefixSet: coalescePrefixes([...customPrefixes, ...pinPrefixes]),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// shared: scope to the caller's explicit grants. Real grant paths are
|
|
75
|
+
// inconsistent — full (`companies/<slug>/x/*`), slug-anchored
|
|
76
|
+
// (`<slug>/x/*`), company-relative (`x/*`), bare globs (`*`), and exact
|
|
77
|
+
// files all coexist in production — so each is normalized via
|
|
78
|
+
// `grantPathToPrefix` into a company-relative, startsWith-friendly prefix
|
|
79
|
+
// (the namespace the engine's `RemoteFile.key`s live in) before coalescing.
|
|
80
|
+
//
|
|
81
|
+
// SAFETY: if the client can't fetch grants, we must NOT fall through to an
|
|
82
|
+
// empty `shared` scope — that would tell the engine "nothing is in scope"
|
|
83
|
+
// and scope-shrink would prune every clean local file. Degrade to `all`
|
|
84
|
+
// instead. A genuinely-empty grant list (the method exists and returns
|
|
85
|
+
// []) is a real "nothing shared with me" and is allowed to narrow.
|
|
86
|
+
if (!client.listMyExplicitGrants)
|
|
87
|
+
return { syncMode: "all" };
|
|
88
|
+
const grants = await client.listMyExplicitGrants(companyUid);
|
|
89
|
+
const sharedPrefixes = grants.map((g) => grantPathToPrefix(g.path, slug));
|
|
90
|
+
// A wildcard grant (`*`) normalizes to "" = everything. Since
|
|
91
|
+
// `coalescePrefixes` drops empties (collapsing "everything" to "nothing"),
|
|
92
|
+
// treat any such grant as full-access `all` rather than risk pruning.
|
|
93
|
+
if (sharedPrefixes.some((p) => p === ""))
|
|
94
|
+
return { syncMode: "all" };
|
|
95
|
+
return {
|
|
96
|
+
syncMode: "shared",
|
|
97
|
+
prefixSet: coalescePrefixes([...sharedPrefixes, ...pinPrefixes]),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// Degrade to `all` — never prune on a resolution failure.
|
|
102
|
+
return { syncMode: "all" };
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Read the per-machine pin set (`<hqRoot>/.hq/pins.json`) and return the
|
|
107
|
+
* company-relative pinned prefixes for `slug`. These are prefixes the user
|
|
108
|
+
* materialized on demand via `hq files get` that must survive a scoped pull.
|
|
109
|
+
*
|
|
110
|
+
* Tolerant by construction: a missing, unreadable, or malformed file yields
|
|
111
|
+
* `[]` (no pins) — pins only ever widen scope, so "no pins" is the safe
|
|
112
|
+
* default. Empty-string entries are dropped (an everything-pin is meaningless
|
|
113
|
+
* here; `all` mode already covers that case).
|
|
114
|
+
*/
|
|
115
|
+
export function readPinnedPrefixes(hqRoot, slug) {
|
|
116
|
+
try {
|
|
117
|
+
const raw = fs.readFileSync(path.join(hqRoot, ".hq", "pins.json"), "utf-8");
|
|
118
|
+
const parsed = JSON.parse(raw);
|
|
119
|
+
const list = parsed?.pins?.[slug];
|
|
120
|
+
if (Array.isArray(list)) {
|
|
121
|
+
return list.filter((p) => typeof p === "string" && p.length > 0);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
/* missing / unreadable / malformed → no pins */
|
|
126
|
+
}
|
|
127
|
+
return [];
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=pull-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-scope.js","sourceRoot":"","sources":["../../src/sync/pull-scope.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1286,6 +1286,29 @@ describe("per-company fanout", () => {
|
|
|
1286
1286
|
expect(opts.hqRoot).toBe("/tmp/fake-hq");
|
|
1287
1287
|
});
|
|
1288
1288
|
|
|
1289
|
+
// DEV-1768 fix #1/#2: the runner's pull leg MUST request the non-throwing,
|
|
1290
|
+
// self-healing scope-shrink policy — the menubar can act on no interactive
|
|
1291
|
+
// flag, so a thrown ScopeShrinkBlockedError there means a permanent exit-2
|
|
1292
|
+
// wedge.
|
|
1293
|
+
it("pull leg forwards scopeShrinkPolicy: 'auto-recover' to sync()", async () => {
|
|
1294
|
+
const syncSpy = vi.fn().mockResolvedValue(defaultSyncResult());
|
|
1295
|
+
const deps = makeDeps({
|
|
1296
|
+
createVaultClient: () =>
|
|
1297
|
+
makeVaultStub({
|
|
1298
|
+
memberships: [{ companyUid: "cmp_a" }],
|
|
1299
|
+
entityGet: (uid: string) =>
|
|
1300
|
+
Promise.resolve({ uid, slug: "acme" } as unknown as EntityInfo),
|
|
1301
|
+
}),
|
|
1302
|
+
sync: syncSpy,
|
|
1303
|
+
});
|
|
1304
|
+
|
|
1305
|
+
const code = await runRunner(["--companies", "--hq-root", "/tmp/fake-hq"], deps);
|
|
1306
|
+
expect(code).toBe(0);
|
|
1307
|
+
expect(syncSpy).toHaveBeenCalledTimes(1);
|
|
1308
|
+
const opts = syncSpy.mock.calls[0][0] as SyncOptions;
|
|
1309
|
+
expect(opts.scopeShrinkPolicy).toBe("auto-recover");
|
|
1310
|
+
});
|
|
1311
|
+
|
|
1289
1312
|
it("continues the fanout when one company's sync throws", async () => {
|
|
1290
1313
|
const slugs: Record<string, string> = { cmp_a: "acme", cmp_b: "beta" };
|
|
1291
1314
|
const deps = makeDeps({
|
package/src/bin/sync-runner.ts
CHANGED
|
@@ -76,7 +76,11 @@ import {
|
|
|
76
76
|
type ExplicitGrant,
|
|
77
77
|
} from "../index.js";
|
|
78
78
|
import { pickCanonicalPersonEntity } from "../vault-client.js";
|
|
79
|
-
import {
|
|
79
|
+
import {
|
|
80
|
+
resolvePullScope,
|
|
81
|
+
readPinnedPrefixes,
|
|
82
|
+
type PullScope,
|
|
83
|
+
} from "../sync/pull-scope.js";
|
|
80
84
|
import {
|
|
81
85
|
PERSONAL_VAULT_EXCLUDED_TOP_LEVEL,
|
|
82
86
|
computePersonalVaultPaths,
|
|
@@ -401,121 +405,13 @@ export interface VaultClientSurface {
|
|
|
401
405
|
listMyExplicitGrants?: (companyUid: string) => Promise<ExplicitGrant[]>;
|
|
402
406
|
}
|
|
403
407
|
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
prefixSet?: string[];
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
/**
|
|
415
|
-
* Resolve the effective download scope for a company target.
|
|
416
|
-
*
|
|
417
|
-
* - `all` → no prefix set; full-bucket pull (legacy behavior).
|
|
418
|
-
* - `shared` → coalesced caller explicit grants (company-relative paths,
|
|
419
|
-
* same namespace as `RemoteFile.key`).
|
|
420
|
-
* - `custom` → coalesced `customPaths` from the sync-config row.
|
|
421
|
-
*
|
|
422
|
-
* DEGRADE-TO-`all` CONTRACT: any failure (missing client method, membership
|
|
423
|
-
* not found, network error, grant fetch error) returns `{ syncMode: "all" }`.
|
|
424
|
-
* A transient failure must NEVER silently narrow scope — that would prune the
|
|
425
|
-
* local tree. Mirrors the CLI's `resolvePerCompanyPullPlan` degrade behavior.
|
|
426
|
-
*/
|
|
427
|
-
export async function resolvePullScope(
|
|
428
|
-
client: VaultClientSurface,
|
|
429
|
-
companyUid: string,
|
|
430
|
-
// Company slug — required to normalize grant paths (which may be anchored
|
|
431
|
-
// at `companies/<slug>/` or `<slug>/`) into the company-relative namespace.
|
|
432
|
-
slug: string,
|
|
433
|
-
// Local HQ root — used to read the per-machine pin set (`.hq/pins.json`).
|
|
434
|
-
// When omitted, pins are simply not unioned (no behavior change).
|
|
435
|
-
hqRoot?: string,
|
|
436
|
-
): Promise<PullScope> {
|
|
437
|
-
if (!client.getMembershipSyncConfig) return { syncMode: "all" };
|
|
438
|
-
try {
|
|
439
|
-
const memberships = await client.listMyMemberships();
|
|
440
|
-
const m = memberships.find((x) => x.companyUid === companyUid);
|
|
441
|
-
if (!m) return { syncMode: "all" };
|
|
442
|
-
const cfg = await client.getMembershipSyncConfig(m.membershipKey);
|
|
443
|
-
if (cfg.syncMode === "all") return { syncMode: "all" };
|
|
444
|
-
|
|
445
|
-
// Pins are company-relative prefixes a user explicitly materialized via
|
|
446
|
-
// `hq files get`. They're unioned into the scope so a scoped pull keeps
|
|
447
|
-
// them instead of pruning them as out-of-scope orphans. Pins only WIDEN
|
|
448
|
-
// scope, never narrow — and `all` mode (handled above) ignores them since
|
|
449
|
-
// it pulls everything anyway.
|
|
450
|
-
const pinPrefixes = hqRoot ? readPinnedPrefixes(hqRoot, slug) : [];
|
|
451
|
-
|
|
452
|
-
if (cfg.syncMode === "custom") {
|
|
453
|
-
const customPrefixes = (cfg.customPaths ?? []).map((p) =>
|
|
454
|
-
grantPathToPrefix(p, slug),
|
|
455
|
-
);
|
|
456
|
-
// A bare-everything entry ("" — e.g. a `*` path) collapses under
|
|
457
|
-
// `coalescePrefixes` (which drops empties) to "nothing", which would
|
|
458
|
-
// prune the whole tree. An everything-scope is semantically `all`.
|
|
459
|
-
if (customPrefixes.some((p) => p === "")) return { syncMode: "all" };
|
|
460
|
-
return {
|
|
461
|
-
syncMode: "custom",
|
|
462
|
-
prefixSet: coalescePrefixes([...customPrefixes, ...pinPrefixes]),
|
|
463
|
-
};
|
|
464
|
-
}
|
|
465
|
-
// shared: scope to the caller's explicit grants. Real grant paths are
|
|
466
|
-
// inconsistent — full (`companies/<slug>/x/*`), slug-anchored
|
|
467
|
-
// (`<slug>/x/*`), company-relative (`x/*`), bare globs (`*`), and exact
|
|
468
|
-
// files all coexist in production — so each is normalized via
|
|
469
|
-
// `grantPathToPrefix` into a company-relative, startsWith-friendly prefix
|
|
470
|
-
// (the namespace the engine's `RemoteFile.key`s live in) before coalescing.
|
|
471
|
-
//
|
|
472
|
-
// SAFETY: if the client can't fetch grants, we must NOT fall through to an
|
|
473
|
-
// empty `shared` scope — that would tell the engine "nothing is in scope"
|
|
474
|
-
// and scope-shrink would prune every clean local file. Degrade to `all`
|
|
475
|
-
// instead. A genuinely-empty grant list (the method exists and returns
|
|
476
|
-
// []) is a real "nothing shared with me" and is allowed to narrow.
|
|
477
|
-
if (!client.listMyExplicitGrants) return { syncMode: "all" };
|
|
478
|
-
const grants = await client.listMyExplicitGrants(companyUid);
|
|
479
|
-
const sharedPrefixes = grants.map((g) => grantPathToPrefix(g.path, slug));
|
|
480
|
-
// A wildcard grant (`*`) normalizes to "" = everything. Since
|
|
481
|
-
// `coalescePrefixes` drops empties (collapsing "everything" to "nothing"),
|
|
482
|
-
// treat any such grant as full-access `all` rather than risk pruning.
|
|
483
|
-
if (sharedPrefixes.some((p) => p === "")) return { syncMode: "all" };
|
|
484
|
-
return {
|
|
485
|
-
syncMode: "shared",
|
|
486
|
-
prefixSet: coalescePrefixes([...sharedPrefixes, ...pinPrefixes]),
|
|
487
|
-
};
|
|
488
|
-
} catch {
|
|
489
|
-
// Degrade to `all` — never prune on a resolution failure.
|
|
490
|
-
return { syncMode: "all" };
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
/**
|
|
495
|
-
* Read the per-machine pin set (`<hqRoot>/.hq/pins.json`) and return the
|
|
496
|
-
* company-relative pinned prefixes for `slug`. These are prefixes the user
|
|
497
|
-
* materialized on demand via `hq files get` that must survive a scoped pull.
|
|
498
|
-
*
|
|
499
|
-
* Tolerant by construction: a missing, unreadable, or malformed file yields
|
|
500
|
-
* `[]` (no pins) — pins only ever widen scope, so "no pins" is the safe
|
|
501
|
-
* default. Empty-string entries are dropped (an everything-pin is meaningless
|
|
502
|
-
* here; `all` mode already covers that case).
|
|
503
|
-
*/
|
|
504
|
-
export function readPinnedPrefixes(hqRoot: string, slug: string): string[] {
|
|
505
|
-
try {
|
|
506
|
-
const raw = fs.readFileSync(path.join(hqRoot, ".hq", "pins.json"), "utf-8");
|
|
507
|
-
const parsed = JSON.parse(raw) as { pins?: Record<string, unknown> };
|
|
508
|
-
const list = parsed?.pins?.[slug];
|
|
509
|
-
if (Array.isArray(list)) {
|
|
510
|
-
return list.filter(
|
|
511
|
-
(p): p is string => typeof p === "string" && p.length > 0,
|
|
512
|
-
);
|
|
513
|
-
}
|
|
514
|
-
} catch {
|
|
515
|
-
/* missing / unreadable / malformed → no pins */
|
|
516
|
-
}
|
|
517
|
-
return [];
|
|
518
|
-
}
|
|
408
|
+
// `resolvePullScope`, `readPinnedPrefixes`, and the `PullScope` type now live
|
|
409
|
+
// in `../sync/pull-scope.ts` so the menubar runner and `hq sync pull|now`
|
|
410
|
+
// (hq-cli) share ONE scope resolver — the drift between them was the root
|
|
411
|
+
// cause of the all→shared scope-shrink wedge (DEV-1768). Re-exported here so
|
|
412
|
+
// existing importers (and the runner test suite) keep their import path.
|
|
413
|
+
export { resolvePullScope, readPinnedPrefixes };
|
|
414
|
+
export type { PullScope };
|
|
519
415
|
|
|
520
416
|
/**
|
|
521
417
|
* Backoff schedule (in ms) between attempts 2 and 3 of
|
|
@@ -1446,6 +1342,13 @@ export async function runRunner(
|
|
|
1446
1342
|
hqRoot: parsed.hqRoot,
|
|
1447
1343
|
onConflict: parsed.onConflict,
|
|
1448
1344
|
syncMode: pullScope.syncMode,
|
|
1345
|
+
// The menubar runner can take no interactive flag, so a scope shrink
|
|
1346
|
+
// must NEVER throw here (the old `ScopeShrinkBlockedError` → exit 2
|
|
1347
|
+
// was the permanent wedge in DEV-1768). Self-heal non-destructively:
|
|
1348
|
+
// dirty out-of-scope files stay on disk + un-tracked, clean ones are
|
|
1349
|
+
// quarantined (recoverable). This also clears an already-wedged
|
|
1350
|
+
// journal — seeded by a buggy `all`-mode CLI pull — on the next sync.
|
|
1351
|
+
scopeShrinkPolicy: "auto-recover",
|
|
1449
1352
|
// Scope-shrink authorship guard: pass the caller's own sub (the very
|
|
1450
1353
|
// sub stamped onto uploads as `created-by-sub`) so a scope shrink
|
|
1451
1354
|
// never prunes content this owner authored. Owners hold their whole
|