@indigoai-us/hq-cloud 6.18.15 → 6.18.16-alpha.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.
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Folded spelling as a case-insensitive, normalization-insensitive volume sees
3
+ * it. `toLowerCase()` alone is not Unicode case folding: final sigma `ς`
4
+ * stays `ς` while `Σ` lowers to `σ`, yet APFS and NTFS treat all three as one
5
+ * name. Mapping each code point through its single-code-point upper case
6
+ * first (simple case folding) closes those gaps. Expanding upper cases such
7
+ * as `ß` -> `SS` are left alone: filesystems use simple, not full, folding.
8
+ */
9
+ export declare function foldVaultKey(key: string): string;
10
+ export interface CaseAliasTracker {
11
+ /** Record a key the remote LIST holds (a live object). */
12
+ observeRemote(remoteKey: string): void;
13
+ /**
14
+ * Stop observing and return the aliased keys. Drops the candidate map and
15
+ * the membership callback so they are not retained through the transfer
16
+ * phase; the plan keeps only this (normally tiny) set.
17
+ */
18
+ finish(): ReadonlySet<string>;
19
+ }
20
+ /**
21
+ * @param candidateKeys keys the executors may delete (journal rows, tombstoned keys)
22
+ * @param hasCandidate exact-membership test over the same keys, used for a
23
+ * remote key's folded spelling so all-lower-case
24
+ * candidates need no map entry
25
+ */
26
+ export declare function createCaseAliasTracker(candidateKeys: Iterable<string>, hasCandidate: (key: string) => boolean): CaseAliasTracker;
27
+ /**
28
+ * Whether lookups inside `dir` fold case. Takes an existing child whose name
29
+ * has letters and checks that its case-flipped spelling, looked up in the same
30
+ * directory, resolves to the same inode. Probing inside `dir` (not `dir` in
31
+ * its parent) measures the filesystem that stores the synced files even when
32
+ * `dir` is itself a mount point. An empty directory, a directory with no
33
+ * letter-bearing names, or any error reads as "does not fold", which keeps
34
+ * today's delete behaviour; with no children there is nothing to delete.
35
+ */
36
+ export declare function directoryFoldsCase(dir: string): boolean;
37
+ //# sourceMappingURL=case-alias.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-alias.d.ts","sourceRoot":"","sources":["../../src/cli/case-alias.ts"],"names":[],"mappings":"AAoBA;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWhD;AAWD,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC/B,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GACrC,gBAAgB,CAiClB;AAWD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAmBvD"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Case-only rename aliasing on case-folding volumes (feedback_c8ed69d1).
3
+ *
4
+ * S3 keys are case-sensitive; APFS, HFS+ and NTFS defaults are not. After a
5
+ * teammate renames `TikTok-Shop/` to `tiktok-shop/`, a Mac that still has the
6
+ * folder spelled `TikTok-Shop/` holds ONE file that is the local copy of both
7
+ * the dead key `TikTok-Shop/plan.md` and the live key `tiktok-shop/plan.md`.
8
+ * Deleting the dead key's local path removes the live key's only copy, and the
9
+ * push leg then deletes the live key from the vault (Solace, 2026-09-27: 255
10
+ * live keys).
11
+ *
12
+ * The tracker answers one question for the pull executors: is this key's
13
+ * local path shared with a key the remote LIST still holds? It retains only
14
+ * the candidate keys whose folded spelling differs from the key itself, plus a
15
+ * membership callback for all-lower-case candidates, so it adds no second
16
+ * whole-vault copy of the journal.
17
+ */
18
+ import * as fs from "fs";
19
+ import * as path from "path";
20
+ /**
21
+ * Folded spelling as a case-insensitive, normalization-insensitive volume sees
22
+ * it. `toLowerCase()` alone is not Unicode case folding: final sigma `ς`
23
+ * stays `ς` while `Σ` lowers to `σ`, yet APFS and NTFS treat all three as one
24
+ * name. Mapping each code point through its single-code-point upper case
25
+ * first (simple case folding) closes those gaps. Expanding upper cases such
26
+ * as `ß` -> `SS` are left alone: filesystems use simple, not full, folding.
27
+ */
28
+ export function foldVaultKey(key) {
29
+ // Fast path: most keys are lower-case ASCII and fold to themselves. The
30
+ // tracker folds every listed key on a full pull, so this avoids allocating
31
+ // a copy per key.
32
+ let hasUpper = false;
33
+ for (let i = 0; i < key.length; i++) {
34
+ const code = key.charCodeAt(i);
35
+ if (code > 127)
36
+ return foldUnicode(key);
37
+ if (code >= 65 && code <= 90)
38
+ hasUpper = true;
39
+ }
40
+ return hasUpper ? key.toLowerCase() : key;
41
+ }
42
+ function foldUnicode(key) {
43
+ let out = "";
44
+ for (const ch of key.normalize("NFC")) {
45
+ const upper = ch.toUpperCase();
46
+ out += (upper.length === ch.length ? upper : ch).toLowerCase();
47
+ }
48
+ return out;
49
+ }
50
+ /**
51
+ * @param candidateKeys keys the executors may delete (journal rows, tombstoned keys)
52
+ * @param hasCandidate exact-membership test over the same keys, used for a
53
+ * remote key's folded spelling so all-lower-case
54
+ * candidates need no map entry
55
+ */
56
+ export function createCaseAliasTracker(candidateKeys, hasCandidate) {
57
+ // Only keys whose folded spelling differs from the key get an entry, so a
58
+ // mostly lower-case journal adds few strings. String keys (rather than a
59
+ // numeric hash) let each lookup reuse V8's cached string hash.
60
+ let foldedCandidates = new Map();
61
+ let isCandidate = hasCandidate;
62
+ for (const key of candidateKeys) {
63
+ const folded = foldVaultKey(key);
64
+ if (folded === key)
65
+ continue;
66
+ const existing = foldedCandidates.get(folded);
67
+ if (existing === undefined)
68
+ foldedCandidates.set(folded, key);
69
+ else if (typeof existing === "string")
70
+ foldedCandidates.set(folded, [existing, key]);
71
+ else
72
+ existing.push(key);
73
+ }
74
+ const aliased = new Set();
75
+ return {
76
+ observeRemote(remoteKey) {
77
+ if (foldedCandidates === null || isCandidate === null)
78
+ return;
79
+ const folded = foldVaultKey(remoteKey);
80
+ const hit = foldedCandidates.get(folded);
81
+ if (typeof hit === "string") {
82
+ if (hit !== remoteKey)
83
+ aliased.add(hit);
84
+ }
85
+ else if (hit !== undefined) {
86
+ for (const candidate of hit)
87
+ if (candidate !== remoteKey)
88
+ aliased.add(candidate);
89
+ }
90
+ if (folded !== remoteKey && isCandidate(folded))
91
+ aliased.add(folded);
92
+ },
93
+ finish() {
94
+ foldedCandidates = null;
95
+ isCandidate = null;
96
+ return aliased;
97
+ },
98
+ };
99
+ }
100
+ function swapCase(value) {
101
+ let out = "";
102
+ for (const ch of value) {
103
+ const upper = ch.toUpperCase();
104
+ out += ch === upper ? ch.toLowerCase() : upper;
105
+ }
106
+ return out;
107
+ }
108
+ /**
109
+ * Whether lookups inside `dir` fold case. Takes an existing child whose name
110
+ * has letters and checks that its case-flipped spelling, looked up in the same
111
+ * directory, resolves to the same inode. Probing inside `dir` (not `dir` in
112
+ * its parent) measures the filesystem that stores the synced files even when
113
+ * `dir` is itself a mount point. An empty directory, a directory with no
114
+ * letter-bearing names, or any error reads as "does not fold", which keeps
115
+ * today's delete behaviour; with no children there is nothing to delete.
116
+ */
117
+ export function directoryFoldsCase(dir) {
118
+ let names;
119
+ try {
120
+ names = fs.readdirSync(dir);
121
+ }
122
+ catch {
123
+ return false;
124
+ }
125
+ for (const name of names) {
126
+ const flipped = swapCase(name);
127
+ if (flipped === name)
128
+ continue;
129
+ try {
130
+ const actual = fs.lstatSync(path.join(dir, name));
131
+ const other = fs.lstatSync(path.join(dir, flipped));
132
+ return actual.ino === other.ino && actual.dev === other.dev;
133
+ }
134
+ catch {
135
+ return false;
136
+ }
137
+ }
138
+ return false;
139
+ }
140
+ //# sourceMappingURL=case-alias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-alias.js","sourceRoot":"","sources":["../../src/cli/case-alias.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=case-alias.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-alias.test.d.ts","sourceRoot":"","sources":["../../src/cli/case-alias.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,96 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import * as fs from "fs";
3
+ import * as os from "os";
4
+ import * as path from "path";
5
+ import { createCaseAliasTracker, directoryFoldsCase, foldVaultKey } from "./case-alias.js";
6
+ describe("case alias tracker (feedback_c8ed69d1)", () => {
7
+ it("flags a mixed-case journal key when its lower-case twin is listed", () => {
8
+ const tracker = createCaseAliasTracker(["TikTok-Shop/plan.md", "docs/a.md"], () => false);
9
+ tracker.observeRemote("tiktok-shop/plan.md");
10
+ const aliased = tracker.finish();
11
+ expect(aliased.has("TikTok-Shop/plan.md")).toBe(true);
12
+ expect(aliased.has("docs/a.md")).toBe(false);
13
+ });
14
+ it("flags a lower-case journal key when a mixed-case twin is listed", () => {
15
+ const journal = new Set(["tiktok-shop/plan.md"]);
16
+ const tracker = createCaseAliasTracker(journal, (key) => journal.has(key));
17
+ tracker.observeRemote("TikTok-Shop/plan.md");
18
+ expect(tracker.finish().has("tiktok-shop/plan.md")).toBe(true);
19
+ });
20
+ it("flags keys that differ only in both-sides mixed case", () => {
21
+ const tracker = createCaseAliasTracker(["Readme/X.md"], () => false);
22
+ tracker.observeRemote("README/x.md");
23
+ expect(tracker.finish().has("Readme/X.md")).toBe(true);
24
+ });
25
+ it("never flags a key because the same key is listed", () => {
26
+ const journal = new Set(["TikTok-Shop/plan.md", "docs/a.md"]);
27
+ const tracker = createCaseAliasTracker(journal, (key) => journal.has(key));
28
+ tracker.observeRemote("TikTok-Shop/plan.md");
29
+ tracker.observeRemote("docs/a.md");
30
+ const aliased = tracker.finish();
31
+ expect(aliased.has("TikTok-Shop/plan.md")).toBe(false);
32
+ expect(aliased.has("docs/a.md")).toBe(false);
33
+ });
34
+ it("folds Unicode normalization as well as case", () => {
35
+ const nfd = "Café/menu.md".normalize("NFD");
36
+ const tracker = createCaseAliasTracker([nfd], () => false);
37
+ tracker.observeRemote("café/menu.md".normalize("NFC"));
38
+ expect(tracker.finish().has(nfd)).toBe(true);
39
+ expect(foldVaultKey(nfd)).toBe(foldVaultKey("CAFÉ/MENU.md"));
40
+ });
41
+ it("uses simple case folding, so final sigma matches sigma and capital sigma", () => {
42
+ // `toLowerCase()` leaves `ς` as `ς` but lowers `Σ` to `σ`; case-insensitive
43
+ // APFS and NTFS treat all three as the same name.
44
+ expect(foldVaultKey("ΟΔΟΣ/a.md")).toBe(foldVaultKey("οδος/a.md"));
45
+ expect(foldVaultKey("οδος/a.md")).toBe(foldVaultKey("οδοσ/a.md"));
46
+ const journal = new Set(["οδος/a.md"]);
47
+ const tracker = createCaseAliasTracker(journal, (key) => journal.has(key));
48
+ tracker.observeRemote("ΟΔΟΣ/a.md");
49
+ expect(tracker.finish().has("οδος/a.md")).toBe(true);
50
+ });
51
+ it("does not use full case folding expansions", () => {
52
+ // Filesystems fold simply: `ß` and `ss` are different names.
53
+ expect(foldVaultKey("Straße.md")).not.toBe(foldVaultKey("strasse.md"));
54
+ });
55
+ it("stops observing and releases its candidates once finished", () => {
56
+ const tracker = createCaseAliasTracker(["TikTok-Shop/plan.md"], () => false);
57
+ const aliased = tracker.finish();
58
+ tracker.observeRemote("tiktok-shop/plan.md");
59
+ expect(aliased.size).toBe(0);
60
+ });
61
+ it("flags only the exact folded twin among many capitalised candidates", () => {
62
+ const candidates = Array.from({ length: 50_000 }, (_, i) => `Area/File-${i}.md`);
63
+ const tracker = createCaseAliasTracker(candidates, () => false);
64
+ tracker.observeRemote("area/other.md");
65
+ tracker.observeRemote("area/file-49999.md");
66
+ const aliased = tracker.finish();
67
+ expect([...aliased]).toEqual(["Area/File-49999.md"]);
68
+ });
69
+ });
70
+ describe("directoryFoldsCase", () => {
71
+ it("measures lookups inside the directory against the real filesystem", () => {
72
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), "hq-case-probe-"));
73
+ try {
74
+ fs.writeFileSync(path.join(dir, "Probe.md"), "x");
75
+ // Ground truth from the filesystem itself, not from the platform name.
76
+ const folds = fs.existsSync(path.join(dir, "pROBE.MD"));
77
+ expect(directoryFoldsCase(dir)).toBe(folds);
78
+ }
79
+ finally {
80
+ fs.rmSync(dir, { recursive: true, force: true });
81
+ }
82
+ });
83
+ it("reads as not folding when the directory has nothing to compare", () => {
84
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), "hq-case-probe-"));
85
+ try {
86
+ expect(directoryFoldsCase(dir)).toBe(false);
87
+ fs.writeFileSync(path.join(dir, "123"), "x");
88
+ expect(directoryFoldsCase(dir)).toBe(false);
89
+ expect(directoryFoldsCase(path.join(dir, "missing"))).toBe(false);
90
+ }
91
+ finally {
92
+ fs.rmSync(dir, { recursive: true, force: true });
93
+ }
94
+ });
95
+ });
96
+ //# sourceMappingURL=case-alias.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-alias.test.js","sourceRoot":"","sources":["../../src/cli/case-alias.test.ts"],"names":[],"mappings":"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"}
@@ -669,6 +669,12 @@ export interface SyncOptions {
669
669
  * the correct company or personal scope itself.
670
670
  */
671
671
  fileTombstones?: ReadonlyMap<string, CompanyTombstone>;
672
+ /**
673
+ * Whether the company root's volume folds case. Probed once per pull when
674
+ * absent. Tests on case-sensitive filesystems force `true` to exercise the
675
+ * case-only rename guard (feedback_c8ed69d1).
676
+ */
677
+ caseFoldingVolume?: boolean;
672
678
  /**
673
679
  * Effective sync mode for this leg (US-005 wiring). Defaults to `"all"`
674
680
  * when absent, preserving the legacy full-bucket pull. The runner resolves
@@ -1100,6 +1106,11 @@ interface PullPlan {
1100
1106
  key: string;
1101
1107
  localPath: string;
1102
1108
  localSnapshot: LocalSnapshot;
1109
+ /**
1110
+ * The key's local path belongs to a live key that differs only in case
1111
+ * (feedback_c8ed69d1). Drop the journal row; never touch the disk.
1112
+ */
1113
+ journalOnly?: true;
1103
1114
  }>;
