# 1.2.0 发布验收记录 核对日期:2026-10-19。**发布前技术验收已通过,正式发布已获准执行。** 本页保留发布前基线与验收证据;最终公开状态须核对 GitHub Release、npm、官网与实际服务。 客户端、包号与更新说明均为 **1.2.0**,社区构建号 **1.2.0-u1**。 发布前 npm `latest` / GitHub Latest Release 基线为 **1.1.6 / v1.1.6**;官网公开基线为 1.1.6。 ## 来源与版本 | 项目 | 固定来源或当前状态 | |---|---| | 社区集成基线 | `1f93eb0f5fa0bb2efc7746507ca4309366f51761`,dev/main 一致;三平台、安装、浏览器和在线门禁通过 | | 插件候选 | 个人 fork `work/release-1.2.0-preflight`,保留上述 CI 与已验证功能提交的完整历史;准确 SHA 以 [候选 PR #18](https://github.com/liang-today/dsh-liangxiang/pull/18) 的固定 head 与最终提交回执为准 | | 官网候选 | 个人 fork `NiYa193/liang-today.github.io` 的 `work/release-1.2.0-preflight`,提交 `4415861ec134611fce59162338303121561b4ef2`,基于 `0bea6d67bb345ee78f87e5f1ebeeb532e4b438ae`;已推 fork 候选分支,upstream 仅取回且禁止推送;未更新公开 main / Pages | | npm 安装包 | `dsh-liangxiang-1.2.0.tgz`,7 个文件,包含 Host、Client、相对路径 sourcemap、npm 专用 README、MIT 与 bundle patch | | 包 SHA-256 | `8a108bcf6cab8962138e5ace5a76d64814b17a77c162288157aa9434d468c4ae` | | 服务器发布前基线 | `1.1.6-u2` / `396d840`;服务 active、内外健康标识一致,仍为社区软信任模式 | | 数据库 | 只读核查 schema 10、WAL、quick_check=ok、外键异常 0;候选仍为 schema 10,DDL 与现服基线一致 | | DSH | 最新官方源码 `687f282e8625c6b8d11ff58211a90524be2e4317` / `dsh-v0.2.1-rc.2`;发布前复核 CLI 的 npm `latest` / `next` 均为 `0.2.1-rc.2`,与锁定验证基线一致 | 发布前的后端版本差异已核对;正式部署后必须另验部署 SHA、构建号与健康状态。安装包的全新本机验收环境已加载 1.2.0;既有手测 Profile、账本与模拟页面保留。 npm 登录已核对有效,当前账号与包维护者一致,同一候选包的发布预演通过;正式发布时按 registry 要求完成验证,未请求或保存凭据。 上游三平台与隐私检查见 [候选 PR #18](https://github.com/liang-today/dsh-liangxiang/pull/18),以最新 head 结果为准;不能用基线的成功结果代替本次候选。 ## 功能与修复 | 项目 | 最终行为 | |---|---| | 小难梁 | 新梁案有票且梁位 <25% 显出小难梁,25%–<50% 为梁工;旧案、旧档案保留原规则,旧客户端接收兼容展示 | | 默认停靠 | 新安装在首帧前按实际底部账户/设置区保留 8px,兼容两版宿主高度;已有用户位置不覆盖,后续不追随布局 | | 单击与连拍 | 单击经 200ms 判定开合;双击、连拍保持原开关状态,键盘、关闭与 Escape 即时响应 | | 下落短句 | 主面板全程固定;图标旁空白最多三行,顶端对齐、22px 行距;挤出与超时均下沉渐隐 420ms,保留退出空间及亮暗可读性 | | 日终上香 | 默认关闭,案牍整格切开关;DSH 运行时按业务时区 23:59 发一笔普通倾炉,浏览器可关闭,按余额和既有限额尽量上香 | | 方向反馈 | 右键或键盘菜单键只设方向,提示“日终自动倾炉:默认投夯/拉”;不立即投票,也不自动打开开关,详细条件仅悬停/聚焦显示 | | 并发与恢复 | 手动优先,结束后留 2 秒;异步准备后复查,意图先落盘,同 ID 重试;提前 5 秒截止,不跨日补投,不提高预算或增加多轮自动排期 | | 用量与模型 | 按每个请求最终用量结算,失败/重试/取消与游标迁移有保护;Pro ×1,Flash/其他/未知 ×0.5,倍率与提示同源 | | 连接 | 跟随后端刷新节奏,只过滤业务内容相同的 SSE 整帧;真实变化、心跳、重连和明确打开刷新保留原语义 | | 安装与升级 | 首次明确选择模式,双标签同步完成状态;升级说明按版本展示并可重看,保留 QQ 二维码与三位公开贡献者鸣谢 | | 显示异常入口 | 核对香火横向铺满内容区,与上方两列卡片外缘对齐;窄屏自然换行,保留确认和取消,不直接执行修复 | | 官网与资料 | 原生添加插件三步图解,完整包名,Desktop / Cmd 分开;六档显相、版本入口及分享卡规则一致,补充代理排障、初次主题与页面/分享卡小字对比度修复,完整包名及个人 fork 贡献流程统一 | 社区 Issues #3/#5 已按上述日终方案回复关闭;#4 刷新节奏修复已回复关闭。 PR #6/#7 已在原贡献基础上追加修正并合并,无需重开。 ## 安装与浏览器 - Node 22.23.1 / pnpm 11.28.5:完整 verify 通过,58 个文件、671 项单元与集成测试;类型、lint、构建、预算均通过。 - CI 控制器与隐私原生测试 25 项通过;锁定依赖三平台、alpha 三平台及隐私检查逐项核对 [候选 PR #18](https://github.com/liang-today/dsh-liangxiang/pull/18) 的最新固定 head,具体运行链接记录在最终提交回执,不借用旧基线结果。 - 云端 `smoke-installed` 按 dev 的既有规则跳过;这不代表 main 安装门禁完成。获批正式晋级时,仍需由既有流程执行 Linux 的完整安装、浏览器与在线检查,成功后才推进后续发布。 - DSH 0.2.1-rc.2 全新 tarball Profile:87 项浏览器检查,86 通过、1 项按宿主窄屏侧栏布局设计跳过;安装、实际服务 bundle、Host 启动与卸载门禁通过。 - 前一默认命令行 DSH 0.2.0-rc.2 与同版 Web App:另建临时 Profile 安装同一份 1.2.0 tarball,完整 87 项浏览器检查,86 通过、1 项按窄屏侧栏布局设计跳过;默认停靠在桌面与真实深色均保留 8px 间距。 - 浏览器覆盖桌面、480px 窄屏、实际深色、Axe、键盘、reduced-motion、单炷/长按/空炉、案牍、模式确认、梁祠、广播、短句逐帧位置与淡出。 - “显示异常?”展开后覆盖整宽外缘对齐、视觉行数、高度、无横向溢出及确认后取消;每套全新 Host 使用独立回环后端与 SQLite,避免同机身份保护造成环境串扰。 - 首次欢迎闲置两分钟仍等待明确选择;覆盖在线/离线选择、刷新、新标签、已打开双标签同步、案牍重看、说明滚动、二维码及完整鸣谢。在线场景只连接显式回环测试后端。 - 在线完整安装链路通过:HTTP/SQLite → DSH Host → 同源 API;相同意图重放只扣一次,50 请求争最后一炷仅一笔接受,快照按节奏出现。 - 客户端 617,978 B / gzip 397,606 B,低于 700 KB / 400 KB 预算;包内 sourcemap 的 52 个来源均为相对路径,未混入后端运维文件、日志、数据库或开发 Profile。 - 官网 16 项测试、6 页生产构建和本地链接/资产/版本检查通过;1440/390px × 实际亮/暗主题共 16 组页面,无横向溢出、缺图或 Axe A/AA 问题;主题切换持久化、安装入口、键盘与三张图解加载通过。另有 404 页亮暗/宽窄与分享卡全部状态的 1200/2400px 共 20 组补充检查;六个页面均有覆盖,36 组浏览器检查的 Axe A/AA 问题为 0。 ## 日终并发 使用真实 Ed25519 签名、HTTP、文件 SQLite/WAL,未访问正式社区或放宽默认限额。 - 先为 1000 个独立客户端建立各自连接,再于同一业务秒同时释放投票,各 20 炷;1000 个连接、20,000 炷、1000 位香客,全量重放不再次扣香。 - 100 户手动/自动共享余额并重复提交;64 户的 2176 次最后一炷竞争;500 炷请求按预算压到 50、重放与冲突;128 个跨日旧案;32 个真实 Host 自动链路均通过。 - 新增慢刷新/落盘期间真正插入手动请求、100 手动请求争一炷、完成标记保存失败后重试、偏好和余额变化、关闭开关、截止与跨日回归。 - 账本、票据、总香火与唯一香客守恒,无超支、重复扣香、500 或锁库错误。2176 意图场景限制为 128 条在途连接;不把准备的请求数写成同时建立的连接数。 - 本机 1000 户实测样本约 320ms,p95 307.8ms;重放约 243ms。连接建立不计入该样本;此为单进程本机样本,不是冷连接、公网/TLS/生产峰值容量保证,未验证多个后端进程共享限流。 详细边界与复跑入口见 [日终并发验证](DAY_END_CONCURRENCY.md)。 ## 隐私核对 - 独立镜像扫描社区仓、官网及各自个人 fork 的可见分支、Tag、提交元数据/说明及可达文本对象;新增内容、提交身份与说明另走仓库门禁。 - 核查 7 份 Release 文案/附件和 npm 1.1.6 原包,npm 与最新 Release 附件校验和相同;候选 tarball 另行检查。 - 核查 Issue/PR 正文与评论、注释 Tag;对历史及新增的 101 个独立图片对象执行本机 OCR 与 EXIF/IPTC 检查,无识别失败,未检出私人路径、凭据、GPS 或作者设备信息。 - IP 命中为回环、文档/测试地址或测试使用的公共 DNS;SVG 数字、Git SSH 地址和组织 noreply 为复核后的误报,未检出运维公网地址或真实密钥。 - **公开贡献记录已确认保留**:主线有 8 条原始社区作者提交保留其公开邮箱,GitHub 的原 PR 引用也保存原作者记录。维护者已于本次审计确认保留原始贡献记录;本轮不改写第三方署名或邮箱。此项为已确认的历史例外,不适用于新增提交。 - 维护者新增提交使用公开账号 noreply;部署连接只在本机忽略配置中,公开材料不包含连接地址、私人称呼、本机路径、会话标识或凭据。 隐私检查报告只记录类型和位置,不复制联系人或秘密。当前树和待发包检查通过;不能据此宣称 GitHub 历史从未包含任何个人资料。 ## 更新说明 **更新日志已按标准检查**:汇总自正式版 1.1.6 以来的用户收益,四条宣传文案;QQ 二维码与独立鸣谢区保留。 1. 梁子添新相:梁位低于 25% 显出小难梁,25% 到不足 50% 仍是梁工。 2. 拍梁子更有趣:单击轻快开合,双击吐槽,句句轻落、淡去。 3. 攒香更准确:请求用量各算各的,Pro 一倍,Flash 与其他模型半倍。 4. 日终不忘上香:可选 23:59 自动倾炉,右键夯或拉就能设默认方向;适配 DSH 新版。 正式 Release 文案位于 [releases/1.2.0.md](releases/1.2.0.md)。 ## 发布与回退 正式发布已获准,以下步骤依次执行并分别记录结果;任一步失败停止后续步骤,不以本页的预检结果冒充上线成功: 1. 按既有流程集成并快进 main,核对最终树与获批候选一致。 2. 仅用部署脚本更新社区后端;先做 SQLite 在线一致性备份,再核对 VERSION、1.2.0-u1、schema、健康与历史契约。 3. 发布同一 tarball,registry 全新安装复核后,在同一最终提交创建 v1.2.0 / GitHub Release。 4. 合入获批官网候选并部署 Pages,核对公开页面、安装指引、版本和实时快照;任一步失败停止后续动作。 回退点:npm 1.1.6、官网 `0bea6d6`、后端 1.1.6-u2 / `396d840`;当前运行代码已只读保全到本机私有备份。 部署前必须另做一致性数据库备份。新政策梁案产生后,不能把新库直接交给旧规则后端,也不能用旧备份覆盖上线后的投票;先停止有问题的步骤、保全增量与票据,再采用保留新政策兼容的修复构建或经对账批准的恢复方案。 公开作者邮箱的历史例外已确认保留。最终固定提交的云 CI、实际部署、npm、Tag/Release 与官网公开结果须逐项核验。