devez-vibe 1.9.57 → 1.9.58

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 CHANGED
Binary file
@@ -2667,6 +2667,7 @@ function keepBackgroundSubagent(session, toolUseId, result) {
2667
2667
  }
2668
2668
  if (running.taskId) {
2669
2669
  session.knownSubagents.set(running.taskId, {
2670
+ rowId: running.id,
2670
2671
  name: running.name,
2671
2672
  description: running.description,
2672
2673
  backgroundTask: running.backgroundTask === true,
@@ -2758,14 +2759,16 @@ function upsertStructuredSubagent(session, message) {
2758
2759
  if (!running && !subagentType && !isSubagentTaskType(message.task_type)) return null;
2759
2760
  if (!running) {
2760
2761
  const known = taskId ? session.knownSubagents.get(taskId) : null;
2761
- const id = toolUseId || `task:${taskId}`;
2762
+ // 백그라운드 명령이 끝나 SDK가 같은 작업을 다시 돌리면, 끝난 줄과 같은 id·이름·설명으로
2763
+ // 이어 붙여 설명 없는 새 줄이 따로 서지 않게 한다.
2764
+ const id = known?.rowId || toolUseId || `task:${taskId}`;
2762
2765
  running = {
2763
2766
  id,
2764
2767
  toolUseId,
2765
2768
  taskId,
2766
- background: false,
2767
- name: subagentType || known?.name || "agent",
2768
- description: "",
2769
+ background: message.is_backgrounded === true,
2770
+ name: known?.name || subagentType || "agent",
2771
+ description: known?.description || "",
2769
2772
  tool: "",
2770
2773
  startedAt: Date.now(),
2771
2774
  lastSeenAt: Date.now(),
@@ -2784,6 +2787,7 @@ function upsertStructuredSubagent(session, message) {
2784
2787
  running.lastSeenAt = Date.now();
2785
2788
  if (running.taskId) {
2786
2789
  session.knownSubagents.set(running.taskId, {
2790
+ rowId: running.id,
2787
2791
  name: running.name,
2788
2792
  description: running.description,
2789
2793
  backgroundTask: running.backgroundTask === true,
@@ -2847,12 +2851,12 @@ function syncBackgroundSubagents(session, tasks) {
2847
2851
  const known = session.knownSubagents.get(taskId);
2848
2852
  if (!running) {
2849
2853
  running = {
2850
- id: `task:${taskId}`,
2854
+ id: known?.rowId || `task:${taskId}`,
2851
2855
  toolUseId: "",
2852
2856
  taskId,
2853
2857
  background: true,
2854
2858
  name: known?.name || backgroundTaskName(task?.task_type),
2855
- description: "",
2859
+ description: known?.description || "",
2856
2860
  tool: "",
2857
2861
  command: !isSubagentTaskType(task?.task_type),
2858
2862
  // 셸로 띄운 위임 에이전트도 있으므로 command와 별도로 표시 종류를 보존한다.
@@ -6184,6 +6188,23 @@ async function runSelfTest() {
6184
6188
  throw new Error(`Claude waiting subagent self-test failed: ${waitingKept} ${nestedSession.subagents.size}`);
6185
6189
  }
6186
6190
  clearSubagents(nestedSession);
6191
+ // 끝난 뒤 SDK가 같은 작업을 다시 돌리면 설명 없는 새 줄이 아니라 같은 줄로 돌아온다.
6192
+ startSubagent(nestedSession, { id: "toolu_again", input: { description: "3분 대기", subagent_type: "general-purpose" } });
6193
+ keepBackgroundSubagent(nestedSession, "toolu_again", { isAsync: true, agentId: "agent-again" });
6194
+ waitSnapshot([]);
6195
+ processSubagentSystemMessage(nestedSession, {
6196
+ type: "system",
6197
+ subtype: "task_started",
6198
+ task_id: "agent-again",
6199
+ task_type: "local_agent",
6200
+ subagent_type: "general-purpose",
6201
+ is_backgrounded: true,
6202
+ });
6203
+ const again = [...nestedSession.subagents.values()];
6204
+ if (again.length !== 1 || again[0].id !== "toolu_again" || again[0].description !== "3분 대기") {
6205
+ throw new Error(`Claude resumed subagent row self-test failed: ${JSON.stringify(again)}`);
6206
+ }
6207
+ clearSubagents(nestedSession);
6187
6208
 
6188
6209
  processSubagentSystemMessage(structuredSession, {
6189
6210
  type: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devez-vibe",
3
- "version": "1.9.57",
3
+ "version": "1.9.58",
4
4
  "type": "module",
5
5
  "description": "Stable terminal UI for Codex and Claude Agent SDK",
6
6
  "keywords": [