# Stellia iPad — Manual Smoke Checklist 对照 `openspec/specs/studydeck-*` 与当前实现做的完备性核对(2026-07-25)。 勾选含义:**代码与规格已覆盖该能力**(桌面 `tauri dev` 已能编译运行;真机端到端仍建议抽测「杀进程恢复」)。 ## PC 分享 → iPad 下载 - [x] 电脑 StudyDeck:File → Share to iPad,开启后显示 URL + 二维码 → `PublishView` + `publish.rs`(`studydeck-pc-publish`) - [x] 电脑已有至少一个 **专辑或课程**;浏览器打开 URL 可见列表 → `GET /` HTML + `GET /api/courses`(playlist + combo) - [x] iPad 菜单 → 添加课程,粘贴 URL,能拉到课程列表 → `DownloadBrowserView` / `PublishClient.fetchCourses`(亦支持扫码) - [x] 电脑未开分享时,iPad 提示「请先在电脑打开分享」 → `PublishClient` 网络/不可达文案 - [x] 勾选下载成功后,首页上方出现课程(默认封面可) → pack 安装 + `LocalCourse` + `HomeDeckView` / `DefaultCoverArt` - [x] 再次下载同 id 且 `updatedAt` 更新时覆盖本地;未更新则跳过 → `DownloadBrowserView` 比较 `updatedAtRemote` + `installUnpackedDirectory` 覆盖 ## 首页与学习 - [x] 上方横向滑动无滚动条;仅显示已下载课 → `ScrollView(showsIndicators: false)` + `@Query LocalCourse` - [x] 空库时有「去添加课程」入口 → `HomeDeckView` 空态 CTA → `ChildRoute.download` - [x] 单 item 课程:点货架直接进 Study → `handleTap` → `startOrResumeSession` - [x] 多 item 课程:弹出列表再进 Study → `ItemPickerSheet` - [x] 点开后下方「最近学习」出现该课;横滑可见更早记录 → `bumpRecent` / `lastOpenedAt` 排序横滑 - [x] Study 可播 video/audio、翻 PDF;分屏模式可调比例/方向 → `StudyView`(方位随宽高自动横/竖,拖拽 divider 调比例;`studydeck-child-study`) - [x] 杀进程后从最近学习恢复媒体时间与 PDF 页(近似) → SwiftData Session 进度 + `startOrResumeSession` 恢复;建议真机再确认一次 ## 菜单 - [x] 显示本地课程占用 → `CourseLibrary.storageByteCount` / `ChildMenuView` - [x] 记住上次电脑地址 → `AppSettings.lastPublishBaseURL`