Block a user
IOS-INFO-017 P0 | UploadScheduler / 重试策略 / 响应处理 【审计: 不存在】
完成报告(已被 #78 UploadPipeline + #79 ScenePhase 覆盖)
UploadScheduler — ReadingEventUploadPipeline:
flush()— 拉取 pending 批次 → API upload → ack/markFailed…
IOS-INFO-014 P0 | App 前后台 flush / pause / resume 【审计: 不存在】
IOS-INFO-017 P0 | UploadScheduler / 重试策略 / 响应处理 【审计: 不存在】
IOS-INFO-016 P0 | 批量上传 ReadingEvent API Client 【审计: 不存在】
完成报告
交付
Core/Services/ReadingAPI.swift — APIService 扩展 + 全部 M8 响应 DTO:
extension APIService {
// POST /learning/reading-events/batch
func…
IOS-INFO-016 P0 | 批量上传 ReadingEvent API Client 【审计: 不存在】
IOS-INFO-013 P0 | 本地 ReadingEventUploadQueue 【审计: 不存在】
完成报告
交付
Features/MaterialReader/ReadingEventUploadQueue.swift — 2 个核心类:
1. ReadingEventUploadQueue — 本地持久化队列:
@MainActor
final…
IOS-INFO-013 P0 | 本地 ReadingEventUploadQueue 【审计: 不存在】
IOS-INFO-012 P0 | Rust Event → UploadItem 映射 【审计: 不存在】
IOS-INFO-012 P0 | Rust Event → UploadItem 映射 【审计: 不存在】
完成报告
交付
Features/MaterialReader/ReadingEventMapper.swift — Rust → API 映射器:
enum ReadingEventMapper {
/// ReadingEventTypeV2 → snake_case…
IOS-INFO-012 P0 | Rust Event → UploadItem 映射 【审计: 不存在】
重构提醒(来自 Batch B 审查 F3)
blockId(from:) 在 MaterialReaderView.swift:306-317 和 ReadingPositionAdapter.swift:85-96 中重复定义。
实现本 issue 时一并处理…
IOS-INFO-009 P0 | 阅读位置采集适配器 【审计: 部分存在,需统一payload】
完成报告
交付
Features/MaterialReader/ReadingPositionAdapter.swift — 统一位置采集适配器:
struct ReadingPositionAdapter {
/// 根据 materialType…
IOS-INFO-009 P0 | 阅读位置采集适配器 【审计: 部分存在,需统一payload】
IOS-INFO-008 P0 | Heartbeat Timer / pause / resume 【审计: Timer已有,需接V2】
完成报告(已在 #71 实现)
ReadingRuntimeSessionManager 已包含:
1. Heartbeat Timer
private func startHeartbeat(interval: TimeInterval = 15) {
heartbeatTimer =…
IOS-INFO-008 P0 | Heartbeat Timer / pause / resume 【审计: Timer已有,需接V2】
IOS-INFO-007 P0 | MaterialReaderView 生命周期事件恢复 【审计: 部分存在,需改造】
完成报告
修复内容
MaterialReaderView.swift — 恢复生命周期事件链路:
1. onAppear → openReadingSession()
private func openReadingSession() {
let…
IOS-INFO-007 P0 | MaterialReaderView 生命周期事件恢复 【审计: 部分存在,需改造】
IOS-INFO-006 P0 | ReadingRuntimeSessionManager 【审计: 不存在】
IOS-INFO-006 P0 | ReadingRuntimeSessionManager 【审计: 不存在】
完成报告
交付
Features/MaterialReader/ReadingRuntimeSessionManager.swift — V2 Session Manager:
@MainActor
final class ReadingRuntimeSessionManager {
var state:…
IOS-INFO-004 P0 | V1 ReadingEventCollector 断链修复 【审计: 致命F1】
修复完成
F1 修复
ReadingEventCollector.open/close 已实现且未被注释。修复内容:
- 标记 deprecated — `@available(*, deprecated, message: "Use ReadingRuntimeSes…
IOS-INFO-004 P0 | V1 ReadingEventCollector 断链修复 【审计: 致命F1】