Skip to content

fix(session): 修正会话常驻上限与休眠状态#427

Merged
deepcoldy merged 1 commit into
masterfrom
agent/session-residency-cap
Jul 10, 2026
Merged

fix(session): 修正会话常驻上限与休眠状态#427
deepcoldy merged 1 commit into
masterfrom
agent/session-residency-cap

Conversation

@deepcoldy

Copy link
Copy Markdown
Owner

改了什么

  • 将上限口径统一为「会话常驻上限」,Dashboard 明确区分「可继续会话 / 常驻会话 / 休眠会话」。
  • 休眠时发布 status=dormant,清理旧进程状态,不再把可恢复会话误标为空闲或已关闭。
  • botmux list 识别 suspendedColdResume,不再把刻意休眠的会话当僵尸记录清理。
  • 新会话启动、恢复以及会话转为空闲时立即检查上限;60 秒定时检查保留为兜底。
  • 扩展每 Bot 配置接口,返回逻辑会话、常驻会话和休眠会话计数。
  • 兼容 master 最新 React Dashboard:会话页增加三项汇总,Bot 配置页展示「常驻 x/上限 · 休眠 y · 总会话 z」。

为什么改

原逻辑的 30 个上限约束的是每个 Bot 的后台进程数量,但界面把它描述为“活跃会话”,用户会把可恢复的逻辑会话也算进去。除此之外:

  1. 上限只按 60 秒轮询收敛,新建/恢复会话后会暂时超过限制;
  2. 休眠沿用退出事件且保留旧屏幕状态,Dashboard 可能显示为已关闭或空闲;
  3. botmux list 的僵尸判断没有区分“刻意休眠”和“意外丢失进程”,会误删可冷恢复记录。

影响面

  • 后端走公共 worker-pool / daemon 路径,对所有 CLI 适配器生效。
  • 自动休眠仍只作用于可恢复后端;PTY、外部终端接入(adopt)及不可恢复会话保持原有豁免。
  • 话题会话、普通群会话和重启恢复会话共享同一逻辑;真正关闭会话的事件不变。
  • 没有新增平台相关的路径、shell 或进程调用;Linux live daemon 已验证。
  • Dashboard 同时适配最新 React 会话页和 Bot 配置页;飞书话题中已附两张实机截图。

验证

  • HOME=<clean-temp> pnpm test:471 个测试文件、7678 项测试全部通过。
  • 相关定向测试:7 个文件、75 项测试全部通过。
  • pnpm build:通过。
  • pnpm switch:here && botmux restart:41 个 Bot daemon 与 Dashboard 全部启动。
  • 浏览器实测最新 React UI:会话页、Bot 配置页文案/计数/布局正常,控制台无报错。
  • Live 数据:334 个可继续会话,157 个常驻、177 个休眠;无 Bot 超出上限,无状态错位。
  • 已 rebase 到最新 origin/master(包含 React Dashboard 重构与后续提交),无冲突。

@deepcoldy deepcoldy marked this pull request as ready for review July 10, 2026 07:39
@deepcoldy deepcoldy merged commit aba185e into master Jul 10, 2026
1 check passed
deepcoldy added a commit that referenced this pull request Jul 10, 2026
#427 新增「运行时统计」行(session-runtime-stats)后未同步更新 .sessions-page
的 grid-template-rows,导致 minmax(0,1fr) 弹性行错落到筛选栏(#filters)上被撑高,
视图舞台(.sessions-view-stage)被挤入隐式行 → 筛选栏与状态板列重叠/错位。两条规则
各补一个 auto 行(bulk-bar 显示=5 行 / 隐藏=4 行)使弹性行回到视图舞台。

session-board-count 计数徽章固定 width:26px,三位数(如 340)溢出圆形。改为
width:auto + min-width:26px + 横向 padding,单/双位数仍是圆、三位数自动成 pill
(radius-full 已具备)。

隔离 HTML(真实 style.css+真实 DOM)+agent-browser 程序化验证:修前弹性行落 filters
(h 284px)、徽章 overflowX 3px;修后 filters 回 34px 自然高、view-stage 得 1fr、
筛选栏与状态板 16px 间隔无重叠、徽章 340 成 45px pill overflowX 0、单位数仍 26px 圆。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant