# 更新记录 (Changelog) ## 1.1.0 — 2026-08-19 ### 千期数据升级(100 期 → 1000 期) - **数据拉取**:官方接口 `issueCount` 100 → 1000,一次拉取最近 1000 期开奖数据(2019134 ~ 2026095);在线更新脚本 `update-data.mjs` 同步 - **插件版(DSH)**:`ssq` 工具 `window` 参数上限 100 → 1000,默认窗口 1000(trend / predict 均生效) - **HTML 版**:统计窗口选择器新增 200 / 500 / 1000 期,默认 1000 期;页面「在线更新」接口同步 `issueCount=1000` - **内置快照**:`data/ssq-history.json` / `history.json` 更新为 1000 期,离线状态亦可做千期完整分析 - **测试**:`test.cjs` 断言同步为千期,新增千期窗口次数守恒(红球 6000 次 / 蓝球 1000 次)与千期预测校验 - **文档**:README 同步千期口径;新增本更新记录 ### 增量更新机制(历史保存 + 少量拉取) - 历史 1000 期数据直接保存在本地(插件内置快照 / HTML 内嵌),作为分析基线 - 更新改为**增量合并**:只拉官方接口最新 200 期(`issueCount=200`)→ 与本地基线按期号去重合并 → 截取最近 1000 期;快照过期太久(合并出现缺口)时自动回退全量 `issueCount=1000` 重建 - 镜像源(约 156 期)作为官方不可达时的增量备用,合并后仍以基线补齐 1000 期 - 核心新增 `mergeDraws(baseline, fresh, max)`(插件版 `lib/ssq-core.js` 与浏览器版 `src/app.cjs` 双实现,测试校验一致性):去重 / 排序 / 截取 / 新增期数统计 / 连续性检测(跨年衔接视为连续) - 更新后数据显示「当前 N 期(最旧 ~ 最新)」,并标注数据来源与最新一期 ### 预测页独立数据范围 - HTML 智能预测页新增「**预测数据范围**」下拉:最近 100 / 200 / 500 / 1000 期(默认 1000),选择后按所选期数统计并预测 - 预测窗口与趋势页窗口**相互独立**,可分别选择;预测结果显示所用期数范围(如「数据:最近 500 期,2024082 ~ 2026095」) - **DSH 插件版同步**:`ssq` 工具 `predict` 通过 `window` 参数指定预测数据范围(10–1000,默认 1000),参数描述与工具说明明确档位(100/200/500/1000);预测结果与 detail 均输出所用期数区间(如「基于最近 500 期,2023049 ~ 2026095」) ### 新增 5 个预测模型 - **模型预设扩展至 6 个**:新增 `ewma`(EWMA 近期加权,半衰期 20 期指数加权信号)、`miss`(遗漏均值回归,纯遗漏视角)、`expect`(期望偏差回补,次数低于期望的号码靠前,大数回归);原有 balanced/cold/hot 保留 - **核心新增**:`computeStats` 增加 EWMA 信号(z 标准化);`predict` 评分扩展为四信号加权(freq/rec/gap/ewma);新增 `ensemble`(集成投票:6 模型各自推荐 Top6 红 + Top1 蓝,票数高者胜出,同票按平均概率)与 `structureStats` + `genStructureCombos`(组合结构统计与按结构选号) - **HTML 版**:预测模型区新增 3 个预设单选;新增「⚖ 集成投票」「📊 组合结构预测」按钮与结构结果卡片(奇偶/大小/三区间/和值频率 + 最可能结构选号 5 注) - **DSH 插件版**:`preset` 枚举扩展为 6 个;新增 `action=ensemble`、`action=structure`,输出与 detail 含投票/结构明细 - 双实现保持一致(test.cjs 校验),README 同步 ### 模型细节调优 - **平滑 expect(期望偏差回补)**:频率权重 -1 → **-0.6 + 遗漏 0.4**,大数回归为主、适度遗漏回补,避免纯反向频率过于极端 - **miss(遗漏均值回归)防极端**:纯遗漏 → **遗漏 0.85 + 频率 0.15** 混合,避免推荐全是超期号 - **EWMA 半衰期可选**:`computeStats` 新增 `ewmaHalf` 参数(默认 20);HTML 预测页新增半衰期下拉(20/50/100 期,仅 EWMA 模型生效);DSH 插件 `predict`/`ensemble` 新增 `ewmaHalf` 参数,输出标注所用半衰期 - **预测数据范围加档位**:HTML 预测页 50/100/200/300/500/800/1000 期;趋势页窗口同步增加 300/800 - 测试新增半衰期生效/不串扰、两版一致性断言(97 项全绿) ### 预测页交互重构 - **三种分析模式改为单选**(① 单模型预测 / ② 集成投票 / ③ 组合结构预测)+ 统一「开始分析」按钮,结果区互斥显示,不再叠加 - **EWMA 半衰期条件显示**:仅选中「EWMA 近期加权」模型预设时出现;非单模型模式隐藏模型预设区与半衰期选项 - 页面内置操作步骤说明(选模式 → 选模型 → 选数据范围 → 开始分析) - 交互逻辑通过 DOM stub 冒烟验证(6 项全过) ### 独立移动版(index-mobile.html) - **单独文件**:`dist/index-mobile.html`(移动版)与 `dist/index.html`(桌面版)并存,同一套 `src/app.cjs` 逻辑,`build.mjs` 一键构建两个版本 - **去掉导入/导出数据按钮**(移动端不需要手动导数据),保留「在线更新」;失败提示文案按版本自适应 - **移动端内容优化**(独立样式 `src/style-mobile.css`,以手机为基准): - 底部固定导航(趋势/预测/选号)+ `safe-area-inset` 适配 - 控件纵向排列、触控目标 ≥ 44px、主按钮整行、`:active` 按压反馈 - 分析模式 3 列、模型预设 2 列、胆拖模式 3 列卡片化单选 - 号码网格红球 6 列 / 蓝球 4 列、热力图与明细表横向滚动、表头吸附 - 预测页说明文字精简;卡片内边距与字号按手机调整 - app.cjs 对导入导出元素做空值保护(移动版无这些元素也不会报错) - 全部功能保留:趋势 / 预测(6 模型 + 集成 + 结构)/ 选号(随机 + 胆拖)/ 在线更新 / 热力图 / 图表 ### 移动版 PWA(添加到主屏幕) - 新增 PWA 支持:`manifest.json` + Service Worker(`sw.js`,同源缓存优先、离线可用)+ 图标(192/512/maskable/apple-touch-icon,`scripts/gen-icons.py` 生成) - 页面头部增加 `theme-color` / `apple-touch-icon` / iOS 全屏 meta;SW 仅在 https/localhost 注册(file:// 直接打开自动跳过,不影响单文件使用) - `build.mjs` 构建时自动复制 PWA 资源到 `dist/` - 使用方式:把 `dist/` 下的移动版文件部署到 https 静态托管 → 手机浏览器打开 → 菜单「添加到主屏幕」,即获得全屏 App 体验 ### 开奖号码查询 + 打开自动更新 - 趋势页顶部新增「🕗 开奖号码查询」卡片:期号下拉列出**全部有数据的期号**(最新在前),选择后显示该期 6 红 + 1 蓝号码与开奖日期,默认展示最新一期 - **打开页面自动静默更新**:加载后自动触发在线增量更新(不弹窗),成功即刷新开奖号码、期号下拉与统计到最新一期;数据源全失败时静默回退内嵌数据 - 「在线更新」按钮仍保留手动模式(带成功/失败提示);导入数据后同步刷新期号选择器 - 桌面版与移动版同步生效(共用 `src/app.cjs`) ## 1.0.0 — 2026-08-18 - 双色球助手插件(趋势追踪 / 智能预测 / 胆拖随机选号),含单文件 HTML 版 - 改造为标准 DSH 插件包:注册 `ssq` 聊天工具,声明 `dsh.bundle`,多源拉取(官方接口 → GitHub 镜像 → CDN)并内置快照兜底