Commit Graph
39 Commits
Author SHA1 Message Date
ypshidifu cd25c0a3d0 tui.js:进厂补恢复出厂(格式化)入口、整厂停用改单条 disable_all、flush 改常驻轮询热重载 2026-10-19 18:38:40 +08:00
ypshidifu 0001fc7d64 tui.js:模型操作入队后等 daemon flush 落盘再执行 location.reload 热重载 2026-10-19 16:59:21 +08:00
ypshidifu 7ab1b9a9b0 tui.js:/manage 精确匹配替换前缀匹配,选厂后加单模型/整厂粒度层 2026-10-19 12:34:02 +08:00
ypshidifu 38c2b20e3d tui.js:修 /manage catalog 二次解包——models-dev:catalog 外层是 {updatedAt,digest,body},body 才是 provider JSON;此前只解一层只拿到3个key致前缀匹配恒空(日志实证 catalogProviders=3 命中[]) 2026-10-19 12:18:37 +08:00
ypshidifu aa9b3281f1 tui.js:/manage 加全链路诊断日志(来源A config、来源B credentials+命中、最终列表),便于实证排查内置 provider 是否出现 2026-10-19 12:02:56 +08:00
youpaishidifu 8e07bd8af8 tui.js:/manage 来源B改读 credential 表(active=1 的 integration_id)前缀匹配 catalog,能管到内置 /connect 的 provider(如 Xiaomi 全家族) 2026-10-19 11:46:33 +08:00
youpaishidifu 2f64df6a9b tui.js:/manage 来源B改只列已连接 catalog provider(env 任一 key 在 process.env),不再全量拉232个 2026-10-19 11:01:11 +08:00
youpaishidifu 90eb09b2a4 tui.js:/manage 改为只显示已连接 provider(读 opencode.json provider 字段),不再拉全量 232 个 2026-10-19 10:48:58 +08:00
youpaishidifu fd8cfa8887 tui.js:修 /manage 面板 dialog.select options 字段 label→title(label 不识别→undefined.length 崩 OC) 2026-10-19 10:42:30 +08:00
youpaishidifu 043fd55ae1 tui.js:修 mmReadCatalog Windows GBK 编码坑(sys.stdout.buffer.write + PYTHONUTF8) 2026-10-19 10:36:51 +08:00
youpaishidifu 250e71c48c tui.js:修 /manage mmReadCatalog Python 单行语法错误(if row: import sys 非法)→ 提前 import sys 2026-10-19 10:25:32 +08:00
youpaishidifu b7537988f9 tui.js:新增 /manage 模型管理面板(/manage 别名 managent);sync_wsl.py 加 model-manager 项;.gitignore 拉黑 model-manager/ 2026-10-19 10:13:28 +08:00
ypshidifu fcf188bf28 oc-retry-guard 插件(严重错误自动重试·事不过三2分钟周期)+ 会话面板 v11 排版(日期降序+sessionID)
- 新增 oc-retry-guard.ts:http.response 钩子读 body 识别 finish reason 类错误,
  命中后按 2分钟窗口/最多3次 计数,自动用缓存 body 追加 nudge 重发同端点并替换 response;
  超 3 次或超 120s 自动归零,事不过三后 STOP。
- tui.js 会话选择器 v11:从按项目分组改为全局按 time.updated 降序,title 末尾加 [sessionID前8位]。
- sync_wsl.py ITEMS 增加 oc-retry-guard 同步项。
2026-10-19 09:24:20 +08:00
ypshidifu 2f91a612bb 新增 WSL 插件批量同步工具 tools/sync_wsl.py;TUI 插件为 mcpcfg.txt 增加实时监测与丢失自动重建防御 2026-10-12 19:42:44 +08:00
ypshidifu 4431ed8335 移除调试文件和目录 2026-09-24 12:43:18 +08:00
ypshidifu 1ba3ad6bd3 TUI插件MCP文案去误导:reload成功即报成功,推送失败仅留log不进结果toast 2026-09-24 12:39:47 +08:00
ypshidifu 0f099c88d0 TUI插件v10:MCP推送兜底改GET+merge补shell三跳,README同步安装路径与快捷键 2026-09-23 17:50:26 +08:00
ypshidifu 6e0ed1743a TUI插件v9:修复dirname导入缺失致自愈静默失效,新增reload前mcp配置推送兜底(双保险)
- 补回 node:path 的 dirname 导入:healShadowPath 引用它,缺导入时
  ReferenceError 被自身 catch 吞掉,影子路径自愈静默失效
- 新增 pushMcpConfig:swap+flag 之后、reload 之前把活配置 mcp 推进
  运行中 OC(SDK config.update → body 形参 → experimental 三连),
  推送成功+reload 双保险,失败降级原单通道
- toast 区分双保险/单通道文案;log/toast 版本标识升级 v9
- 单测新增 S0 回归断言:源文件 path 导入必须含 dirname
  (prelude 复制的导入曾掩盖源码缺失,15/15 假绿 -> 16/16)
