Repository navigation
Releases: EternalNight996/agent-teams-pixel
Release list
AgentTeams v0.3.0-rc.4
v0.3.0-rc.4 — DSH Pixel Team
- 使用 shj-platform 交付物中的「山海经 · 烛龙」正式图标集(多尺寸 ICO + 透明 PNG)
- 重新生成 1280×640 社交预览与当前洞府截图
- 品牌/企业信息、README、IP 归属说明同步
v0.2.7 — 修客户端半边静默不挂载(inject 硬依赖里有已移除的 settingsScope)
安装(桌面壳):应用内「插件 → 添加插件」填 agent-teams-pixel,或
dsh plugin --profile desktop add agent-teams-pixel(npm 尚未发 0.2.7 时用 Git 装:
dsh plugin --profile desktop add github:EternalNight996/agent-teams-pixel#v0.2.7)
兼容基线:DSH 0.2.0-rc.2。装完请刷新页面(客户端模块列表变了)。
[0.2.7] - 淇€岄〉绛?/ 娴眰 / 璁剧疆鍒嗗尯鏁村潡娑堝け銆嶏細瀹㈡埛绔?inject 閲屾湁涓凡涓嶅瓨鍦ㄧ殑鏈嶅姟
鐥囩姸
瀹夎鍚?*瀹屽叏娌℃湁鐢婚潰**锛氬伐浣滆鑹查〉绛俱€佸儚绱犲姙鍏娴眰銆佽缃噷鐨勩€岃鑹插姙鍏銆嶅垎鍖?*鍏ㄩ儴涓嶅瓨鍦?*锛屼笖鏃犳姤閿欍€佹棤鏃ュ織銆?
鏍瑰洜锛堜袱涓紝绗?2 涓墠鏄唬鐮?bug锛?
- 鎻掍欢褰撴椂骞舵湭瑁呰繘娲昏穬 profile锛歚~/.dsh/profiles/desktop/package.json
鐨?dependencies涓?dsh.profile.bundles閲岄兘娌℃湁agent-teams-pixel锛坧lugin-manager 鏃ュ織鏄剧ず 16:35 鏈変竴娆?remove agent-teams-pixel锛夈€侱SH 鎻掍欢鏍戝彧鐪?bundles`锛屼笉鍦ㄩ噷闈?= 涓嶅瓨鍦ㄣ€?2. **瀹㈡埛绔崐杈瑰0鏄庝簡宸蹭笉瀛樺湪鐨勬湇鍔?*锛堢湡姝g殑浠g爜 bug锛夛細bundle 灏鹃儴涓? ```js
exports.inject = ['settingsScope', 'slots', 'locale'];鑰?dsh 0.2.0-rc.2 鐨?*瀹㈡埛绔湇鍔$洰褰?*鍙湁 `layout / locale / sessions / slots / theme / timer / uiWorkspace / workspaces` 鈥斺€?**娌℃湁 `settingsScope`**锛?.1.x 鏃朵唬鏈夛紝鏇存柊鍚庣Щ闄わ級銆? cordis 鐨?`inject` 鏄?*纭緷璧?*锛氫换涓€鏈嶅姟涓嶅瓨鍦紝灏?*姘歌繙涓嶄細璋冪敤鎻掍欢鐨?`apply()`**銆備簬鏄鎴风鍗婅竟鏃笉娉ㄥ唽 slot銆佷篃涓嶆敞鍐岃缃垎鍖?鈥斺€?姝eソ瀵瑰簲銆岄〉绛?+ 娴眰 + 閰嶇疆鍥炬爣鍏ㄦ棤涓斿畬鍏ㄩ潤榛樸€嶃€? *瀹夸富鍗婅竟涓嶅彈褰卞搷锛氬畠鐨?`inject = ['tools','systemPrompt','llm','webServer','settings','subagents']` 鍦?0.2.0-rc.2 鍏ㄩ儴瀛樺湪锛屾墍浠?`/agents-pixe/*` 绔偣涓€鐩存槸濂界殑 鈥斺€?杩欎篃鏄箣鍓嶅彧鏌ョ鐐圭湅涓嶅嚭闂鐨勫師鍥犮€?
淇
scripts/build-client.mjs锛氬鎴风inject鏀逛负['slots', 'locale']锛涘叾浣欏鎴风鏈嶅姟涓€寰?ctx.get()瀹归敊璇诲彇锛堢己鏈嶅姟鍙檷绾э紝涓嶉樆濉炴寕杞斤級鈥斺€擿settingsScope鐨勮鍙栧垎鏀繚鐣欙紙鑰佸鎴风鍙敤锛夛紝浣?*涓嶅啀浣滀负纭緷璧?*銆?- 鏂板test/client-inject-contract.test.mjs锛? 椤归棬绂侊級锛氬鎴风/瀹夸富inject鐨勬瘡涓€椤归兘蹇呴』钀藉湪**杩愯鏃舵湇鍔$洰褰?*鍐咃紝涓斾笉寰楀啀鍑虹幇settingsScope锛涙瀯寤鸿剼鏈笌杩愯鏃跺閿欑瓥鐣ヤ竴鑷淬€傛湇鍔$洰褰曞揩鐓у彇鑷繍琛屾椂鍙鏌ヨ锛坔ost/clientService listService`锛夛紝鏉ユ簮涓庢棩鏈熷啓鍦ㄦ祴璇曟敞閲婇噷銆?
鏁欒锛堝凡鍐欒繘闃插鍙戞竻鍗曪級
inject 閲岀殑鏈嶅姟鍚嶆槸纭緷璧栧绾?*锛氬啓閿欎竴涓紝鎻掍欢灏遍潤榛樹笉鎸傝浇銆傜涓夋柟鎻掍欢鍦?DSH 鍗囩骇鍚?*蹇呴』閲嶆柊鏍稿鏈嶅姟鐩綍锛屽彧娴嬭嚜宸辩殑 HTTP 绔偣鏄笉澶熺殑銆?
娴嬭瘯
鍏ㄥ 149/149 閫氳繃锛堟柊澧?3 椤癸級銆?
v0.2.6 — 专业门禁 + 写域硬拦 + 角色导入作用域 + 清单懒加载 + DSH 0.2.0-rc.2 兼容修复
安装(桌面壳):应用内「插件 → 添加插件」填
agent-teams-pixel,或
dsh plugin --profile desktop add agent-teams-pixel@0.2.6(npm 尚未发布 0.2.6,可先用 tag 源码/Git 安装)
兼容基线:DSH0.2.0-rc.2(peer 区间已覆盖 0.1.0-rc.2 → 0.2.x)
[0.2.6] - P2 涓撲笟闂ㄧ锛堣鑹插崱 鈫?楠屾敹鍒ゆ嵁锛? 瀹㈡埛绔鑹叉竻鍗曟噿鍔犺浇
鏂板锛?*涓撲笟闂ㄧ**锛堜笁鏂瑰姣旈噷涓ゅ閮芥病鏈夌殑鑳藉姏锛?
鍘熺敓涓?dsh-agent-teams 鐨勫鏌ュ彧鏈?*閫氱敤娴佺▼锛堥渶姹傗啋瀹炵幇鈫掗獙璇佲啋瀹℃煡鈫掗泦鎴愶級锛涙湰椤圭洰鎶?*棰嗗煙鍒ゆ嵁鎶藉嚭鏉ュ綋闂ㄧ锛?
agents_pixe_task_create鏀寔kind="review"+review_of=<浠诲姟id>锛氳嚜鍔ㄤ粠瑙掕壊鍗℃娊銆屽叧閿鍒?/ 鎶€鏈氦浠樼墿銆嶇敓鎴?*楠屾敹娓呭崟**锛坄acceptance_from鎸囧畾鍙栧摢涓鑹茬殑鍗★紝榛樿 = 琚浠诲姟璐熻矗浜?鈫?鍥㈤槦绗竴浣嶆垚鍛橈紱acceptance鍙嚜瀹氫箟瑕嗙洊锛夈€傚缓浠诲姟杩斿洖鍊间細鎶婃竻鍗曢€愭潯鍒楀嚭锛屾ā鍨?鐢ㄦ埛涓€鐪煎彲瑙佸垽鎹€?-agents_pixe_task_update(action="complete")瀵?review 浠诲姟瑕佹眰acceptance_results锛堟牸寮?1:pass, 2:fail:鍘熷洜`锛屾垨 JSON 鏁扮粍锛夛細- 婕忓垽浠讳綍涓€鏉?鈫?
ACCEPTANCE_UNVERIFIED锛堢偣鍚嶇己绗嚑鏉★級鈥斺€斾笉鍏佽璺宠繃锛? - 鍒ゅ畾瓒呭嚭娓呭崟鑼冨洿锛堝垽鎹 edit 鏀硅繃锛夆啋 鍚屾牱鎷掔粷锛? - 鏈変换涓€fail鈫?verdict=fail锛?琚浠诲姟鑷姩鎵撳洖in_progress* 骞惰lastReviewFailures锛堜笅娓稿洜姝ょ户缁樆濉烇紝涓嶄細甯︾潃缂洪櫡寰€涓嬭蛋锛夛紱 - 鍏?
pass鈫?verdict=pass锛屾甯稿畬鎴愩€?-cardAcceptance(rec)锛氫粠銆屽叧閿鍒?鎶€鏈氦浠樼墿銆嶆娊 bullet 鏉$洰锛堝幓閲嶃€侀檺閲?12 鏉°€佸崟鏉?鈮?60 瀛椼€佸甫鏉ユ簮鏍囨敞濡傘€屼唬鐮佸鏌ュ憳 路 鍏抽敭瑙勫垯銆嶏級锛涘崱涓嶅惈杩欎袱绔犲垯娓呭崟涓虹┖ 鈫?閫€鍥為€氱敤娴佺▼銆?- 娲惧崟鍞ら啋璇嚜鍔ㄥ甫鍑哄鏌ヨ鍒欙紱edit鍙皟鏁存竻鍗曪紱**闈?review 浠诲姟闆惰涓哄彉鏇?*銆?
- 婕忓垽浠讳綍涓€鏉?鈫?
鍙樻洿锛氬鎴风瑙掕壊娓呭崟鎳掑姞杞斤紙鍖呬綋 -48%锛?
lib/client.js涓嶅啀鍐呭祵瑙掕壊绮剧畝娓呭崟锛?*339 KB 鈫?175.5 KB锛?163 KB / -48%锛?*锛堝疄娴嬪唴宓屽潡鍗犲師鍖呬綋 46%锛夈€?- 鏂板瀹夸富绔偣GET /agents-pixe/roles/index鈫?{ ok, version, data }锛坴ersion = 鏂囦欢mtime:size锛夈€?瀹夸富鏄敮涓€鐪熺浉婧? 鈫?瀹㈡埛绔竻鍗曟案涓嶄笌roles-full.json婕傜Щ锛堟棫鏂规鏄?鏋勫缓鏈熷鍒朵竴浠?锛屽崌绾у悗鍙兘涓嶅悓姝ワ級銆?- 瀹㈡埛绔?ROLES_STORE锛?*缂撳瓨浼樺厛 + 24h TTL 鐗堟湰鍖栨牎楠?*锛堝懡涓嵆闆惰姹傦紱澶辫触缁х画鐢ㄧ紦瀛橈級锛沗RolesLoadHint鎻愪緵銆屽姞杞戒腑锛忓け璐?+ 閲嶈瘯銆峌I锛沗RolePicker涓?WorkingRolesView璁㈤槄 store 鑷姩閲嶆覆鏌撱€?- 瀹夊叏涓嶅彉寮忥紙鏈夋祴璇曢攣姝伙級锛氭竻鍗曟湭鍔犺浇瀹屾垚鍓嶏紝keyKnown(k)鎶娿€屾煡涓嶅埌銆嶈涓?*鍚堟硶**锛屼笉鍓灊鐢ㄦ埛宸查€夎鑹?鈥斺€?鍚﹀垯鎳掑姞杞戒細鍦ㄩ灞忚鍒犻€変汉骞跺啓鍥?localStorage銆?-lib/roles.json鍔犲叆鍙戝竷files锛堢鐐瑰湪杩愯鏃惰瀹冿級锛屽啋鐑熸祴璇曞悓姝ユ柇瑷€銆?
瀵归綈杩涘害锛歅1 鍓╀綑椤?*琚涓诲绾︽尅浣?*锛堝彇璇侊級
ctx.tools.guard 鎵ц鏈熸嫆缁濊秺鐣岀紪杈?/ agentTeams.tryMembership 浣滅敤鍩熷寲宸ュ叿锛?*褰撳墠鍋氫笉鍒?*銆傚彇璇侊細subagents.startContinuable 鍙繑鍥?{ childId, messageId }锛坄@deepseek-ai/dsh-subagent@0.2.0-rc.2/lib/index.js:1710锛夛紝**涓嶆毚闇叉垚鍛?live Agent**锛屽洜姝ゆ棤娉曞鎴愬憳鍋?agent.ctx.tools.guard/register锛沗listChildren 杩斿洖鐨勪篃鍙槸瑙嗗浘锛坕d/activity/label/鈥︼級锛屾病鏈?Agent銆?*鐜版湁鏇夸唬**锛氬崗璁眰闂ㄧ锛?.2.5 鍐欏煙 + 0.2.6 涓撲笟闂ㄧ锛岄兘涓嶅彲缁曡繃锛? 鎴愬憳 toolFilter 瑁佸壀锛?.2.3锛夈€傜瓑瀹夸富寮€鏀俱€宑hildId 鈫?live Agent銆嶅啀琛ユ墽琛屾湡鎷︽埅銆?
娴嬭瘯
鏂板 test/professional-gate.test.mjs锛?1 椤癸細娓呭崟褰掍竴/鍒ゅ畾瑙f瀽涓夋€?鐪熷疄鍗℃娊鏉$洰/婕忓垽涓庤秺鐣屽垽瀹氳鎷?pass 涓?fail 鍒嗘祦/fail 鑷姩鎵撳洖/琚鏈畬鎴愭嫆缁濆嚭缁撹/review_of 涓嶅瓨鍦?闈?review 闆跺彉鏇?edit 鏀规竻鍗曞悗鏃у垽瀹氳鎷掞級+ test/client-lazy-roles.test.mjs锛? 椤癸細鍖呬綋涓庡唴瀹逛笉鍐嶅唴宓屾竻鍗?prelude 绌哄3涓?build 涓嶅啀娉ㄥ叆/涓嶅壀鏋濆畨鍏ㄤ笉鍙樺紡/缂撳瓨绛栫暐/瀹夸富绔偣杩斿洖鍏ㄩ噺娓呭崟/files 鍚?roles.json锛夈€?鍏ㄥ 146/146 閫氳繃銆?
v0.2.0
正式版 0.2.0(结束 0.1.9-rc.1/2/3 预发布验证线)。
本版相对 npm latest(0.1.4)的累计变更:
- host spec 对齐:findPreset / memberOf / 29 个 nameEn / runEngineTeam / 6 引擎工具 + /teams 斜杠命令
- 客户端:团队活动主视图挂 shell.overlay;rc.2 起抽屉式(宽高 100% 跟随浮层)
- 真·团队引擎:halt/resume + verdict 质量闸徽章 + 任务 CRUD
- 微优化:editorconfig + npm run check + stale closure 修
- 调试可见性:host 持久化路径 console.error / listModelCatalog console.warn / engine console.warn
- 文档:usage.md 第 8 章『如何唤醒团队面板』、agent-teams-analysis.md §2 全栈拓扑 mermaid 图
验证:78/78 测试全过;npm install agent-teams-pixel@0.2.0 直接拉到 latest。
v0.1.9-rc.3
测试预发布 rc.3:/agent-teams 命令重命名为 /teams(注册名 + 测试断言 + 代码注释),docs/usage.md 新增第 8 章『如何唤醒团队面板』列出 4 种入口(/teams 命令 / 标题栏 🤝 团队 / 设置区按钮 / 抽屉×关闭)。
v0.1.9-rc.2
测试预发布 rc.2:团队面板改抽屉式(浮层内顶部下拉,宽高 100% 跟随浮层尺寸)。相对 rc.1 的唯一改动。
v0.1.9-rc.1
测试预发布:spec 对齐(findPreset / memberOf / 29 个 nameEn / runEngineTeam / 6 引擎工具 + /agent-teams)+ team 面板挂 shell.overlay + halt/resume/verdict/任务 CRUD + editorconfig。完整说明见 docs/agent-teams-analysis.md。
v0.1.13-test (host endpoint 404 fix — real root cause)
v0.1.13-test — host endpoint 404 fix (real root cause)
Root cause
shell.overlay and conversation.view occupants were both confirmed mounted
(agent-teams-pixel-office active, agent-teams-pixel-roles active), yet the
UI looked empty because every /plugins/agent-teams-pixel/* host endpoint
returned 404. Tested live: http://127.0.0.1:5399/plugins/agent-teams-pixel/roles
→ 404.
Why: the host side registers those routes inside applyPixelHostLayer → tryRegister(), which reads the workspace registry through
WORKSPACE_KEYS = ['workspaces', 'workspace']. The real dsh service key is
workspaceRegistry (confirmed via the host Service catalog). tryRegister
never found it, returned false, and registered none of the routes — so
the client bundle loaded, the components mounted, but their data fetches (roles
/ state / team) all 404'd. That is the "空空如也": mount OK, data missing.
Changes
pixel-integration.tsWORKSPACE_KEYS→['workspaceRegistry', 'workspaces', 'workspace']
(the first key now matches the live service;index.tsalready used the
correct['workspaceRegistry', 'workspace']).- Floater defaults to expanded.
collapseddefault flipped fromtrueto
falsein both the client state initializer and the host settings base, so
the pixel canvas + team list + action buttons are visible on first open
instead of a bare title bar.
Install
gh release download v0.1.13-test --repo EternalNight996/agent-teams-pixel
dsh plugin --profile web add agent-teams-pixel-0.1.13-test.tgz
# restart dsh-desktop (a full restart is required — the host registers routes
# at apply() time, and the key fix only takes effect on a fresh boot)Verify
After restart, open http://127.0.0.1:<port>/plugins/agent-teams-pixel/roles
in the browser — it should now return the JSON role catalog instead of 404.
v0.1.12-test (fix client bundle abort)
v0.1.12-test — fix client bundle abort (empty floater + empty roles tab)
Root cause
The client bundle declared ctx.uiConversation in its inject array. The
dsh web client does not expose uiConversation as a cordis service (the
Slot tree is driven by conversation.* slots, not that service). Injecting a
missing service makes cordis throw during client activation, which aborted
the whole bundle — so neither the working-roles tab nor the pixel-office
floater mounted. That is why the UI showed "空空如也" (both widgets empty)
while dsh itself booted fine.
Confirmed via the live client Service catalog:
slots✓ presentsessions✓ presentlocale✓ presentuiConversation✗ absent
Change
export const inject = ['slots', 'sessions', 'locale']—uiConversation
removed (it was an orphan copied from upstreamdsh-agent-teams; the code
never used it).settingsScopestays out of inject (degrades to defaults).
Install
gh release download v0.1.12-test --repo EternalNight996/agent-teams-pixel
dsh plugin --profile web add agent-teams-pixel-0.1.12-test.tgz
# if cordis patch not auto-merged, append to ~/.dsh/profiles/web/cordis.patch.yml:
# - id: agent-teams-pixel
# config:
# stateDir: .agent-teams
# memberProvider: spawn
# rolesSource: bundled
# - id: ui-agent-teams-pixelExpected
After restart, the working-roles tab renders the 508-role grid and the
pixel-office floater renders with the team list + canvas + 申请增配 button.
v0.1.11-test (active-session resolve fix)
v0.1.11-test — active-session resolve fix
What changed
sessionSnapshot.currentfallback toitems[0]. The dsh
SessionListSnapshot.currentis masked toundefinedwhenever the active
session is a subagent child or otherwise not in the plain sidebar list
(see the type doc: "masked to undefined while its session is off the
list"). That made➕ 申请增配,🚀 一键组队and↻ 恢复运行all report
"没有活动会话" even when the user was clearly in a conversation. Both the
floater and the working-roles tab now fall back to the most recently
listed session.- Three error messages now distinguish the two failure modes so the
operator knows what to fix instead of a dead-end alert:items.length === 0→ "请在 DSH 侧栏新建/选中一个会话"- items non-empty but no
current→ "请在 DSH 侧栏选中你要让船长操作的会话"
Install (this build)
gh release download v0.1.11-test --repo EternalNight996/agent-teams-pixel
dsh plugin --profile web add agent-teams-pixel-0.1.11-test.tgz
# if the cordis patch is not auto-merged, append to ~/.dsh/profiles/web/cordis.patch.yml:
# - id: agent-teams-pixel
# config:
# stateDir: .agent-teams
# memberProvider: spawn
# rolesSource: bundled
# - id: ui-agent-teams-pixelExpected
➕ 申请增配posts to/plugins/agent-teams-pixel/request-helpwith the
resolved session id, and the floater alerts "已向船长发送「人手不足」请求。"
(or the HTTP-status variant).- If the sidebar truly has no session, the button now tells the user to
create / select one rather than a bare "没有活动会话".