@suifei/dsh-ai-team 0.3.15 → 0.3.16

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.16 — 2026-11-10
4
+
5
+ - 点击 Agent 列表中的成员名字直接打开真实对话;
6
+ - 没有 session 时先激活,再打开;
7
+ - 打开失败时落到成员资料,资料内提供「直接对话」和「他的任务」按钮。
8
+
3
9
  ## 0.3.15 — 2026-11-10
4
10
 
5
11
  - 成员 Session 自动挂到 Project workspace,不再散落在 DSH「未分组」;
package/README.md CHANGED
@@ -88,8 +88,8 @@ dsh --profile ai-team --no-open --port 33271
88
88
  - **看板**:四列;进行中的卡片显示 accountable owner 与执行者;数量只统计 active Task。
89
89
  - **态势**:四象限——需要你、团队在做、等待受阻、最近完成。点击条目打开对应 Task 的 Thread。
90
90
  - **收件箱**:跨 Project 聚合;失败决策、需要你决定、关注 Task 的完成报告都在这里。
91
- - **成员视图**:点击成员名字,切到他的任务列表与「直接对话」入口。
92
- - **直接对话**:成员视图里点「直接对话」,打开该 Agent 的 DSH 原生 Session;没有 session 会先激活。
91
+ - **直接对话**:点击成员名字直接打开该 Agent 的 DSH 原生 Session;没有 session 会先激活;打不开时落到成员资料,资料里有「直接对话」按钮。
92
+ - **成员任务**:成员资料里点「他的任务」,查看他 owner/assignee 的 Task。
93
93
  - **成员资料**:点「⋯」改名、职责、personality、provider/model、运行配方、notes、skills、re-distill、离队/人才库。
94
94
 
95
95
  ---
@@ -105,7 +105,7 @@ dsh --profile ai-team --no-open --port 33271
105
105
  | 收件箱 | Human/Agent 各自拉取;跨 Project 聚合与项目内 ack |
106
106
  | 关注 | 关注 Task;完成后收到 `followed_task_update` |
107
107
  | 默认成员 | 新 Project 初始化墨渊 / 青岚 / 白砚;可改名、改职责、改个性、改模型 |
108
- | 成员 | 持久 session;点击名字进入成员视图(任务 + 直接对话);「⋯」编辑资料 |
108
+ | 成员 | 持久 session;点击名字直接对话;「⋯」资料里有任务视图与直接对话 |
109
109
  | 模型 | Provider / Model 下拉读取 DSH `llm` 目录;可跟随系统默认 |
110
110
  | 进化 | `team.evolve` 只改自己的 personality;验收后 reflection wake |
111
111
  | 人才库 | leave/rejoin;遗留 Task 可被接管(taken-over) |
package/client.js CHANGED
@@ -2532,7 +2532,12 @@ window.__ModuleLoader__.load({
2532
2532
  return;
2533
2533
  }
2534
2534
  if (agent.sessionId) {
2535
- service.openSession(agent.sessionId);
2535
+ try {
2536
+ service.openSession(agent.sessionId);
2537
+ } catch (error) {
2538
+ say(tf(t, 'sendFailed', { message: error?.message ?? String(error) }));
2539
+ openProfile(agent);
2540
+ }
2536
2541
  return;
2537
2542
  }
2538
2543
  try {
@@ -2923,7 +2928,7 @@ window.__ModuleLoader__.load({
2923
2928
  onBoard: switchBoard,
2924
2929
  onProject: switchProject,
2925
2930
  onNewProject: () => { closeMobile(); openNewProject(); },
2926
- onAgent: (agent) => { closeMobile(); openMemberView(agent); },
2931
+ onAgent: (agent) => { closeMobile(); void openAgentChat(agent); },
2927
2932
  onAgentMore: (agent) => { closeMobile(); openProfile(agent); },
2928
2933
  onAgentChat: (agent) => { closeMobile(); void openAgentChat(agent); },
2929
2934
  onAddAgent: () => { closeMobile(); openAddAgent(); },
@@ -3214,6 +3219,7 @@ window.__ModuleLoader__.load({
3214
3219
  pError ? h('div', { className: 'at-modalerror', role: 'alert' }, pError) : null,
3215
3220
  h('div', { className: 'at-modalactions' },
3216
3221
  h('button', { className: 'at-btn', type: 'button', onClick: () => setProfileAgent(null), disabled: pBusy }, t('cancel')),
3222
+ h('button', { className: 'at-btn', type: 'button', onClick: () => { const target = profileAgent; setProfileAgent(null); openMemberView(target); } }, t('memberTasks')),
3217
3223
  h('button', { className: 'at-btn', type: 'button', onClick: () => { const target = profileAgent; setProfileAgent(null); void openAgentChat(target); } }, t('agentChat')),
3218
3224
  h('button', { className: 'at-btn', type: 'button', onClick: leaveProfile, disabled: pBusy }, t('leaveTeam')),
3219
3225
  profileAgent.status === 'failed' ? h('button', { className: 'at-btn', type: 'button', onClick: retryProfile, disabled: pBusy }, t('retry')) : null,
package/index.js CHANGED
@@ -34,7 +34,7 @@ export const name = 'ai-team';
34
34
  /** The workbench only makes sense where the Web carrier exists. */
35
35
  export const inject = ['webServer', 'permissionPresets', 'sandboxPolicy'];
36
36
 
37
- const VERSION = '0.3.15';
37
+ const VERSION = '0.3.16';
38
38
  const PROJECT_ID = 'prj_main';
39
39
  const HUMAN_ID = 'mem_human';
40
40
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@suifei/dsh-ai-team",
3
- "version": "0.3.15",
3
+ "version": "0.3.16",
4
4
  "type": "module",
5
5
  "description": "文渊阁 (Wenyuan Pavilion) — AI Team mode for DeepSeek Harness: concurrent projects, owned tasks, threads, inbox and an append-only team ledger",
6
6
  "license": "MIT",