@co0ontty/wand 1.21.14 → 1.21.15

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.
@@ -13746,6 +13746,17 @@
13746
13746
  }
13747
13747
 
13748
13748
  chatMessages.innerHTML = html;
13749
+ // 会话切换 / 首次渲染后,浏览器会把旧的 scrollTop 钳制到新内容
13750
+ // 的最大值——column-reverse 下这意味着视觉上跳到最上面(最旧消息),
13751
+ // 也就是用户反馈的"退出再回来时被重定向到最上面"。这里在
13752
+ // prevMsgCount === 0(resetChatRenderCache 后或刚从空状态进入)
13753
+ // 强制 scrollTop=0(视觉底部 = 最新消息),避免错位。
13754
+ // 注意:仅在"换会话/初次渲染"时强制重置;同一会话内的全量重渲染
13755
+ // (prevMsgCount > 0,比如 forceFullRender 或消息数减少)继续走
13756
+ // smartScrollToBottom,尊重用户的 chatAutoFollow 选择。
13757
+ if (prevMsgCount === 0) {
13758
+ chatMessages.scrollTop = 0;
13759
+ }
13749
13760
  attachAllCopyHandlers(chatMessages);
13750
13761
  bindChatScrollListener();
13751
13762
  applyPersistedExpandState(chatMessages);
@@ -16468,8 +16479,9 @@
16468
16479
  var sessionLabel = session.summary || session.command || sessionId;
16469
16480
  var sessionStatus = session.status || "running";
16470
16481
 
16471
- // Clear notification for inactive sessions
16472
- if (sessionStatus === "idle" || sessionStatus === "archived" || sessionStatus === "exited") {
16482
+ // 真正消亡的会话才清掉通知;idle / exited 仍然要把"已完成"推上去,
16483
+ // 让流体云 / 锁屏卡片显示与 web 通知条一致的最终状态。
16484
+ if (sessionStatus === "archived") {
16473
16485
  clearSessionProgressNative(sessionId);
16474
16486
  return;
16475
16487
  }
@@ -16536,9 +16548,37 @@
16536
16548
  currentTask = state.currentTask.title;
16537
16549
  }
16538
16550
 
16551
+ // ── 与 web 通知条同源的 statusLabel / stepLabel / isRunning ──
16552
+ // 复用 computeRunningSignal & isStructuredSession,确保胶囊文字和顶部
16553
+ // 通知条永远保持一致。
16554
+ var sig = computeRunningSignal(session);
16555
+ var isStructured = isStructuredSession(session);
16556
+ var isRunning = isStructured ? !!sig.inFlight : !!sig.ptyRunning;
16557
+ var statusLabel = isRunning
16558
+ ? (isStructured ? "运行中" : "正在运行")
16559
+ : "已完成";
16560
+
16561
+ var stepLabel = "";
16562
+ if (todos && todos.length > 0) {
16563
+ var completedCount = 0;
16564
+ var inProgressCount = 0;
16565
+ for (var sk = 0; sk < todos.length; sk++) {
16566
+ if (todos[sk].status === "completed") completedCount++;
16567
+ if (todos[sk].status === "in_progress") inProgressCount++;
16568
+ }
16569
+ var allTodosDone = completedCount === todos.length;
16570
+ if (isRunning && !allTodosDone) {
16571
+ var stepIdx = Math.max(1, completedCount + (inProgressCount > 0 ? 1 : 0));
16572
+ stepLabel = "第 " + stepIdx + "/" + todos.length + " 步";
16573
+ }
16574
+ }
16575
+
16539
16576
  var data = {
16540
16577
  sessionLabel: sessionLabel,
16541
16578
  status: sessionStatus,
16579
+ isRunning: isRunning,
16580
+ statusLabel: statusLabel,
16581
+ stepLabel: stepLabel,
16542
16582
  currentTask: currentTask,
16543
16583
  latestUserText: latestUserText,
16544
16584
  latestAssistantText: latestAssistantText,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@co0ontty/wand",
3
- "version": "1.21.14",
3
+ "version": "1.21.15",
4
4
  "description": "A web terminal for local CLI tools like Claude.",
5
5
  "type": "module",
6
6
  "bin": {