@wenbin_wb/dsh-bridge 1.2.2 → 1.2.3

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.
Files changed (2) hide show
  1. package/lib/wechat/node.js +15 -1
  2. package/package.json +1 -1
@@ -898,7 +898,7 @@ async function routeCommand(node, text) {
898
898
  return true
899
899
  case 'use': {
900
900
  const index = Number(rest[0])
901
- const sessions = await listSessions(node)
901
+ const sessions = sessionsInDisplayOrder(await listSessions(node))
902
902
  if (!Number.isInteger(index) || index < 1 || index > sessions.length) {
903
903
  await sendTextToPeer(node, `${MARK.err} 无效编号。可用: 1–${sessions.length}(/sessions 查看列表)`)
904
904
  return true
@@ -1017,6 +1017,19 @@ async function renderSessions(node) {
1017
1017
  return `${MARK.list}\n${parts.join('\n')}`
1018
1018
  }
1019
1019
 
1020
+ // 与 renderSessions 完全一致的显示顺序:按工作区字母序分组、组内保持 listSessions 顺序。
1021
+ // /use N 用这个数组索引,保证显示的编号 N 与切换的会话一一对应。
1022
+ function sessionsInDisplayOrder(all) {
1023
+ const groups = new Map()
1024
+ for (const s of all) {
1025
+ const key = s.cwd || '(未指定)'
1026
+ if (!groups.has(key)) groups.set(key, [])
1027
+ groups.get(key).push(s)
1028
+ }
1029
+ const sortedGroups = [...groups.entries()].sort((a, b) => String(a[0]).localeCompare(String(b[0])))
1030
+ return sortedGroups.flatMap(([, sessions]) => sessions)
1031
+ }
1032
+
1020
1033
  // 时间戳 → 可读时间
1021
1034
  function fmtTime(ms) {
1022
1035
  try {
@@ -1056,6 +1069,7 @@ export const wechatNodeHelpers = {
1056
1069
  extractText,
1057
1070
  isGroupMessage,
1058
1071
  listSessions,
1072
+ sessionsInDisplayOrder,
1059
1073
  }
1060
1074
 
1061
1075
  function sleep(ms) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wenbin_wb/dsh-bridge",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "description": "手机扫码即可在移动端/公网继续用 DeepSeek Harness,人不在电脑前也能接着干。一键局域网二维码、Cloudflare 公网隧道、自建隧道与微信 Bot(多工作区/会话持久化/媒体/审批),无需自己搭公网服务器。",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",