@ttsc/unplugin 0.31.4 → 0.31.6

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.
@@ -120,6 +120,8 @@ const registrations = new Map();
120
120
  const DROPPED = 0x1 | 0x2 | 0x4 | 0x8 | 0x20 | 0x40 | 0x80;
121
121
  const MODIFIED = 0x400 | 0x1000 | 0x2000 | 0x4000 | 0x8000;
122
122
  const RENAMED = 0x100 | 0x200 | 0x800;
123
+ const CREATED = 0x100;
124
+ const MOVED = 0x200 | 0x800;
123
125
  const fsevents = load();
124
126
  let probeSequence = 0;
125
127
 
@@ -204,6 +206,8 @@ function stream(location, deliver, registration) {
204
206
  const root = probe === undefined ? directory : probe.root;
205
207
  const within = (parent, file) => file === parent || file.startsWith(parent.endsWith("/") ? parent : parent + "/");
206
208
  const opened = { close: undefined, location: location.directory, pending: new Map(), probe, proven: probe === undefined };
209
+ // Anything born before this instant was not created in this stream.
210
+ const openedAt = Date.now();
207
211
  const stop = fsevents.watch(root, (file, flags) => {
208
212
  // Loss authority is independent of the path, including our own probe.
209
213
  if ((flags & DROPPED) !== 0) {
@@ -233,6 +237,16 @@ function stream(location, deliver, registration) {
233
237
  }
234
238
  const filename = file.slice(directory.length + 1);
235
239
  if (location.recursive !== true && filename.includes("/")) return;
240
+ // FSEvents keeps ItemCreated on later writes to a path it saw created, so a
241
+ // plain edit of a file older than this stream arrived as a rename, a
242
+ // membership change that replaced generations for an unrelated write. An
243
+ // object born before the stream opened was not created in it; its other
244
+ // flags decide. A removal or a rename keeps the event structural.
245
+ if ((flags & CREATED) !== 0 && (flags & MOVED) === 0 && (flags & MODIFIED) !== 0) {
246
+ try {
247
+ if (fs.lstatSync(file).birthtimeMs < openedAt) flags &= ~CREATED;
248
+ } catch {}
249
+ }
236
250
  deliver((flags & MODIFIED) !== 0 && (flags & RENAMED) === 0 ? "change" : "rename", filename);
237
251
  });
238
252
  opened.close = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"watchBrokerSource.js","sources":["../../../../../src/core/transform/tracker/broker/watchBrokerSource.ts"],"sourcesContent":[null],"names":["WATCH_PROBE_TIMEOUT_MS"],"mappings":";;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkGG;AACG,SAAU,iBAAiB,CAAC,QAAwB,EAAA;IACxD,OAAO,CAAA,qBAAA,EAAwB,QAAQ,KAAK,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAA6BA,6CAAsB,CAAA,GAAA,EAAM,oBAAoB,CAAA,CAAE;AAC/K;AAEA;;;AAGG;AACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoQtC;;;;"}
1
+ {"version":3,"file":"watchBrokerSource.js","sources":["../../../../../src/core/transform/tracker/broker/watchBrokerSource.ts"],"sourcesContent":[null],"names":["WATCH_PROBE_TIMEOUT_MS"],"mappings":";;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkGG;AACG,SAAU,iBAAiB,CAAC,QAAwB,EAAA;IACxD,OAAO,CAAA,qBAAA,EAAwB,QAAQ,KAAK,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAA6BA,6CAAsB,CAAA,GAAA,EAAM,oBAAoB,CAAA,CAAE;AAC/K;AAEA;;;AAGG;AACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkRtC;;;;"}
@@ -118,6 +118,8 @@ const registrations = new Map();
118
118
  const DROPPED = 0x1 | 0x2 | 0x4 | 0x8 | 0x20 | 0x40 | 0x80;
119
119
  const MODIFIED = 0x400 | 0x1000 | 0x2000 | 0x4000 | 0x8000;
120
120
  const RENAMED = 0x100 | 0x200 | 0x800;
121
+ const CREATED = 0x100;
122
+ const MOVED = 0x200 | 0x800;
121
123
  const fsevents = load();
122
124
  let probeSequence = 0;
123
125
 
@@ -202,6 +204,8 @@ function stream(location, deliver, registration) {
202
204
  const root = probe === undefined ? directory : probe.root;
203
205
  const within = (parent, file) => file === parent || file.startsWith(parent.endsWith("/") ? parent : parent + "/");
204
206
  const opened = { close: undefined, location: location.directory, pending: new Map(), probe, proven: probe === undefined };
207
+ // Anything born before this instant was not created in this stream.
208
+ const openedAt = Date.now();
205
209
  const stop = fsevents.watch(root, (file, flags) => {
206
210
  // Loss authority is independent of the path, including our own probe.
207
211
  if ((flags & DROPPED) !== 0) {
@@ -231,6 +235,16 @@ function stream(location, deliver, registration) {
231
235
  }
232
236
  const filename = file.slice(directory.length + 1);
233
237
  if (location.recursive !== true && filename.includes("/")) return;
238
+ // FSEvents keeps ItemCreated on later writes to a path it saw created, so a
239
+ // plain edit of a file older than this stream arrived as a rename, a
240
+ // membership change that replaced generations for an unrelated write. An
241
+ // object born before the stream opened was not created in it; its other
242
+ // flags decide. A removal or a rename keeps the event structural.
243
+ if ((flags & CREATED) !== 0 && (flags & MOVED) === 0 && (flags & MODIFIED) !== 0) {
244
+ try {
245
+ if (fs.lstatSync(file).birthtimeMs < openedAt) flags &= ~CREATED;
246
+ } catch {}
247
+ }
234
248
  deliver((flags & MODIFIED) !== 0 && (flags & RENAMED) === 0 ? "change" : "rename", filename);
235
249
  });
236
250
  opened.close = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"watchBrokerSource.mjs","sources":["../../../../../src/core/transform/tracker/broker/watchBrokerSource.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkGG;AACG,SAAU,iBAAiB,CAAC,QAAwB,EAAA;IACxD,OAAO,CAAA,qBAAA,EAAwB,QAAQ,KAAK,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAA6B,sBAAsB,CAAA,GAAA,EAAM,oBAAoB,CAAA,CAAE;AAC/K;AAEA;;;AAGG;AACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoQtC;;;;"}
1
+ {"version":3,"file":"watchBrokerSource.mjs","sources":["../../../../../src/core/transform/tracker/broker/watchBrokerSource.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkGG;AACG,SAAU,iBAAiB,CAAC,QAAwB,EAAA;IACxD,OAAO,CAAA,qBAAA,EAAwB,QAAQ,KAAK,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAA6B,sBAAsB,CAAA,GAAA,EAAM,oBAAoB,CAAA,CAAE;AAC/K;AAEA;;;AAGG;AACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkRtC;;;;"}
@@ -342,6 +342,18 @@ scopes) {
342
342
  * an event the backend could not attribute to a name may concern any input
343
343
  * below the watched directory, so it always counts.
344
344
  */
345
+ // Whether a path names an existing object that no other name can reach:
346
+ // not a link, and not a file with a second hard link, whose writes could
347
+ // land on a tracked input without an event on its name.
348
+ const distinctExistingObject = (location) => {
349
+ try {
350
+ const stats = filesystem.lstat(location);
351
+ return !stats.isSymbolicLink() && !(stats.isFile() && stats.nlink > 1n);
352
+ }
353
+ catch {
354
+ return false;
355
+ }
356
+ };
345
357
  const classify = (directory, filename, eventType) => {
346
358
  // An event the backend could not attribute to a name is its notice that
347
359
  // events may have been lost below the directory, as a Windows buffer
@@ -402,6 +414,14 @@ scopes) {
402
414
  return "mutation";
403
415
  }
404
416
  }
417
+ // An object that exists now resolves to its own identity under every alias,
418
+ // so one that is neither a link nor a second name of a file, and resolves
419
+ // to nothing tracked above, is a different object. A recursive backend
420
+ // (macOS, Windows) hears every write below the project root, and
421
+ // withdrawing authority for each sent every later delivery past its
422
+ // notifications.
423
+ if (distinctExistingObject(changed))
424
+ return undefined;
405
425
  // A missing native alias cannot be recovered by current realpath. Neither
406
426
  // ASCII spelling nor OS name proves this event unrelated to a tracked path.
407
427
  // Keep exact metadata validation without inventing a membership mutation.
@@ -1 +1 @@
1
- {"version":3,"file":"createHostInputMutationTracker.js","sources":["../../../../src/core/transform/tracker/createHostInputMutationTracker.ts"],"sourcesContent":[null],"names":["createHostPathIdentityContext","relativeToProject","missingPathProbe","pathTraversesSymbolicLink","hostInputRealpath","pathIdentityKey","normalizeHostInputName","trackedInputScope","watchLocationIdentity","pluginSourceCovers","usesWatchBroker","registerBrokeredMutationTracker","closeDirectoryWatches","openDirectoryWatch","recordProjectMutation","recordProjectChange","settleOpenedDirectoryWatches"],"mappings":"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"}
1
+ {"version":3,"file":"createHostInputMutationTracker.js","sources":["../../../../src/core/transform/tracker/createHostInputMutationTracker.ts"],"sourcesContent":[null],"names":["createHostPathIdentityContext","relativeToProject","missingPathProbe","pathTraversesSymbolicLink","hostInputRealpath","pathIdentityKey","normalizeHostInputName","trackedInputScope","watchLocationIdentity","pluginSourceCovers","usesWatchBroker","registerBrokeredMutationTracker","closeDirectoryWatches","openDirectoryWatch","recordProjectMutation","recordProjectChange","settleOpenedDirectoryWatches"],"mappings":"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"}
@@ -340,6 +340,18 @@ scopes) {
340
340
  * an event the backend could not attribute to a name may concern any input
341
341
  * below the watched directory, so it always counts.
342
342
  */
343
+ // Whether a path names an existing object that no other name can reach:
344
+ // not a link, and not a file with a second hard link, whose writes could
345
+ // land on a tracked input without an event on its name.
346
+ const distinctExistingObject = (location) => {
347
+ try {
348
+ const stats = filesystem.lstat(location);
349
+ return !stats.isSymbolicLink() && !(stats.isFile() && stats.nlink > 1n);
350
+ }
351
+ catch {
352
+ return false;
353
+ }
354
+ };
343
355
  const classify = (directory, filename, eventType) => {
344
356
  // An event the backend could not attribute to a name is its notice that
345
357
  // events may have been lost below the directory, as a Windows buffer
@@ -400,6 +412,14 @@ scopes) {
400
412
  return "mutation";
401
413
  }
402
414
  }
415
+ // An object that exists now resolves to its own identity under every alias,
416
+ // so one that is neither a link nor a second name of a file, and resolves
417
+ // to nothing tracked above, is a different object. A recursive backend
418
+ // (macOS, Windows) hears every write below the project root, and
419
+ // withdrawing authority for each sent every later delivery past its
420
+ // notifications.
421
+ if (distinctExistingObject(changed))
422
+ return undefined;
403
423
  // A missing native alias cannot be recovered by current realpath. Neither
404
424
  // ASCII spelling nor OS name proves this event unrelated to a tracked path.
405
425
  // Keep exact metadata validation without inventing a membership mutation.
@@ -1 +1 @@
1
- {"version":3,"file":"createHostInputMutationTracker.mjs","sources":["../../../../src/core/transform/tracker/createHostInputMutationTracker.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createHostInputMutationTracker.mjs","sources":["../../../../src/core/transform/tracker/createHostInputMutationTracker.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -17,11 +17,14 @@ import type { TtscProjectMutationTracker } from "./TtscProjectMutationTracker.cj
17
17
  * recorded-state validation supplies the actual verdict. Content witnesses
18
18
  * preserve captured native input aliases, then reject only an observed normal
19
19
  * directory excluded in both lexical and native spellings. Unknown, missing and
20
- * linked ancestry remains conservative. Membership rejection still withdraws
21
- * notification authority even when content is outside the walk. Named events
22
- * also compare current native identity and case policy with the retained
23
- * identity transaction. Retargeting withdraws notification authority without
24
- * changing the meaning of earlier recorded event spellings.
20
+ * linked ancestry remains conservative. Membership rejection withdraws
21
+ * notification authority except below such a proven excluded directory, so a
22
+ * recursive backend's writes to a cache or output tree cost no proof, nor does
23
+ * an edit to an existing unlinked file whose every name the program cannot
24
+ * admit (samchon/ttsc#1737). Named events also compare current native identity
25
+ * and case policy with the retained identity transaction. Retargeting withdraws
26
+ * notification authority without changing the meaning of earlier recorded event
27
+ * spellings.
25
28
  *
26
29
  * @evidence contracts/common.md#principled-implementation
27
30
  * The project walk and membership policy own structural relevance; content
@@ -29,8 +32,8 @@ import type { TtscProjectMutationTracker } from "./TtscProjectMutationTracker.cj
29
32
  * A lexical nonmatch is uncertainty rather than native alias exclusion.
30
33
  * Changed native identity premises also withdraw notification proof while
31
34
  * membership and content witnesses keep their independent classifications.
32
- * Content exclusion requires normal directory identity and both policy
33
- * spellings; captured native input aliases remain content witnesses.
35
+ * Content and membership exclusion require normal directory identity and both
36
+ * policy spellings; captured native input aliases remain content witnesses.
34
37
  * @evidence contracts/common.md#clear-and-simple-design
35
38
  * One root, directory index and filter set define the tracker; broker and local
36
39
  * paths share those decisions rather than duplicating backend-specific policies.
@@ -17,11 +17,14 @@ import type { TtscProjectMutationTracker } from "./TtscProjectMutationTracker.mj
17
17
  * recorded-state validation supplies the actual verdict. Content witnesses
18
18
  * preserve captured native input aliases, then reject only an observed normal
19
19
  * directory excluded in both lexical and native spellings. Unknown, missing and
20
- * linked ancestry remains conservative. Membership rejection still withdraws
21
- * notification authority even when content is outside the walk. Named events
22
- * also compare current native identity and case policy with the retained
23
- * identity transaction. Retargeting withdraws notification authority without
24
- * changing the meaning of earlier recorded event spellings.
20
+ * linked ancestry remains conservative. Membership rejection withdraws
21
+ * notification authority except below such a proven excluded directory, so a
22
+ * recursive backend's writes to a cache or output tree cost no proof, nor does
23
+ * an edit to an existing unlinked file whose every name the program cannot
24
+ * admit (samchon/ttsc#1737). Named events also compare current native identity
25
+ * and case policy with the retained identity transaction. Retargeting withdraws
26
+ * notification authority without changing the meaning of earlier recorded event
27
+ * spellings.
25
28
  *
26
29
  * @evidence contracts/common.md#principled-implementation
27
30
  * The project walk and membership policy own structural relevance; content
@@ -29,8 +32,8 @@ import type { TtscProjectMutationTracker } from "./TtscProjectMutationTracker.mj
29
32
  * A lexical nonmatch is uncertainty rather than native alias exclusion.
30
33
  * Changed native identity premises also withdraw notification proof while
31
34
  * membership and content witnesses keep their independent classifications.
32
- * Content exclusion requires normal directory identity and both policy
33
- * spellings; captured native input aliases remain content witnesses.
35
+ * Content and membership exclusion require normal directory identity and both
36
+ * policy spellings; captured native input aliases remain content witnesses.
34
37
  * @evidence contracts/common.md#clear-and-simple-design
35
38
  * One root, directory index and filter set define the tracker; broker and local
36
39
  * paths share those decisions rather than duplicating backend-specific policies.
@@ -17,11 +17,14 @@ import type { TtscProjectMutationTracker } from "./TtscProjectMutationTracker";
17
17
  * recorded-state validation supplies the actual verdict. Content witnesses
18
18
  * preserve captured native input aliases, then reject only an observed normal
19
19
  * directory excluded in both lexical and native spellings. Unknown, missing and
20
- * linked ancestry remains conservative. Membership rejection still withdraws
21
- * notification authority even when content is outside the walk. Named events
22
- * also compare current native identity and case policy with the retained
23
- * identity transaction. Retargeting withdraws notification authority without
24
- * changing the meaning of earlier recorded event spellings.
20
+ * linked ancestry remains conservative. Membership rejection withdraws
21
+ * notification authority except below such a proven excluded directory, so a
22
+ * recursive backend's writes to a cache or output tree cost no proof, nor does
23
+ * an edit to an existing unlinked file whose every name the program cannot
24
+ * admit (samchon/ttsc#1737). Named events also compare current native identity
25
+ * and case policy with the retained identity transaction. Retargeting withdraws
26
+ * notification authority without changing the meaning of earlier recorded event
27
+ * spellings.
25
28
  *
26
29
  * @evidence contracts/common.md#principled-implementation
27
30
  * The project walk and membership policy own structural relevance; content
@@ -29,8 +32,8 @@ import type { TtscProjectMutationTracker } from "./TtscProjectMutationTracker";
29
32
  * A lexical nonmatch is uncertainty rather than native alias exclusion.
30
33
  * Changed native identity premises also withdraw notification proof while
31
34
  * membership and content witnesses keep their independent classifications.
32
- * Content exclusion requires normal directory identity and both policy
33
- * spellings; captured native input aliases remain content witnesses.
35
+ * Content and membership exclusion require normal directory identity and both
36
+ * policy spellings; captured native input aliases remain content witnesses.
34
37
  * @evidence contracts/common.md#clear-and-simple-design
35
38
  * One root, directory index and filter set define the tracker; broker and local
36
39
  * paths share those decisions rather than duplicating backend-specific policies.
@@ -33,11 +33,14 @@ var watchLocationIdentity = require('./watchLocationIdentity.js');
33
33
  * recorded-state validation supplies the actual verdict. Content witnesses
34
34
  * preserve captured native input aliases, then reject only an observed normal
35
35
  * directory excluded in both lexical and native spellings. Unknown, missing and
36
- * linked ancestry remains conservative. Membership rejection still withdraws
37
- * notification authority even when content is outside the walk. Named events
38
- * also compare current native identity and case policy with the retained
39
- * identity transaction. Retargeting withdraws notification authority without
40
- * changing the meaning of earlier recorded event spellings.
36
+ * linked ancestry remains conservative. Membership rejection withdraws
37
+ * notification authority except below such a proven excluded directory, so a
38
+ * recursive backend's writes to a cache or output tree cost no proof, nor does
39
+ * an edit to an existing unlinked file whose every name the program cannot
40
+ * admit (samchon/ttsc#1737). Named events also compare current native identity
41
+ * and case policy with the retained identity transaction. Retargeting withdraws
42
+ * notification authority without changing the meaning of earlier recorded event
43
+ * spellings.
41
44
  *
42
45
  * @evidence contracts/common.md#principled-implementation
43
46
  * The project walk and membership policy own structural relevance; content
@@ -45,8 +48,8 @@ var watchLocationIdentity = require('./watchLocationIdentity.js');
45
48
  * A lexical nonmatch is uncertainty rather than native alias exclusion.
46
49
  * Changed native identity premises also withdraw notification proof while
47
50
  * membership and content witnesses keep their independent classifications.
48
- * Content exclusion requires normal directory identity and both policy
49
- * spellings; captured native input aliases remain content witnesses.
51
+ * Content and membership exclusion require normal directory identity and both
52
+ * policy spellings; captured native input aliases remain content witnesses.
50
53
  * @evidence contracts/common.md#clear-and-simple-design
51
54
  * One root, directory index and filter set define the tracker; broker and local
52
55
  * paths share those decisions rather than duplicating backend-specific policies.
@@ -128,6 +131,67 @@ async function createProjectMutationTracker(directories, covered, filesystem = D
128
131
  const knownDirectories = new Set(directories
129
132
  .filter((directory) => directory.relevant)
130
133
  .map((directory) => paths.resolve(directory.path)));
134
+ // Whether an event path lies below a directory the walk excludes, proven by
135
+ // an observed normal directory excluded in both its lexical and its native
136
+ // spelling. A missing ancestor, one outside the root, or a link before that
137
+ // directory proves nothing. Content stops at the excluded directory, since a
138
+ // captured input reached through a deeper link is already caught by its
139
+ // identity above. Membership has no identity to catch a new file created
140
+ // through such a link (`node_modules/linked -> src`), so for it the whole
141
+ // path must be links-free.
142
+ const excludedFromWalk = (changed, wholePath) => {
143
+ const relative = paths.relative(root, paths.dirname(changed));
144
+ if (relative === ".." ||
145
+ relative.startsWith(".." + paths.sep) ||
146
+ paths.isAbsolute(relative))
147
+ return false;
148
+ let directory = root;
149
+ let excluded = false;
150
+ for (const component of relative.split(paths.sep).filter(Boolean)) {
151
+ directory = paths.join(directory, component);
152
+ try {
153
+ const before = filesystem.lstat(directory);
154
+ if (!before.isDirectory() || before.isSymbolicLink())
155
+ return false;
156
+ const physical = filesystem.realpath(directory);
157
+ const after = filesystem.lstat(directory);
158
+ if (!after.isDirectory() ||
159
+ after.isSymbolicLink() ||
160
+ before.dev !== after.dev ||
161
+ before.ino !== after.ino)
162
+ return false;
163
+ if (!excluded &&
164
+ !isProjectWalkDirectory.isProjectWalkDirectory(directory, policy, filesystem.platform) &&
165
+ !isProjectWalkDirectory.isProjectWalkDirectory(physical, policy, filesystem.platform)) {
166
+ if (!wholePath)
167
+ return true;
168
+ excluded = true;
169
+ }
170
+ }
171
+ catch {
172
+ // Missing/deleted ancestors and unknown native spellings remain events.
173
+ return false;
174
+ }
175
+ }
176
+ return excluded;
177
+ };
178
+ // Whether an event names an existing file no spelling can make a program
179
+ // member: a regular file with no second hard link, whose own and physical
180
+ // names are both names the program cannot admit. A directory alias can move
181
+ // a file into the program but cannot rename it, and a removed name, a link
182
+ // or a directory stays conservative.
183
+ const existingNonProgramFile = (changed) => {
184
+ try {
185
+ const stats = filesystem.lstat(changed);
186
+ if (!stats.isFile() || stats.nlink > 1n)
187
+ return false;
188
+ return (!isPossibleProgramFileName.isPossibleProgramFileName(paths.basename(changed), policy) &&
189
+ !isPossibleProgramFileName.isPossibleProgramFileName(paths.basename(filesystem.realpath(changed)), policy));
190
+ }
191
+ catch {
192
+ return false;
193
+ }
194
+ };
131
195
  const reportsMembership = (location, filename) => {
132
196
  const changed = paths.join(location, filename);
133
197
  const current = createHostPathIdentityContext.createHostPathIdentityContext(filesystem);
@@ -143,8 +207,16 @@ async function createProjectMutationTracker(directories, covered, filesystem = D
143
207
  const membership = knownDirectories.has(paths.resolve(changed)) ||
144
208
  reportsProgramMembership.reportsProgramMembership(root, changed, paths.basename(filename), policy, filesystem);
145
209
  // Current realpath cannot identify a deleted alias. Policy checks only
146
- // lexical spellings, so rejection cannot establish unchanged program state.
147
- if (!membership)
210
+ // lexical spellings, so rejection cannot establish unchanged program state,
211
+ // except below a directory the walk provably excludes. A recursive backend
212
+ // (macOS, Windows) hears every write under the root, a cache or an output
213
+ // directory among them, and withdrawing authority for each sent every later
214
+ // delivery to the whole-snapshot proof. An existing file whose every name
215
+ // the program cannot admit is no member either, a stylesheet or an asset
216
+ // edited in a source directory among them, on every backend.
217
+ if (!membership &&
218
+ !excludedFromWalk(changed, true) &&
219
+ !existingNonProgramFile(changed))
148
220
  tracker.unverified = true;
149
221
  return membership;
150
222
  };
@@ -176,35 +248,7 @@ async function createProjectMutationTracker(directories, covered, filesystem = D
176
248
  tracker.unverified = true;
177
249
  return true;
178
250
  }
179
- const relative = paths.relative(root, paths.dirname(changed));
180
- if (relative === ".." ||
181
- relative.startsWith(".." + paths.sep) ||
182
- paths.isAbsolute(relative))
183
- return true;
184
- let directory = root;
185
- for (const component of relative.split(paths.sep).filter(Boolean)) {
186
- directory = paths.join(directory, component);
187
- try {
188
- const before = filesystem.lstat(directory);
189
- if (!before.isDirectory() || before.isSymbolicLink())
190
- return true;
191
- const physical = filesystem.realpath(directory);
192
- const after = filesystem.lstat(directory);
193
- if (!after.isDirectory() ||
194
- after.isSymbolicLink() ||
195
- before.dev !== after.dev ||
196
- before.ino !== after.ino)
197
- return true;
198
- if (!isProjectWalkDirectory.isProjectWalkDirectory(directory, policy, filesystem.platform) &&
199
- !isProjectWalkDirectory.isProjectWalkDirectory(physical, policy, filesystem.platform))
200
- return false;
201
- }
202
- catch {
203
- // Missing/deleted ancestors and unknown native spellings remain events.
204
- return true;
205
- }
206
- }
207
- return true;
251
+ return !excludedFromWalk(changed, false);
208
252
  };
209
253
  const reportsNewMembership = (location, filename) => {
210
254
  const changed = paths.resolve(location, filename);
@@ -1 +1 @@
1
- {"version":3,"file":"createProjectMutationTracker.js","sources":["../../../../src/core/transform/tracker/createProjectMutationTracker.ts"],"sourcesContent":[null],"names":["DEFAULT_FILESYSTEM_OPERATIONS","PERMISSIVE_PROJECT_MEMBERSHIP_POLICY","createHostPathIdentityContext","watchLocationIdentity","pathIdentityKey","reportsProgramMembership","isPossibleProgramFileName","isProjectWalkDirectory","usesWatchBroker","registerBrokeredMutationTracker","closeDirectoryWatches","openDirectoryWatch","recordProjectMutation","recordProjectChange","settleOpenedDirectoryWatches","pathIsWithin"],"mappings":"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"}
1
+ {"version":3,"file":"createProjectMutationTracker.js","sources":["../../../../src/core/transform/tracker/createProjectMutationTracker.ts"],"sourcesContent":[null],"names":["DEFAULT_FILESYSTEM_OPERATIONS","PERMISSIVE_PROJECT_MEMBERSHIP_POLICY","createHostPathIdentityContext","watchLocationIdentity","isProjectWalkDirectory","isPossibleProgramFileName","pathIdentityKey","reportsProgramMembership","usesWatchBroker","registerBrokeredMutationTracker","closeDirectoryWatches","openDirectoryWatch","recordProjectMutation","recordProjectChange","settleOpenedDirectoryWatches","pathIsWithin"],"mappings":"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"}
@@ -31,11 +31,14 @@ import { watchLocationIdentity } from './watchLocationIdentity.mjs';
31
31
  * recorded-state validation supplies the actual verdict. Content witnesses
32
32
  * preserve captured native input aliases, then reject only an observed normal
33
33
  * directory excluded in both lexical and native spellings. Unknown, missing and
34
- * linked ancestry remains conservative. Membership rejection still withdraws
35
- * notification authority even when content is outside the walk. Named events
36
- * also compare current native identity and case policy with the retained
37
- * identity transaction. Retargeting withdraws notification authority without
38
- * changing the meaning of earlier recorded event spellings.
34
+ * linked ancestry remains conservative. Membership rejection withdraws
35
+ * notification authority except below such a proven excluded directory, so a
36
+ * recursive backend's writes to a cache or output tree cost no proof, nor does
37
+ * an edit to an existing unlinked file whose every name the program cannot
38
+ * admit (samchon/ttsc#1737). Named events also compare current native identity
39
+ * and case policy with the retained identity transaction. Retargeting withdraws
40
+ * notification authority without changing the meaning of earlier recorded event
41
+ * spellings.
39
42
  *
40
43
  * @evidence contracts/common.md#principled-implementation
41
44
  * The project walk and membership policy own structural relevance; content
@@ -43,8 +46,8 @@ import { watchLocationIdentity } from './watchLocationIdentity.mjs';
43
46
  * A lexical nonmatch is uncertainty rather than native alias exclusion.
44
47
  * Changed native identity premises also withdraw notification proof while
45
48
  * membership and content witnesses keep their independent classifications.
46
- * Content exclusion requires normal directory identity and both policy
47
- * spellings; captured native input aliases remain content witnesses.
49
+ * Content and membership exclusion require normal directory identity and both
50
+ * policy spellings; captured native input aliases remain content witnesses.
48
51
  * @evidence contracts/common.md#clear-and-simple-design
49
52
  * One root, directory index and filter set define the tracker; broker and local
50
53
  * paths share those decisions rather than duplicating backend-specific policies.
@@ -126,6 +129,67 @@ async function createProjectMutationTracker(directories, covered, filesystem = D
126
129
  const knownDirectories = new Set(directories
127
130
  .filter((directory) => directory.relevant)
128
131
  .map((directory) => paths.resolve(directory.path)));
132
+ // Whether an event path lies below a directory the walk excludes, proven by
133
+ // an observed normal directory excluded in both its lexical and its native
134
+ // spelling. A missing ancestor, one outside the root, or a link before that
135
+ // directory proves nothing. Content stops at the excluded directory, since a
136
+ // captured input reached through a deeper link is already caught by its
137
+ // identity above. Membership has no identity to catch a new file created
138
+ // through such a link (`node_modules/linked -> src`), so for it the whole
139
+ // path must be links-free.
140
+ const excludedFromWalk = (changed, wholePath) => {
141
+ const relative = paths.relative(root, paths.dirname(changed));
142
+ if (relative === ".." ||
143
+ relative.startsWith(".." + paths.sep) ||
144
+ paths.isAbsolute(relative))
145
+ return false;
146
+ let directory = root;
147
+ let excluded = false;
148
+ for (const component of relative.split(paths.sep).filter(Boolean)) {
149
+ directory = paths.join(directory, component);
150
+ try {
151
+ const before = filesystem.lstat(directory);
152
+ if (!before.isDirectory() || before.isSymbolicLink())
153
+ return false;
154
+ const physical = filesystem.realpath(directory);
155
+ const after = filesystem.lstat(directory);
156
+ if (!after.isDirectory() ||
157
+ after.isSymbolicLink() ||
158
+ before.dev !== after.dev ||
159
+ before.ino !== after.ino)
160
+ return false;
161
+ if (!excluded &&
162
+ !isProjectWalkDirectory(directory, policy, filesystem.platform) &&
163
+ !isProjectWalkDirectory(physical, policy, filesystem.platform)) {
164
+ if (!wholePath)
165
+ return true;
166
+ excluded = true;
167
+ }
168
+ }
169
+ catch {
170
+ // Missing/deleted ancestors and unknown native spellings remain events.
171
+ return false;
172
+ }
173
+ }
174
+ return excluded;
175
+ };
176
+ // Whether an event names an existing file no spelling can make a program
177
+ // member: a regular file with no second hard link, whose own and physical
178
+ // names are both names the program cannot admit. A directory alias can move
179
+ // a file into the program but cannot rename it, and a removed name, a link
180
+ // or a directory stays conservative.
181
+ const existingNonProgramFile = (changed) => {
182
+ try {
183
+ const stats = filesystem.lstat(changed);
184
+ if (!stats.isFile() || stats.nlink > 1n)
185
+ return false;
186
+ return (!isPossibleProgramFileName(paths.basename(changed), policy) &&
187
+ !isPossibleProgramFileName(paths.basename(filesystem.realpath(changed)), policy));
188
+ }
189
+ catch {
190
+ return false;
191
+ }
192
+ };
129
193
  const reportsMembership = (location, filename) => {
130
194
  const changed = paths.join(location, filename);
131
195
  const current = createHostPathIdentityContext(filesystem);
@@ -141,8 +205,16 @@ async function createProjectMutationTracker(directories, covered, filesystem = D
141
205
  const membership = knownDirectories.has(paths.resolve(changed)) ||
142
206
  reportsProgramMembership(root, changed, paths.basename(filename), policy, filesystem);
143
207
  // Current realpath cannot identify a deleted alias. Policy checks only
144
- // lexical spellings, so rejection cannot establish unchanged program state.
145
- if (!membership)
208
+ // lexical spellings, so rejection cannot establish unchanged program state,
209
+ // except below a directory the walk provably excludes. A recursive backend
210
+ // (macOS, Windows) hears every write under the root, a cache or an output
211
+ // directory among them, and withdrawing authority for each sent every later
212
+ // delivery to the whole-snapshot proof. An existing file whose every name
213
+ // the program cannot admit is no member either, a stylesheet or an asset
214
+ // edited in a source directory among them, on every backend.
215
+ if (!membership &&
216
+ !excludedFromWalk(changed, true) &&
217
+ !existingNonProgramFile(changed))
146
218
  tracker.unverified = true;
147
219
  return membership;
148
220
  };
@@ -174,35 +246,7 @@ async function createProjectMutationTracker(directories, covered, filesystem = D
174
246
  tracker.unverified = true;
175
247
  return true;
176
248
  }
177
- const relative = paths.relative(root, paths.dirname(changed));
178
- if (relative === ".." ||
179
- relative.startsWith(".." + paths.sep) ||
180
- paths.isAbsolute(relative))
181
- return true;
182
- let directory = root;
183
- for (const component of relative.split(paths.sep).filter(Boolean)) {
184
- directory = paths.join(directory, component);
185
- try {
186
- const before = filesystem.lstat(directory);
187
- if (!before.isDirectory() || before.isSymbolicLink())
188
- return true;
189
- const physical = filesystem.realpath(directory);
190
- const after = filesystem.lstat(directory);
191
- if (!after.isDirectory() ||
192
- after.isSymbolicLink() ||
193
- before.dev !== after.dev ||
194
- before.ino !== after.ino)
195
- return true;
196
- if (!isProjectWalkDirectory(directory, policy, filesystem.platform) &&
197
- !isProjectWalkDirectory(physical, policy, filesystem.platform))
198
- return false;
199
- }
200
- catch {
201
- // Missing/deleted ancestors and unknown native spellings remain events.
202
- return true;
203
- }
204
- }
205
- return true;
249
+ return !excludedFromWalk(changed, false);
206
250
  };
207
251
  const reportsNewMembership = (location, filename) => {
208
252
  const changed = paths.resolve(location, filename);
@@ -1 +1 @@
1
- {"version":3,"file":"createProjectMutationTracker.mjs","sources":["../../../../src/core/transform/tracker/createProjectMutationTracker.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createProjectMutationTracker.mjs","sources":["../../../../src/core/transform/tracker/createProjectMutationTracker.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttsc/unplugin",
3
- "version": "0.31.4",
3
+ "version": "0.31.6",
4
4
  "description": "Bundler adapters for ttsc plugins.",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.mjs",
@@ -202,7 +202,7 @@
202
202
  "fsevents": "^2.3.3"
203
203
  },
204
204
  "peerDependencies": {
205
- "ttsc": "^0.31.4"
205
+ "ttsc": "^0.31.6"
206
206
  },
207
207
  "devDependencies": {
208
208
  "@wrtnlabs/evidence": "^0.3.1",
@@ -217,7 +217,7 @@
217
217
  "tslib": "^2.8.1",
218
218
  "typescript": "^7.0.2",
219
219
  "vite": "^7.3.5",
220
- "ttsc": "0.31.4"
220
+ "ttsc": "0.31.6"
221
221
  },
222
222
  "repository": {
223
223
  "type": "git",
@@ -119,6 +119,8 @@ const registrations = new Map();
119
119
  const DROPPED = 0x1 | 0x2 | 0x4 | 0x8 | 0x20 | 0x40 | 0x80;
120
120
  const MODIFIED = 0x400 | 0x1000 | 0x2000 | 0x4000 | 0x8000;
121
121
  const RENAMED = 0x100 | 0x200 | 0x800;
122
+ const CREATED = 0x100;
123
+ const MOVED = 0x200 | 0x800;
122
124
  const fsevents = load();
123
125
  let probeSequence = 0;
124
126
 
@@ -203,6 +205,8 @@ function stream(location, deliver, registration) {
203
205
  const root = probe === undefined ? directory : probe.root;
204
206
  const within = (parent, file) => file === parent || file.startsWith(parent.endsWith("/") ? parent : parent + "/");
205
207
  const opened = { close: undefined, location: location.directory, pending: new Map(), probe, proven: probe === undefined };
208
+ // Anything born before this instant was not created in this stream.
209
+ const openedAt = Date.now();
206
210
  const stop = fsevents.watch(root, (file, flags) => {
207
211
  // Loss authority is independent of the path, including our own probe.
208
212
  if ((flags & DROPPED) !== 0) {
@@ -232,6 +236,16 @@ function stream(location, deliver, registration) {
232
236
  }
233
237
  const filename = file.slice(directory.length + 1);
234
238
  if (location.recursive !== true && filename.includes("/")) return;
239
+ // FSEvents keeps ItemCreated on later writes to a path it saw created, so a
240
+ // plain edit of a file older than this stream arrived as a rename, a
241
+ // membership change that replaced generations for an unrelated write. An
242
+ // object born before the stream opened was not created in it; its other
243
+ // flags decide. A removal or a rename keeps the event structural.
244
+ if ((flags & CREATED) !== 0 && (flags & MOVED) === 0 && (flags & MODIFIED) !== 0) {
245
+ try {
246
+ if (fs.lstatSync(file).birthtimeMs < openedAt) flags &= ~CREATED;
247
+ } catch {}
248
+ }
235
249
  deliver((flags & MODIFIED) !== 0 && (flags & RENAMED) === 0 ? "change" : "rename", filename);
236
250
  });
237
251
  opened.close = () => {
@@ -399,6 +399,17 @@ export async function createHostInputMutationTracker(
399
399
  * an event the backend could not attribute to a name may concern any input
400
400
  * below the watched directory, so it always counts.
401
401
  */
402
+ // Whether a path names an existing object that no other name can reach:
403
+ // not a link, and not a file with a second hard link, whose writes could
404
+ // land on a tracked input without an event on its name.
405
+ const distinctExistingObject = (location: string): boolean => {
406
+ try {
407
+ const stats = filesystem.lstat(location);
408
+ return !stats.isSymbolicLink() && !(stats.isFile() && stats.nlink > 1n);
409
+ } catch {
410
+ return false;
411
+ }
412
+ };
402
413
  const classify = (
403
414
  directory: string,
404
415
  filename: string | null,
@@ -477,6 +488,13 @@ export async function createHostInputMutationTracker(
477
488
  return "mutation";
478
489
  }
479
490
  }
491
+ // An object that exists now resolves to its own identity under every alias,
492
+ // so one that is neither a link nor a second name of a file, and resolves
493
+ // to nothing tracked above, is a different object. A recursive backend
494
+ // (macOS, Windows) hears every write below the project root, and
495
+ // withdrawing authority for each sent every later delivery past its
496
+ // notifications.
497
+ if (distinctExistingObject(changed)) return undefined;
480
498
  // A missing native alias cannot be recovered by current realpath. Neither
481
499
  // ASCII spelling nor OS name proves this event unrelated to a tracked path.
482
500
  // Keep exact metadata validation without inventing a membership mutation.
@@ -36,11 +36,14 @@ import { watchLocationIdentity } from "./watchLocationIdentity";
36
36
  * recorded-state validation supplies the actual verdict. Content witnesses
37
37
  * preserve captured native input aliases, then reject only an observed normal
38
38
  * directory excluded in both lexical and native spellings. Unknown, missing and
39
- * linked ancestry remains conservative. Membership rejection still withdraws
40
- * notification authority even when content is outside the walk. Named events
41
- * also compare current native identity and case policy with the retained
42
- * identity transaction. Retargeting withdraws notification authority without
43
- * changing the meaning of earlier recorded event spellings.
39
+ * linked ancestry remains conservative. Membership rejection withdraws
40
+ * notification authority except below such a proven excluded directory, so a
41
+ * recursive backend's writes to a cache or output tree cost no proof, nor does
42
+ * an edit to an existing unlinked file whose every name the program cannot
43
+ * admit (samchon/ttsc#1737). Named events also compare current native identity
44
+ * and case policy with the retained identity transaction. Retargeting withdraws
45
+ * notification authority without changing the meaning of earlier recorded event
46
+ * spellings.
44
47
  *
45
48
  * @evidence contracts/common.md#principled-implementation
46
49
  * The project walk and membership policy own structural relevance; content
@@ -48,8 +51,8 @@ import { watchLocationIdentity } from "./watchLocationIdentity";
48
51
  * A lexical nonmatch is uncertainty rather than native alias exclusion.
49
52
  * Changed native identity premises also withdraw notification proof while
50
53
  * membership and content witnesses keep their independent classifications.
51
- * Content exclusion requires normal directory identity and both policy
52
- * spellings; captured native input aliases remain content witnesses.
54
+ * Content and membership exclusion require normal directory identity and both
55
+ * policy spellings; captured native input aliases remain content witnesses.
53
56
  * @evidence contracts/common.md#clear-and-simple-design
54
57
  * One root, directory index and filter set define the tracker; broker and local
55
58
  * paths share those decisions rather than duplicating backend-specific policies.
@@ -145,6 +148,73 @@ export async function createProjectMutationTracker(
145
148
  .filter((directory) => directory.relevant)
146
149
  .map((directory) => paths.resolve(directory.path)),
147
150
  );
151
+ // Whether an event path lies below a directory the walk excludes, proven by
152
+ // an observed normal directory excluded in both its lexical and its native
153
+ // spelling. A missing ancestor, one outside the root, or a link before that
154
+ // directory proves nothing. Content stops at the excluded directory, since a
155
+ // captured input reached through a deeper link is already caught by its
156
+ // identity above. Membership has no identity to catch a new file created
157
+ // through such a link (`node_modules/linked -> src`), so for it the whole
158
+ // path must be links-free.
159
+ const excludedFromWalk = (changed: string, wholePath: boolean): boolean => {
160
+ const relative = paths.relative(root, paths.dirname(changed));
161
+ if (
162
+ relative === ".." ||
163
+ relative.startsWith(".." + paths.sep) ||
164
+ paths.isAbsolute(relative)
165
+ )
166
+ return false;
167
+ let directory = root;
168
+ let excluded = false;
169
+ for (const component of relative.split(paths.sep).filter(Boolean)) {
170
+ directory = paths.join(directory, component);
171
+ try {
172
+ const before = filesystem.lstat(directory);
173
+ if (!before.isDirectory() || before.isSymbolicLink()) return false;
174
+ const physical = filesystem.realpath(directory);
175
+ const after = filesystem.lstat(directory);
176
+ if (
177
+ !after.isDirectory() ||
178
+ after.isSymbolicLink() ||
179
+ before.dev !== after.dev ||
180
+ before.ino !== after.ino
181
+ )
182
+ return false;
183
+ if (
184
+ !excluded &&
185
+ !isProjectWalkDirectory(directory, policy, filesystem.platform) &&
186
+ !isProjectWalkDirectory(physical, policy, filesystem.platform)
187
+ ) {
188
+ if (!wholePath) return true;
189
+ excluded = true;
190
+ }
191
+ } catch {
192
+ // Missing/deleted ancestors and unknown native spellings remain events.
193
+ return false;
194
+ }
195
+ }
196
+ return excluded;
197
+ };
198
+ // Whether an event names an existing file no spelling can make a program
199
+ // member: a regular file with no second hard link, whose own and physical
200
+ // names are both names the program cannot admit. A directory alias can move
201
+ // a file into the program but cannot rename it, and a removed name, a link
202
+ // or a directory stays conservative.
203
+ const existingNonProgramFile = (changed: string): boolean => {
204
+ try {
205
+ const stats = filesystem.lstat(changed);
206
+ if (!stats.isFile() || stats.nlink > 1n) return false;
207
+ return (
208
+ !isPossibleProgramFileName(paths.basename(changed), policy) &&
209
+ !isPossibleProgramFileName(
210
+ paths.basename(filesystem.realpath(changed)),
211
+ policy,
212
+ )
213
+ );
214
+ } catch {
215
+ return false;
216
+ }
217
+ };
148
218
  const reportsMembership = (location: string, filename: string): boolean => {
149
219
  const changed = paths.join(location, filename);
150
220
  const current = createHostPathIdentityContext(filesystem);
@@ -169,8 +239,19 @@ export async function createProjectMutationTracker(
169
239
  filesystem,
170
240
  );
171
241
  // Current realpath cannot identify a deleted alias. Policy checks only
172
- // lexical spellings, so rejection cannot establish unchanged program state.
173
- if (!membership) tracker.unverified = true;
242
+ // lexical spellings, so rejection cannot establish unchanged program state,
243
+ // except below a directory the walk provably excludes. A recursive backend
244
+ // (macOS, Windows) hears every write under the root, a cache or an output
245
+ // directory among them, and withdrawing authority for each sent every later
246
+ // delivery to the whole-snapshot proof. An existing file whose every name
247
+ // the program cannot admit is no member either, a stylesheet or an asset
248
+ // edited in a source directory among them, on every backend.
249
+ if (
250
+ !membership &&
251
+ !excludedFromWalk(changed, true) &&
252
+ !existingNonProgramFile(changed)
253
+ )
254
+ tracker.unverified = true;
174
255
  return membership;
175
256
  };
176
257
  // Content belongs to the walk too. A recursive native backend can report
@@ -201,39 +282,7 @@ export async function createProjectMutationTracker(
201
282
  tracker.unverified = true;
202
283
  return true;
203
284
  }
204
- const relative = paths.relative(root, paths.dirname(changed));
205
- if (
206
- relative === ".." ||
207
- relative.startsWith(".." + paths.sep) ||
208
- paths.isAbsolute(relative)
209
- )
210
- return true;
211
- let directory = root;
212
- for (const component of relative.split(paths.sep).filter(Boolean)) {
213
- directory = paths.join(directory, component);
214
- try {
215
- const before = filesystem.lstat(directory);
216
- if (!before.isDirectory() || before.isSymbolicLink()) return true;
217
- const physical = filesystem.realpath(directory);
218
- const after = filesystem.lstat(directory);
219
- if (
220
- !after.isDirectory() ||
221
- after.isSymbolicLink() ||
222
- before.dev !== after.dev ||
223
- before.ino !== after.ino
224
- )
225
- return true;
226
- if (
227
- !isProjectWalkDirectory(directory, policy, filesystem.platform) &&
228
- !isProjectWalkDirectory(physical, policy, filesystem.platform)
229
- )
230
- return false;
231
- } catch {
232
- // Missing/deleted ancestors and unknown native spellings remain events.
233
- return true;
234
- }
235
- }
236
- return true;
285
+ return !excludedFromWalk(changed, false);
237
286
  };
238
287
  const reportsNewMembership = (
239
288
  location: string,