1104
1115
  /**
1105
1116
  * Count of `tombstone-delete` items — remote keys present in the LIST but
@@ -1118,6 +1129,11 @@ interface PullPlan {
1118
1129
  path: string;
1119
1130
  errorCode: string;
1120
1131
  }>;
1132
+ /**
1133
+ * Keys whose local path belongs to a live key that differs only in case;
1134
+ * null on case-sensitive volumes (feedback_c8ed69d1).
1135
+ */
1136
+ caseAliasedKeys?: ReadonlySet<string> | null;
1121
1137
  }
1122
1138
  /**
1123
1139
  * win32 only: true when an existing local symlink's TARGET exists but the
@@ -1128,6 +1144,6 @@ interface PullPlan {
1128
1144
  * false off win32.
1129
1145
  */
1130
1146
  export declare function win32SymlinkFlavorBroken(localPath: string, win32?: boolean): boolean;
1131
- declare function computePullPlan(remoteFiles: RemoteFileSource, journal: SyncJournal, companyRoot: string, shouldSync: (filePath: string, isDir?: boolean) => boolean, personalMode: boolean, teamSyncedSlugs: ReadonlySet<string> | null, prefixSet: readonly ScopePrefixInput[], fileTombstones?: ReadonlyMap<string, CompanyTombstone>, excludePrefixes?: readonly ScopePrefixInput[], propagateDeletePolicy?: "currency-gated" | "owned-only" | "all", onHeartbeat?: () => void, journalRowCount?: number, cooperativeCheckpoint?: () => Promise<void | boolean>, onCooperativeHandoff?: () => void, deleteDenominatorKeys?: ReadonlySet<string>, pullContentHashes?: Readonly<Record<string, string>>, ctx?: EntityContext): Promise<PullPlan>;
1147
+ declare function computePullPlan(remoteFiles: RemoteFileSource, journal: SyncJournal, companyRoot: string, shouldSync: (filePath: string, isDir?: boolean) => boolean, personalMode: boolean, teamSyncedSlugs: ReadonlySet<string> | null, prefixSet: readonly ScopePrefixInput[], fileTombstones?: ReadonlyMap<string, CompanyTombstone>, excludePrefixes?: readonly ScopePrefixInput[], propagateDeletePolicy?: "currency-gated" | "owned-only" | "all", onHeartbeat?: () => void, journalRowCount?: number, cooperativeCheckpoint?: () => Promise<void | boolean>, onCooperativeHandoff?: () => void, deleteDenominatorKeys?: ReadonlySet<string>, pullContentHashes?: Readonly<Record<string, string>>, ctx?: EntityContext, caseFoldingVolume?: boolean): Promise<PullPlan>;
1132
1148
  export {};
