@quolu/lattice 0.12.8 → 0.12.9
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 +3 -1
- package/src/todo-store.mjs +12 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quolu/lattice",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.9",
|
|
4
4
|
"description": "Lattice — phase-aware TODO graph compiler and conflict-aware orchestration runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -49,6 +49,8 @@
|
|
|
49
49
|
},
|
|
50
50
|
"scripts": {
|
|
51
51
|
"prepack": "npm --prefix sensor run build",
|
|
52
|
+
"verify:release-commit": "node scripts/verify-release-commit.mjs",
|
|
53
|
+
"prepublishOnly": "npm run verify:release-commit",
|
|
52
54
|
"test": "node scripts/run-product-tests.mjs",
|
|
53
55
|
"test:sensor": "npm --prefix sensor test",
|
|
54
56
|
"precheck": "node --check src/bridge-launch-agent.mjs",
|
package/src/todo-store.mjs
CHANGED
|
@@ -1764,13 +1764,17 @@ function phaseV3CarrySemantics(plan, taskId, taskIdMap, phaseIdMap,
|
|
|
1764
1764
|
? { ...ref, task_id: taskIdMap.get(ref.task_id) ?? ref.task_id } : ref;
|
|
1765
1765
|
const mapPhaseRef = (ref) => ref.project_id === plan.project_id && ref.plan_key === plan.plan_key
|
|
1766
1766
|
? { ...ref, phase_id: phaseIdMap.get(ref.phase_id) ?? ref.phase_id } : ref;
|
|
1767
|
+
// Phaseを持たない世代(todo_plan.v3)のtaskはphase_idを持たない。undefinedのまま
|
|
1768
|
+
// canonicalizeするとJSON treeでないとしてTypeErrorになり、typedな拒否理由が失われる。
|
|
1769
|
+
// nullへ正規化してcarry比較へ渡し、Phase割当ての獲得をcarry_semantics_changedとして拒否する。
|
|
1770
|
+
const mappedPhaseId = phaseIdMap.get(task.phase_id) ?? task.phase_id ?? null;
|
|
1767
1771
|
const mappedTask = reconciliationMetadata ? {
|
|
1768
1772
|
task_id: taskIdMap.get(task.task_id) ?? task.task_id, title: task.title, lane: task.lane,
|
|
1769
1773
|
compile_binding: task.compile_binding,
|
|
1770
|
-
phase_id:
|
|
1774
|
+
phase_id: mappedPhaseId,
|
|
1771
1775
|
} : { ...task,
|
|
1772
1776
|
task_id: taskIdMap.get(task.task_id) ?? task.task_id,
|
|
1773
|
-
phase_id:
|
|
1777
|
+
phase_id: mappedPhaseId,
|
|
1774
1778
|
parent_task_id: task.parent_task_id === null ? null
|
|
1775
1779
|
: taskIdMap.get(task.parent_task_id) ?? task.parent_task_id,
|
|
1776
1780
|
};
|
|
@@ -2933,7 +2937,12 @@ export async function applyPhaseTodoRevision(options = {}) {
|
|
|
2933
2937
|
const descriptor = currentManifest.members.find(({ plan_key }) => plan_key === revision.plan_key);
|
|
2934
2938
|
Object.assign(descriptor, { active_plan_version: revision.desired_plan.plan_version,
|
|
2935
2939
|
plan_ref: planRef, journal_ref: journalRef, snapshot_ref: snapshotRef,
|
|
2936
|
-
topology_digest: revision.desired_plan.topology_digest, journal_head_digest: genesis.event_digest
|
|
2940
|
+
topology_digest: revision.desired_plan.topology_digest, journal_head_digest: genesis.event_digest,
|
|
2941
|
+
// manifest v2はactive_revision_digestがgenesisのrevision_digestと一致することを読み取り時に
|
|
2942
|
+
// 要求する。v3昇格後のstoreでここを据え置くと、書込みは成功したように見えるのに以後の
|
|
2943
|
+
// readがmanifest_revision_binding_mismatchで落ちる。v1 memberはこのkeyを持てない。
|
|
2944
|
+
...(currentManifest.schema === 'lattice.todo_manifest.v2'
|
|
2945
|
+
? { active_revision_digest: revision.revision_digest } : {}) });
|
|
2937
2946
|
currentManifest.manifest_digest = todoSelfDigest(currentManifest, 'manifest_digest');
|
|
2938
2947
|
await atomicWrite(path.resolve(repoRoot, MANIFEST_REF), canonicalLine(currentManifest));
|
|
2939
2948
|
await protocolStage(options, 'phase_revision_manifest_activated');
|