@indigoai-us/hq-cloud 6.18.93 → 6.18.95

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 (89) hide show
  1. package/dist/bin/sync-runner.d.ts +20 -1
  2. package/dist/bin/sync-runner.d.ts.map +1 -1
  3. package/dist/bin/sync-runner.js +25 -0
  4. package/dist/bin/sync-runner.js.map +1 -1
  5. package/dist/cli/reindex.d.ts +24 -0
  6. package/dist/cli/reindex.d.ts.map +1 -1
  7. package/dist/cli/reindex.js +26 -1
  8. package/dist/cli/reindex.js.map +1 -1
  9. package/dist/cli/rescue-core.d.ts +18 -3
  10. package/dist/cli/rescue-core.d.ts.map +1 -1
  11. package/dist/cli/rescue-core.js +129 -22
  12. package/dist/cli/rescue-core.js.map +1 -1
  13. package/dist/cli/share.d.ts +28 -5
  14. package/dist/cli/share.d.ts.map +1 -1
  15. package/dist/cli/share.js +189 -22
  16. package/dist/cli/share.js.map +1 -1
  17. package/dist/cli/sync.d.ts +11 -1
  18. package/dist/cli/sync.d.ts.map +1 -1
  19. package/dist/cli/sync.js +77 -8
  20. package/dist/cli/sync.js.map +1 -1
  21. package/dist/cloud-placeholder.d.ts +23 -1
  22. package/dist/cloud-placeholder.d.ts.map +1 -1
  23. package/dist/cloud-placeholder.js +57 -0
  24. package/dist/cloud-placeholder.js.map +1 -1
  25. package/dist/hq-root-recovery.d.ts +37 -6
  26. package/dist/hq-root-recovery.d.ts.map +1 -1
  27. package/dist/hq-root-recovery.js +266 -22
  28. package/dist/hq-root-recovery.js.map +1 -1
  29. package/dist/journal.d.ts +11 -1
  30. package/dist/journal.d.ts.map +1 -1
  31. package/dist/journal.js +23 -2
  32. package/dist/journal.js.map +1 -1
  33. package/dist/lib/cloud-authoritative.d.ts +10 -0
  34. package/dist/lib/cloud-authoritative.d.ts.map +1 -1
  35. package/dist/lib/cloud-authoritative.js +23 -0
  36. package/dist/lib/cloud-authoritative.js.map +1 -1
  37. package/dist/manifest-reconcile.d.ts +14 -0
  38. package/dist/manifest-reconcile.d.ts.map +1 -1
  39. package/dist/manifest-reconcile.js +20 -2
  40. package/dist/manifest-reconcile.js.map +1 -1
  41. package/dist/outposts/client.d.ts +6 -1
  42. package/dist/outposts/client.d.ts.map +1 -1
  43. package/dist/outposts/client.js +13 -1
  44. package/dist/outposts/client.js.map +1 -1
  45. package/dist/outposts/command.d.ts +1 -1
  46. package/dist/outposts/command.d.ts.map +1 -1
  47. package/dist/outposts/command.js +58 -2
  48. package/dist/outposts/command.js.map +1 -1
  49. package/dist/outposts/company.d.ts +15 -1
  50. package/dist/outposts/company.d.ts.map +1 -1
  51. package/dist/outposts/company.js +36 -1
  52. package/dist/outposts/company.js.map +1 -1
  53. package/dist/s3.d.ts +22 -0
  54. package/dist/s3.d.ts.map +1 -1
  55. package/dist/s3.js +44 -0
  56. package/dist/s3.js.map +1 -1
  57. package/dist/session-log-capture.d.ts.map +1 -1
  58. package/dist/session-log-capture.js +5 -2
  59. package/dist/session-log-capture.js.map +1 -1
  60. package/dist/sync/area-ledger.d.ts.map +1 -1
  61. package/dist/sync/area-ledger.js +3 -3
  62. package/dist/sync/area-ledger.js.map +1 -1
  63. package/dist/sync/durable-apply.js +2 -2
  64. package/dist/sync/durable-apply.js.map +1 -1
  65. package/dist/sync/per-area-maintenance.js +2 -2
  66. package/dist/sync/per-area-maintenance.js.map +1 -1
  67. package/dist/sync/reconcile-cursor.js +2 -2
  68. package/dist/sync/reconcile-cursor.js.map +1 -1
  69. package/dist/sync/secret-path-policy.d.ts +37 -11
  70. package/dist/sync/secret-path-policy.d.ts.map +1 -1
  71. package/dist/sync/secret-path-policy.js +68 -34
  72. package/dist/sync/secret-path-policy.js.map +1 -1
  73. package/dist/sync/snapshot-client.js +2 -2
  74. package/dist/sync/snapshot-client.js.map +1 -1
  75. package/dist/sync/state-store.d.ts +19 -0
  76. package/dist/sync/state-store.d.ts.map +1 -1
  77. package/dist/sync/state-store.js +184 -4
  78. package/dist/sync/state-store.js.map +1 -1
  79. package/dist/sync/uploader-finalization.d.ts.map +1 -1
  80. package/dist/sync/uploader-finalization.js +2 -2
  81. package/dist/sync/uploader-finalization.js.map +1 -1
  82. package/dist/test-fixtures/unknown-journal-generation.d.ts +9 -0
  83. package/dist/test-fixtures/unknown-journal-generation.d.ts.map +1 -0
  84. package/dist/test-fixtures/unknown-journal-generation.js +37 -0
  85. package/dist/test-fixtures/unknown-journal-generation.js.map +1 -0
  86. package/dist/watcher.d.ts.map +1 -1
  87. package/dist/watcher.js +3 -3
  88. package/dist/watcher.js.map +1 -1
  89. package/package.json +1 -1
@@ -583,6 +583,17 @@ export interface ShareOptions {
583
583
  * scan and the push) and must never fail an unattended sync.
584
584
  */
585
585
  unreachablePathPolicy?: "error" | "warn";
586
+ /**
587
+ * Set when `paths` are exactly what a person typed (`hq sync push <path>`).
588
+ * A named file or folder that a sync ignore rule excludes, such as a `.hq-*`
589
+ * file or an HQ-generated INDEX.md, then fails the push with the rule named
590
+ * instead of reporting a 0-file success (feedback_63bfc302,
591
+ * feedback_8c294805). Off by default because callers that enumerate roots
592
+ * (the personal push lists every top-level entry, including `.hq-offload`
593
+ * and `.DS_Store`) name ignored paths routinely. Has no effect under
594
+ * `unreachablePathPolicy: "warn"`.
595
+ */
596
+ failOnIgnoredNamedPaths?: boolean;
586
597
  /**
587
598
  * Handling for uploads to server-owned paths (`sources/`, `signals/`,
588
599
  * `ontology/`, and generated root files). The default `"error"` makes an
@@ -640,7 +651,7 @@ export declare class UnregisteredCompanySkillError extends Error {
640
651
  constructor(paths: string[]);
641
652
  }
642
653
  /** Why an explicitly-named push path could not be shipped. */
