文档库:目录改为编号制(01-规范/02-架构设计/03-数据库/04-调整方案/
05-交接单/06-ops/07-scripts/08-skills/09-archive),顶层散文件归入 01-规范/;
INDEX.md 与 docs-manifest.json 重刷(档案 146 篇);旧目录名引用全量对齐。
IM 线:src/im/**(SDK / hub / store / presence / ws / gateway-token)、
src/web/routes/im.ts、src/db/plugin-data/**、src/supervisor/plugin-assembly.ts
及对应 test/**。
插件线:poc/{im-agent-bridge,im-connection-gateway,im-conversation-tabs,
business-plugins-im,carbon-mcp-probe}、src/web/routes/{sessions,overlay-device}.ts、
src/net/relay/{device-grant,instance-credential}.ts。
仓库卫生:清出 40 个历史误入库 / 已改名文件(34 个交接单归档 + 6 个旧结构,
本地均有副本);dsh-server-docs/.gitignore 补 tmp/;交接单不入库(政策)。
This commit is contained in:
1 parent
3d8f50e366
commit
e6207aa691
239 files changed
+34477
-14633
No files matched your search
@@ -0,0 +1,13 @@
|
||||
// @dsh-local/im-conversation-tabs — bundle patch (host row + client half)
|
||||
//
|
||||
// E 单主交付:**会话区 tab 接管**(落点 C′,2026-09-23 用户拍板)。
|
||||
// host 面:只做加载标记(apply 不用任何 ctx 服务)⇒ 无 inject(defensive)。
|
||||
// client 面:`lib/client.js` 由 `dsh.client` 声明注入(见 package.json 的
|
||||
// `dsh.client.platform='web'`)—— 会话区接管全在这半边。
|
||||
//
|
||||
// ⛔ 本插件**不改官方 dsh 主程序 / client bundle / 缓存**(R2):走的全是
|
||||
// 官方公开扩展面(`data-slot` 可寻址 DOM 槽 + client bundle 加载机制)。
|
||||
|
||||
- insert:
|
||||
- id: im-conversation-tabs
|
||||
name: '@dsh-local/im-conversation-tabs'
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* @dsh-local/im-conversation-tabs — host 半边(E 单)。
|
||||
*
|
||||
* ## 为什么 host 面几乎为空
|
||||
* 本插件的全部交付在**客户端**(会话区 tab 接管)。host 行只需要存在于
|
||||
* profile 的 cordis 树里,客户端半边才会被 dsh 的 client bundle 加载器加载
|
||||
* (`package.json` 的 `dsh.client` 字段声明注入面)。
|
||||
*
|
||||
* ⛔ host 面**不注册任何 ctx 服务**、⛔ 不碰 DB、⛔ 不碰实例文件系统 ——
|
||||
* 房间数据一律由客户端走**同源相对路径** `/api/im/**` 取(见 lib/client.js)。
|
||||
* ⇒ 因此 `cordis.patch.yml` 里本行**不带 `inject`**(apply 不用任何服务)。
|
||||
*
|
||||
* @module @dsh-local/im-conversation-tabs
|
||||
*/
|
||||
|
||||
/** apply 只做一件事:留下一条"已加载"的标记(便于运维排查 profile 是否带上了本插件)。 */
|
||||
export function apply(ctx) {
|
||||
const logger = ctx?.logger ?? ctx?.log
|
||||
if (logger !== undefined && typeof logger.info === 'function') {
|
||||
logger.info({ plugin: '@dsh-local/im-conversation-tabs' }, 'im_conversation_tabs_host_loaded')
|
||||
}
|
||||
}
|
||||
|
||||
/** 无服务依赖(见模块头)。 */
|
||||
export const inject = []
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"name": "@dsh-local/im-conversation-tabs",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"description": "E 单(IM群组-会话界面UI)主交付:接管 dsh 会话区 [data-slot=\"main.conversation\"],顶部渲染 tab 行(dsh 会话 / 群组会话 1..5)。落点 = C′(2026-09-23 用户拍板)。保活 = display:none;群组 tab 上限 5;新建群组入口在业务插件内;IM 数据走同源相对路径 /api/im/**。",
|
||||
"type": "module",
|
||||
"main": "lib/index.js",
|
||||
"exports": {
|
||||
".": "./lib/index.js",
|
||||
"./client": "./lib/client.js"
|
||||
},
|
||||
"dsh": {
|
||||
"bundle": {
|
||||
"patch": "./cordis.patch.yml"
|
||||
},
|
||||
"client": {
|
||||
"platform": "web",
|
||||
"inject": [
|
||||
"@deepseek-ai/dsh-client-ui-settings-general"
|
||||
]
|
||||
}
|
||||
},
|
||||
"dependencies": {},
|
||||
"license": "MIT"
|
||||
}
|
||||
Reference in new issue
Block a user