devez-vibe 1.10.10 → 1.10.12
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/bin/dvz.exe +0 -0
- package/bridge/claude-agent-sdk-bridge.mjs +27 -0
- package/package.json +1 -1
package/bin/dvz.exe
CHANGED
|
Binary file
|
|
@@ -2578,6 +2578,19 @@ function applyTaskUpdate(tasks, input, turnId, onIntermediate, at) {
|
|
|
2578
2578
|
if (input.subject) task.subject = input.subject;
|
|
2579
2579
|
const status = input.status;
|
|
2580
2580
|
if (status === "in_progress" || status === "completed") {
|
|
2581
|
+
// A step reopened after later steps already finished (a follow-up task the
|
|
2582
|
+
// model did before the pending build) moves behind them, so the visible
|
|
2583
|
+
// plan keeps finished steps first and the active one after them.
|
|
2584
|
+
if (status === "in_progress") {
|
|
2585
|
+
const ordered = [...tasks.entries()];
|
|
2586
|
+
const from = ordered.findIndex(([, entry]) => entry === task);
|
|
2587
|
+
const lastDone = ordered.findLastIndex(([, entry]) => entry.status === "completed");
|
|
2588
|
+
if (lastDone > from) {
|
|
2589
|
+
ordered.splice(lastDone, 0, ...ordered.splice(from, 1));
|
|
2590
|
+
tasks.clear();
|
|
2591
|
+
for (const [key, entry] of ordered) tasks.set(key, entry);
|
|
2592
|
+
}
|
|
2593
|
+
}
|
|
2581
2594
|
const entries = [...tasks.values()];
|
|
2582
2595
|
const targetIndex = entries.indexOf(task);
|
|
2583
2596
|
|
|
@@ -6032,6 +6045,20 @@ async function runSelfTest() {
|
|
|
6032
6045
|
].join("|")) {
|
|
6033
6046
|
throw new Error(`Claude skipped task transition self-test failed: ${transitions.join("|")}`);
|
|
6034
6047
|
}
|
|
6048
|
+
// A follow-up step appended after the build, done first, then the build opens.
|
|
6049
|
+
const reopenedTasks = new Map([
|
|
6050
|
+
["1", { id: "1", subject: "1. 확인", status: "completed" }],
|
|
6051
|
+
["2", { id: "2", subject: "2. 수정", status: "in_progress" }],
|
|
6052
|
+
["3", { id: "3", subject: "3. 빌드", status: "pending" }],
|
|
6053
|
+
["4", { id: "4", subject: "4. 추가 수정", status: "pending" }],
|
|
6054
|
+
]);
|
|
6055
|
+
applyTaskUpdate(reopenedTasks, { taskId: "2", status: "completed" }, "turn");
|
|
6056
|
+
applyTaskUpdate(reopenedTasks, { taskId: "4", status: "completed" }, "turn");
|
|
6057
|
+
applyTaskUpdate(reopenedTasks, { taskId: "3", status: "in_progress" }, "turn");
|
|
6058
|
+
const reopenedPlan = [...reopenedTasks.entries()].map(([key, task]) => `${key}:${task.status}`).join(",");
|
|
6059
|
+
if (reopenedPlan !== "1:completed,2:completed,4:completed,3:in_progress") {
|
|
6060
|
+
throw new Error(`Claude reopened task order self-test failed: ${reopenedPlan}`);
|
|
6061
|
+
}
|
|
6035
6062
|
const mixedPlans = new Map([
|
|
6036
6063
|
["old-1", { subject: "1. 이전 작업", status: "completed" }],
|
|
6037
6064
|
["old-2", { subject: "2. 이전 검증", status: "completed" }],
|