@quolu/lattice 0.63.4 → 0.63.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quolu/lattice",
|
|
3
|
-
"version": "0.63.
|
|
3
|
+
"version": "0.63.5",
|
|
4
4
|
"description": "Schedulability compiler for multi-agent development: observe real code boundaries, refactor the conflicting seam, recompile the plan for parallel execution",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Quo / クオ at kitepon.dev",
|
|
@@ -102,11 +102,16 @@ export function computeReadyFrontier(options = {}) {
|
|
|
102
102
|
return { dispatchable };
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
+
// 宣言 write はファイルにもディレクトリにも成り得る(witness の writes は `templates` の
|
|
106
|
+
// ような素のディレクトリ名を普通に持つ)。末尾 `/` の有無で prefix 扱いを分けると、
|
|
107
|
+
// ディレクトリ境界を正しく宣言した task の配下ファイルが全部 undeclared_write になり、
|
|
108
|
+
// accept のたびに hold → worker SIGSTOP で卓が凍る(2026-08-22 実測: t1/t3 で連続被弾)。
|
|
105
109
|
function declaredWriteCovers(declaredWrites, observedPath) {
|
|
106
|
-
return declaredWrites.some((declared) =>
|
|
107
|
-
declared === observedPath
|
|
108
|
-
|
|
109
|
-
|
|
110
|
+
return declaredWrites.some((declared) => {
|
|
111
|
+
if (declared === observedPath) return true;
|
|
112
|
+
const prefix = declared.endsWith('/') ? declared : `${declared}/`;
|
|
113
|
+
return observedPath.startsWith(prefix);
|
|
114
|
+
});
|
|
110
115
|
}
|
|
111
116
|
|
|
112
117
|
function witnessSet(manifest, kinds) {
|
|
@@ -371,10 +371,14 @@ function boundaryFor(artifact, taskId) {
|
|
|
371
371
|
return artifact?.task_boundaries?.find((entry) => entry.task_id === taskId) ?? null;
|
|
372
372
|
}
|
|
373
373
|
|
|
374
|
+
// boundary / changed のどちらも素のディレクトリ名で来る(末尾 `/` は保証されない)。
|
|
375
|
+
// 末尾 `/` の時だけ prefix 扱いにすると、ディレクトリ境界の配下変更が「触れていない」へ
|
|
376
|
+
// 誤判定される(declaredWriteCovers と同族。2026-08-22 実測)。
|
|
374
377
|
function pathTouches(boundary, changed) {
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
+
if (boundary === changed) return true;
|
|
379
|
+
const boundaryPrefix = boundary.endsWith('/') ? boundary : `${boundary}/`;
|
|
380
|
+
const changedPrefix = changed.endsWith('/') ? changed : `${changed}/`;
|
|
381
|
+
return changed.startsWith(boundaryPrefix) || boundary.startsWith(changedPrefix);
|
|
378
382
|
}
|
|
379
383
|
|
|
380
384
|
async function boundaryVerdict({ repoRoot, store, member, meta, taskId, intakeBase }) {
|