mancode 0.3.17 → 0.3.18
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/README.en.md +3 -3
- package/README.md +3 -3
- package/dist/cli.js +23 -3
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/README.en.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<p align="center">
|
|
18
18
|
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-AGPL--3.0-blue.svg?style=flat-square" alt="License: AGPL-3.0" /></a>
|
|
19
19
|
<a href="https://www.npmjs.com/package/mancode"><img src="https://img.shields.io/npm/v/mancode?style=flat-square" alt="npm version" /></a>
|
|
20
|
-
<img src="https://img.shields.io/badge/status-Continuity%20v0.3.
|
|
20
|
+
<img src="https://img.shields.io/badge/status-Continuity%20v0.3.18-2f855a?style=flat-square" alt="Status: mancode Continuity v0.3.18" />
|
|
21
21
|
<img src="https://img.shields.io/badge/platforms-Claude%20Code%20%7C%20Cursor%20%7C%20Codex%20%7C%20Copilot%20%7C%20ZCode-5865F2?style=flat-square" alt="Platforms: Claude Code, Cursor, Codex in ChatGPT desktop and CLI, GitHub Copilot, ZCode" />
|
|
22
22
|
</p>
|
|
23
23
|
|
|
@@ -353,7 +353,7 @@ it should behave, and why previous decisions were made.
|
|
|
353
353
|
|
|
354
354
|
## Installation
|
|
355
355
|
|
|
356
|
-
**Status**: mancode Continuity v0.3.
|
|
356
|
+
**Status**: mancode Continuity v0.3.18. Claude Code, Cursor, Codex in the ChatGPT
|
|
357
357
|
desktop app and CLI, GitHub Copilot, and ZCode adapters are included.
|
|
358
358
|
|
|
359
359
|
Requires Node.js 20 or newer. macOS, Linux, Windows CMD, PowerShell, and Git Bash
|
|
@@ -452,7 +452,7 @@ mancode version
|
|
|
452
452
|
Simplified output:
|
|
453
453
|
|
|
454
454
|
```text
|
|
455
|
-
mancode v0.3.
|
|
455
|
+
mancode v0.3.18
|
|
456
456
|
|
|
457
457
|
Project: my-app
|
|
458
458
|
Runtime: ready
|
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<p align="center">
|
|
18
18
|
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-AGPL--3.0-blue.svg?style=flat-square" alt="许可证:AGPL-3.0" /></a>
|
|
19
19
|
<a href="https://www.npmjs.com/package/mancode"><img src="https://img.shields.io/npm/v/mancode?style=flat-square" alt="npm 版本" /></a>
|
|
20
|
-
<img src="https://img.shields.io/badge/status-Continuity%20v0.3.
|
|
20
|
+
<img src="https://img.shields.io/badge/status-Continuity%20v0.3.18-2f855a?style=flat-square" alt="状态:mancode Continuity v0.3.18" />
|
|
21
21
|
<img src="https://img.shields.io/badge/platforms-Claude%20Code%20%7C%20Cursor%20%7C%20Codex%20%7C%20Copilot%20%7C%20ZCode-5865F2?style=flat-square" alt="平台:Claude Code、Cursor、ChatGPT 桌面端 Codex、Codex CLI、GitHub Copilot、ZCode" />
|
|
22
22
|
</p>
|
|
23
23
|
|
|
@@ -307,7 +307,7 @@ src/components/
|
|
|
307
307
|
|
|
308
308
|
## 安装
|
|
309
309
|
|
|
310
|
-
**状态**:mancode Continuity v0.3.
|
|
310
|
+
**状态**:mancode Continuity v0.3.18。Claude Code、Cursor、ChatGPT 桌面端中的
|
|
311
311
|
Codex、Codex CLI、GitHub Copilot 和 ZCode adapter 均已接入。
|
|
312
312
|
|
|
313
313
|
需要 Node.js 20 或更高版本。原生支持 macOS、Linux、Windows CMD、
|
|
@@ -404,7 +404,7 @@ mancode version
|
|
|
404
404
|
以下是简化输出示例:
|
|
405
405
|
|
|
406
406
|
```text
|
|
407
|
-
mancode v0.3.
|
|
407
|
+
mancode v0.3.18
|
|
408
408
|
|
|
409
409
|
Project: my-app
|
|
410
410
|
Runtime: ready
|
package/dist/cli.js
CHANGED
|
@@ -18954,10 +18954,10 @@ async function materializeGitRefTaskBundle(input) {
|
|
|
18954
18954
|
const store = resolveCoordinationEntityHomeStore(
|
|
18955
18955
|
runtime.entityHomeStoreContext
|
|
18956
18956
|
);
|
|
18957
|
-
const locks = await acquireEntityLocks(
|
|
18957
|
+
const locks = input.taskLockHeld ? [] : await acquireEntityLocks(
|
|
18958
18958
|
store,
|
|
18959
18959
|
operationId,
|
|
18960
|
-
[
|
|
18960
|
+
[taskEntityKey(bundle.taskRef)],
|
|
18961
18961
|
{ now }
|
|
18962
18962
|
);
|
|
18963
18963
|
try {
|
|
@@ -18993,6 +18993,16 @@ async function materializeGitRefTaskBundle(input) {
|
|
|
18993
18993
|
throw new Error("MANCODE_SPLIT_BRAIN");
|
|
18994
18994
|
}
|
|
18995
18995
|
const materializedPredecessor = status2 === "created" ? null : effectivePredecessor;
|
|
18996
|
+
if (status2 === "unchanged" && currentFence !== null && taskHeadFenceMatchesTarget({
|
|
18997
|
+
currentFence,
|
|
18998
|
+
runtime,
|
|
18999
|
+
remoteRevision,
|
|
19000
|
+
ownershipFence,
|
|
19001
|
+
bundle
|
|
19002
|
+
})) {
|
|
19003
|
+
await recordGitRefTaskRemoteBase(projectRoot, remoteRevision, bundle);
|
|
19004
|
+
return result(status2, bundle, null, currentFence);
|
|
19005
|
+
}
|
|
18996
19006
|
const targetFence = buildTargetFence({
|
|
18997
19007
|
runtime,
|
|
18998
19008
|
remoteRevision,
|
|
@@ -19003,7 +19013,12 @@ async function materializeGitRefTaskBundle(input) {
|
|
|
19003
19013
|
now
|
|
19004
19014
|
});
|
|
19005
19015
|
if (status2 === "unchanged") {
|
|
19006
|
-
await writeTargetFence(
|
|
19016
|
+
await writeTargetFence(
|
|
19017
|
+
store,
|
|
19018
|
+
currentFence,
|
|
19019
|
+
targetFence,
|
|
19020
|
+
materializedPredecessor
|
|
19021
|
+
);
|
|
19007
19022
|
await recordGitRefTaskRemoteBase(projectRoot, remoteRevision, bundle);
|
|
19008
19023
|
return result(status2, bundle, null, targetFence);
|
|
19009
19024
|
}
|
|
@@ -19168,6 +19183,9 @@ function buildTargetFence(input) {
|
|
|
19168
19183
|
updatedAt: input.now.toISOString()
|
|
19169
19184
|
});
|
|
19170
19185
|
}
|
|
19186
|
+
function taskHeadFenceMatchesTarget(input) {
|
|
19187
|
+
return input.currentFence.workspaceId === input.runtime.workspaceId && sameTaskRef(input.currentFence.taskRef, input.bundle.taskRef) && input.currentFence.taskRevision === input.bundle.taskRevision && input.currentFence.aggregateDigest === input.bundle.aggregateDigest && input.currentFence.ownershipEpoch === input.bundle.ownershipEpoch && input.currentFence.codeRef.head === input.bundle.codeRef.head && input.currentFence.checkoutId === input.runtime.checkoutId && input.currentFence.remoteRevision === input.remoteRevision && input.currentFence.lastOperationId === input.ownershipFence.lastOperationId;
|
|
19188
|
+
}
|
|
19171
19189
|
async function writeTargetFence(store, current, target, predecessor) {
|
|
19172
19190
|
if (current !== null && digestCanonicalJson(current) === digestCanonicalJson(target)) {
|
|
19173
19191
|
return;
|
|
@@ -19598,6 +19616,7 @@ async function recoverGitRefWorkflowRepair(projectRoot, operationId, transportRe
|
|
|
19598
19616
|
bundle: targetBundle,
|
|
19599
19617
|
predecessorBundle: journal.prepared.predecessorBundle,
|
|
19600
19618
|
pendingMetadata: journal.pendingMetadata,
|
|
19619
|
+
taskLockHeld: true,
|
|
19601
19620
|
operationId: createUlid()
|
|
19602
19621
|
});
|
|
19603
19622
|
journal = await transitionJournal(
|
|
@@ -32861,6 +32880,7 @@ async function recoverGitRefHandoffRepair(projectRoot, operationId, transportRec
|
|
|
32861
32880
|
bundle: journal.prepared.targetBundle,
|
|
32862
32881
|
predecessorBundle: journal.prepared.predecessorBundle,
|
|
32863
32882
|
pendingMetadata: journal.pendingMetadata,
|
|
32883
|
+
taskLockHeld: true,
|
|
32864
32884
|
operationId: createUlid()
|
|
32865
32885
|
});
|
|
32866
32886
|
journal = await transitionJournal2(
|