2026-09-23 15:31:55 +08:00
ypshidifu 20a3b487fd TUI插件:mcpcfg键值化+路径自愈+命令无条件注册+mcp.on.flag防归位;附readMcpCfg单测15例 2026-09-23 13:47:10 +08:00
ypshidifu 831e3de8d8 MCP 配置对调降级方案:热开关 + reload 热更新 + 命令全面中文化
- 新增 mcpcfg.txt 三行配置(模式/含MCP路径/安静路径),小白只改 txt
- 模式语义:自动=启动归位+命令可用+server插件可切换;手动=仅 /mcpon /mcpoff;关闭=全部禁用
- /mcpon /mcpoff:对调两份配置后调用 location.reload 热重载,MCP 立即生效
- auto 模式启动自动把含 MCP 的活配置归位为安静版(6 秒后重载),保持零 toast 零报错
- enableMcp 加门控:活配置不含 mcp 时跳过 90s 重试 connect,避免 404 空转
- 全部命令标题/描述/dialog/toast 改为简体中文
- .gitignore 排除 ai-mcp/ 与 wsl-round-mcp/ 两个独立子仓库
2026-09-23 12:05:16 +08:00
ypshidifu 3c0a8971a6 v7: MCP字段修正——真正生效的开关是disabled不是enabled(会被server schema剥掉);enableMcp改90s重试(启动4~5s location才就绪,过早调用404) 2026-09-23 10:12:41 +08:00
ypshidifu b74d87cfbb v6: MCP改config禁用+插件mcp.connect运行时启用;skill目录5s轮询热加载兜底新增目录盲区 2026-09-23 00:05:43 +08:00
ypshidifu c1cb45bed4 跨平台改造:LOG_DIR改用os.homedir(),v5同步至WSL版(/root/.config/opencode)修复WSL插件failed 2026-09-22 23:00:15 +08:00
ypshidifu d6048da95f v5: 按官方 opencode.btw 模板注册命令 — ui.slot({append:app,render}) + keymap.layer(()=>({mode,commands})),恢复全功能(sessions-all slash命令+ctrl+o+选择器+MCP toast拦截) 2026-09-22 22:21:56 +08:00
ypshidifu 92fee7511f v4: 直接调用 ui.slot(component) 注册组件,在组件渲染阶段调用 keymap.layer 注册命令 2026-09-22 22:04:02 +08:00
ypshidifu 6d59c24126 v3: 尝试通过ui.slot注册组件来获取Keymap Provider上下文,探索在SolidJS渲染阶段注册命令的可行性 2026-09-22 21:50:57 +08:00
ypshidifu f66cde6494 更新探测版插件:探索 keymap.commands 和 dispatch 2026-09-22 21:29:34 +08:00
ypshidifu ba26fd512a 更新探测版插件:添加延时避免 toast 被覆盖 2026-09-22 21:23:54 +08:00
ypshidifu 3d8f093d7e 更新探测版插件:尝试 keymap.layer 注册命令 2026-09-22 21:13:07 +08:00
ypshidifu 459f038f8e 更新探测版插件:将探测结果写入日志文件 2026-09-22 21:02:06 +08:00
ypshidifu fd1a475abc 更新探测版插件:更详细的 context 结构探测 2026-09-22 20:55:42 +08:00
ypshidifu ec7b461147 更新探测版插件:尝试 context.command.register 注册命令 2026-09-22 20:48:33 +08:00
ypshidifu 9f17ac9936 修复: keymap.layer → keymap.registerLayer(方法名修正) 2026-09-22 20:00:28 +08:00
ypshidifu 057e698f22 测试隔离版: keymap.layer commands(无 bindings、无 data.on) 2026-09-22 17:49:05 +08:00
ypshidifu 028af01b3d v2: 加回全部功能 - session列表/快捷键/MCP拦截 2026-09-22 15:58:26 +08:00
ypshidifu 952b31127c v2: 简化 oc-session-all 为最小化版本测试加载 2026-09-22 15:37:54 +08:00
ypshidifu a5a8c5e011 v2: 将 oc-session-all 从 v1 格式转为 v2 Plugin.define 格式
- 使用 import { Plugin } from "@opencode/plugin/tui"
- 使用 Plugin.define({ id, setup(context) }) 格式
- api.* 调用全部替换为 context.*: api.event.on → context.data.on, api.ui.toast → context.ui.toast.show, api.ui.dialog.* → context.ui.dialog.*, api.command.register + api.keymap.registerLayer 合并为 context.keymap.layer({commands, bindings})
- package.json exports 添加 ./tui 入口点,engines.opencode 升级为 >=2.0.0
- 已通过 minimal-v2-test 验证 v2 格式可正确加载
2026-09-22 15:19:14 +08:00
ypshidifu 47c668f446 添加调试版本插件,修改gitignore允许提交js文件 2026-09-22 11:02:38 +08:00
ypshidifu 6c4d97362f 整合: 将 tui-plugins 目录移入项目根目录,统一代码管理 2026-09-21 19:31:08 +08:00