Files
xianyan/CHANGELOG.md
Developer 214a0684d0 chore: 移除NFC/蓝牙相关支持,更新设备在线统计,新增功能优化
1.  移除NFC和蓝牙相关依赖、权限及功能代码,精简传输链路
2.  重构设备在线统计逻辑,使用后端7天活跃字段替代本地计算
3.  更新应用名称、权限说明和协议文档
4.  新增消息转发、缓存管理、医疗免责提示功能
5.  优化运势模块和字体管理文案,修复构建日志问题
2026-06-06 06:12:09 +08:00

826 lines
54 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
所有重要变更均记录于此文件。格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/)。
***
## [v6.20.2] - 2026-06-06
### 📱 鸿蒙端占位页面体验优化 — 友好提示 + 功能介绍
#### 优化
- **占位页面全面重构** — 将5个鸿蒙端占位页面协作画布/屏幕共享/传输聊天/快速卡片/编辑器子页面)从简陋的"暂不支持"提示升级为完整的功能介绍页面
- **统一占位页面风格** — 提取 `_OhosFeaturePlaceholder` 通用组件统一emoji图标 + 功能名称 + 适配状态徽章 + 功能介绍 + 特性列表 + 返回按钮的布局
- **适配状态徽章** — 使用黄色圆点 + "该功能正在适配中" 替代原来的"鸿蒙端暂不支持XXX",语气更友好
- **功能介绍文案** — 每个占位页面增加功能描述和3-4条特性说明让用户了解该功能的用途
- **编辑器子页面差异化** — 图片预览/图片裁剪/图片画廊/3D模型预览各自显示不同的emoji和功能介绍
- **OhosNotFoundWidget 升级** — 404页面同步升级为统一设计风格
- **使用设计系统令牌** — 所有占位页面使用 AppTheme/AppSpacing/AppTypography/AppRadius 统一设计令牌,支持深色模式
#### 鸿蒙端功能可行性分析
- **协作画布** — 依赖 flutter_webrtc不支持鸿蒙CRDT纯Dart可运行但无传输通道保留占位
- **屏幕共享** — 依赖 flutter_webrtc + InAppScreenCapture均不支持鸿蒙保留占位
- **传输聊天** — Socket/WebSocket理论上可用但文件传输依赖 nearby_service/localsend 等原生库不支持鸿蒙,保留占位
- **快速卡片** — 核心为纯Flutter组件理论上可运行但TTS/屏幕常亮/相册保存需降级处理,当前保留占位待验证
- **编辑器子页面** — 图片预览(photo_view)/画廊可能可用,裁剪(extended_image)/3D(flutter_3d_controller)需验证,保留占位
#### 修改文件
- `lib/core/router/ohos_placeholders.dart` — 全面重构占位页面,提取通用组件,增加功能介绍
***
## [v6.20.1] - 2026-06-06
### 🔧 跨平台编译修复 — Web/iOS/macOS三端编译通过
#### 修复
- **quill_native_bridge_windows 与 win32 6.x 不兼容** — 添加 `dependency_overrides` 指向本地修补版 `packages/quill_native_bridge_windows`已适配win32 6.x API解决macOS编译失败
- **nearby_service_adapter 条件导出** — 拆分为 `nearby_service_adapter_io.dart`(原生平台)+ `nearby_service_adapter_web.dart`Web桩实现解决Web编译时 `nearby_connections``dart:io` 不可用问题
- **oauth_service.dart 平台抽象** — `Platform.isIOS`/`Platform.isMacOS` 替换为 `pu.isIOS`/`pu.isMacOS`项目平台抽象层解决Web编译时 `dart:io` 不可用问题
- **缺失4个依赖包** — 在 `pubspec.yaml`/`pubspec.macos.yaml`/`pubspec.ohos.yaml` 中补充 `nearby_connections`/`flutter_web_auth`/`google_sign_in`/`sign_in_with_apple`
#### 新增文件
- `lib/features/file_transfer/services/transport/nearby_service_adapter_io.dart` — 原生平台nearby_service适配器实现
- `lib/features/file_transfer/services/transport/nearby_service_adapter_web.dart` — Web平台桩实现所有方法返回false/空)
- `lib/features/file_transfer/services/transport/nearby_connections_web.dart` — Web平台nearby_connections类型桩
- `lib/features/file_transfer/services/transport/dart_io_stub.dart` — Web平台dart:io桩备用
#### 编译结果
- ✅ Web: `build/web` 编译成功341.5s
- ✅ iOS: `build/ios/iphoneos/Runner.app` (100.5MB) 编译成功
- ✅ macOS: `build/macos/Build/Products/Release/xianyan.app` (200.2MB) 编译成功
#### 修改文件
- `pubspec.yaml` — 补充4个依赖 + quill_native_bridge_windows path override
- `pubspec.macos.yaml` — 同步补充4个依赖 + quill_native_bridge_windows path override
- `pubspec.ohos.yaml` — 同步补充4个依赖
- `lib/features/file_transfer/services/transport/nearby_service_adapter.dart` — 改为条件导出
- `lib/features/auth/services/oauth_service.dart` — dart:io → 平台抽象层
***
## [v6.20.0] - 2026-06-05
### 📱 文件传输 — 集成nearby_connections实现P2P近场传输
#### 新增
- **nearby_connections P2P传输引擎** — 在NearbyServiceAdapter中集成Google Nearby Connections库实现蓝牙发现+Wi-Fi Direct传输双引擎
- **附近设备发现入口** — 设备配对页面"其他"标签新增"📱 附近设备"卡片仅Android/iOS显示
- **PairingMethod.nearbyP2p** — 新增配对方式枚举值标识nearby_connections P2P连接
- **DegradationManager.nearbyP2p** — 新增平台能力检测非Android/iOS平台自动降级提示
- **P2P传输进度流** — NearbyP2pTransferProgress类实时跟踪文件传输进度
- **P2P设备发现流** — NearbyP2pDeviceInfo类管理设备发现/连接/断开状态
- **14种语言翻译** — 新增nearbyDiscovery/nearbyDiscoveryDesc翻译键
#### 修复
- **NearbyConnections API调用修正** — `NearbyConnections()``Nearby()`nearby_connections包的正确单例类名
- **PayloadStatus枚举修正** — `PayloadTransferUpdateStatus``PayloadStatus``COMPLETED``SUCCESS`匹配包实际API
- **P2P权限请求修正** — 使用permission_handler替代不存在的Nearby权限方法支持位置/蓝牙/附近Wi-Fi设备权限
- **startDiscovery参数修正** — 第一个参数为userNickName而非serviceId
- **OnEndpointLost回调修正** — endpointId参数类型为`String?`(可空)
- **requestConnection回调补全** — 添加必需的onConnectionInitiated/onConnectionResult/onDisconnected回调
- **Switch穷举补全** — device_discovery_provider/pairing_service中补充PairingMethod.nearbyP2p分支
#### 新增依赖
- `nearby_connections: ^4.1.1` — Google Nearby Connections(蓝牙发现+Wi-Fi Direct传输,仅Android/iOS)
#### 修改文件
- `lib/features/file_transfer/services/transport/nearby_service_adapter.dart` — 双引擎架构(nearby_service + nearby_connections)
- `lib/features/file_transfer/presentation/pages/device_pairing_page.dart` — 新增附近设备发现入口
- `lib/features/file_transfer/models/transfer_enums.dart` — 新增PairingMethod.nearbyP2p
- `lib/features/file_transfer/services/degradation_manager.dart` — 新增nearbyP2p平台能力
- `lib/features/file_transfer/providers/device_discovery_provider.dart` — 补充nearbyP2p switch分支
- `lib/features/file_transfer/services/pairing_service.dart` — 补充nearbyP2p switch分支
- `lib/l10n/types/t_profile.dart` — 新增nearbyDiscovery/nearbyDiscoveryDesc字段
- `lib/l10n/languages/*.dart` — 14种语言文件新增翻译
- `pubspec.yaml` — 新增nearby_connections依赖
***
## [v6.19.4] - 2026-06-05
### 🔧 App Store审核修复 — 移除NFC/蓝牙/Web登录修复注册流程
#### 审核被拒问题修复
1. **Guideline 2.1 — NFC功能需演示视频** → 移除全部NFC功能代码、权限声明和依赖flutter_nfc_kit、ndef
2. **Guideline 4 — 登录跳转外部浏览器** → 移除"Web登录"按钮(原跳转 `https://tools.wktyl.com/web-login` 至系统浏览器)
3. **Guideline 2.1(a) — 注册收不到验证码** → 修复注册流程:点击"下一步"进入验证码步骤时自动发送邮件验证码并启动倒计时,无需手动点击"重新发送"
4. **蓝牙功能移除** → 蓝牙仅用于设备发现非数据传输已有6种替代配对方式同步移除全部蓝牙代码、权限声明和依赖flutter_blue_plus
#### 新增
- 注册页面Header区域增加 提示按钮,点击显示温馨提示对话框:
- 闲言保持开放性,即使不登录也能体验大部分功能
- 服务器偶尔异常可能导致注册流程失败
- 我们会在后续更新中完善注册验证流程
#### 移除功能
- **NFC句子分享**NfcShareService— 删除服务、Provider、UI按钮
- **NFC设备配对**NfcPairingService— 删除服务、配对入口
- **蓝牙BLE配对**BluetoothPairingService— 删除服务、配对入口
- **附近用户发现**NearbyDiscoveryService + NearbyUsersSheet— 删除服务、UI
- **Web登录**(跳转外部浏览器)— 删除登录页按钮和相关方法
#### 移除的权限声明
- iOS: NFCReaderUsageDescription、com.apple.developer.nfc.readersession.formats、NSBluetoothAlwaysUsageDescription
- Android: NFC权限/特性、全部蓝牙权限BLUETOOTH/BLUETOOTH_ADMIN/BLUETOOTH_SCAN/BLUETOOTH_CONNECT/BLUETOOTH_ADVERTISE/bluetooth_le
- HarmonyOS: ACCESS_BLUETOOTH权限、permission_nfc_reason、permission_bluetooth_reason
#### 移除的依赖
- flutter_nfc_kit ^3.6.0
- ndef
- flutter_blue_plus ^2.1.0
#### 修改文件(主要)
- `lib/features/auth/presentation/register_section.dart` — 自动发送验证码 + 提示对话框
- `lib/features/auth/presentation/login_page.dart` — 移除Web登录按钮
- `lib/features/file_transfer/` — 移除NFC/蓝牙配对服务和UI
- `lib/core/services/nfc/` — 整个目录删除
- `lib/core/services/bluetooth/` — 整个目录删除
- `lib/features/home/presentation/nearby_users_sheet.dart` — 删除
- iOS/Android/HarmonyOS 权限配置文件 — 移除NFC/蓝牙权限
- 14种语言文件 — 移除NFC/蓝牙翻译字符串
- 协议HTML文件 — 移除NFC/蓝牙权限说明permission-usage V6.6、privacy-policy V6.7、app-introduction V6.6
## [v6.19.3] - 2026-06-05
### 📝 文档更新 — 移除NFC和蓝牙相关协议引用
#### 变更说明
因NFC和蓝牙功能已从应用中移除同步更新所有协议HTML文件中的相关引用
1. **permission-usage.html** — 移除"蓝牙权限"章节(原第五节),重新编号后续章节(附近设备权限→第五节,网络权限→第六节,权限管理原则→第七节,权限变更→第八节,联系方式→第九节,法律适用→第十节),版本号 V6.5 → V6.6
2. **privacy-policy.html** — 业务功能映射表中"文件传输助手"的权限从"蓝牙/位置/附近设备权限"更新为"位置/附近设备权限",版本号 V6.6 → V6.7
3. **app-introduction.html** — 文件传输助手功能列表移除"蓝牙传输",新增"二维码配对传输",更新日期
#### 未修改文件无NFC/蓝牙引用)
- beginner-guide.html、disclaimer.html、user-service-agreement.html、account-agreement.html、member-benefits.html、children-privacy.html、dev-team.html、index.html
## [v6.19.2] - 2026-06-05
### 🐛 Bug修复 — macOS 编译运行关键问题修复
#### 修复问题
1. **Hive 初始化失败导致 KvStorage 全部降级** — 根因:`HiveSafeAccess` 使用 `hive_flutter``Hive.initFlutter()` 初始化,但用 `hive_ce``Hive.openBox()` 打开 Box两个包的 Hive 单例不同,导致所有 Box 打开失败:
- 统一所有代码使用 `hive_flutter` 包,替换全部 `hive_ce` 引用
- 涉及 8 个文件的 import 替换
2. **KvStorage 未初始化警告**`GeneralSettingsNotifier.build()` 同步调用约 48 次 `KvStorage.getBool/getString/getInt`,当 Hive 初始化失败时产生大量警告:
- 改为延迟加载模式(与 `ThemeSettingsNotifier` 一致),先返回默认值,再通过 `Future.microtask` 从存储加载
3. **macOS Release 构建签名失败**`Release.entitlements``keychain-access-groups` 需要开发者证书签名:
- 设置 `CODE_SIGN_IDENTITY = "-"` (ad-hoc 签名)
- 移除 `keychain``keychain-access-groups` entitlements
4. **macOS Impeller 未启用**`LiquidGlassLayer` 需要 Impeller 渲染引擎macOS 默认使用 Skia
-`Info.plist` 中添加 `FLTEnableImpeller = true` 启用 Impeller
5. **MissingPluginException: checkPendingManageStorage** — 数据管理 MethodChannel 仅鸿蒙平台实现:
- `_initDataManagementChannel()` 添加 `!pu.isOhos` 判断,非鸿蒙平台跳过
6. **RenderFlex overflow 弹窗** — 布局溢出错误在 debug 模式下显示红色溢出指示器:
- `main.dart``FlutterError.onError` 拦截 `overflowed` 错误,仅打印日志不弹窗
7. **platformVersionImpl 导出冲突**`platform_io_stub.dart``platform_io_native.dart` 都导出了 `platformVersionImpl`
-`utils.dart` 的 export hide 列表中添加 `platformVersionImpl`
#### 修改文件
- `lib/core/storage/hive_safe_access.dart` — 统一使用 `hive_flutter`,移除 `hive_ce` 引用
- `lib/core/services/data/backup_service.dart` — import 替换 `hive_ce``hive_flutter`
- `lib/features/discover/services/rss_service.dart` — import 替换
- `lib/core/services/error/crash_monitor.dart` — import 替换
- `lib/features/tool_center/leisure/providers/leisure_bookmark_provider.dart` — import 替换
- `lib/features/mine/settings/presentation/data_management_export_mixin.dart` — import 替换
- `lib/features/mine/settings/presentation/data_management_backup_mixin.dart` — import 替换
- `lib/features/discover/services/exchange_rate_service.dart` — import 替换
- `lib/core/storage/database/app_database.dart` — import 替换
- `lib/features/mine/settings/providers/general_settings_provider.dart` — 延迟加载模式
- `lib/main.dart` — FlutterError.onError 拦截 overflow 错误
- `lib/app/app.dart` — 数据管理通道添加平台判断
- `lib/core/utils/utils.dart` — 修复 platformVersionImpl 导出冲突
- `macos/Runner.xcodeproj/project.pbxproj` — CODE_SIGN_IDENTITY 设置 ad-hoc
- `macos/Runner/Release.entitlements` — 移除 keychain 权限
- `macos/Runner/Info.plist` — 启用 Impeller
## [v6.19.1] - 2026-06-05
### 🐛 Bug修复 — FontSyncService API返回数据类型解析错误
#### 修复问题
1. **FontSyncService 类型转换崩溃**`fetchOnlineFonts()``result['data'] as List<dynamic>?` 抛出异常:
- API `/api/font_sync/list` 返回 `data: {"fonts": [...], "count": N}``data``Map` 而非 `List`
- 修复为兼容 Map 和 List 两种格式,优先从 `data.fonts` 取字体列表
- 修复前iPad运行时抛出 `type '_Map<String, dynamic>' is not a subtype of type 'List<dynamic>?' in type cast`,导致字体同步失败回退到本地数据
#### 修改文件
- `lib/features/mine/settings/services/font_sync_service.dart` — 修复 `data` 字段类型解析逻辑
***
## [v6.19.0] - 2026-06-05
### 📋 结构化日志 — LogCategory 按模块控制日志级别
#### 新增功能
1. **LogCategory 枚举** — 在 `logger.dart` 中新增 `LogCategory` 枚举,支持 17 个模块分类:
- UI、网络、路由、存储、设备、认证、传输、搜索、图表、触觉、状态、服务、同步、离线、引导、推送、通用
- 每个分类有独立的默认日志级别(如 chart/haptic 默认 warning 减少噪音)
2. **分类级别控制** — 支持动态调整每个分类的日志级别:
- `LogCategory.setLevel()` 设置单个分类级别
- `LogCategory.setAllLevels()` 批量设置所有分类级别
- `LogCategory.resetLevels()` 重置为默认级别
- `LogCategory.exportCustomLevels()` / `importCustomLevels()` 支持持久化
3. **Log 方法扩展**`Log.d/i/w/e/f` 方法新增可选 `LogCategory? category` 参数:
- 向后兼容:不传 category 默认为 `LogCategory.general`
- 日志输出自动添加分类标签(如 `[网络]`, `[路由]`
- 分类级别过滤:低于分类当前级别的日志不输出到控制台(仍记录到内存缓冲区)
4. **LogEntry 扩展**`LogEntry` 新增 `category` 字段,支持按分类筛选
5. **日志查看器分类筛选** — 日志查看器页面新增分类过滤栏,支持按模块筛选日志
6. **日志级别设置页面** — 在通用设置"开发者"分组中新增"日志级别"入口:
- 展示所有分类及其当前级别
- 点击分类弹出级别选择器
- 提供"全部Debug"和"重置默认"快捷操作
- 自定义级别标记"自定义"标签
#### 修改文件
- `lib/core/utils/logger.dart` — 添加 LogCategory 枚举、修改 Log 方法签名、LogEntry 添加 category
- `lib/core/router/app_router.dart` — Log 调用添加 LogCategory.router
- `lib/core/router/ohos_nav_bridge.dart` — Log 调用添加 LogCategory.router
- `lib/core/router/ohos_route_types.dart` — Log 调用添加 LogCategory.router/auth
- `lib/core/services/device/haptic_service.dart` — Log 调用添加 LogCategory.haptic
- `lib/core/services/device/device_info_service.dart` — Log 调用添加 LogCategory.device/network
- `lib/features/home/providers/home_provider.dart` — Log 调用添加 LogCategory.provider
- `lib/features/file_transfer/providers/transfer_notifier.dart` — Log 调用添加 LogCategory.transfer
- `lib/main.dart` — Log 调用添加对应分类general/storage/haptic/ui/device/router/service/network/onboarding
- `lib/features/mine/settings/presentation/general/general_settings_sections.dart` — 添加"开发者"分组
- `lib/features/mine/settings/presentation/general/general_settings_page.dart` — 添加 log_level 导航处理
- `lib/features/mine/settings/presentation/general/log_level_settings_page.dart` — 新建,日志级别设置页面
- `lib/features/mine/settings/presentation/privacy/log_viewer_page.dart` — 添加分类过滤栏和分类标签显示
***
## [v6.18.0] - 2026-06-05
### ♿ 无障碍适配 — VoiceOver/TalkBack 支持
#### 新增功能
1. **无障碍服务** — 创建 `AccessibilityService` 单例,管理系统无障碍状态检测、语义调试开关、语义标注辅助方法
2. **通用设置-无障碍分组** — 在通用设置页面"显示"分组后新增"♿ 无障碍"分组,包含:
- 语义调试开关(开发者选项,可手动切换)
- 高对比度指示(跟随系统,只读)
- 减少动画指示(跟随系统,只读)
- 粗体文本指示(跟随系统,只读)
3. **关键页面Semantics标注** — 为以下组件添加 `Semantics(label/hint/value)` 标注,支持 iOS VoiceOver 和鸿蒙 TalkBack
- 首页句子卡片(`SentenceCard`)— 朗读句子内容、作者、互动状态
- 排行榜项卡片(`RankItemCard`)— 朗读排名、用户名、等级、数值
- 日签卡片页面(`DailyCardPage`)— 朗读日签内容,保存/分享按钮标注
4. **App初始化集成**`app.dart` 中初始化 AccessibilityServicebuild 时同步系统无障碍状态
#### 修改文件
- `lib/core/services/accessibility/accessibility_service.dart` — 新建,无障碍服务
- `lib/core/services/accessibility/accessibility_export.dart` — 新建,导出文件
- `lib/features/mine/settings/providers/default_settings.dart` — 添加 `semanticsDebugEnabled` 默认值
- `lib/features/mine/settings/providers/sub/general_fields_provider.dart` — 添加 `semanticsDebugEnabled` 字段及持久化
- `lib/features/mine/settings/providers/general_settings_provider.dart` — 添加 getter/setter
- `lib/features/mine/settings/presentation/general/general_settings_sections.dart` — 添加无障碍分组
- `lib/features/mine/settings/presentation/general/general_settings_page.dart` — 处理语义调试开关事件
- `lib/features/home/presentation/home_sentence_card.dart` — 添加 Semantics 标注
- `lib/shared/widgets/cards/rank_item_card.dart` — 添加 Semantics 标注
- `lib/features/daily_card/presentation/daily_card_page.dart` — 添加 Semantics 标注
- `lib/app/app.dart` — 初始化 AccessibilityService + build 时同步状态
***
## [v6.18.0] - 2026-06-05
### 🏗️ 架构增强 — 5项核心重构
#### 1. PlatformCapability 接口抽象
- 新增 `lib/core/utils/platform/platform_capability.dart` — 平台能力注册表
- 定义 19 项能力键localAuth/flutterVibrate/nfcShare/quickActions/homeWidget/backdropFilter/liquidGlass/heavyAnimation/pushNotification/filesystem/usbTransfer/bluetoothDiscovery/shareSheet/fileExport/gpu3d/gallerySave/webView3d/localNotification/calendar
- `PlatformCapabilities.init()` 在 app 启动时根据平台注册能力
- `supports(key)` 查询 + `fallbackDescription(key)` 降级说明
- 重构 11 个文件my_devices_page/haptic_service/nfc_share_service/quick_actions_service/local_notification_service/notification_init_stub/glass_container/account_insights_sheet/home_widget_service/widget_provider/plugin_update_service
#### 2. LogCategory 结构化日志
- 新增 `LogCategory` 枚举17 个模块分类ui/network/router/storage/device/auth/transfer/search/chart/haptic/provider/service/sync/offline/onboarding/push/general
- 每个分类独立日志级别chart/haptic 默认 warning 减少噪音
- `Log.d/i/w/e/f` 新增可选 `category` 参数,完全向后兼容
- 日志输出自动添加分类标签(如 `[网络]``[路由]`
- 新增 `lib/features/mine/settings/presentation/log_level_settings_page.dart` — 日志级别配置页面
- 通用设置"开发者"分组新增"日志级别"入口
- 日志查看器新增分类筛选栏
#### 3. SafeChartWidget 封装
- 新增 `lib/shared/widgets/charts/safe_chart_widget.dart` — 安全图表包装组件
- `_disposed` + `_ready` 双标志位保护 + RepaintBoundary 隔离重绘
- 替换 10 个图表页面的 DeferredBuilder → SafeChartWidgetlearning_center/coin_log/learning_progress/transfer_stats/statistics/history/favorite/trend_chart/transfer_speed_chart/learning_charts
#### 4. WebSocket P2P 文件传输
- 新增 `lib/features/file_transfer/services/transport/ws_p2p_service.dart` — WebSocket P2P 直连服务
- 服务端/客户端双模式、分块传输、心跳保活、自动重连
- `TransportType` 新增 `wsP2p`,同局域网优先推荐 P2Pconfidence 0.93
- 配对码页面新增 P2P 状态指示区域
#### 5. 无障碍适配
- 新增 `lib/core/services/accessibility/accessibility_service.dart` — 无障碍服务
- 通用设置新增"♿ 无障碍"分组(语义调试开关 + 系统状态指示)
- 关键组件添加 Semantics 标注:句子卡片/排行榜项/日签卡片
- App 初始化时恢复语义调试状态
***
## [v6.17.0] - 2026-06-05
### 🔧 多平台问题批量修复 — 鸿蒙端 + Web端 + 通用问题
#### 鸿蒙端修复
1. **1.1 工具中心部分页面显示"不支持此页面"** — 为缺少ohosBuilder的路由添加鸿蒙端页面构建器
2. **1.2 长按桌面图标无快捷按钮** — module.json5添加shortcuts配置主题个性化+通用设置)
3. **1.3 我的设备下线/移除报错"验证未通过"** — 鸿蒙端跳过LocalAuthentication生物识别直接弹确认对话框
4. **1.7 账户洞察鸿蒙端设备识别异常提示** — 鸿蒙端显示"部分设备可能会出现识别异常"蓝色提示条
5. **1.9 HapticService降级警告** — 鸿蒙端直接跳过flutter_vibrate检测日志降级为debug级别
6. **1.11 鸿蒙端设备显示"未知设备"** — 增加manufacturer/hardware/device字段回退链Web端精确识别浏览器
#### 通用修复
7. **1.5 句子详情外部搜索内容为空** — 使用_resolveDisplayText()获取最合适的搜索文本
8. **1.8 重新打开引导页没反应** — 先重置onboarding完成状态再导航
9. **1.10/1.12 RenderChartFadeTransition disposed错误** — DeferredBuilder添加disposed标志+图表页面mounted检查
10. **2 工具中心搜索类型不支持** — 更新搜索类型映射与API一致
11. **2.1 预置词搜索** — ToolListPage/ToolSearchPage/HanziToolPage添加热门搜索标签
12. **3 文章广场点击文章不显示内容** — 清除旧数据+完善错误状态展示
13. **4 RenderFlex overflow弹窗改为日志** — overflow错误仅记录Log.w不传递给原始处理器
14. **6 引导页完成按钮loading优化** — loading状态动态切换文字正在准备/加载/初始化/即将完成)
15. **7 日签卡片保存分享按钮移到appbar** — 保存分享移到navigationBar trailing
16. **8 文件传输配对码页面缺少Appbar** — 替换为始终可见的返回按钮
17. **9 减少不必要的日志打印** — 缓冲区减半+Log.i节流5秒+路由日志降级
18. **10 排行榜隐私保护** — 所有排行类型<50人时显示隐私提示序号用*代替
19. **11 离线模式/收藏页面重复图标** — 移除dialog重复icon+修复双emoji问题
#### Web端修复
20. **5.1 引导页协议链接不跳转** — 使用rootNavigator确保跨ShellRoute导航
21. **5.2 Web端浏览器精确识别** — 基于WebBrowserInfo识别Chrome/Edge/Safari/QQ浏览器等
#### 修改文件
- `ohos/entry/src/main/module.json5` — shortcuts配置
- `lib/core/services/device/device_info_service.dart` — 鸿蒙设备回退+Web浏览器识别
- `lib/core/services/device/haptic_service.dart` — 鸿蒙端跳过flutter_vibrate
- `lib/core/services/error/global_error_handler.dart` — overflow静默处理
- `lib/core/utils/logger.dart` — 缓冲区减半+节流机制
- `lib/core/layout/app_shell.dart` — 移除高频日志
- `lib/core/router/app_router.dart` — 日志降级
- `lib/core/router/route_registry.dart` — ohosBuilder+预置词传递
- `lib/core/router/ohos_placeholders.dart` — 预置词传递
- `lib/features/mine/user_center/presentation/my_devices_page.dart` — 鸿蒙端跳过生物识别
- `lib/features/mine/user_center/presentation/widgets/account_insights_sheet.dart` — 鸿蒙端提示
- `lib/features/mine/settings/presentation/general/general_settings_page.dart` — 引导页重开修复
- `lib/features/home/presentation/providers/sentence_detail_sheet.dart` — 外部搜索修复
- `lib/features/home/presentation/providers/offline_page.dart` — 移除重复icon
- `lib/features/home/presentation/favorite_page.dart` — 修复双emoji+disposed保护
- `lib/features/onboarding/presentation/pages/welcome_page.dart` — Web端协议链接修复
- `lib/features/onboarding/presentation/pages/personalization_page.dart` — loading动态文字
- `lib/features/daily_card/presentation/daily_card_page.dart` — 保存分享移到appbar
- `lib/features/file_transfer/presentation/pages/device_pairing_page.dart` — 返回按钮修复
- `lib/features/article/presentation/article_detail_page.dart` — 文章内容显示修复
- `lib/features/article/providers/article_provider.dart` — 清除旧数据
- `lib/features/rank/presentation/rank_page.dart` — 隐私保护逻辑
- `lib/shared/widgets/containers/deferred_builder.dart` — disposed保护
- `lib/l10n/types/t_account_insights.dart` + 14个语言文件 — 鸿蒙端提示翻译
***
## [v6.16.9] - 2026-06-05
### 🔧 工具中心三合一修复 — 鸿蒙端路由 + 搜索类型 + 预置词搜索
#### 问题
1. **鸿蒙端工具中心部分页面显示"不支持此页面"**`hanzi-tool``calc-tool``tool-list` 三个关键路由缺少 `ohosBuilder`,导致 OhosNavBridge 无法匹配路由,显示"鸿蒙端暂不支持此页面"
2. **搜索类型不支持**`SearchType.changshi` 的值为 `'cs'`(对应 searchall 接口),但 hanzi/search 接口实际支持 `changshi` 类型,导致搜索返回"不支持的搜索类型"
3. **缺少预置词搜索** — 工具中心页面无热门搜索词引导,用户需要手动输入关键词,体验不佳
#### 修复
- **鸿蒙端路由** — 为 `hanzi-tool``calc-tool``tool-list` 三个路由添加 `ohosBuilder`,新增 `/tool/nick` 路由
- **搜索类型映射** — `changshi``SearchApiType.searchAll`/`'cs'` 改为 `SearchApiType.hanziSearch`/`'changshi'`;新增 `cs` 枚举值保留 searchall 接口;新增 25 个 searchall 独有类型
- **预置词搜索** — `ToolNavConfig` 新增 `presetKeywords` 字段;所有工具配置预置词;`HanziToolConfig` 新增 `presetKeywords``ToolListPage`/`ToolSearchPage`/`HanziToolPage` 添加热门搜索标签UI
#### 修改文件
- `lib/core/router/route_registry.dart` — tool-list builder 传递 presetKeywords
- `lib/core/router/ohos_placeholders.dart` — buildToolListOhosWidget/buildNickToolOhosWidget 传递 presetKeywords
- `lib/core/router/app_routes.dart` — 新增 nickTool 路由常量
- `lib/features/discover/models/search_type.dart` — changshi 改用 hanziSearch新增 searchall 独有类型
- `lib/features/discover/models/tool_item.dart` — ToolNavConfig 新增 presetKeywords所有工具配置预置词
- `lib/features/discover/presentation/pages/tool_list_page.dart` — 新增 presetKeywords 属性和热门搜索标签UI
- `lib/features/discover/presentation/pages/tool_search_page.dart` — 新增 presetKeywords 属性和热门搜索标签UI
- `lib/features/discover/presentation/pages/tool/hanzi_tool_page.dart` — HanziToolConfig 新增 presetKeywords_buildQuickActions 使用配置预置词
- `lib/features/discover/presentation/widgets/tool/tool_navigation_helper.dart` — 传递 presetKeywords 给 HanziToolConfig 和 listExtra
***
## [v6.16.9] - 2026-06-05
### 🔧 Windows构建修复 — sqlite3预编译DLL + win32离线构建回退
#### 问题
1. **sqlite3_flutter_libs无法从sqlite.org下载** — CMake构建时尝试从sqlite.org下载SQLite源码因网络不可达导致构建失败
2. **win32包无法从GitHub下载预编译DLL** — native assets构建钩子尝试从`github.com/halildurmus/win32`下载`win32_windows_x64.dll`,因网络限制导致`SocketException`,整个构建失败
#### 修复
- **sqlite3预编译DLL** — 修改`sqlite3_flutter_libs`的CMakeLists.txt使用本地预编译的`sqlite3.dll``sqlite3.lib`来自NuGet包`SQLite.Native`),跳过源码下载和编译
- **win32离线构建回退** — 修改`win32`包的`build.dart`钩子在下载失败时自动回退到本地C编译构建而非直接抛出异常
#### 举一反三
- 所有依赖外部网络下载的构建步骤都应有离线回退方案
- 预编译二进制文件应优先使用本地缓存或镜像源
- Flutter native assets构建钩子应处理网络异常提供本地构建备选
**修改文件:**
- `packages/win32/hook/build.dart` — 添加try-catch回退到本地C构建
- `E:\cache\pub\hosted\pub.flutter-io.cn\sqlite3_flutter_libs-0.5.42\windows\CMakeLists.txt` — 使用预编译sqlite3.dll
***
## [v6.16.8] - 2026-06-05
### 🛡️ main()初始化异常捕获修复
#### 问题
- **`_appMain()`未捕获异常** — `_appMain()`是返回`Future<void>`的异步函数,在`main()`中直接调用未await也未捕获异常。若初始化过程中发生未处理的异步异常如windowManager初始化失败、Catcher2配置异常等会导致顶层未处理的Future异常整个应用崩溃且无日志记录。
#### 修复
- **catchError兜底** — 在`main()`中为`_appMain()`调用添加`.catchError()`,捕获所有未处理的异步异常并记录日志,防止静默崩溃
#### 举一反三
- 所有异步入口函数调用必须处理Future异常catchError或try-catch
- 即使内部各步骤已有try-catch顶层仍需兜底保护防止遗漏
**修改文件:** `lib/main.dart`
***
## [v6.16.7] - 2026-06-05
### 🌐 Web端编译+运行修复 — Platform兼容+Zone mismatch+path_provider保护
#### 问题
1. **`Platform._operatingSystem` 不支持** — Web端 `dart:io``Platform` 类不可用,多个文件直接使用 `Platform.isAndroid`/`Platform.isIOS` 等导致运行时 `Unsupported operation` 异常
2. **`path_provider` MissingPluginException** — Web端 `getApplicationSupportDirectory()`/`getTemporaryDirectory()` 等无原生实现,多个文件直接调用导致异常
3. **Catcher2 Zone mismatch**`main()``runZonedGuarded` 与 Catcher2 内部 `runZonedGuarded` 嵌套导致 Zone 不一致警告
4. **Catcher2 navigator key 缺失**`Catcher2` 构造时未传入 `navigatorKey`,导致对话框报告模式无法使用
#### 修复
- **Platform.xxx → pu.xxx** — 将30+个文件中的 `Platform.isAndroid/isIOS/isMacOS/isWindows/isLinux/pathSeparator/operatingSystem` 替换为 `pu.isAndroid/isIOS/...` 抽象Web端自动使用 stub 实现
- **kIsWeb 保护** — 为20+个文件添加 `if (kIsWeb) return/throw` 保护,防止 Web 端调用 `path_provider``dart:io` API
- **Zone mismatch** — 移除 `main()` 中的外层 `runZonedGuarded`,由 Catcher2 内部统一管理 zone
- **Catcher2 navigatorKey** — 传入 `rootNavigatorKey`,修复对话框报告模式
- **platformVersion** — 新增 `pu.platformVersion` 抽象(`permission_service.dart` 需要)
#### 举一反三
- 所有 `Platform.xxx` 调用必须通过 `platform_utils.dart``pu.xxx` 抽象,禁止直接使用 `dart:io``Platform`
- 所有 `path_provider` 调用必须添加 `kIsWeb` 保护
- `Platform.pathSeparator` 统一替换为 `'/'`Dart 在所有平台都支持正斜杠)
- Catcher2 与 `runZonedGuarded` 不可嵌套使用
**修改文件30+**
- `lib/main.dart` — 移除外层 runZonedGuarded
- `lib/core/services/catcher2_config_service.dart` — 添加 navigatorKey
- `lib/core/services/device/device_info_service.dart` — Platform → pu
- `lib/core/utils/platform/ohos_compatibility_helper.dart` — kIsWeb 保护
- `lib/core/utils/platform/platform_io_native.dart` — 新增 platformVersionImpl
- `lib/core/utils/platform/platform_io_stub.dart` — 新增 platformVersionImpl
- `lib/core/utils/platform/platform_utils.dart` — 新增 platformVersion
- `lib/core/services/crash_log_service.dart` — kIsWeb 保护
- `lib/core/storage/hive_safe_access.dart` — kIsWeb 保护
- `lib/core/utils/logger.dart` — kIsWeb 保护
- `lib/core/services/data/backup_service.dart` — kIsWeb 保护
- `lib/core/services/data/settings_export_service.dart` — kIsWeb 保护
- `lib/core/services/data/image_cache_metadata_service.dart` — kIsWeb 保护
- `lib/core/network/api_client.dart` — kIsWeb 保护
- `lib/shared/widgets/display/appbar_date_display.dart` — Platform → pu
- `lib/features/home/presentation/date_config_sheet.dart` — Platform → pu
- `lib/core/services/notification/notification_service.dart` — Platform → pu
- `lib/core/services/notification/local_notification_service.dart` — Platform → pu
- `lib/features/home/presentation/home_sentence_card.dart` — kIsWeb 保护
- `lib/features/onboarding/presentation/widgets/mesh_gradient_background.dart` — Platform → pu
- `lib/core/services/auth/permission_service.dart` — Platform → pu
- `lib/shared/widgets/media/safe_cached_image.dart` — kIsWeb 保护
- `lib/features/home/services/cache_service.dart` — pathSeparator → '/'
- `lib/shared/widgets/feedback/share_sheet.dart` — Platform → pu
- `lib/features/tool_center/leisure/presentation/widgets/leisure_share_sheet.dart` — Platform → pu
- `lib/features/mine/settings/presentation/image_cache_grid.dart` — pathSeparator → '/'
- `lib/features/mine/settings/presentation/image_cache_detail_page.dart` — pathSeparator → '/'
- `lib/features/mine/settings/services/font_download_service.dart` — pathSeparator → '/'
- `lib/features/mine/settings/presentation/font_management_notifier.dart` — pathSeparator → '/'
- `lib/core/services/readlater/sharing_receiver_service.dart` — pathSeparator → '/'
- 以及其他10+个文件的 kIsWeb 保护
***
## [v6.16.6] - 2026-06-05
### 🖥️ Windows端编译+运行修复 — 登录闪退+编译错误+平台兼容
#### 问题
1. **登录闪退** — Windows端输入账户密码后点击登录应用崩溃闪退
- 根因:`FlutterSecureStorageWindows.write()``_backwardCompatible.delete()` 未 await在 Windows 上 `MethodChannelFlutterSecureStorage` 未注册原生实现,抛出 `MissingPluginException` 成为未处理异步异常
- 次因:`SecureStorage` 缺少 Windows 降级方案macOS 有 SharedPreferences 替代Windows 没有)
2. **编译错误** — 多个文件使用 `kIsWeb` 但未导入 `package:flutter/foundation.dart`
3. **语法错误**`more_settings_page.dart` 工厂重置方法中多余 `}` 导致 try-catch 结构破坏
4. **平台兼容**`Platform.isAndroid``progress_share_card.dart` 中未通过 `pu` 封装使用
5. **桌面端兼容**`QuickActionsService` 在桌面端调用移动端 API
6. **设备注册**`AuthNotifier.login()``registerDeviceIfNeeded()` 未 await异常无法捕获
#### 修复
- **FlutterSecureStorageWindows** — `write()``_backwardCompatible.delete()` 添加 await + try-catch
- **SecureStorage** — Windows 与 macOS 统一使用 SharedPreferences 降级方案(`_useSharedPreferences`
- **AuthNotifier** — `registerDeviceIfNeeded()` 添加 await + try-catchlogin 和 register 两处)
- **QuickActionsService** — 桌面端跳过初始化(`if (pu.isDesktop) return`
- **progress_share_card.dart** — `Platform.isAndroid/IOS``pu.isAndroid/isIOS`
- **more_settings_page.dart** — 修复多余 `}` 导致的 try-catch 结构错误
- **6个文件** — 添加 `import 'package:flutter/foundation.dart'` 修复 `kIsWeb` 未定义:
- `general_settings_provider.dart`
- `general_fields_provider.dart`
- `chat_file_service.dart`
- `data_export_service.dart`
- `chat_audio_service.dart`
- `readlater_device_sync_service.dart`
**修改文件:**
- `packages/flutter_secure_storage_windows/lib/src/flutter_secure_storage_windows_ffi.dart`
- `lib/core/storage/secure_storage.dart`
- `lib/features/auth/providers/auth_provider.dart`
- `lib/core/services/device/quick_actions_service.dart`
- `lib/features/progress/presentation/progress_share_card.dart`
- `lib/features/mine/settings/presentation/more_settings_page.dart`
- `lib/features/mine/settings/providers/general_settings_provider.dart`
- `lib/features/mine/settings/providers/sub/general_fields_provider.dart`
- `lib/features/discover/services/chat_file_service.dart`
- `lib/core/services/data/data_export_service.dart`
- `lib/features/discover/services/chat_audio_service.dart`
- `lib/core/services/readlater/readlater_device_sync_service.dart`
***
## [v6.16.5] - 2026-06-05
### 🌐 Web平台兼容性修复 — kIsWeb守卫保护文件系统操作
#### 问题
多个服务文件直接使用 `dart:io``File`/`Directory``path_provider``getTemporaryDirectory()` 等API
在Web平台运行时会抛出 `MissingPluginException` 或编译错误,导致应用崩溃。
#### 修复
为所有涉及文件系统操作的公共方法添加 `kIsWeb` / `pu.isWeb` 早期守卫:
- **logger.dart** — `exportToFile()` 添加 `if (kIsWeb) throw UnsupportedError(...)``shareLogs()` 添加 `if (kIsWeb) return;`
- **backup_service.dart** — `getBackupList()` 返回空列表;`performBackup()` 抛出 UnsupportedError`deleteBackup()` 返回 false`deleteAllBackups()` / `getTotalBackupSize()` 早期返回
- **settings_export_service.dart** — `shareSettings()` 添加 `if (kIsWeb) return;``_writeTempFile()` 抛出 UnsupportedError
- **image_cache_metadata_service.dart** — `indexFile()` / `indexFromCacheManager()` / `autoCleanExpired()` / `rebuildIndex()` 均添加 `if (kIsWeb) return;`
- **api_client.dart** — `createFormData()` 添加 `if (kIsWeb) throw UnsupportedError(...)`
#### 修复原则
- 所有 `getTemporaryDirectory()``getApplicationDocumentsDirectory()``getApplicationSupportDirectory()``getLibraryDirectory()` 调用前,均需 `if (kIsWeb)` 保护
- 保留 `import 'dart:io';` 因为非Web端仍需要
- 添加 `import 'package:flutter/foundation.dart' show kIsWeb;`
**修改文件:**
- `lib/core/utils/logger.dart`
- `lib/core/services/data/backup_service.dart`
- `lib/core/services/data/settings_export_service.dart`
- `lib/core/services/data/image_cache_metadata_service.dart`
- `lib/core/network/api_client.dart`
***
## [v6.16.4] - 2026-06-04
### 🐛 鸿蒙端编译修复 — Form小组件不兼容API清理
#### 问题
鸿蒙端 `flutter build hap` 编译失败81个错误根因
1. **Form小组件使用了不支持的API**`bindContextMenu``MenuItem``Placement``onLongPress``vibrator` 在鸿蒙Form(卡片)环境中不可用
2. **缺少图标资源**`ic_refresh``ic_copy``ic_open_app``ic_save``ic_share``ic_check``ic_open``ohos/entry/src/main/resources/base/media/` 中不存在
#### 修复
- **移除6个Form页面不兼容API** — SolarTermFormPage、CheckinFormPage、DailySentenceFormPage、ReadlaterFormPage、DailyCardFormPage、FortuneFormPage
- 移除 `@Builder MenuBuilder()` + `MenuItem`Form不支持菜单组件
- 移除 `.bindContextMenu()`Form不支持上下文菜单
- 移除 `.onLongPress()` + `vibrator.vibrate()`Form不支持长按和震动
- 移除 `pasteboard.setData()` / `promptAction.showToast()`Form不支持剪贴板和Toast
- 保留 `.onClick()` + `postCardAction()` 跳转主APP功能
- **添加7个占位图标资源** — 复制 `icon.png` 作为占位,避免资源引用缺失错误
#### 举一反三
- 鸿蒙Form(卡片)有严格API限制仅支持基础UI组件和 `postCardAction` 交互
- 任何需要复杂交互(菜单、长按、震动、剪贴板)的操作应通过 `postCardAction` 跳转到主APP执行
- Form页面的功能操作应通过 `router` / `call` / `message` 三种 `postCardAction` 类型实现
**修改文件:**
- `ohos/entry/src/main/ets/formability/pages/SolarTermFormPage.ets`
- `ohos/entry/src/main/ets/formability/pages/CheckinFormPage.ets`
- `ohos/entry/src/main/ets/formability/pages/DailySentenceFormPage.ets`
- `ohos/entry/src/main/ets/formability/pages/ReadlaterFormPage.ets`
- `ohos/entry/src/main/ets/formability/pages/DailyCardFormPage.ets`
- `ohos/entry/src/main/ets/formability/pages/FortuneFormPage.ets`
- `ohos/entry/src/main/resources/base/media/` (7个图标资源)
***
## [v6.16.3] - 2026-06-04
### 🛡️ 系统性稳定性加固与审计修复v6.16.0 ~ v6.16.3 合并)
#### 审计修复 — 5类系统性风险26处加固
基于验收审计发现的87个潜在问题优先修复26处高危问题
- **gal插件ArgumentError捕获**5处— iOS模拟器objective_c库异常时降级为友好提示
- **path_provider异常降级**8处— 失败时降级使用`Directory.systemTemp`
- **Hive.openBox ArgumentError捕获**2处— 降级打开fallback box
- **addPostFrameCallback mounted检查**6处— 回调开头添加mounted保护
- **页面级pop canPop()保护**5处— 不可pop时降级导航到首页
#### Hive系统级联崩溃根因修复v6.16.2 + v6.16.3
- **根因:** `Hive.initFlutter()`在iOS模拟器因objective_c库问题失败后导致整个Hive系统瘫痪
- **影响范围:** KvStorage、WallpaperFavoriteService、WallpaperHealthService、SettingsChangeLogger等全部初始化失败
- **修复:** `HiveSafeAccess.ensureInitialized()` — 失败时降级使用`Hive.init()`+手动路径获取;各服务添加全异常捕获优雅降级
#### 引导页 & 小部件修复v6.16.1
- 引导页重复显示 — 将判断从`initialLocation`移到`redirect`回调,改用`isOnboardingCompleted`
- 桌面小部件framework断言 — `CupertinoSliverNavigationBar`补充`largeTitle`参数
**修改文件:**
- `hive_safe_access.dart`, `kv_storage.dart`, `wallpaper_favorite_service.dart`, `wallpaper_health_service.dart`, `settings_change_logger.dart`
- `share_sheet.dart`, `leisure_share_sheet.dart`, `progress_share_card.dart`, `chat_video_bubble.dart`, `china_colors_page.dart`
- `export_io_native.dart`, `font_download_service.dart`, `logger.dart`, `sentence_detail_actions.dart`, `account_export_info_sheet.dart`, `voice_recorder_sheet.dart`, `ohos_compatibility_helper.dart`, `general_fields_provider.dart`
- `progress_beautify_page.dart`, `signin_page.dart`, `app_lock_pattern_setup.dart`, `image_cache_page.dart`, `chat_flow_page.dart`, `weather_settings_page.dart`
- `hot_search_page.dart`, `security_question_page.dart`, `change_password_page.dart`, `sentence_detail_sheet.dart`
- `app_router.dart`, `widget_management_page.dart`
***
## [v6.15.0] - 2026-06-04
### 🐛 10项Bug修复 + 验收审计举一反三
| # | 问题 | 根因 | 修改文件 |
|---|------|------|---------|
| 1 | 了解我们页面微信搜索无法单独操作 | 标签合并导致 | `learn_us_widgets.dart` |
| 2 | 权限管理摇一摇开关关闭无反应 | refresh()销毁开关组件 | `permission_management_page.dart`, `permission_service.dart` |
| 3 | 日签卡片一直转圈loading | API请求无超时保护 | `daily_card_provider.dart`, `daily_card_service.dart` |
| 4 | 进度保存图片失败 | objective_c库gal抛ArgumentError | `export_io_native.dart`, `progress_beautify_page.dart` |
| 5 | 数据管理页文档目录异常 | safeAppDirPath null无降级 | `backup_service.dart`, `data_management_page.dart` |
| 6 | 缓存管理AppBar标题多余"图片" | 翻译文案问题 | `zh_cn.dart`, `zh_tw.dart` |
| 7 | 个人中心Hive缓存报错 | HiveCacheStore打开Box异常 | `cache_config.dart` |
| 8 | iOS长按App icon无返回按钮 | QuickActions用go()替换路由 | `app.dart`3处go→push |
| 9 | 清理后台重开显示引导页 | 路由判断用isFirstLaunch误判 | `app_router.dart`, `onboarding_provider.dart` |
| 10 | 桌面小部件framework断言 | initState异步访问ref | `widget_management_page.dart` |
### 🔍 验收审计 - 举一反三分析
| 风险类别 | 高危 | 中危 | 低危 | 合计 |
|---------|------|------|------|------|
| 异步生命周期(mounted保护) | 11 | 20 | 9 | 42 |
| Hive/Path/Gal缺少ArgumentError捕获 | 9 | 10 | 4 | 29 |
| 路由导航(go应改push) | 4 | 4 | 2 | 10 |
| KvStorage关键标志位默认值 | 4 | 2 | 0 | 6 |
> v6.16.0已修复上述审计建议的高危问题
***
## [v6.14.0] - 2026-06-04
### 🎴 日签卡片 AR 3D 展示效果 (Issue #9)
采用伪AR方案 — Flutter 3D变换 + 设备传感器模拟AR体验
- **3D卡片渲染** — Matrix4透视投影变换设备感应倾斜偏移`sensors_plus`
- **景深效果** — RadialGradient深空背景 + 动态星空粒子 + ShaderMask暗角
- **光影动画** — 4秒周期LinearGradient光影流动覆盖层
- **截图分享** — RepaintBoundary截取PNG → `share_plus`系统分享
- **6套AR主题** — 宇宙深空🌌 / 极光幻境🌈 / 落日余晖🌅 / 森林秘境🌿 / 深海探幽🌊 / 水晶殿堂💎
- **手势控制** — 拖拽旋转 / 双击重置(触觉反馈) / 捏合缩放(0.6x-2.0x)
- **Cupertino风格控制面板** — GlassContainer底部面板截图/主题切换/自动旋转/重置)
**新增文件:** `lib/features/daily_card/presentation/daily_card_ar_view.dart`
**修改文件:** `daily_card_page.dart`, `app_routes.dart`, `route_registry.dart`
***
## [v6.13.0] - 2026-06-04
### 🔧 鸿蒙原生层修复 + iOS Widget深度定制 + 基础设施
#### A. 鸿蒙原生层修复 (Issue #2)
- 所有FormPage添加`.bindContextMenu()`长按上下文菜单6个卡片页面各自定制操作菜单
- 日签卡片保存按钮OHOS兼容 — gal不支持OHOS降级为系统分享方案
#### B. iOS Widget深度定制 — AppIntent交互式按钮 (Issue #8)
- 新增7种AppIntent定义刷新/点赞/分享/切换/签到/打开页面/保存卡片)
- 6个Widget View添加iOS 17+ `Button(intent:)`交互式按钮iOS 14-16降级为Link方式
- Flutter端更新`home_widget_service.dart`处理新Intent类型
#### C. 基础设施 (Issue #3, #4)
- **Hive安全访问单例** — 新建`hive_safe_access.dart`统一lazy-init守卫、Box缓存、并发锁、重试机制KvStorage/CrashMonitor/CacheConfig/RssService全部接入
- **设备发现去重增强** — deviceId+IP组合键去重 + 30秒心跳超时清理定时器
**新增文件:** `hive_safe_access.dart`, `XianyanWidgetIntents.swift`
**修改文件:** 6个FormPage.ets, `XianyanWidget.swift`, `home_widget_service.dart`, `export_io_native.dart`, `ohos_compatibility_helper.dart`, `kv_storage.dart`, `lan_discovery_service.dart`, `device_discovery_provider.dart`
***
## [v6.11.0] - 2026-06-04
### 📷 集成真实扫码SDK + 鸿蒙端全面修复
#### 扫码功能完善
- 创建通用扫码页面`qrcode_scanner_page.dart`,集成`mobile_scanner: ^7.1.4`
- 完整流程:相机权限 → 动画扫描线 → URL/文本/Email/电话/WiFi/vCard分类处理 → 智能结果处理
- 闪光灯开关、相册识别辅助功能Cupertino风格界面支持动态主题
#### 鸿蒙端兼容性修复9项
- ✅ 相机权限缺失 → AndroidManifest.xml添加CAMERA
- ⚠️ 文件传输设备列表重复 → 已有去重逻辑建议增加IP组合键
- ⚠️ 长按桌面图标无按钮列表 → 鸿蒙原生限制需改.ets代码
- ✅ HiveError Box not found → OhosCompatibilityHelper.safeOpenBox()
- ⚠️ 日签保存无反应 → gal不支持OHOS降级为分享
- ✅ 输入框不弹输入法 → requestKeyboardFocus()增强方法
- ✅ 数据管理显示0B → safeGetDirectorySize()安全读取
- ✅ 设备信息unknown → getEnhancedPlatform()/getEnhancedDeviceModel()
- ✅ OhosCompatibleState Mixin快速集成
**新增文件:** `qrcode_scanner_page.dart`, `ohos_compatibility_helper.dart`
**修改文件:** `profile_page.dart`, `app_routes.dart`, `route_registry.dart`, `AndroidManifest.xml`
***
## [v6.10.5] - 2026-06-02
### 🏗️ 架构优化 + 多语言全覆盖 + 构建修复v6.10.0 ~ v6.10.5 合并)
#### 架构优化 (v6.10.0)
- **MacosPlatformService统一** — 分散MethodChannel统一为新服务Swift端扩展为10个方法处理器
- **二维码WebSocket长连接** — QrcodeWsService双通道架构WS优先+HTTP轮询降级+ 中继服务器
- **RSS全文阅读** — Readability算法提取全文 + 图片画廊阅读模式
- **灵动岛倒计时聚焦模式** — startCountdownActivity/update/endCountdownActivity
- **自定义Lint规则** — double_angle_brackets / hardcoded_color / hardcoded_chinese
- **应用图标和名称** — 全平台图标更新iOS/macOS名称改为中文「闲言」
#### 多语言全覆盖 (v6.10.3 + v6.10.4)
- **6页面全量i18n** — 账户设置(18key)、数据管理(33key)、来源(40key)、收藏(68key)、离线(67key)
- **翻译字段补全** — roleNative + 7个分发渠道字段12种语言补全
- **覆盖14种语言** — zh_cn/en/ja/zh_tw/ko/de/it/es/ar/bn/hi/pt/ru/fr
#### 构建修复 (v6.10.1 + v6.10.2 + v6.10.5)
- **Syncfusion Chart崩溃** — DeferredBuilder包裹35处图表延迟渲染21个文件
- **扫码登录自动跳转** — HTTP轮询(3s) + WebSocket双通道监听 + 自动tokenLogin
- **pubspec.yaml双模板** — 拆分pubspec.ohos.yaml/pubspec.macos.yamltools/setup_pubspec.ps1自动生成
- **AppBar标题/返回按钮修复** — 7个页面统一CupertinoNavigationBar风格
**涉及文件:** macos平台服务、路由注册、扫码登录、多语言系统(5新模块+14语言)、图表组件、pubspec模板、7个页面导航栏
***
## [v6.9.28] - 2026-06-01
### 🏗️ 路由架构重构 + 基础设施建设v6.9.19 ~ v6.9.51 合并)
#### 路由架构重构 (v6.9.28) — Single Source of Truth
- 新增统一路由注册表`route_registry.dart`~1000行消除6-8个文件手动同步鸿蒙配置
- 自动生成GoRoute和OhosRouteEntryohos_nav_bridge从1188行缩减至245行
- 新增5个核心文件route_def/route_registry/route_builders/ohos_route_types/ohos_placeholders
#### 数据同步架构 (v6.9.23) — DataSyncEventBus
- 统一事件总线替代分散StreamController零破坏性迁移compat兼容层
- 支持readlater/favorite两种事件类型source追踪便于调试
#### Supabase SDK移除 (v6.9.41) — 全面切换自建API
- 移除supabase_flutter依赖5个服务重写为ApiClient调用
- PHP后端新增22个接口Readlater 15 + FontSync 2 + PluginUpdate 5
- Admin管理后台新增5组CRUD模块FastAdmin
#### 句子详情面板重构 (v6.9.47 + v6.9.48)
- 1252行拆分为3个文件panel/content/actionsRiverpod Notifier消除prop drilling
- TTS关闭按钮、相关推荐、卡片分享图片、AnimatedSwitcher过渡动画
#### 主题系统 & UI修复 (v6.9.22 + v6.9.36)
- `context.isDark`/`context.ext`便捷扩展Sheet/Dialog硬编码颜色全面修复7个文件
- 21项批量UI修复emoji清理、按钮溢出、协作画布绘制bug、Android快捷方式、16KB页面支持
#### 多语言 & 功能 (v6.9.27 + v6.9.33 + v6.9.34 + v6.9.37 + v6.9.49)
- 登录/注册95key i18n(TAuth)、会话流100key i18n(TChatFlow)、备案信息i18n
- 功能分级标准FeatureAccessLevellocalOnly/cloudWithCloudSync/cloudRequired
- 贡献者头像墙首字占位、阅读报告本地化、内容纠错邮箱验证码
#### 鸿蒙适配 & 开发工具 (v6.9.20 + v6.9.24 + v6.9.38 + v6.9.40 + v6.9.42 + v6.9.51)
- module.json5权限审计移除9个system级权限、schema校验修复、receive_sharing_intent配置
- bitsdojo_window→window_manager迁移、win32 6.x API迁移、Swift条件编译修复
- Android配置一致性检查脚本、翻译覆盖率检测Python脚本1304键基准、CanvasProvider单元测试42用例
## 🏷️ 软件特性功能 (v6.9.18及更早版本已完成的特性)
- 🏠 **主页** — 每日拾句/句子广场/下拉刷新动画/精灵角色互动/摇一摇换句
- 🔍 **发现** — 会话流AI聊天/稍后读/闲情逸致/灵感/日签卡片/壁纸模板/进度追踪/工具中心
- 👤 **我的** — 个人中心/收藏/历史/设备管理/内容纠错/文件传输
- ⚙️ **设置** — 主题个性化/通用设置/权限管理/插件系统/实验性功能
- 🎨 **设计系统** — 动态主题(亮/暗/AMOLED)/动态圆角/GlassContainer毛玻璃/统一设计令牌
- 🔒 **隐私合规** — 协议同意后初始化权限/AndroidManifest自启动防护/外部跳转确认弹窗
- 📱 **平台适配** — Android/iOS/鸿蒙/响应式布局/NFC文件传输
- 🔄 **路由架构** — 统一路由注册表(Single Source of Truth)/GoRoute+OhosRouteEntry自动生成/中间件架构
已归档版本
v6.9.18(了解我们弹窗) / v6.9.17(语言选择动态翻译) / v6.9.16(阅读报告本地降级) / v6.9.15(安卓快捷方式修复) / v6.9.14(主题系统增强) / v6.9.13(数据同步架构) / v6.9.12(协作画布修复) / v6.9.11(概览仪表盘) / v6.9.10(阅读报告服务) / v6.9.9(翻译插件) / v6.9.8(闲情逸致) / v6.9.7(诗词设置) / v6.9.6(工具中心) / v6.9.5(文件传输) / v6.9.4(搜索映射) / v6.9.3(灵感暗色渐变) / v6.9.2(隐私政策) / v6.9.1(FeatureFlag) / v6.9.0(稍后读修复) / v6.8.9(收藏同步) / v6.8.8(图片缓存) / v6.8.7(纠错布局) / v6.8.6(闲情热力图) / v6.8.5(外部跳转) / v6.8.4(工具面板重构) / v6.8.3(导航配置) / v6.8.1(引导页多语言) / v6.8.0(实验功能) / v6.7.9-v6.7.0(多项迭代) / v6.6.172-v6.6.168(插件+翻译+OHOS) / v6.6.167-v6.6.163(汇率+异常保护+API降级) / v6.6.162-v6.6.135(多项功能迭代) / v6.6.133-v6.5.45(综合审计+隐私+热力图+工具面板) / v16.36.0-v16.36.3(插件+翻译+OHOS) / v16.35.0(性能优化8项) / 6.25.0-6.25.1(鸿蒙小组件) / 6.24.0(诗词设置) / 14.0.0-14.23.0(传输+翻译+画布+WebRTC) / 13.2.0-13.9.0(信令+本地化+主题+设置) / 6.4.1-6.4.5(鸿蒙数据库) / 5.10.0-5.13.0(鸿蒙SDK+auth) / 1.21.0-1.48.0(早期功能迭代) — 更早版本详见 git history