@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.
Files changed (50) hide show
  1. package/dist/bin/sync-runner.d.ts +4 -35
  2. package/dist/bin/sync-runner.d.ts.map +1 -1
  3. package/dist/bin/sync-runner.js +14 -104
  4. package/dist/bin/sync-runner.js.map +1 -1
  5. package/dist/bin/sync-runner.test.js +19 -0
  6. package/dist/bin/sync-runner.test.js.map +1 -1
  7. package/dist/cli/rescue-classify-ordering.test.d.ts +2 -0
  8. package/dist/cli/rescue-classify-ordering.test.d.ts.map +1 -0
  9. package/dist/cli/rescue-classify-ordering.test.js +241 -0
  10. package/dist/cli/rescue-classify-ordering.test.js.map +1 -0
  11. package/dist/cli/rescue-core.js +68 -22
  12. package/dist/cli/rescue-core.js.map +1 -1
  13. package/dist/cli/sync-scope.test.js +67 -0
  14. package/dist/cli/sync-scope.test.js.map +1 -1
  15. package/dist/cli/sync.d.ts +19 -0
  16. package/dist/cli/sync.d.ts.map +1 -1
  17. package/dist/cli/sync.js +62 -19
  18. package/dist/cli/sync.js.map +1 -1
  19. package/dist/index.d.ts +4 -2
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +7 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/s3.d.ts.map +1 -1
  24. package/dist/s3.js +15 -5
  25. package/dist/s3.js.map +1 -1
  26. package/dist/s3.test.js +71 -2
  27. package/dist/s3.test.js.map +1 -1
  28. package/dist/scope-shrink.d.ts +70 -7
  29. package/dist/scope-shrink.d.ts.map +1 -1
  30. package/dist/scope-shrink.js +102 -23
  31. package/dist/scope-shrink.js.map +1 -1
  32. package/dist/scope-shrink.test.js +63 -0
  33. package/dist/scope-shrink.test.js.map +1 -1
  34. package/dist/sync/pull-scope.d.ts +50 -0
  35. package/dist/sync/pull-scope.d.ts.map +1 -0
  36. package/dist/sync/pull-scope.js +129 -0
  37. package/dist/sync/pull-scope.js.map +1 -0
  38. package/package.json +1 -1
  39. package/src/bin/sync-runner.test.ts +23 -0
  40. package/src/bin/sync-runner.ts +19 -116
  41. package/src/cli/rescue-classify-ordering.test.ts +263 -0
  42. package/src/cli/rescue-core.ts +82 -26
  43. package/src/cli/sync-scope.test.ts +84 -0
  44. package/src/cli/sync.ts +90 -17
  45. package/src/index.ts +11 -0
  46. package/src/s3.test.ts +91 -1
  47. package/src/s3.ts +15 -5
  48. package/src/scope-shrink.test.ts +71 -0
  49. package/src/scope-shrink.ts +164 -20
  50. 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indigoai-us/hq-cloud",
3
- "version": "6.4.0",
3
+ "version": "6.6.0",
4
4
  "description": "HQ by Indigo cloud sync engine \u2014 bidirectional S3 sync for mobile access",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -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({
@@ -76,7 +76,11 @@ import {
76
76
  type ExplicitGrant,
77
77
  } from "../index.js";
78
78
  import { pickCanonicalPersonEntity } from "../vault-client.js";
79
- import { coalescePrefixes, grantPathToPrefix } from "../prefix-coalesce.js";
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
- * Effective download scope for one company leg (US-005). Resolved per company
406
- * just before its pull, then handed to `sync()` as `{ syncMode, prefixSet }`.
407
- */
408
- export interface PullScope {
409
- syncMode: SyncMode;
410
- /** Coalesced company-relative prefixes; omitted/undefined for `all`. */
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