1133
1149
  //# sourceMappingURL=sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"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"}
package/dist/cli/sync.js CHANGED
@@ -43,6 +43,7 @@ import { withOperationLock } from "../operation-lock.js";
43
43
  import { fetchFileTombstones, } from "./tombstones.js";
44
44
  import { MutationClient, } from "../sync/mutation-client.js";
45
45
  import { checkpointReconcileApply } from "../sync/reconcile-cursor.js";
46
+ import { createCaseAliasTracker, directoryFoldsCase } from "./case-alias.js";
46
47
  /** The desktop sidecar invokes exactly `hq-cloud sync mutation --stdin-json`. */
47
48
  export const SYNC_MUTATION_STDIN_COMMAND = ["sync", "mutation", "--stdin-json"];
48
49
  /**
@@ -742,7 +743,7 @@ async function listRemoteFilesForScope(ctx, syncMode, listedPrefixSet, isTargete
742
743
  async function planPull(run) {
743
744
  cooperativePhaseForTest = "plan";
744
745
  try {
745
- return await computePullPlan(run.remoteFiles, run.journal, run.companyRoot, run.shouldSync, run.options.personalMode === true, run.options.teamSyncedSlugs ?? null, run.listedPrefixSet, run.fileTombstones, run.currentExcludeSet, run.options.propagateDeletePolicy ?? "owned-only", run.options.onHeartbeat, run.journalRowCount, run.options.cooperativeCheckpoint, () => overlayPullJournalDelta(run), run.deleteDenominatorKeys, run.options.pullContentHashes, run.ctx);
746
+ return await computePullPlan(run.remoteFiles, run.journal, run.companyRoot, run.shouldSync, run.options.personalMode === true, run.options.teamSyncedSlugs ?? null, run.listedPrefixSet, run.fileTombstones, run.currentExcludeSet, run.options.propagateDeletePolicy ?? "owned-only", run.options.onHeartbeat, run.journalRowCount, run.options.cooperativeCheckpoint, () => overlayPullJournalDelta(run), run.deleteDenominatorKeys, run.options.pullContentHashes, run.ctx, run.options.caseFoldingVolume ?? directoryFoldsCase(run.companyRoot));
746
747
  }
747
748
  finally {
748
749
  if (isStreamingRemoteFileSource(run.remoteFiles))
@@ -1010,7 +1011,7 @@ async function executeConflictExecutor(run, plan, scopeRun, counters) {
1010
1011
  continue;
1011
1012
  }
1012
1013
  if (item.action === "tombstone-delete") {
1013
- executeFileTombstoneDelete(run, item, counters);
1014
+ executeFileTombstoneDelete(run, item, counters, plan.caseAliasedKeys ?? null);
1014
1015
  continue;
1015
1016
  }
1016
1017
  if (item.action === "download") {
@@ -1024,9 +1025,13 @@ async function executeConflictExecutor(run, plan, scopeRun, counters) {
1024
1025
  }
1025
1026
  return { downloadItems, abortResult: null };
1026
1027
  }
1027
- function executeFileTombstoneDelete(run, item, counters) {
1028
+ function executeFileTombstoneDelete(run, item, counters, caseAliasedKeys) {
1028
1029
  const tombstoneKey = item.remoteFile.key;
1029
1030
  const tombstonePath = item.localPath;
1031
+ if (caseAliasedKeys?.has(toPosixKey(tombstoneKey))) {
1032
+ retireCaseAliasJournalRow(run, tombstoneKey);
1033
+ return;
1034
+ }
1030
1035
  if (!isDownloadWritePathStillContained(run.companyRoot, tombstoneKey, tombstonePath)) {
1031
1036
  run.emit({
1032
1037
  type: "error",
@@ -2063,9 +2068,28 @@ async function verifyPlannedJournalTombstones(run, plan) {
2063
2068
  }
2064
2069
  plan.tombstones = verified;
2065
2070
  }
2071
+ /**
2072
+ * A deleted key whose local path is the live file of a key that differs only
2073
+ * in case (feedback_c8ed69d1). Unlinking it would delete the live key's only
2074
+ * copy, so only the stale journal row goes. Emitted as a diagnostic, not a
2075
+ * progress event: the runner counts progress events as transfers.
2076
+ */
2077
+ function retireCaseAliasJournalRow(run, key) {
2078
+ removeEntry(run.journal, key);
2079
+ run.emit({
2080
+ type: "error",
2081
+ diagnostic: true,
2082
+ path: key,
2083
+ message: "case-only rename: kept the local file (it belongs to a live key spelled differently); dropped the stale journal row",
2084
+ });
2085
+ }
2066
2086
  function executeJournalTombstoneDeletes(run, plan, counters) {
2067
2087
  for (const tombstone of plan.tombstones) {
2068
2088
  const { key, localPath, localSnapshot } = tombstone;
2089
+ if (tombstone.journalOnly || plan.caseAliasedKeys?.has(toPosixKey(key))) {
2090
+ retireCaseAliasJournalRow(run, key);
2091
+ continue;
2092
+ }
2069
2093
  if (!isDownloadWritePathStillContained(run.companyRoot, key, localPath)) {
2070
2094
  run.emit({
2071
2095
  type: "error",
@@ -2472,7 +2496,7 @@ fileTombstones = new Map(),
2472
2496
  excludePrefixes = [],
2473
2497
  // The runner resolves this once and shares it with the push leg. Direct
2474
2498
  // callers preserve the pre-policy, watcher-intent-only behavior.
2475
- propagateDeletePolicy = "owned-only", onHeartbeat, journalRowCount = journalRows(journal).size, cooperativeCheckpoint, onCooperativeHandoff, deleteDenominatorKeys, pullContentHashes = {}, ctx) {
2499
+ propagateDeletePolicy = "owned-only", onHeartbeat, journalRowCount = journalRows(journal).size, cooperativeCheckpoint, onCooperativeHandoff, deleteDenominatorKeys, pullContentHashes = {}, ctx, caseFoldingVolume = false) {
2476
2500
  const prefixMatcher = compileScopeMatcher(prefixSet);
2477
2501
  const excludeMatcher = compileScopeMatcher(excludePrefixes);
2478
2502
  const items = [];
@@ -2537,6 +2561,19 @@ propagateDeletePolicy = "owned-only", onHeartbeat, journalRowCount = journalRows
2537
2561
  unseenJournalKeys.add(journaledKey);
2538
2562
  }
2539
2563
  }
2564
+ // Case-only rename guard (feedback_c8ed69d1). On a case-folding volume a
2565
+ // journal or tombstoned key can share its local file with a live key that
2566
+ // differs only in case; the executors must not unlink that file.
2567
+ const caseAlias = caseFoldingVolume
2568
+ ? createCaseAliasTracker((function* () {
2569
+ for (const key of unseenJournalKeys)
2570
+ yield toPosixKey(key);
2571
+ for (const key of fileTombstones.keys()) {
2572
+ if (prefixMatcher.coversPath(key))
2573
+ yield key;
2574
+ }
2575
+ })(), (key) => unseenJournalKeys.has(key) || fileTombstones.has(key))
2576
+ : null;
2540
2577
  for (const journaledKey of journalRows(journal).keys()) {
2541
2578
  onHeartbeat?.();
2542
2579
  const posixJournaledKey = toPosixKey(journaledKey);
@@ -2833,6 +2870,12 @@ propagateDeletePolicy = "owned-only", onHeartbeat, journalRowCount = journalRows
2833
2870
  !isRemoteRecreateAfterTombstone(remoteFile, {
2834
2871
  deletedAt: journalEntry.removedAt,
2835
2872
  });
2873
+ // Only a key that passed validation, policy, scope and ignore filtering
2874
+ // and is not itself a deleted object can own a local file, so only such a
2875
+ // key may protect a case-only twin from deletion (feedback_c8ed69d1).
2876
+ if (!tombstoneSuppresses && !localTombstoneSuppresses) {
2877
+ caseAlias?.observeRemote(remoteFile.key);
2878
+ }
2836
2879
  // lstat (not existsSync/statSync) handles three cases the legacy
2837
2880
  // checks got wrong for symlinks:
2838
2881
  // 1. A valid symlink at localPath: existsSync returns true and the
@@ -3343,6 +3386,7 @@ propagateDeletePolicy = "owned-only", onHeartbeat, journalRowCount = journalRows
3343
3386
  // gating the download branch applies. The executor will apply each
3344
3387
  // as a local delete + journal removal. Symmetric to the push side's
3345
3388
  // `propagateDeletes` plan in share.ts.
3389
+ const caseAliasedKeys = caseAlias?.finish() ?? null;
3346
3390
  const tombstones = [];
3347
3391
  for (const key of unseenJournalKeys) {
3348
3392
  // Compare membership in POSIX space. A pre-5.47.2 Windows journal key can
@@ -3388,6 +3432,13 @@ propagateDeletePolicy = "owned-only", onHeartbeat, journalRowCount = journalRows
3388
3432
  const localPath = resolveContainedVaultPath(companyRoot, key);
3389
3433
  if (localPath === null)
3390
3434
  continue;
3435
+ // A live key that differs only in case owns this local file on a
3436
+ // case-folding volume. The dead spelling has no file of its own: retire
3437
+ // its journal row and never touch the disk.
3438
+ if (caseAliasedKeys?.has(posixKey)) {
3439
+ tombstones.push({ key, localPath, localSnapshot: { kind: "absent" }, journalOnly: true });
3440
+ continue;
3441
+ }
3391
3442
  // PersonalMode key gating — mirror the download branch. Local (non-cloud)
3392
3443
  // company keys are tombstone-eligible (a peer's delete should propagate),
3393
3444
  // but team-synced orphans are left alone (the team-bucket pull owns those
@@ -3483,6 +3534,7 @@ propagateDeletePolicy = "owned-only", onHeartbeat, journalRowCount = journalRows
3483
3534
  filesToTombstoneDelete,
3484
3535
  tombstones,
3485
3536
  invalidRemoteKeys,
3537
+ caseAliasedKeys,
3486
3538
  };
3487
3539
  }
3488
3540
  /**