643
- export type UnreachablePathReason = "missing" | "outside-company" | "unreadable-link";
654
+ export type UnreachablePathReason = "missing" | "outside-company" | "unreadable-link" | "ignored";
644
655
  /**
645
656
  * Thrown by `share()` when a caller-named path cannot be pushed and
646
657
  * `unreachablePathPolicy` is `"error"` (the default). Raised while the plans
@@ -652,7 +663,7 @@ export declare class UnreachablePushPathsError extends Error {
652
663
  readonly paths: string[];
653
664
  /** Per-path reason, keyed by the same original spelling. */
654
665
  readonly reasons: Record<string, UnreachablePathReason>;
655
- constructor(unreachable: ReadonlyMap<string, UnreachablePathReason>, syncRoot: string);
666
+ constructor(unreachable: ReadonlyMap<string, UnreachablePathReason>, syncRoot: string, ignoreRules?: ReadonlyMap<string, string>);
656
667
  }
657
668
  /** Raised when every eligible upload in a direct push is server-owned. */
658
669
  export declare class ServerOwnedPushPathsError extends Error {
@@ -731,6 +742,16 @@ export interface ShareResult {
731
742
  * once the runner has folded them into the totals.
732
743
  */
733
744
  filesRefusedStalePaths: string[];
745
+ /**
746
+ * Number of files whose upload failed with a hard error (the per-file
747
+ * `type: "error"` event without `diagnostic`). They were not uploaded and
748
+ * the journal still holds the old version. Transient deferrals are counted
749
+ * in `filesSkipped` instead. Callers must not report success when this is
750
+ * above 0 (feedback_943456f4).
751
+ */
752
+ filesUploadFailed?: number;
753
+ /** Paths corresponding to `filesUploadFailed`, capped at 50. */
754
+ uploadFailedPaths?: string[];
734
755
  /**
735
756
  * Number of uploads suppressed by the push-side FILE_TOMBSTONE consult — keys
736
757
  * an authoritative delete (`hq files delete`) tombstoned that this machine
@@ -815,7 +836,7 @@ export interface ShareResult {
815
836
  planLimit?: PlanLimitRefusal;
816
837
  aborted: boolean;
817
838
  }
818
- export type ShareDeleteRefusalReason = "stale-etag" | "legacy-no-etag" | "bulk-asymmetry" | "mass-delete-absolute-volume" | "mass-delete-release-owned-root" | "divergent-local" | "missing-delete-intent" | "intent-changed" | "recreated-locally" | "cloud-placeholder" | "marker-mismatch" | "scope-excluded" | "transfer-error";
839
+ export type ShareDeleteRefusalReason = "stale-etag" | "legacy-no-etag" | "bulk-asymmetry" | "mass-delete-absolute-volume" | "mass-delete-release-owned-root" | "divergent-local" | "missing-delete-intent" | "intent-changed" | "recreated-locally" | "cloud-placeholder" | "marker-mismatch" | "state-rebuilt-deletes-held" | "scope-excluded" | "transfer-error";
819
840
  export interface SharePathResult {
820
841
  path: string;
821
842
  status: "accepted" | "refused";
@@ -961,6 +982,8 @@ type CollectedEntry = {
961
982
  interface CollectHooks {
962
983
  onUnreadableLink?: (key: string) => void;
963
984
  onUnreachablePath?: (namedPath: string, reason: UnreachablePathReason) => void;
985
+ /** A caller-named path the sync filter rejected. Never fires for walked children. */
986
+ onFilteredNamedPath?: (namedPath: string, absolutePath: string, isDir: boolean) => void;
964
987
  onLinkedSubtree?: (rel: string) => void;
965
988
  onHeartbeat?: () => void;
966
989
  cooperativeCheckpoint?: () => Promise<void | boolean>;
@@ -1057,7 +1080,7 @@ declare function collectFiles(paths: string[], hqRoot: string, syncRoot: string,
1057
1080
  * tracked. `journalEtag` and `remoteEtag` are
1058
1081
  * placeholder sentinels — do not display as ETags.
1059
1082
  */
1060
- type RefusedStaleReason = "stale-etag" | "legacy-no-etag" | "bulk-asymmetry" | "mass-delete-absolute-volume" | "mass-delete-release-owned-root" | "divergent-local" | "missing-delete-intent" | "intent-changed" | "recreated-locally" | "cloud-placeholder" | "marker-mismatch";
1083
+ type RefusedStaleReason = "stale-etag" | "legacy-no-etag" | "bulk-asymmetry" | "mass-delete-absolute-volume" | "mass-delete-release-owned-root" | "divergent-local" | "missing-delete-intent" | "intent-changed" | "recreated-locally" | "cloud-placeholder" | "marker-mismatch" | "state-rebuilt-deletes-held";
1061
1084
  /**
1062
1085
  * Three buckets returned by computeDeletePlan, exposed so the execution
1063
1086
  * loop can take a different action for each:
@@ -1180,6 +1203,6 @@ interface DeletePlan {
1180
1203
  *
1181
1204
  * Empty `scopeRoots` ⇒ empty plan (caller didn't opt in).
1182
1205
  */
1183
- export declare function computeDeletePlan(journal: SyncJournal, syncRoot: string, scopeRoots: string[], shouldSync: (filePath: string, isDir?: boolean) => boolean, policy: "currency-gated" | "owned-only" | "all", ctx: EntityContext, companyScoped?: boolean, skipSecretPaths?: boolean, excludedPaths?: ReadonlySet<string>): Promise<DeletePlan>;
1206
+ export declare function computeDeletePlan(journal: SyncJournal, syncRoot: string, scopeRoots: string[], shouldSync: (filePath: string, isDir?: boolean) => boolean, policy: "currency-gated" | "owned-only" | "all", ctx: EntityContext, companyScoped?: boolean, skipSecretPaths?: boolean, excludedPaths?: ReadonlySet<string>, holdRemoteDeletes?: boolean, bulkBaselineJournal?: () => SyncJournal): Promise<DeletePlan>;
1184
1207
  export {};
1185
1208
  //# sourceMappingURL=share.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../src/cli/share.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAuG,KAAK,gBAAgB,EAA8B,MAAM,0BAA0B,CAAC;AAUlM,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAmClF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAY7C,OAAO,EAYL,6BAA6B,EAW9B,MAAM,eAAe,CAAC;AACvB,OAAO,EASL,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AAuBtB,OAAO,KAAK,EAAwC,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAIL,KAAK,gBAAgB,EAEtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAOL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAC;AAwBzB,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAOL,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAahF,OAAO,EAA4B,KAAK,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAkFtG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,sBAAsB,QACmD,CAAC;AAEvF;;;;;;;;;GASG;AACH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,QAAqB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAExD;AAiBD,iBAAS,0BAA0B,IAAI,IAAI,CAI1C;AAED,iBAAS,2BAA2B,IAAI,IAAI,CAI3C;AAED,iBAAS,4BAA4B,IAAI;IACvC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B,CAKA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;CAmBpB,CAAC;AAEF;;;;;;;;;GASG;AACH,KAAK,YAAY,GACb;IACE,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IAOb,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,GACD;IACE,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IAIrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,CAAC,CAAC;CACT,GACD;IACE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,gBAAgB,CAAC;CAC3B,GACD;IACE,MAAM,EAAE,qBAAqB,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,MAAM,EAAE,uBAAuB,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,MAAM,EAAE,gBAAgB,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IAMrB,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D,CAAC;AAEN,UAAU,QAAQ;IAChB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;GASG;AACH,oDAAoD;AACpD,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAsDD,iBAAS,kBAAkB,CACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC,CAAC,GACzD,OAAO,CAaT;AAkDD;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,QAAS,CAAC;AAIxD,wBAAgB,0CAA0C,CACxD,EAAE,EAAE,MAAM,GAAG,SAAS,GACrB,IAAI,CAEN;AAiDD;;;;;GAKG;AACH,KAAK,sBAAsB,GAAG,OAAO,GAAG,cAAc,CAAC;AAyBvD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzC;AAED,iBAAS,eAAe,CACtB,YAAY,EAAE,cAAc,EAAE,EAC9B,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,OAAO,EACtB,WAAW,CAAC,EAAE,MAAM,IAAI,EACxB,kBAAkB,GAAE,sBAA8B,EAClD,cAAc,CAAC,EAAE,kBAAkB,GAClC,QAAQ,CA6MV;AAsID,iBAAS,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;GAIG;AACH,iBAAe,4BAA4B,CACzC,YAAY,EAAE,cAAc,EAAE,EAC9B,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,EACrC,qBAAqB,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,EAClE,kBAAkB,GAAE,sBAA8B,EAClD,cAAc,CAAC,EAAE,kBAAkB,GAClC,OAAO,CAAC,QAAQ,CAAC,CAyCnB;AAkED,MAAM,WAAW,YAAY;IAC3B,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,kBAAkB,CAAC;IAC9C;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAC7C,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,gHAAgH;IAChH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,IAAI,CAAC;KAChB,KAAK,IAAI,CAAC;IACX,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,iFAAiF;IACjF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACxC,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtD;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG;QACxD,wFAAwF;QACxF,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC;QACtC,+EAA+E;QAC/E,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;QAC5B,mFAAmF;QACnF,uBAAuB,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;YAC/D,KAAK,EAAE,CAAC,CAAC;YACT,WAAW,EAAE,OAAO,CAAC;YACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;SACtB,CAAC,CAAC;KACJ,CAAC;IACF;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,qBAAqB,CAAC,EAAE,gBAAgB,GAAG,YAAY,GAAG,KAAK,CAAC;IAChE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvD;;;OAGG;IACH,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,qBAAqB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzC;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACpE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,wBAAwB,CAAC;QACjC,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,KAAK,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,+BAA+B;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAClC,KAAK,EAAE,+BAA+B,KACnC,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAEzC,qBAAa,6BAA8B,SAAQ,KAAK;aAC1B,KAAK,EAAE,MAAM,EAAE;gBAAf,KAAK,EAAE,MAAM,EAAE;CAO5C;AAED,8DAA8D;AAC9D,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAEtF;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;gBAE5C,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,MAAM;CAuBtF;AAED,0EAA0E;AAC1E,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEb,KAAK,EAAE,MAAM,EAAE;CAa5B;AA6BD,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,mDAAmD;IACnD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,eAAe,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF;;;;;;;OAOG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;;;;OASG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;;;;;OAQG;IACH,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC;;;;;;;OAOG;IACH,0BAA0B,EAAE,MAAM,CAAC;IACnC,kGAAkG;IAClG,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC;;;;;;;OAOG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;;;;;OAQG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;;;OAOG;IACH,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC;;;;OAIG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iEAAiE;IACjE,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,wBAAwB,GAChC,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,6BAA6B,GAC7B,gCAAgC,GAChC,iBAAiB,GACjB,uBAAuB,GACvB,gBAAgB,GAChB,mBAAmB,GAGnB,mBAAmB,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,QAAQ,GAAG,WAAW,CAAC;IAClC,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAoDD,mFAAmF;AACnF,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUlE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,GAAG,SAA6B,GAC/B;IACD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,WAAW,EAAE,MAAM,CAAC;CACrB,CAmBA;AAED,kFAAkF;AAClF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,oBAAoB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,MAAM,EAAE,CAmCX;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,EACzD,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,EAC5E,aAAa,CAAC,EAAE,MAAM,IAAI,EAC1B,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAC3C,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAY/C;AAED;;;;;;;;GAQG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAEvE;AAoJD,KAAK,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAGlE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAO/D;AA+hBD,8EAA8E;AAC9E,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQlF;AAiuGD,+DAA+D;AAC/D,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAejD;AA8sBD;;;;GAIG;AACH,eAAO,MAAM,2CAA2C,MAAM,CAAC;AAmW/D;;;GAGG;AACH,iBAAS,oBAAoB,CAC3B,KAAK,EAAE,iBAAiB,EACxB,cAAc,CAAC,EAAE,gBAAgB,GAChC,IAAI,CAuNN;AAED;;;;;;;;;GASG;AACH,KAAK,cAAc,GACf;IACE,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC;CAClD,GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,UAAU,YAAY;IACpB,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC/E,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;IACtD,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,iBAAS,gBAAgB,CACvB,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAsB,GAC1B,MAAM,CAuBR;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,iBAAS,qBAAqB,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACvC,OAAO,CAwBT;AA8HD;;;;;;;;;;;GAWG;AACH,iBAAe,YAAY,CACzB,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,EAC/C,KAAK,GAAE,YAAiB,GACvB,OAAO,CAAC,cAAc,EAAE,CAAC,CA6H3B;AA+QD;;;;;;;;;;GAUG;AACH,KAAK,kBAAkB,GACnB,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,6BAA6B,GAC7B,gCAAgC,GAChC,iBAAiB,GACjB,uBAAuB,GACvB,gBAAgB,GAChB,mBAAmB,GAGnB,mBAAmB,GACnB,iBAAiB,CAAC;AAwDtB;;;;;;;;;;;;GAYG;AACH,UAAU,UAAU;IAClB,QAAQ,EAAE,KAAK,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC;QACxB,yEAAyE;QACzE,wBAAwB,CAAC,EAAE,OAAO,CAAC;KACpC,CAAC,CAAC;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,kBAAkB,CAAC;KAC5B,CAAC,CAAC;IACH;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC;;;;;OAKG;IACH,aAAa,CAAC,EAAE;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;CACH;AAwFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,EAC1D,MAAM,EAAE,gBAAgB,GAAG,YAAY,GAAG,KAAK,EAC/C,GAAG,EAAE,aAAa,EAIlB,aAAa,GAAE,OAAc,EAC7B,eAAe,GAAE,OAAe,EAChC,aAAa,GAAE,WAAW,CAAC,MAAM,CAAa,GAC7C,OAAO,CAAC,UAAU,CAAC,CAshBrB"}
1
+ {"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../src/cli/share.ts"],"names":[],"mappings":"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"}
package/dist/cli/share.js CHANGED
@@ -8,7 +8,7 @@ import { localLinkWarning, rememberLinkWarning, brokenLinkSkipEvent, LinkWarning
8
8
  import * as fs from "fs";
9
9
  import * as os from "os";
10
10
  import * as path from "path";
11
- import { hasCloudPlaceholderSibling, isCloudOnlyLocally, isCloudPlaceholderName, isSyncedCloudPlaceholderFile, } from "../cloud-placeholder.js";
11
+ import { CLOUD_PLACEHOLDER_SUFFIX, cloudPlaceholderPathFor, hasCloudPlaceholderSibling, hasLocalOriginalForMissingPlaceholder, isBesideCompanyBlobPlaceholder, isCloudOnlyLocally, isCloudPlaceholderName, isSyncedCloudPlaceholderFile, } from "../cloud-placeholder.js";
12
12
  import { resolveSymlinkTargetRefusalFlag } from "../sync/symlink-target-refusal-flag.js";
13
13
  import { inspectLocalSymlinkScope, inspectSymlinkTarget, materializedTargetMatchesWire, personalSymlinkTargetLinkPath, } from "../symlink-target-policy.js";
14
14
  import { resolveEntityContext, isExpiringSoon, refreshEntityContext } from "../context.js";
@@ -23,10 +23,10 @@ import { uploadFile, uploadSymlink, toPosixKey, headRemoteFile, readVerifiedRemo
23
23
  import * as crypto from "crypto";
24
24
  import { bindObjectIOToContext, PresignObjectIO, RateLimitedError, resolveObjectIO, S3SdkObjectIO, } from "../object-io.js";
25
25
  import { primePrivateFolderUpload } from "../private-folder-transport.js";
26
- import { getJournalPath, isUnderAnyRoot, readJournalForPass, readJournalScoped, readQuarantinedJournalPaths, writeJournal, setJournalSnapshotQuarantineListener, hashFile, hashSymlinkTarget, journalRows, journalEntryMatchesStat, journalFingerprintMatchesStat, dropJournalDecodeWindow, timestampsTooCoarseToTrust, updateEntry, PrematureJournalEntryError, removeEntry, isTombstone, normalizeEtag, PERSONAL_VAULT_JOURNAL_SLUG, migratePersonalVaultJournal, migrateToV2, } from "../journal.js";
27
- import { createIgnoreExplainer, createIgnoreFilter, hasControlCharacters, isExpectedIgnore, isMachineLocalRuntimePath, isPathExcludedFromSync, isSecretPatternIgnore, isWithinSizeLimit, } from "../ignore.js";
26
+ import { getJournalPath, isUnderAnyRoot, readJournalForPass, readJournalReadOnly, readJournalScoped, readQuarantinedJournalPaths, writeJournal, setJournalSnapshotQuarantineListener, hashFile, hashSymlinkTarget, journalRows, journalEntryMatchesStat, journalFingerprintMatchesStat, dropJournalDecodeWindow, timestampsTooCoarseToTrust, updateEntry, PrematureJournalEntryError, removeEntry, isTombstone, normalizeEtag, PERSONAL_VAULT_JOURNAL_SLUG, migratePersonalVaultJournal, migrateToV2, configureRejectedDeltaRecovery, getJournalRecoveryMarker, } from "../journal.js";
27
+ import { createIgnoreExplainer, createIgnoreFilter, hasControlCharacters, isExpectedIgnore, isHqGeneratedIndexFile, isMachineLocalRuntimePath, isPathExcludedFromSync, isSecretFolderPath, isSecretPatternIgnore, isWithinSizeLimit, } from "../ignore.js";
28
28
  import { wrapFilterWithPersonalVaultDefaults, } from "../personal-vault-exclusions.js";
29
- import { claimNeverSyncedLocalNotice, formatSecretsNotSyncedLine, isNeverSyncedVaultPath, isSecretBearingVaultPath, isSkipSecretPathsEnabled, } from "../sync/secret-path-policy.js";
29
+ import { claimNeverSyncedLocalNotices, formatSecretsNotSyncedLine, isNeverSyncedVaultPath, isSecretBearingVaultPath, isSkipSecretPathsEnabled, isWalRejectedDeltaRecoveryEnabled, } from "../sync/secret-path-policy.js";
30
30
  import { getActiveFullPassDecodeWindow, getActiveFullPassUnitSize, } from "../sync/full-pass-caps.js";
31
31
  import { isGeneratedCoreMirrorKey, isPersonalVaultDeletionExcluded, isSessionLogDeletionKey, purgeExcludedPersonalVaultJournalEntries, } from "../personal-vault.js";
32
32
  import { pickWinner, resolveConflict, usesVersionAwareWinner } from "./conflict.js";
@@ -885,10 +885,13 @@ export class UnreachablePushPathsError extends Error {
885
885
  paths;
886
886
  /** Per-path reason, keyed by the same original spelling. */
887
887
  reasons;
888
- constructor(unreachable, syncRoot) {
888
+ constructor(unreachable, syncRoot, ignoreRules = new Map()) {
889
889
  const paths = [...unreachable.keys()];
890
890
  const lines = paths.map((p) => {
891
891
  const reason = unreachable.get(p);
892
+ if (reason === "ignored") {
893
+ return ` · ${p} — ${ignoreRules.get(p) ?? "excluded by a sync ignore rule"}; it was not uploaded`;
894
+ }
892
895
  if (reason === "outside-company") {
893
896
  return ` · ${p} — resolves outside the company folder (${syncRoot})`;
894
897
  }
@@ -1367,6 +1370,10 @@ async function createPushRunContext(options) {
1367
1370
  ? await isSkipSecretPathsEnabled(secretPathFlagConfig, ctx.uid, true)
1368
1371
  : await isSkipSecretPathsEnabled(secretPathFlagConfig, ctx.uid)
1369
1372
  : preVendedCompanyPush;
1373
+ const walRecoveryEnabled = secretPathFlagConfig
1374
+ ? await isWalRejectedDeltaRecoveryEnabled(secretPathFlagConfig, ctx.uid)
1375
+ : true;
1376
+ configureRejectedDeltaRecovery(walRecoveryEnabled);
1370
1377
  const ignoreFilter = createIgnoreFilter(hqRoot, {
1371
1378
  allowRootMcpConfig: personalConnectorSettingsSync,
1372
1379
  });
@@ -1429,8 +1436,7 @@ async function createPushRunContext(options) {
1429
1436
  return false;
1430
1437
  return baseFilter(filePath, isDir);
1431
1438
  };
1432
- const neverSyncedLocalPath = claimNeverSyncedLocalNotice(hqRoot, syncRoot);
1433
- if (neverSyncedLocalPath) {
1439
+ for (const neverSyncedLocalPath of claimNeverSyncedLocalNotices(hqRoot, syncRoot)) {
1434
1440
  emit({ type: "secrets-not-synced", path: neverSyncedLocalPath });
1435
1441
  }
1436
1442
  const shouldSync = options.prefixSet !== undefined
@@ -1453,6 +1459,7 @@ async function createPushRunContext(options) {
1453
1459
  // known. Full/cadence callers retain the complete snapshot here.
1454
1460
  const scopedJournal = options.scopedJournal === true;
1455
1461
  const journal = scopedJournal ? emptyJournalForScopedPass() : readJournalForPass(journalSlug, ctx.uid);
1462
+ const holdRemoteDeletes = getJournalRecoveryMarker(journalSlug) !== undefined;
1456
1463
  return {
1457
1464
  options,
1458
1465
  ontologyEntityPush: false,
@@ -1481,7 +1488,15 @@ async function createPushRunContext(options) {
1481
1488
  syncRoot,
1482
1489
  shouldSync,
1483
1490
  durableShouldSync: baseFilter,
1491
+ ignoreFilter,
1492
+ explainIgnore: (filePath, isDir) => {
1493
+ explainIgnored ??= createIgnoreExplainer(hqRoot, {
1494
+ allowRootMcpConfig: personalConnectorSettingsSync,
1495
+ });
1496
+ return explainIgnored(filePath, isDir);
1497
+ },
1484
1498
  skipSecretPaths,
1499
+ holdRemoteDeletes,
1485
1500
  journalSlug,
1486
1501
  quarantinedPaths,
1487
1502
  journal,
@@ -1489,12 +1504,14 @@ async function createPushRunContext(options) {
1489
1504
  excludedSet,
1490
1505
  excludedById,
1491
1506
  scopeExcludedSet,
1507
+ uploadFailedSet: new Set(),
1492
1508
  ignoreExcludedSet,
1493
1509
  ignoreExcludedTotal,
1494
1510
  ignoreExcludedLayers,
1495
1511
  ignoreIncludeLines,
1496
1512
  secretExcludedSet,
1497
1513
  unreachablePaths,
1514
+ ignoredNamedPathRules: new Map(),
1498
1515
  linkedSubtreeSet,
1499
1516
  skillRegistrationConflicts,
1500
1517
  hostLoadAtStart,
@@ -2184,6 +2201,7 @@ async function buildSharePlans(run) {
2184
2201
  if (rememberLinkWarning(run.linkWarnings, warning))
2185
2202
  run.emit(brokenLinkSkipEvent(warning));
2186
2203
  },
2204
+ onFilteredNamedPath: (namedPath, absolutePath, isDir) => recordIgnoredNamedPath(run, namedPath, absolutePath, isDir),
2187
2205
  onLinkedSubtree: (rel) => run.linkedSubtreeSet.add(rel),
2188
2206
  onHeartbeat: run.options.onHeartbeat,
2189
2207
  cooperativeCheckpoint: run.options.cooperativeCheckpoint,
@@ -2200,7 +2218,7 @@ async function buildSharePlans(run) {
2200
2218
  const fatal = collectFatalUnreachablePaths(run);
2201
2219
  if (fatal.size > 0) {
2202
2220
  emitUnreachablePathEvent(run);
2203
- throw new UnreachablePushPathsError(fatal, run.syncRoot);
2221
+ throw new UnreachablePushPathsError(fatal, run.syncRoot, run.ignoredNamedPathRules);
2204
2222
  }
2205
2223
  const deleteScopeRoots = run.propagateDeletes === true
2206
2224
  ? resolveDeleteScopeRoots(run.paths, run.hqRoot, run.syncRoot, run.options.deleteScopeRoots)
@@ -2234,7 +2252,7 @@ async function buildSharePlans(run) {
2234
2252
  errorCode: "INVALID_KEY_CONTROL_CHARS",
2235
2253
  });
2236
2254
  return false;
2237
- });
2255
+ }).filter((entry) => !isLocalCopyOfLibraryAsset(run.journal, entry));
2238
2256
  // `companies/` is an ordinary directory name below a company vault root.
2239
2257
  // The walker derives every key from that root, so it cannot select another
2240
2258
  // company. Keep the generic control-character admission check for both
@@ -2291,8 +2309,9 @@ async function buildSharePlans(run) {
2291
2309
  companySlug: run.ctx.slug,
2292
2310
  reportedUnsafeSymlinkPaths: run.reportedUnsafeSymlinkPaths,
2293
2311
  });
2312
+ const recoveryHoldActive = run.holdRemoteDeletes || getJournalRecoveryMarker(run.journalSlug) !== undefined;
2294
2313
  const deletePlan = run.propagateDeletes === true
2295
- ? await computeDeletePlan(run.journal, run.syncRoot, deleteScopeRoots, run.shouldSync, run.propagateDeletePolicy, run.ctx, run.options.personalMode !== true, run.skipSecretPaths, run.quarantinedPaths)
2314
+ ? await computeDeletePlan(run.journal, run.syncRoot, deleteScopeRoots, run.shouldSync, run.propagateDeletePolicy, run.ctx, run.options.personalMode !== true, run.skipSecretPaths, run.quarantinedPaths, recoveryHoldActive, run.scopedJournal ? () => readJournalReadOnly(run.journalSlug) : undefined)
2296
2315
  : { toDelete: [], toTombstone: [], refusedStale: [] };
2297
2316
  for (const warning of deletePlan.brokenLinkSkipped ?? []) {
2298
2317
  if (rememberLinkWarning(run.linkWarnings, warning))
@@ -3174,6 +3193,7 @@ async function executeUploads(run, pushPlan, counters, conflictPaths) {
3174
3193
  if (outcome === "write-failed") {
3175
3194
  // The merge already emitted the error. A second skip line repeats it.
3176
3195
  hadUploadFailure = true;
3196
+ run.uploadFailedSet.add(relativePath);
3177
3197
  }
3178
3198
  counters.filesSkipped++;
3179
3199
  return;
@@ -3232,6 +3252,7 @@ async function executeUploads(run, pushPlan, counters, conflictPaths) {
3232
3252
  if (outcome === "write-failed") {
3233
3253
  // The merge already emitted the error. A second skip line repeats it.
3234
3254
  hadUploadFailure = true;
3255
+ run.uploadFailedSet.add(relativePath);
3235
3256
  }
3236
3257
  counters.filesSkipped++;
3237
3258
  return;
@@ -3710,6 +3731,7 @@ async function executeUploads(run, pushPlan, counters, conflictPaths) {
3710
3731
  if (outcome === "write-failed") {
3711
3732
  // The merge already emitted the error. A second skip line repeats it.
3712
3733
  hadUploadFailure = true;
3734
+ run.uploadFailedSet.add(relativePath);
3713
3735
  }
3714
3736
  else if (outcome === "publish-local") {
3715
3737
  counters.filesSkippedConflict++;
@@ -3788,6 +3810,7 @@ async function executeUploads(run, pushPlan, counters, conflictPaths) {
3788
3810
  return;
3789
3811
  }
3790
3812
  hadUploadFailure = true;
3813
+ run.uploadFailedSet.add(relativePath);
3791
3814
  run.emit({
3792
3815
  type: "error",
3793
3816
  path: relativePath,
@@ -3890,6 +3913,7 @@ async function executeUploads(run, pushPlan, counters, conflictPaths) {
3890
3913
  if (emitPlanLimitSkip(retryErr, relativePath))
3891
3914
  return;
3892
3915
  hadUploadFailure = true;
3916
+ run.uploadFailedSet.add(relativePath);
3893
3917
  run.emit({
3894
3918
  type: "error",
3895
3919
  path: relativePath,
@@ -3939,6 +3963,7 @@ async function executeUploads(run, pushPlan, counters, conflictPaths) {
3939
3963
  });
3940
3964
  }
3941
3965
  else {
3966
+ run.uploadFailedSet.add(relativePath);
3942
3967
  run.emit({
3943
3968
  type: "error",
3944
3969
  path: relativePath,
@@ -4792,7 +4817,9 @@ async function executeDeletes(run, deletePlan, decommissionPlan, counters, files
4792
4817
  const localPath = localPathForVaultKey(run.syncRoot, relativePath);
4793
4818
  const localStateStillSafe = item.materializedKnowledgeDir
4794
4819
  ? isMaterializedKnowledgeDirectory(localPath, relativePath, entry, run.options.personalMode !== true)
4795
- : isLocallyAbsent(localPath) && !hasCloudPlaceholderSibling(localPath);
4820
+ : isLocallyAbsent(localPath) &&
4821
+ !hasCloudPlaceholderSibling(localPath) &&
4822
+ !hasLocalOriginalForMissingPlaceholder(localPath);
4796
4823
  const recreatedLocally = !item.decommission && !localStateStillSafe;
4797
4824
  // `hq storage offload` wrote `<name>.hqcloud` after planning: the file
4798
4825
  // is cloud-only now, not deleted.
@@ -5208,11 +5235,59 @@ function collectFatalUnreachablePaths(run) {
5208
5235
  if (run.options.unreachablePathPolicy === "warn")
5209
5236
  return fatal;
5210
5237
  for (const [namedPath, reason] of run.unreachablePaths) {
5211
- if (reason === "outside-company")
5238
+ if (reason === "outside-company" || reason === "ignored")
5212
5239
  fatal.set(namedPath, reason);
5213
5240
  }
5214
5241
  return fatal;
5215
5242
  }
5243
+ /**
5244
+ * A caller-named path that the ignore stack rejects was dropped with no event:
5245
+ * `.hq-*` names and generated INDEX.md files count as expected noise, so the
5246
+ * ignore warning skips them, and the push printed "✓ Pushed 0 file(s)" with
5247
+ * exit 0 (feedback_63bfc302, feedback_8c294805). Record it as `"ignored"` so
5248
+ * the default policy fails the push and names the rule.
5249
+ *
5250
+ * Not recorded:
5251
+ * - Runs without `failOnIgnoredNamedPaths`. Their paths are enumerated roots,
5252
+ * not user input, and an ignored root there is routine.
5253
+ * - `"warn"` runs. Their paths are watcher and walk roots, where an ignored
5254
+ * file is routine and already filtered.
5255
+ * - Paths the raw ignore stack admits. Scope, personal-vault, and secret-path
5256
+ * wrappers rejected those and report them through their own events.
5257
+ * - Secret-pattern files (dotenv files, credentials) and secret folders
5258
+ * (company `secrets/` and `settings/`, `.secrets`). They are left out by
5259
+ * design (US-178), and watcher runs name them routinely.
5260
+ */
5261
+ function recordIgnoredNamedPath(run, namedPath, absolutePath, isDir) {
5262
+ if (run.options.failOnIgnoredNamedPaths !== true)
5263
+ return;
5264
+ if (run.options.unreachablePathPolicy === "warn")
5265
+ return;
5266
+ if (run.unreachablePaths.has(namedPath))
5267
+ return;
5268
+ if (run.ignoreFilter(absolutePath, isDir))
5269
+ return;
5270
+ const rel = vaultKeyForLocalPath(run.hqRoot, absolutePath);
5271
+ if (isSecretFolderPath(rel))
5272
+ return;
5273
+ if (!isDir && isSecretPatternIgnore(rel))
5274
+ return;
5275
+ run.unreachablePaths.set(namedPath, "ignored");
5276
+ run.ignoredNamedPathRules.set(namedPath, describeIgnoreRule(run, absolutePath, isDir));
5277
+ }
5278
+ function describeIgnoreRule(run, absolutePath, isDir) {
5279
+ if (!isDir && isHqGeneratedIndexFile(absolutePath)) {
5280
+ return "an HQ-generated INDEX.md (it starts with \"> Auto-generated.\"), which each machine rebuilds and sync never uploads";
5281
+ }
5282
+ const { layer } = run.explainIgnore(absolutePath, isDir);
5283
+ if (layer === ".hqignore" || layer === ".hqsyncignore") {
5284
+ return `excluded by a rule in ${layer}`;
5285
+ }
5286
+ if (layer === ".hqinclude allowlist") {
5287
+ return "not listed in .hqinclude";
5288
+ }
5289
+ return "excluded by a built-in sync ignore rule";
5290
+ }
5216
5291
  /**
5217
5292
  * Emit the `not-shipped` / `unreachable-path` event for a run, if any named
5218
5293
  * path went unshipped. Shared by BOTH policies so the operator sees the same
@@ -5309,6 +5384,8 @@ function buildShareResult(run, counters, filesRefusedStalePaths, conflictPaths,
5309
5384
  filesTombstoned: counters.filesTombstoned,
5310
5385
  filesRefusedStale: counters.filesRefusedStale,
5311
5386
  filesRefusedStalePaths,
5387
+ filesUploadFailed: run.uploadFailedSet.size,
5388
+ uploadFailedPaths: [...run.uploadFailedSet].slice(0, REFUSED_STALE_PATH_CAP),
5312
5389
  filesSuppressedByTombstone: counters.filesSuppressedByTombstone,
5313
5390
  ...(run.skillRegisterLandedBytes
5314
5391
  ? { skillRegistrationFallbacks: run.skillRegistrationFallbacks }
@@ -5446,6 +5523,9 @@ function defaultConsoleLogger(event, humanSkipLines) {
5446
5523
  console.error(` ⚠ cloud-placeholder, kept on remote: ${event.path} ` +
5447
5524
  `(a .hqcloud placeholder stands in for this file, so it was not deleted)`);
5448
5525
  }
5526
+ else if (event.reason === "state-rebuilt-deletes-held") {
5527
+ console.error(` ⚠ state-rebuilt-deletes-held, kept on remote: ${event.path} (complete a full authoritative sync pass to release the hold)`);
5528
+ }
5449
5529
  else if (event.reason === "marker-mismatch") {
5450
5530
  console.error(` ⚠ marker-mismatch, kept on remote: ${event.path} ` +
5451
5531
  `(the remote object is not the symlink revision reindex replaced)`);
@@ -5784,6 +5864,40 @@ function reportLinkedSubtreeIfExternal(linkPath, syncRoot, relativePath, hooks)
5784
5864
  return; // in-tree target: descended elsewhere
5785
5865
  hooks.onLinkedSubtree(relativePath);
5786
5866
  }
5867
+ const libraryCopyNoted = new Set();
5868
+ /**
5869
+ * True for a file that is a local copy of a cloud-only library asset and must
5870
+ * not be uploaded: the journal does not track `x`, and either `x.hqcloud`
5871
+ * beside it is a company placeholder keyed `.hq-offload/blobs/<sha>`, or the
5872
+ * journal tracks a synced `x.hqcloud` that is missing on disk (an hq-cli fetch
5873
+ * replaced it with `x`; pull restores it). The bytes already live in the
5874
+ * company blob, so an upload would only add a second full copy at `x`, and a
5875
+ * teammate's pull would then repoint their placeholder at it. A file the
5876
+ * journal already tracks syncs as before. Logged once per path per process.
5877
+ */
5878
+ function isLocalCopyOfLibraryAsset(journal, entry) {
5879
+ if (entry.kind !== "file")
5880
+ return false;
5881
+ if (isCloudPlaceholderName(path.basename(entry.absolutePath)))
5882
+ return false;
5883
+ const rows = journalRows(journal);
5884
+ const own = rows.get(entry.relativePath);
5885
+ if (own !== undefined && !isTombstone(own))
5886
+ return false;
5887
+ let localCopy = isBesideCompanyBlobPlaceholder(entry.absolutePath);
5888
+ if (!localCopy) {
5889
+ const placeholderRow = rows.get(`${entry.relativePath}${CLOUD_PLACEHOLDER_SUFFIX}`);
5890
+ localCopy =
5891
+ placeholderRow !== undefined &&
5892
+ !isTombstone(placeholderRow) &&
5893
+ hasLocalOriginalForMissingPlaceholder(cloudPlaceholderPathFor(entry.absolutePath));
5894
+ }
5895
+ if (localCopy && !libraryCopyNoted.has(entry.absolutePath)) {
5896
+ libraryCopyNoted.add(entry.absolutePath);
5897
+ console.error(` Note: ${entry.relativePath} is a local copy of a library asset (${entry.relativePath}${CLOUD_PLACEHOLDER_SUFFIX}); it stays on this machine and is not uploaded.`);
5898
+ }
5899
+ return localCopy;
5900
+ }
5787
5901
  /**
5788
5902
  * Collect files from paths (expanding directories recursively).
5789
5903
  *
@@ -5859,8 +5973,10 @@ async function collectFiles(paths, hqRoot, syncRoot, filter, hooks = {}) {
5859
5973
  // symlinks under allowlist mode (the motivating case for this
5860
5974
  // whole branch). The filter is pure path lookup with no I/O,
5861
5975
  // so two calls are free.
5862
- if (!filter(absolutePath, false) && !filter(absolutePath, true))
5976
+ if (!filter(absolutePath, false) && !filter(absolutePath, true)) {
5977
+ hooks.onFilteredNamedPath?.(p, absolutePath, false);
5863
5978
  continue;
5979
+ }
5864
5980
  const target = readlinkOrNull(absolutePath);
5865
5981
  if (target === null) {
5866
5982
  console.error(` Warning: ${p} is an unreadable symbolic link, skipping.`);
@@ -5888,17 +6004,22 @@ async function collectFiles(paths, hqRoot, syncRoot, filter, hooks = {}) {
5888
6004
  continue;
5889
6005
  }
5890
6006
  if (lstat.isDirectory()) {
5891
- if (!filter(absolutePath, true))
6007
+ if (!filter(absolutePath, true)) {
6008
+ hooks.onFilteredNamedPath?.(p, absolutePath, true);
5892
6009
  continue;
6010
+ }
5893
6011
  await walkDir(absolutePath, syncRoot, filter, results, hooks, cooperativeWork);
5894
6012
  }
5895
6013
  else if (lstat.isFile()) {
5896
6014
  const relativePath = vaultKeyForLocalPath(syncRoot, absolutePath);
6015
+ if (!filter(absolutePath)) {
6016
+ hooks.onFilteredNamedPath?.(p, absolutePath, false);
6017
+ continue;
6018
+ }
5897
6019
  // Cloud-only placeholders are local stand-ins; never upload them,
5898
6020
  // except library asset placeholders, which sync as small text files.
5899
- if (filter(absolutePath) &&
5900
- (!isCloudPlaceholderName(path.basename(absolutePath)) ||
5901
- isSyncedCloudPlaceholderFile(absolutePath))) {
6021
+ if (!isCloudPlaceholderName(path.basename(absolutePath)) ||
6022
+ isSyncedCloudPlaceholderFile(absolutePath)) {
5902
6023
  noteCooperativeRowVisit("collect", relativePath);
5903
6024
  results.push({ kind: "file", absolutePath, relativePath });
5904
6025
  }
@@ -6196,6 +6317,13 @@ function resolveDeleteScopeRoots(paths, hqRoot, syncRoot, explicitRoots = []) {
6196
6317
  * already opts out of safety gates (currency check, owned-only).
6197
6318
  * This guard honors that explicit opt-out.
6198
6319
  *
6320
+ * `inScope` in a watcher (scoped) push is NOT the delete roots alone. The
6321
+ * watcher names each deleted key as its own delete root, so counting only
6322
+ * rows under those roots makes the ratio ~100% and refuses every batch of
6323
+ * MIN_ABS or more deletes, which the next pull then restores. When the local
6324
+ * ratio trips, a scoped push re-counts the denominator over the whole journal
6325
+ * (`bulkBaselineJournal`), the same rows a full pass's root would cover.
6326
+ *
6199
6327
  * `"owned-only"` and `"currency-gated"` both go through the guard. The
6200
6328
  * `direction === "up"` filter in `owned-only` is no defense once a user
6201
6329
  * has ever run full bidirectional sync (every uploaded file gets
@@ -6352,7 +6480,10 @@ export async function computeDeletePlan(journal, syncRoot, scopeRoots, shouldSyn
6352
6480
  // True for a COMPANY-scoped push (personalMode !== true). This distinguishes
6353
6481
  // the canonical knowledge-marker layout from the personal-vault layout; it
6354
6482
  // does not reinterpret ordinary vault-relative path segments.
6355
- companyScoped = true, skipSecretPaths = false, excludedPaths = new Set()) {
6483
+ companyScoped = true, skipSecretPaths = false, excludedPaths = new Set(), holdRemoteDeletes = false,
6484
+ // Scoped (watcher) pushes only: reads the whole journal so the breaker's
6485
+ // denominator matches a full pass. Called only when the scoped ratio trips.
6486
+ bulkBaselineJournal) {
6356
6487
  const plan = { toDelete: [], toTombstone: [], refusedStale: [] };
6357
6488
  if (scopeRoots.length === 0)
6358
6489
  return plan;
@@ -6481,6 +6612,15 @@ companyScoped = true, skipSecretPaths = false, excludedPaths = new Set()) {
6481
6612
  continue;
6482
6613
  }
6483
6614
  }
6615
+ if (holdRemoteDeletes && !presentLocally) {
6616
+ plan.refusedStale.push({
6617
+ key: relativeKey,
6618
+ journalEtag: entry.remoteEtag ?? "<unknown>",
6619
+ remoteEtag: "<not-checked>",
6620
+ reason: "state-rebuilt-deletes-held",
6621
+ });
6622
+ continue;
6623
+ }
6484
6624
  const materializedKnowledgeDir = presentLocally &&
6485
6625
  isMaterializedKnowledgeDirectory(localPath, relativeKey, entry, companyScoped);
6486
6626
  if (presentLocally && !materializedKnowledgeDir)
@@ -6496,6 +6636,14 @@ companyScoped = true, skipSecretPaths = false, excludedPaths = new Set()) {
6496
6636
  }
6497
6637
  continue;
6498
6638
  }
6639
+ // The reverse swap: a synced (library) placeholder is gone while the
6640
+ // original it stands for is on disk. `hq library fetch` did that; the
6641
+ // user did not remove the asset. Deleting the key would drop the asset
6642
+ // from the library for every teammate and from cloud search. Pull
6643
+ // downloads the placeholder back beside the original.
6644
+ if (!presentLocally && hasLocalOriginalForMissingPlaceholder(localPath)) {
6645
+ continue;
6646
+ }
6499
6647
  // Reindex's legacy Knowledge migration is a representation transition,
6500
6648
  // not a user-content deletion: the exact key changed from a symlink object
6501
6649
  // to a real directory whose children are uploaded separately. The normal
@@ -6726,11 +6874,30 @@ companyScoped = true, skipSecretPaths = false, excludedPaths = new Set()) {
6726
6874
  // Bulk-asymmetry circuit-breaker. See `BULK_ASYMMETRY_*` constants for
6727
6875
  // rationale + bypass paths. Skipped under policy:"all" (caller asserted
6728
6876
  // intent) and under `HQ_SYNC_DELETE_BULK_OVERRIDE` (operator rollback knob).
6729
- if (policy !== "all" &&
6877
+ const bulkRatioTrips = () => inScopeJournalEntries > 0 &&
6878
+ bulkCandidatePicks / inScopeJournalEntries >= BULK_ASYMMETRY_RATIO;
6879
+ const bulkGuardApplies = policy !== "all" &&
6730
6880
  !isBulkAsymmetryOverride() &&
6731
- bulkCandidatePicks >= BULK_ASYMMETRY_MIN_ABS &&
6732
- inScopeJournalEntries > 0 &&
6733
- bulkCandidatePicks / inScopeJournalEntries >= BULK_ASYMMETRY_RATIO) {
6881
+ bulkCandidatePicks >= BULK_ASYMMETRY_MIN_ABS;
6882
+ if (bulkGuardApplies && bulkRatioTrips() && bulkBaselineJournal) {
6883
+ // The rows a full pass would count, with the same hard filters as the
6884
+ // Stage-1 loop. Rows it could not lstat (broken links) are not removed,
6885
+ // so this can only exceed a full pass's denominator by those rows.
6886
+ let baseline = 0;
6887
+ for (const [key, entry] of journalRows(bulkBaselineJournal()).entries()) {
6888
+ if (excludedPaths.has(key))
6889
+ continue;
6890
+ if (isNeverSyncedVaultPath(key))
6891
+ continue;
6892
+ if (skipSecretPaths && isSecretBearingVaultPath(key))
6893
+ continue;
6894
+ if (isTombstone(entry) && entry.removedReason !== "local-delete")
6895
+ continue;
6896
+ baseline++;
6897
+ }
6898
+ inScopeJournalEntries = Math.max(inScopeJournalEntries, baseline);
6899
+ }
6900
+ if (bulkGuardApplies && bulkRatioTrips()) {
6734
6901
  // Move every staged candidate (both already-bucketed toDelete from
6735
6902
  // owned-only and queued headCandidates from currency-gated) into
6736
6903
  // refusedStale with reason "bulk-asymmetry", and re-label the intent-less