Releases: rainforcetime/RecordLife
Release list
RecordLife v3.0.96
📦 PR: 3.0.85~3.0.96 关于页升级 · 包名变更 · 签名工程化 · 首页性能/对比度(13 commits)
Base
master← Headdevelop| 13 commits(792d609..039f406)| 应用版本 3.0.96(30096)
1. Summary — 摘要
本次 PR 合并 3.0.85~3.0.96 十二个版本,覆盖功能增强、破坏性变更与工程化稳定:
- 关于页升级:由应用内弹窗改为独立完整页面(应用头部 / 使用统计卡 / 外链 / 隐私说明与开源许可)
- 应用包名变更:
com.rainforcetime.recordlife→com.mumudlin.recordlife(⚠️ breaking) - 备份导入完整性修复:恢复备份丢失的追加想法 / 最后修改时间 / 心情 / 云端图片 key
- 首页性能与功耗:秒级刷新最小化(其余分钟级整刷)、定时器随可见性启停、累计模式秒卡回归 bug 修复
- UX 色彩对比度达标:Tab 文字与全局
textTertiary(浅/深双主题 ≥4.5:1) - 签名与发布工程化:Debug/Release 签名解耦(release 证书/密码彻底移出工程)、一键签名脚本、
release/输出目录、公开文档敏感信息清理 - 文档补记:CHANGELOG 补记 3.0.85~3.0.96 系列(本 PR 合并后版本记录完整)
2. Type of Change — 变更类型
- ✨ feat:关于页完整页面(弹窗 → 路由页)
- 🔧 breaking:应用包名变更(
com.mumudlin.recordlife) - 🐛 fix:备份导入丢字段、累计模式秒卡(3.0.89 优化引入的回归)、功耗可见性停表
- ⚡ perf:首页秒级刷新最小化(6 张时间卡 + 生命环形由每秒降为分钟级整刷)
- 🛠 build/refactor:Debug/Release 签名解耦、一键签名脚本、release/ 输出目录
- 📝 docs:README 用户向改写、公开文档清除签名/发版说明与本地证书路径、CHANGELOG 机制
- ✅ 验证:各版本本地 hvigor 构建通过(BUILD SUCCESSFUL);3.0.92 实测签出 release 包
3. What's Changed — 变更明细
3.1 关于页升级(弹窗 → 完整页面)
| 文件 | 说明 |
|---|---|
entry/src/main/ets/pages/AboutPage.ets |
新增 @entry 完整页:应用头部(图标/名称/标语/版本+Build 日期)、使用统计卡(已使用天数+记录总数)、链接卡(更新日志 Releases / 查看源码 / 意见反馈 Issues / 隐私说明 / 开源许可)、版权尾 |
entry/src/main/ets/components/dialog/AboutAppDialog.ets |
删除(死代码,被完整页面取代) |
entry/src/main/ets/pages/AccountPage.ets |
「关于」入口由弹窗改为 router.pushUrl(AboutPage) |
entry/src/main/resources/base/profile/main_pages.json |
注册 AboutPage 路由 |
entry/src/main/resources/{base,en_US}/element/string.json |
双语补齐:链接文案 / 版权 / 隐私正文 / 开源许可正文 / 记录标签 |
隐私说明与开源许可采用站内文本弹层(单 bindSheet 双内容,规避同节点覆盖);外链走 context.openLink。
3.2 应用包名变更(breaking)
| 文件 | 说明 |
|---|---|
AppScope/app.json5 |
bundleName:com.rainforcetime.recordlife → com.mumudlin.recordlife |
entry/.../handlers/MorePageBackupHandler.ets |
备份/配置导入校验的 bundleName 元数据同步(必须与新包名一致) |
entry/.../handlers/MorePageConfigHandler.ets |
同上 |
⚠️ 安装过旧包名的设备升级需按新包名安装(同签名证书可覆盖安装);本机 SignHap 需在 DevEco Signing Configs 重新生成签名(profile 绑定新 bundleName);CI unsigned 构建不受影响。
3.3 备份导入完整性修复
| 文件 | 说明 |
|---|---|
entry/src/main/ets/service/BackupManager.ets |
restoreBackup 重建记录时透传 updatedAt/comments(此前按白名单重建丢失) |
entry/.../handlers/MorePageBackupHandler.ets |
另一导入路径补齐 imageCloudKeys/mood/updatedAt/comments(此前连心情与云端 key 也丢) |
3.4 首页性能 · 功耗 · 秒卡修复
| 文件 | 说明 |
|---|---|
entry/src/main/ets/pages/Index.ets |
广播 homeVisible(首页 Tab 0 + 应用前台:onPageShow/Hide、onChange、aboutToAppear 维护) |
entry/src/main/ets/pages/HomePage.ets |
@StorageLink('homeVisible')+@Watch 启停定时器(切 Tab/退后台立即停表);秒拆独立 @State seconds 每秒仅刷秒卡,跨分钟才整表重算 timeData/lifePercent;新增 secondCardValue 独立字段修复累计模式秒卡(累计态显示 0-59 的回归 bug) |
- 3.0.88:定时器随可见性启停 → 云测「前台不可见动效不用资源、空跑无效绘制」消除
- 3.0.89:秒独立刷新 → 6 张时间卡与生命进度环形由每秒重估降为分钟级
- 3.0.95:修复 3.0.89 引入的累计模式秒卡 bug(累计总秒 vs 0-59 秒位语义回归)
3.5 UX 色彩对比度达标(双主题 ≥4.5:1)
| 文件 | 说明 |
|---|---|
entry/src/main/ets/pages/Index.ets |
未激活 Tab 文字/图标 textTertiary(#999) → textSecondary(#666)(浅 5.7:1 / 深 8.5:1) |
entry/src/main/ets/config/ThemeConfig.ets |
全局 textTertiary 达标:浅色 #999999→#707070(≈5.2:1)、深色 #808080→#9E9E9E(≈5.1:1);保持弱于 textSecondary 的三级弱化语义 |
3.6 签名与发布工程化
| 文件 | 说明 |
|---|---|
build-profile.json5 |
仅保留 debug 自动签名(default);release 证书三件套与密码彻底移出工程(原含明文密码,若提交即泄露——该改动未入历史,安全清除) |
scripts/sign-hap.ps1 |
新增一键签名助手:unsigned → signed(release/debug 通用),支持 -Config release-config.local.json(gitignore,含证书路径/密码,绝不入库),密码亦可 HOS_STORE_PWD/HOS_KEY_PWD 环境变量传入 |
.gitignore |
忽略 /release-config.local.json(含证书路径与密码)与 /release/(正式签名包输出目录,发布包不进仓库) |
AppScope/app.json5 |
每版本同步 versionName/versionCode |
本地签名材料(证书/密码)只存于签名机本地的 gitignore 文件,仓库零敏感信息。
3.7 公开文档清理(README / 脚本注释)
| 文件 | 说明 |
|---|---|
README.md |
「安装与发版」改用户向「安装」(仅 GitHub Releases / Artifacts 下载);移除发版流程、Debug/Release 证书分工、AGC 上架签名流程与本地 release 证书路径 |
scripts/sign-hap.ps1 |
注释去本地证书路径,改用占位 + 指向 gitignore 的 release-config.local.json |
docs/CHANGELOG.md |
补记 3.0.85~3.0.96 系列章节(本 PR 范围,versionCode 30096) |
(3.0.92 修复 sign-hap.ps1 UTF-8 BOM,Windows PowerShell 5.1 中文注释乱码 → 实测签名成功)
4. Scope / Affected Areas — 影响范围
- 页面:AboutPage(新)、AccountPage(入口)、HomePage(刷新/秒卡/可见性)、Index(Tab 对比度/可见性广播)
- 数据:备份导入字段透传(BackupManager / MorePageBackupHandler);包名变更影响备份/配置导入校验
- 配置/主题:ThemeConfig 全局 textTertiary;build-profile.json5 签名配置
- 构建链:sign-hap.ps1、.gitignore、release/ 输出目录;CI unsigned 构建不受包名影响
- 文档:README、双语资源(string.json)
5. Testing — 测试与验证
- 本地 hvigor 构建通过:每个版本提交均含 BUILD SUCCESSFUL(含 SignHap)
- 3.0.92 实测用 sign-hap.ps1 + release-config.local.json 签出 release 包(sign-app success)
- 真机回归项:
- 关于页:路由进入/返回、统计卡数值、外链跳转、隐私/开源弹层
- 首页累计/非累计 × 存活/剩余四模式秒卡语义
- 切 Tab / 退后台再回前台:秒表启停与整表刷新
- 新包名覆盖安装升级、桌面卡片可用性
- 旧备份 → 新包导入(追加想法/最后修改时间/心情/云端 key 完整)
6. Breaking Changes — 破坏性变更
- 应用包名变更(3.0.86):
com.rainforcetime.recordlife→com.mumudlin.recordlife- 已装旧包名设备需按新包名重新安装(同证书可覆盖)
- 桌面卡片 / 快捷方式与旧包名绑定,需重新添加
- 备份与配置导入校验的 bundleName 已在代码内同步
- 本机签名需在 DevEco Signing Configs 重新生成(profile 绑定新 bundleName)
7. Migration / Compatibility — 兼容性说明
| 场景 | 结论 |
|---|---|
| 旧备份(无新字段)导入新版 | ✅ 缺失字段走默认 |
| 新备份(含 comments/updatedAt 等)导入旧版 | ✅ 多余字段忽略 |
| 旧包名备份 → 新包名导入 | ✅ bundleName 校验已同步 |
| 数据模型 | ✅ 可选字段演进,无迁移脚本 |
| versionCode/versionName | 30096 / 3.0.96(与提交号同步) |
8. Checklist — 合并前检查
- 版本号与 git 提交号一致(3.0.96)
- 双语资源补齐
- 无构建产物残留(BuildInfo.ets 占位恢复)
- CHANGELOG 已增量更新(补记 3.0.85~3.0.96)
- 真机回归(见 Testing)
9. After Merge — 合并后动作
- master 自动构建(CI)→ 产物
RecordLife_V3.0.96.hap(unsigned,Artifacts) - 打 tag
v3.0.96→ 自动构建并发布 GitHub Release - gitee master 同步(仅代码,不参与打包)
RecordLife v3.0.84
📦 PR: 3.0.84 记录体验增强 + 工程化稳定化(17 commits)
Base
master← Headdevelop| 17 commits(f2f04e1..792d609)| 应用版本 3.0.84(30084)
1. Summary — 摘要
为记录体验补齐三项功能并完成多轮稳定性/工程化改进:
- 构建日期真实化:修复「关于页 Build 日期显示为查看日期」(构建时注入真实日期)
- 隐私保护增强:隐私模式开启时记录页亚克力模糊
- 记录可追溯性:每条记录增加「最后修改时间」(编辑过才显示)
- 记录评论(追加想法):每条记录可追加多条想法,支持增删、计数角标
- 稳定性与工程化:代码复查修复、6 项真机 UI 反馈、bindSheet 覆盖 bug、漏洞修复、编译警告 11→1、文档体系规范化、PR 模板机制
2. Type of Change — 变更类型
- ✨ feat:隐私亚克力 / 最后修改时间 / 追加想法评论
- 🐛 fix:Build 日期、编辑弹框不弹、评论不刷新、卡片布局挤压、键盘顶起、placeholder、漏洞(评论防重入/失败反馈)
- 🛠 build/refactor:hvigor 构建任务、编译警告清理(11→1)
- 📝 docs:README 业界标准重写、CHANGELOG 增量、docs 归档、PR 模板
- ✅ 验证:全部改动本地 hvigor 构建通过
3. What's Changed — 变更明细
3.1 构建日期真实化(hvigor 自定义任务)
entry/hvigorfile.ts新增WriteBuildInfoPlugin:挂default@PreBuild前,每次构建写真实日期到config/BuildInfo.ets(IDE/CLI/CI 三种构建一致)AppInfoConfig.generateBuildNumber()读构建注入的日期,不再运行时取当天
3.2 隐私模式 → 记录页亚克力模糊
privacyMode同步 AppStorage(init / set / reset),冷热切换实时- NowPage 记录区
backdropBlur(24)亚克力遮罩(深浅自适应、提示居中、FAB 可用)
3.3 最后修改时间
LifeRecord.updatedAt?(可选字段,旧数据兼容)updateRecord仅实际内容变化时写(归一化 diff,无改动保存不误标)- 卡片编辑过显示「编辑于 X」(同日时分/跨日 M/D,弹性布局不挤按钮)
3.4 追加想法(评论区)
LifeRecord.comments?(CommentItem{id,content,timestamp}),并入记录整体存储,备份兼容- 卡片消息图标+条数 → bindSheet 面板:多行 TextArea(占位叠层居中)、删除二次确认、防连点重入、失败 toast
- 评论 bindSheet 独立绑定 Scroll(修复与编辑 bindSheet 同节点覆盖)
3.5 稳定性修复
- 评论面板同引用不刷新 → 显式拷贝新引用
- 卡片底部「编辑于」挤出按钮 → 时间区弹性列
- 输入框 placeholder 垂直居中(TextArea + 自定义叠层)
3.6 工程化
- 编译警告 11→1(accessSync/showToast 安全包装;权限项按 SaveButton 设计放弃)
- 文档:README 业界标准重写、CHANGELOG 补齐 3.0.68~3.0.81、docs 归档历史规划、
docs/README.md维护规范、.github/PULL_REQUEST_TEMPLATE.mdPR 模板 + 本地草稿 gitignore
4. Scope / Affected Areas — 影响范围
- 此刻页(NowPage / TimelineSection / RecordCard):展示与记录操作
- 数据模型与存储:LifeRecord +2 可选字段
- 配置管理:privacyMode 全局状态
- 构建链:hvigorfile 自定义任务(影响全部构建)
- 备份/导入导出:JSON 透传新字段,双向兼容
- 桌面卡片 / COS:不受影响
5. Testing — 测试与验证
- 每个改动(17 commits)本地 hvigor 构建通过(BUILD SUCCESSFUL)
- review(逐提交核查):无必现崩溃/数据损坏级缺陷
- 功能影响面核查:旧功能无回归
- 编译警告清理至 1 条(权限设计项)
- 真机回归:隐私遮罩即时性、评论面板键盘/滚动、保存图片(警告放弃项对应功能)
6. Breaking Changes — 破坏性变更
无。
7. Migration / Compatibility — 兼容性说明
| 场景 | 兼容 |
|---|---|
| 旧备份(无新字段)导入新版 | ✅ 缺失字段走默认 |
| 新备份(含评论/updatedAt)导入旧版 | ✅ 多余字段忽略 |
| 旧版本升级 | ✅ 无需迁移脚本 |
| versionCode/versionName | 30084 / 3.0.84(与提交号同步) |
8. Checklist — 合并前检查
- 版本号与 git 提交号一致(3.0.84)
- 双语资源补齐
- 无构建产物残留(BuildInfo.ets 占位恢复)
- CHANGELOG 已增量更新
- PR 模板与本地草稿机制已配置(本次起仓库零变化)
- 真机回归(见 Testing)
9. After Merge — 合并后动作
- master 自动构建 → 产物
RecordLife_V3.0.84.hap - 打 tag
v3.0.84→ 自动发布 GitHub Release - gitee master 同步
RecordLife v3.0.68
概要
develop → master,9 个提交(3.0.60 ~ 3.0.68),13 个文件变更(+300 / -4)。
✨ 功能:桌面卡片「快速记录」
• 新增 ArkTS 桌面卡片(FormExtensionAbility + form_config.json + 卡片 UI)
• 桌面长按应用图标 → 服务卡片 → 添加「快速记录」卡片(2×2)
• 点击卡片直接拉起应用,自动切到「此刻」Tab 并弹出新建记录弹窗
• 卡片样式:渐变背景 + 装饰圆 + 白底加号 + 应用名/日期 + 操作提示
• 修复两轮渲染问题:四角露白(渐变铺满 Stack 自身)、四角白边(内容层不设圆角,由宿主统一裁切)
⚙️ CI:GitHub Actions
• 自动打包:push master 构建 unsigned HAP(容器镜像 6.0.2.650,与工程 modelVersion 匹配)
• 产物重命名:RecordLife_V.hap(版本号从 AppScope/app.json5 自动读取)
• 自动发布:推送 v* tag 时构建并发布 GitHub Release(名 RecordLife v,资产即 HAP)
• 修复:CI 构建 SignHap 报错(本机 Windows 证书路径在 Linux 不存在)→ 构建前移除签名配置
🔢 版本号同步机制
• 应用版本号(AppScope/app.json5)与 git 提交前缀统一为 3.0.x 递增,每次提交对应唯一版本
• 本次合并后应用版本为 3.0.68(versionCode 30068)
📄 文档
• docs/CHANGELOG.md 补 3.0.50~3.0.67 章节
✅ 验证
• 本地 hvigor 命令行构建通过(BUILD SUCCESSFUL,多轮:卡片/CI/样式改动后均验证)
• workflow YAML 结构校验通过(js-yaml)
• 版本提取命令实测输出正确(sed 读取 versionName)
🚀 合并后
- master 自动触发构建 → 产物 RecordLife_V3.0.68.hap
- 打 tag 并推送 v3.0.68 → 自动发布 GitHub Release(含该 HAP)
RecordLife_v2.3.0_20260823
RecordLife 更新日志(Changelog)
2.3.0(versionCode 23000)— 2026-08-23
从 2.0.0 起累计改动(中间 2.1.x/2.2.x 为开发版本,未单独发布,直接以 2.3.0 发布)
✨ 新功能
记录体验
- 心情标记:新增/编辑记录可添加心情(😊😌🤩😢😴 5 档预置 + 自定义心情),记录卡片展示心情 emoji,支持按心情筛选
- 撤销删除:删除记录后 3 秒内可一键撤销(含图片完整恢复),带倒计时进度条提示
- 记录模板:预设常用记录模板,新增记录时一键填充内容;模板可自定义增删改(并入个性化管理)
首页("活着")
- 生命进度环形:首页顶部实时显示已度过生命进程百分比(与目标年龄对比)
- 签名/座右铭:可在我的页设置,首页标题区展示
- 字体大小设置:小/中/大三档,实时作用于记录内容
数据与统计
- 数据看板(我的页入口):记录总数 / 活跃天数 / 日均 / 最长连续天数 / 累计字数 / 记录区间
- 生命进度 + 里程碑:环形进度 + 已活年月日明细 + 11 个生命里程碑(1000 天 / 1 万天 / 2 万天 / 3 万天 / 18 岁 / 30 岁 / 50 岁 / 目标年龄 1/4、1/2、3/4、满程),已达成/倒计时一目了然
效率与隐私
- 缓存清理:一键清理临时分享图片与无引用图片
- 隐私模式:开启后隐藏首页出生日期、生命里程碑与我的页生日(🔒 遮罩)
- 引导页:首次安装展示 4 页功能引导(重置后重新展示)
其他
- 自定义标签/心情/模板统一在「个性化管理」分页管理
- 全局中英文双语(新增功能全部国际化)
🎨 体验优化
- 筛选交互重构:筛选栏从横向滑动改为「此刻」旁的筛选按钮 + 弹出气泡,心情/标签分组选择,带筛选摘要与计数
- 我的页改版:顶部用户区主题色渐变;设置项分组卡片化(常规/数据/个性化/更多)+ 图标
- 标签管理弹窗:改 Tab 分页(标签 / 心情 / 模板),不再堆叠
- 首页布局协调(生命进度环形归位标题行)
🐛 修复
- 修复多次筛选后记录消失(重新筛选恢复)的问题
- 修复重置应用与首次安装示例数据行为不一致
- 修复字体大小设置保存失败
- 修复编辑/删除记录等场景的编译与运行错误
- 清理资源冲突、废弃 API、异常处理等全部编译警告
🛠 技术演进(开发者视角)
- 架构分层重构:
model / repository / service / viewmodel / components清晰分层,ConfigManager 瘦身、IO 职责下沉 - 依赖注入:单例支持显式 context 注入(A5),消除全局状态依赖
- 可测试性:新增 69 个单元测试(时间计算 / 统计 / 农历转换 / 配置校验等纯函数)
- 日志统一:console 全部收敛到 hilog 封装(Logger)
RecordLife_v2.0.0_20260524
- 首页:支持以图片形式分享卡片内容
- 此刻:记录支持图片形式分享
- 此刻:日历视图卡片展示支持跳转时间线视图
- 此刻:添加安装后示例
- 我的:存储空间支持头像切换时自动更新
- 其他UI调整
Full Changelog: v1.0.0...v2.0.0
v1.0.0
可使用小白调试助手等调试工具安装
Full Changelog: https://github.com/rainforcetime/RecordLife/commits/rain