diff --git a/memory/2026-08-30.md b/memory/2026-08-30.md index f46d92b67b..59ebf1103b 100644 --- a/memory/2026-08-30.md +++ b/memory/2026-08-30.md @@ -93,3 +93,9 @@ 文件变更: ../docs/emby/{EMBY_API_INVENTORY,EMBY_PHASE8_ENDPOINTS,MEDIA_SOURCE_MODEL,DIRECT_PLAY_FLOW,EMBY_API_RISKS}.md, ../Velix/entry/src/main/ets/domain/emby/* 教训: 该 spec 版本为 4.1.1.0,且 ticks 描述写作 “1 tick = 10000 ms”;4.9.x 真机验证前必须经统一 EmbyTimeConverter 校准,不能按经验猜换算。 标签: #emby #api-inventory #phase8 #direct-play #harmonyos + +[PROJECT:Velix Phase8.1] Emby 连接基础链路 +结论: 主 App 完成多服务器添加表单、URL 规范化、稳定 DeviceId、Asset 安全 Token 存储、统一 X-Emby-Authorization、运行时探针和脱敏验证报告;debug HAP 已构建并在 Pura 90 Pro Max 模拟器启动,真实 Emby 4.9.x 尚未提供地址/账号。 +文件变更: ../Velix/entry/src/main/ets/domain/emby/*, ../Velix/entry/src/main/ets/domain/home/HomeRepository.ets, ../Velix/entry/src/main/ets/pages/HomePage.ets, ../Velix/entry/src/main/ets/ui/components/SourceSheet.ets, ../Velix/entry/src/main/module.json5, ../docs/emby/EMBY_RUNTIME_VALIDATION.md +教训: OpenHarmony API 24 SDK 中 `STORE_PERSISTENT_DATA` 的 permission definition 为 `provisionEnable=false`;不能用明文 Preferences 兜底,必须在目标签名/真机确认 Asset 持久化能力;未拿到真实 Emby 时不能声称 4.9.x 或 PlaybackInfo 运行时通过。 +标签: #emby #phase8.1 #secure-storage #runtime-probe #emulator diff --git a/memory/MEMORY.md b/memory/MEMORY.md index 4b19f50c91..9dc263b3a3 100644 --- a/memory/MEMORY.md +++ b/memory/MEMORY.md @@ -12,3 +12,4 @@ - VUI1:主 App 完成沉浸式全屏 Hero、Ambient Palette、4 级材质、官方 HDS 沉浸导航、响应式详情页与自动隐藏播放器控制层;手机/平板/深色已回归,Core 未修改。 - 部署约定:服务器只按 `deploy.sh`、`deploy.sh status/logs/clean/clean-all` 执行。 - 详细状态:`memory/projects.md`;基础设施:`memory/infra.md`;教训:`memory/lessons.md`。 +- Emby Phase 8.1:主 App 已接入服务器地址规范化、设备身份、Asset 安全 Token、Source Capsule 添加/切换、Emby 运行时探针与脱敏报告;真实 Emby 4.9.x 验证待用户提供运行时服务器。 diff --git a/memory/projects.md b/memory/projects.md index c078309025..ed60bdc823 100644 --- a/memory/projects.md +++ b/memory/projects.md @@ -23,6 +23,7 @@ - VUI1 详情页修正:详情页底部导航移除,剧照/海报保留;详情 Hero 优先显示 TMDB logo 艺术图,顶部按钮下移 22vp;CSR 已按 P-256 EC/SHA256withECDSA 重新生成。 - VUI1 HTTP/打包验证:emulator 已播放公开 HTTP MP4;`111.cer` 已导入匹配 `.p12`,Release HAP 已构建,但正式签名包还缺 AGC 对应 `.p7b Profile`。 - Emby 阶段:已完整解析项目根 `embyapi.json`(OpenAPI 3.0.1、356 paths、447 operations),生成 `../docs/emby/` 五份清单/模型/播放链路/风险文档;主 App 提交 `2d3c255`/`ff28ae1` 加入 EmbyApiClient、EmbyRequestContext、EmbyAuthProvider 与 DTO 基础骨架,未实现具体业务 endpoint;debug HAP 构建通过。 +- Emby Phase 8.1:主 App 提交 `1cd396d`。Source Capsule 已可打开添加 Emby 表单;`EmbyServerUrlNormalizer` 支持 host/host:port、http(s) 与单一 `/emby` 后缀;`VelixDeviceIdentity` 持久化安装级 DeviceId;`EmbySecureTokenStore` 使用 Asset persistent/accessibility tags(API 24 SDK 需目标签名确认 `STORE_PERSISTENT_DATA`);`EmbyServerManager` 支持多服务器、活动源、登出/移除与 Token 失效;`EmbyRuntimeProbe` 执行 PublicSystemInfo、AuthenticateByName、User、System、Views、MediaFolders、Items 和条件 PlaybackInfo,输出脱敏 `EMBY_RUNTIME_VALIDATION.md`。模拟器已安装并启动 debug HAP,表单必填错误态可见、无新增崩溃;真实 Emby 4.9.x 网络/ProviderIds/ticks/PlaybackInfo 仍待运行时验证。 - Phase 6 产物:`benchmark/runner/run_emulator.py` 与场景 manifest;启动 P50/P95 506/1150ms,seek recovery P50/P95 277/631ms;100 load/stop、200 play/pause 无错误,PSS/精确 heap/CPU permille unavailable。 - Phase 6 文档:`DOCS/PHASE6_STATUS.md`、`PERFORMANCE_METRICS.md`、`PERFORMANCE_CHANGES.md`、`BENCHMARK_METHODOLOGY.md`、`STARTUP_PIPELINE.md`、`SEEK_PIPELINE.md`、`BUFFERING_MODEL.md`。