Skip to content

更新日志

2026-08-26(安全加固第三轮)

  • AI 工具上下文归属校验(High)wants_context 的对话上下文现在只包含 调用者本人会话的内容——平台按会话归属校验,别人的 session_id 拿不到任何 上下文(键缺失,不区分"不存在"与"不是你的")。
  • 异步工具生命周期:用户中断对话后挂起表不再残留(finally 全路径清理); 已取消的调用回填结果返回 404 而非误报"已送达"。
  • /open/tools 对称性:更新/删除补齐 ai_tools scope 检查与限流。
  • SDK 1.4.1:markdown 代码块占位符改用 NUL 哨兵,修复正文中 " 0 " 这类字面量与占位符碰撞导致的内容错位/重复(经实证检验非 XSS, 转义管线对属性注入/scheme 混淆依然安全)。

2026-08-26(SDK 1.4.0:IndexedDB 会话存储)

  • 新增 createChatStore:mountChat 持久化的大空间选项——IndexedDB(配额 数百 MB 级,对比 localStorage ~5MB),零依赖、多会话按 key 隔离、自带 5MB/2000 条预算裁剪、异步排队写入、隐私模式等不可用环境自动降级。 存储选型指南:IndexedDB(起步)→ 自己的后端(跨设备)→ localStorage (仅轻量)。

2026-08-26(SDK 1.3.1:持久化防炸)

  • mountChat 会话持久化的三层保护:存档载荷尺寸上限 persistMaxChars (默认 256KB,超限自动从最旧一轮裁起)、内存历史上限 historyLimit (默认 200 条,恢复存档同样生效)、onHistoryChange 里的存储异常吞掉 (localStorage ~5MB 写满不再打断聊天)。文档把后端存储立为推荐做法。

2026-08-26(SDK 1.3.0 + 工具异步模式)

  • mountChat 会话持久化(SDK 1.3.0)initialHistory 恢复 + onHistoryChange 存档,两行接上自己的存储实现跨刷新续聊。
  • AI 工具异步模式:回调秒回 {"jlt_async":true,"wait_sec":≤300},平台 挂起等待,应用处理完经 POST /open/tools/result 回填(call_id 绑定应用, 跨应用回填被拒;超时转 error 可重试)——慢任务不再占用同步等待上限。

2026-08-26(SDK 1.2.0 + AI 工具深化)

  • AI 对话组件(SDK 1.2.0)mountChat 一行挂载——消息列表/流式逐字 渲染/停止/重试/代码块加粗链接/深浅色自适应,配无状态后端中继契约, 5 分钟接入
  • AI 工具性能:工具清单按组织集合 10s 进程内缓存(变更即时失效), 成员对话的每请求解析开销≈0。
  • AI 工具自由度:回调可附带最近对话上下文wants_context,只读 参考);回调等待上限 60→120 秒;新增开放 API /open/tools 自管理工具(CI/清单同步,免管理员 UI)。

2026-08-26(安全加固第二轮)

  • 本地能力确认强化——确认弹窗把解析后的 协议://主机:端口 单独成行展示 (不再展示可能隐藏真实主机的 URL 前缀);拒绝含 user@host 的目标; localFetch 不跟随重定向(30x 直接失败,防同意后被改道到内网); browserExtract 导航后校验最终地址与确认地址同源,被改道即中止。
  • 数据库只读加固——只读关键词补齐 INTO/OUTFILE/INFILE/DUMPFILE/ LOAD_FILE(SELECT 变体的文件读写通道);MySQL 会话级只读事务 (SET SESSION TRANSACTION READ ONLY),SET 失败记日志不再静默吞。

2026-08-25(新能力:本地能力,JSAPI v1.3 / SDK 1.1.0)

  • 本地能力(local scope):应用页面可在用户逐次确认下使用其电脑的 抓取能力——jlt.localFetch(本机网络抓正文,可访问内网)与 jlt.browserExtract(隔离无头浏览器提取,不带用户登录态)。仅桌面端; 授权为「组织管理员开 scope + 用户每次确认」双层。

