# Changelog ## 1.2.0 手机端更像一个随手可用的工作台:新任务更清爽,旧会话更好找,连接情况也更明白。 - 首页只保留新建任务;最近会话、搜索、归档和工作区统一收进左上角 ☰ 的左侧抽屉。 - 全屏聊天加入可见返回、会话状态与独立输入区,模型、思考强度和会话模式改用适合触屏的底部选择器。 - 修复键盘与焦点、弹层返回、流式 DOM、历史阅读位置、慢请求跨会话、发送失败后的草稿与附件保留。 - 新增「连接设备」:活跃配对会话数、最近请求时间、无活动与手动断开状态;只展示本次运行的浏览器会话,不冒充完整历史设备库。 - 保留图片/文件、审批/提问、队列、历史分页、会话管理和公网隧道能力。 - README 提供中文和英文,加入真实手机与设置截图,重新梳理下载、安装和第一次连接。 - 自动化验证:21 个 Node 测试文件、228 条通过;真实 Chrome 移动交互验收 24/24 通过。Android / iOS 真机与真实 Host 全量回归仍需继续验证。 ## 1.1.0 手机端向 DSH 桌面能力看齐。 - 导航改为左上角 ☰ 打开的共用左侧抽屉,集中工作区切换、新建任务、搜索、最近 / 已归档会话与连接状态。首页默认呈现纯净的新建任务状态,不自动打开最近聊天、不展示最近会话列表;发送前不创建会话,输入后直接创建并发送首条消息,再进入带独立会话头部的全屏聊天。模型、思考强度与会话模式从输入卡设置,工作区可从抽屉或首页输入卡下方切换;品牌资源换成 DeepSeek 鲸鱼图标(浅色 / 深色两版)。 - 手机主界面拆为原生 HTML / CSS / ESM,由构建流程复制到 `lib/mobile/`;静态资源经鉴权与文件名白名单提供,主页面脚本限制为同源 CSP,重连与连接密码页独立保留。底部选择器、抽屉与弹层支持焦点约束、背景 inert 和返回关闭;消息按稳定 ID 更新节点,底部输入区随内容与可视视口自然布局,不依赖外部前端框架。 - 图片:相册多选、拍照、粘贴,canvas 压缩(长边 1568、JPEG 0.85),单条最多 6 个附件,托盘支持删除与失败重试,纯图片消息可用;历史图片经 `/api/attachment` 回读并支持全屏查看。 - 工具审批:`approval/request` 同步到手机,可「允许一次」或「拒绝」;断线即失效,重复应答返回 409。 - 历史分页:`session.history` 支持 `beforeSeq`,消息顶部「加载更早」按 `seq` 去重并保持滚动位置。 - 运行中队列与 steer:生成中默认排队,队列 dock 支持编辑 / 移除 / 打断;空闲发送保持原行为。 - 会话管理:重命名、归档 / 取消归档、按标题与内容搜索(provider 不可用时回退本地过滤)。 - 文件上传:任意文件先换 `receiptId` 再随消息发送,历史显示文件卡片;手机端暂不支持回读文件内容。 - PWA 基础:`manifest.webmanifest` 与 192 / 512 / 180 图标,可添加到主屏幕;Service Worker 与通知需要 HTTPS,局域网 HTTP 不支持。 - 「连接手机」顶部显示活跃配对会话数,新增可折叠「连接设备」列表,区分当前活跃、最近无活动和手动断开的浏览器会话,展示配对与最近请求时间;只读展示本次运行记录,不暴露 Cookie,不恢复 App 设备台账。 - Node 自动化测试为 21 个文件、228 条;新增 `test:browser`,使用本机 Chrome 跑 24 个移动交互验收用例,并覆盖静态资源、导航与前端模块。 ## 1.0.0 浏览器-only 大版本。AI-HUB 兼容线停在 0.3.1。 - 移除 AI-HUB App、`/api/mobile/*`、设备凭据、设备台账、离线归属地库和 `dsh-mobile-plugin` 运行依赖。 - 移除独立的 `/desktop` 配对页和桌面 Cookie;连接手机只保留设置面板一个入口。 - 设置面板重做为“状态 + 连接方式 + 二维码 + 连接密码 + 高级设置”结构:同一 Wi-Fi / 任意网络分段控件有明确选中态,连接状态只保留一处,固定域名、证书、帮助与排障收进可折叠的高级设置;窄屏纵向排列且不再横向溢出。 - 手机页默认落在会话列表,不再自动进入最近会话;聊天页新增会话标题、固定会话头、44px 返回键和底部安全区。 - 手机页移除禁止缩放的 viewport 设置,统一浅色 muted 对比度、触控尺寸和中文文案(思考过程、预设、正在处理)。 - 浏览器会话继续只认服务端 Cookie;公网入口和带转发头的请求一律校验 6 位连接密码。 - 保留局域网直连、Cloudflare/Pinggy 临时隧道、固定域名、Let's Encrypt 证书和本机配置数据。 ## 0.3.1 - 修复公网配对可被改写 Host 降级为局域网、从而跳过连接密码的问题;带转发头或配置了固定公网域名时一律按公网入口校验。 - 修复同 IP 任意 Cookie 可被提升为浏览器会话、绕过 30 天绝对过期的问题;删除按来源 IP 免 Cookie 放行。 - 修复 AI-HUB 设备凭据吊销后仍可用「伪造 `dshc_` + 旧 Bearer」绕过的问题;只接受本机签发且仍有效的设备凭据。 - 移动 API 不可用时,设备移除返回 503 并保留台账;AI-HUB 配对路由不再挂起。 - 修复桌面页隧道错误文本未转义的问题,并统一在线状态与连接模式切换判定。 - 设置面板轮询改为单飞请求并加超时,启动失败时可直接看到错误和重试入口。 ## 0.3.0 - AI-HUB 二维码改用一次性配对码:5 分钟有效、成功配对一次即作废,二维码不再包含固定连接密码。 - 手动配对 AI-HUB 仍使用固定 6 位密码;浏览器公网入口的固定密码不变。 - AI-HUB 移动 API 不可用时,面板显示“AI-HUB 不可用”和具体原因,不再一直显示“二维码生成中”。 - 新增一次性码单次使用、固定密码回退、二维码有效期文案的回归测试。 ## 0.2.3 - 统一版权主体为 `winlin926`,LICENSE 与 package.json.author 一致。 - README 增加真机测试状态:Windows + Android 已实测,iOS 未实测。 - 不包含功能变更;已配对设备和设置不受影响。 ## 0.2.2 - 修复「移除设备」报错 `mobileDevices is not defined`:设备台账现在会真正从本机删除,并补回归测试。 - 浏览器「已连接」状态改为按最近 30 秒内的真实请求判断;关闭手机页面后不再长期显示已连接。 - 设备移除仍先吊销设备凭据,再删除本机台账。 ## 0.2.1 首个公开版本。 - 手机浏览器扫码继续 DSH 会话,支持会话列表、新建、切换模型、发送、取消和提问确认。 - AI-HUB App 与浏览器共用同一个地址和 6 位连接密码;局域网支持扫码配对。 - 公网入口:Cloudflare 快速隧道、pinggy 兜底、固定域名 + Let's Encrypt 证书签发与自动续期。 - 设置面板重做:状态头 + 连接卡(浏览器 / AI-HUB 标签页)+ 公网入口与设备并排 + 折叠诊断,桌面默认高度约 500px,360px 宽无横向溢出。 - 连接密码并入连接卡,支持行内修改;公网地址只接受 HTTPS。 - 管理接口增加回环 Host 校验,阻止 DNS rebinding 读取配对信息。 - 设备移除需要二次确认;浏览器会话与 AI-HUB 设备在线状态分开显示。 - AI-HUB 移动 API 只接受可吊销的设备凭据,拒绝无状态 Bearer token;设备自助吊销端点改为真正吊销。 - AI-HUB 配对增加不依赖请求头的全局失败预算,10 次失败后锁定 10 分钟。 - 浏览器会话 Cookie 有效期从 1 年缩短为 30 天。 - 公网入口改为按 Host 判定,反向代理回源到局域网地址时仍强制 6 位密码。 - 服务端浏览器会话 30 天绝对过期;同 IP 免 Cookie 的交接窗口收窄为 10 分钟。 - Windows 上证书私钥写入后自动收紧 ACL,移除其他本机账户的继承访问。 - AI-HUB 配对页增加二维码含密码的防外发提示。