# Release Notes ## v1.0.3 发布时间:2026年2月10日 版本定位:小程序远端路由切换与多节点接入增强 ### 里程碑与亮点 - 新增小程序“无发版切换后端”能力(基于远端 `route-config.json`) - 引入双确认切换策略,避免单点误配置导致错误跳转 - 增加 `cooldown` 防抖,防止 A/B 来回抖动 - 新增 Cloudflare Tunnel 入口域名支持(`mac-tunnel.biboer.cn`) ### 核心变更 #### 小程序路由管理 - 新增 `route-manager`,负责: - 启动时读取路由配置 - 回前台按节流规则检查路由 - 接口失败时触发兜底路由检查 - 路由状态本地持久化:`activeServerKey`、`lastSwitchAt`、`routeConfigCache`、`lastRouteCheckAt` #### 切换规则 - 双确认:当前服务读取到目标为 `B` 时,必须继续读取 `B` 的配置并确认 `active=B` 才切换 - 防抖:`cooldownMinutes` 控制最短驻留时间,`0` 表示允许立即切换 - 读取失败保护:目标配置读取失败或非法时保持当前服务不变 #### 接入与运维 - 新增 `miniprogram/assets/route-config.json` 配置模板 - `scripts/deploy-fonts.sh` 支持同步 `route-config.json` - `miniprogram/README.md`、`apiserver/README.md` 同步更新 - mac 侧新增 Tunnel 接入路径,支持 `mac-tunnel.biboer.cn` 对外服务 ### 配置注意事项 - 小程序后台必须将目标域名加入 `request` 与 `downloadFile` 合法域名 - `route-config.json` 修改后建议清除本地 `route-state` 并冷启动验证 - `/healthz` 建议使用 `GET` 校验(`HEAD` 可能返回 `501`) ### 验收项 - 可通过修改远端 `route-config.json` 在 A/B 节点间切换,无需重新发布小程序 - A/B 配置不一致时不切换(保护行为) - 目标节点不可用时不切换(保护行为) ## v1.0.1 发布时间:2026年2月9日 版本定位:小程序 UI 优化与布局完善 ### 里程碑与亮点 - 全面适配 Figma 设计稿,UI 风格统一 - 选择/已收藏区域改为自适应高度(flex fill) - 搜索框默认完整展开显示 - 复选框图标始终显示,状态切换更直观 - 收藏图标区分已收藏(红心)和未收藏(白心) - 新增底部版权说明 ### 核心特性 #### 布局优化 - 选择和已收藏区域从固定高度改为 flex fill,自适应屏幕 - 统一三个区域(预览、选择、已收藏)的边框颜色为 `#3EE4C3` - 统一容器 padding 为 8rpx - 移除多余的嵌套 padding,避免边距叠加 #### 图标系统完善 - 复选框:checkbox.svg(选中)、checkbox-no.svg(未选中) - 收藏:favorite.svg(未收藏)、favorite-red.svg(已收藏) - 分类全选:selectall.svg / unselectall.svg - 导出按钮:download.svg、export-svg-s.svg、export-png-s.svg #### 对齐修复 - "选择"文字与搜索框垂直居中对齐 - "选择"和"已收藏"标题水平对齐 - 覆盖全局样式污染(padding/margin) ### 基础功能 - 文本输入 + 实时预览 - 字体搜索、分类树、收藏管理 - SVG/PNG 导出(远端 API 渲染) - 字体大小滑块调节 - 颜色选择器 ### 技术实现 - 框架:微信小程序原生 - 渲染:远端 API(apiserver) - 状态:本地存储(wx.setStorageSync) - 图标:本地 SVG 文件(/assets/icons/) ### 项目结构 ``` miniprogram/ ├── pages/index/ # 首页 │ ├── index.wxml # 页面结构 │ ├── index.wxss # 样式 │ └── index.js # 逻辑 ├── assets/icons/ # 图标资源 ├── utils/mp/ # 小程序工具函数 └── app.js/json/wxss # 应用配置 ``` ### 设计理念 - 遵循 Figma 设计稿,保持视觉一致性 - 适配小程序原生组件限制(如 input 最小高度) - 简化图标状态切换逻辑,提升代码可维护性 ## 下载和安装 ### 系统要求 - 微信开发者工具 1.06+ - Node.js 18+(用于 apiserver) ### 快速开始 1. 克隆仓库 2. 微信开发者工具导入 `miniprogram/` 目录 3. 部署 apiserver(详见 apiserver/README.md) 4. 编译运行 ### 生产构建 1. 配置合法域名:`fonts.biboer.cn` 2. 上传代码并提交审核 ### 支持和反馈 - 邮箱:douboer@gmail.com - 仓库:Issues