devez-vibe 1.6.38 → 1.6.40

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
@@ -1697,6 +1697,17 @@ function isSubagentTaskType(taskType) {
1697
1697
  return String(taskType || "").toLowerCase().includes("agent");
1698
1698
  }
1699
1699
 
1700
+ // 백그라운드 목록에는 하위 에이전트만이 아니라 백그라운드로 돌린 명령과
1701
+ // 워크플로도 함께 실린다. 이름 자리에 그 종류를 세워 두면 행만 보고도 무엇이
1702
+ // 도는지 구분할 수 있다. 모르는 종류는 서버가 준 값을 그대로 쓴다.
1703
+ function backgroundTaskName(taskType) {
1704
+ const type = String(taskType || "").toLowerCase();
1705
+ if (type.includes("shell") || type.includes("bash") || type.includes("command")) return "Bash";
1706
+ if (type.includes("workflow")) return "Workflow";
1707
+ if (type.includes("monitor")) return "Monitor";
1708
+ return firstLine(taskType || "agent", 40);
1709
+ }
1710
+
1700
1711
  // Claude's SDK exposes task_started/task_progress/task_updated/task_notification
1701
1712
  // as structured lifecycle edges. Prefer those fields over parsing the injected
1702
1713
  // XML fallback so a formatting change cannot leave a stale running row.
@@ -1803,14 +1814,13 @@ function syncBackgroundSubagents(session, tasks) {
1803
1814
  if (!taskId) continue;
1804
1815
  let running = findSubagent(session, taskId);
1805
1816
  const known = session.knownSubagents.get(taskId);
1806
- if (!running && !known && !isSubagentTaskType(task?.task_type)) continue;
1807
1817
  if (!running) {
1808
1818
  running = {
1809
1819
  id: `task:${taskId}`,
1810
1820
  toolUseId: "",
1811
1821
  taskId,
1812
1822
  background: true,
1813
- name: known?.name || "agent",
1823
+ name: known?.name || backgroundTaskName(task?.task_type),
1814
1824
  description: firstLine(task?.description || known?.description || "", 120),
1815
1825
  tool: "",
1816
1826
  startedAt: Date.now(),
@@ -3687,6 +3697,26 @@ async function runSelfTest() {
3687
3697
  throw new Error("Claude ambient task completion did not clear hidden state");
3688
3698
  }
3689
3699
 
3700
+ // 백그라운드로 돌린 명령도 하위 에이전트와 같은 행으로 보여야 한다. 그
3701
+ // 목록은 REPLACE 의미라 다음 빈 스냅샷이 행을 걷어 간다.
3702
+ processSubagentSystemMessage(structuredSession, {
3703
+ type: "system",
3704
+ subtype: "background_tasks_changed",
3705
+ tasks: [{ task_id: "shell-1", task_type: "local_shell", description: "sleep 600" }],
3706
+ });
3707
+ const shell = findSubagent(structuredSession, "shell-1");
3708
+ if (shell?.name !== "Bash" || shell.description !== "sleep 600") {
3709
+ throw new Error(`Claude background command self-test failed: ${JSON.stringify(shell)}`);
3710
+ }
3711
+ processSubagentSystemMessage(structuredSession, {
3712
+ type: "system",
3713
+ subtype: "background_tasks_changed",
3714
+ tasks: [],
3715
+ });
3716
+ if (structuredSession.subagents.size !== 0) {
3717
+ throw new Error("Claude background command row outlived its snapshot");
3718
+ }
3719
+
3690
3720
  processSubagentSystemMessage(structuredSession, {
3691
3721
  type: "system",
3692
3722
  subtype: "task_started",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devez-vibe",
3
- "version": "1.6.38",
3
+ "version": "1.6.40",
4
4
  "description": "Stable terminal UI for Codex and Claude Agent SDK",
5
5
  "keywords": [
6
6
  "codex",