2026-08-25(新能力:AI 工具 + 数据库)

  • AI 工具(ai_tools:应用可给组织成员的 AI 助手注册自定义工具—— 声明名称/描述/JSON Schema/回调地址,模型调用时平台签名 POST 到你的后端, 结果回填对话。协议与可见性见给 AI 注册工具
  • 数据库(db:应用设置里绑定外部数据库(配置人自建/协作/市场安装的均可), 开放 API 提供绑定清单、表结构、只读查询(GET /db/databasesGET /db/{id}/tables…POST /db/query)——安全边界与用户侧一致:单条 SELECT、禁写关键字、行数上限、语句超时。

2026-08-25(SDK 1.0.0)

  • 新增 db 能力:应用设置里绑定外部数据库(配置人自建/协作/市场安装的均可), 开放 API 提供绑定清单、表结构、只读查询(GET /db/databasesGET /db/{id}/tables…POST /db/query)——安全边界与用户侧一致:单条 SELECT、禁写关键字、行数上限、语句超时。

2026-08-25(SDK 1.0.0)

  • TypeScript SDK 首个版本化发布,可在文档站直接下载: 浏览器 IIFE 包(jltSdk 全局,免构建引入)、npm 离线安装包(tgz)、 类型声明(d.ts),附 sha256 校验;版本目录只进不退,历史见 版本历史

2026-08-25(安全加固)

  • IP 白名单防伪造——来源 IP 判定改为"可信反代感知":仅当连接来自可信 代理网段时才采信 X-Real-IP / X-Forwarded-For 尾跳;直连一律用 socket 对端。伪造 X-Forwarded-For 无法再绕过白名单。
  • 移动端桥接凭证(JSAPI v1.2.1)——壳随 jlt:init 向主框架下发一次性 _bridge_token,SDK 每个请求回带;页面里嵌套的三方 iframe 伪造的桥接 请求将被丢弃(对齐桌面壳的 origin 严格比对)。
  • 回调验证错误收敛——challenge 验证失败不再区分具体环节(可达性/状态码/ 非 JSON),消除借此探测内网的旁路信号;细节只进服务端日志。

2026-08-25(第二轮)

  • 开放 API:组织架构——新增 GET /org/teams(团队树 + 成员数)与 GET /org/teams/{id}/members(团队成员,含团队角色),走 contacts 能力。
  • 服务器 IP 白名单——应用设置可配置出口 IP/CIDR 白名单,非空时所有 /api/open/* 调用(含换 token)只接受白名单来源,防 app_secret 泄露被 任意机器滥用。
  • 事件订阅:手动重投——修好回调端点后,可把已终态失败的投递一键重新排队。
  • AI 流式——POST /ai/completions 支持 stream: true(OpenAI 兼容 SSE)。

2026-08-25(第一轮)

  • JSAPI 交互组件(v1.1)——selectUsers 系统选人组件(免 scope,用户 亲手挑选即授权)、openChat 跳单聊、alert / confirm / toast
  • 事件订阅(webhook)——成员加入/离开、应用被安装/卸载/授权变更时 POST 推送到你的后端:challenge 地址验证、HmacSHA256 签名、30s→2m→10m→1h 退避重试,服务重启不丢。
  • 移动端支持(v1.2)——组织应用可在手机客户端打开(同一份 JSAPI SDK, 自动识别桌面/移动容器);getContext().platform 返回 desktop / mobile
  • 开发者文档站(本站)与 TypeScript SDK(@ai-im/org-app-sdk)发布。

2026-08-25(初始版本)

  • 组织应用上线:注册自建应用(外部 https 网站)、免登(authCode 5 分钟一次性)、 JSAPI 基础能力(ready / getContext / requestAuthCode / setTitle / close)。
  • 开放 API:auth/tokenauth/userorg/membersim/sendai/completions (非流式)、kb/search
  • 能力(scope)逐项授权:contacts / im / ai / kb;免登恒定授予。
  • 应用市场:发布(audience 可见范围)/ 安装 / 安装方单独授权。

机灵兔开放平台 · 组织应用开发者文档