• Joined on 2026-05-02
wangdl commented on issue wangdl/ios-projects#84 2026-06-09 19:07:05 +08:00
IOS-INFO-017 P0 | UploadScheduler / 重试策略 / 响应处理 【审计: 不存在】

完成报告(已被 #78 UploadPipeline + #79 ScenePhase 覆盖)

UploadSchedulerReadingEventUploadPipeline:

  • flush() — 拉取 pending 批次 → API upload → ack/markFailed…
wangdl closed issue wangdl/ios-projects#79 2026-06-09 19:07:05 +08:00
IOS-INFO-014 P0 | App 前后台 flush / pause / resume 【审计: 不存在】
wangdl closed issue wangdl/ios-projects#84 2026-06-09 19:07:05 +08:00
IOS-INFO-017 P0 | UploadScheduler / 重试策略 / 响应处理 【审计: 不存在】
wangdl commented on issue wangdl/ios-projects#83 2026-06-09 19:04:50 +08:00
IOS-INFO-016 P0 | 批量上传 ReadingEvent API Client 【审计: 不存在】

完成报告

交付

Core/Services/ReadingAPI.swift — APIService 扩展 + 全部 M8 响应 DTO:

extension APIService {
    // POST /learning/reading-events/batch
    func
wangdl closed issue wangdl/ios-projects#83 2026-06-09 19:04:50 +08:00
IOS-INFO-016 P0 | 批量上传 ReadingEvent API Client 【审计: 不存在】
wangdl commented on issue wangdl/ios-projects#78 2026-06-09 19:04:05 +08:00
IOS-INFO-013 P0 | 本地 ReadingEventUploadQueue 【审计: 不存在】

完成报告

交付

Features/MaterialReader/ReadingEventUploadQueue.swift — 2 个核心类:

1. ReadingEventUploadQueue — 本地持久化队列:

@MainActor
final
wangdl closed issue wangdl/ios-projects#78 2026-06-09 19:04:05 +08:00
IOS-INFO-013 P0 | 本地 ReadingEventUploadQueue 【审计: 不存在】
wangdl closed issue wangdl/ios-projects#77 2026-06-09 18:59:01 +08:00
IOS-INFO-012 P0 | Rust Event → UploadItem 映射 【审计: 不存在】
wangdl commented on issue wangdl/ios-projects#77 2026-06-09 18:59:00 +08:00
IOS-INFO-012 P0 | Rust Event → UploadItem 映射 【审计: 不存在】

完成报告

交付

Features/MaterialReader/ReadingEventMapper.swift — Rust → API 映射器:

enum ReadingEventMapper {
    /// ReadingEventTypeV2 → snake_case…
wangdl commented on issue wangdl/ios-projects#77 2026-06-08 22:04:21 +08:00
IOS-INFO-012 P0 | Rust Event → UploadItem 映射 【审计: 不存在】

重构提醒(来自 Batch B 审查 F3)

blockId(from:)MaterialReaderView.swift:306-317ReadingPositionAdapter.swift:85-96 中重复定义。

实现本 issue 时一并处理…

wangdl commented on issue wangdl/ios-projects#74 2026-06-08 22:00:18 +08:00
IOS-INFO-009 P0 | 阅读位置采集适配器 【审计: 部分存在,需统一payload】

完成报告

交付

Features/MaterialReader/ReadingPositionAdapter.swift — 统一位置采集适配器:

struct ReadingPositionAdapter {
    /// 根据 materialType…
wangdl closed issue wangdl/ios-projects#74 2026-06-08 22:00:18 +08:00
IOS-INFO-009 P0 | 阅读位置采集适配器 【审计: 部分存在,需统一payload】
wangdl commented on issue wangdl/ios-projects#73 2026-06-08 21:58:39 +08:00
IOS-INFO-008 P0 | Heartbeat Timer / pause / resume 【审计: Timer已有,需接V2】

完成报告(已在 #71 实现)

ReadingRuntimeSessionManager 已包含:

1. Heartbeat Timer

private func startHeartbeat(interval: TimeInterval = 15) {
    heartbeatTimer =
wangdl closed issue wangdl/ios-projects#73 2026-06-08 21:58:39 +08:00
IOS-INFO-008 P0 | Heartbeat Timer / pause / resume 【审计: Timer已有,需接V2】
wangdl commented on issue wangdl/ios-projects#72 2026-06-08 21:55:07 +08:00
IOS-INFO-007 P0 | MaterialReaderView 生命周期事件恢复 【审计: 部分存在,需改造】

完成报告

修复内容

MaterialReaderView.swift — 恢复生命周期事件链路:

1. onAppear → openReadingSession()

private func openReadingSession() {
    let
wangdl closed issue wangdl/ios-projects#72 2026-06-08 21:55:07 +08:00
IOS-INFO-007 P0 | MaterialReaderView 生命周期事件恢复 【审计: 部分存在,需改造】
wangdl closed issue wangdl/ios-projects#71 2026-06-08 21:48:25 +08:00
IOS-INFO-006 P0 | ReadingRuntimeSessionManager 【审计: 不存在】
wangdl commented on issue wangdl/ios-projects#71 2026-06-08 21:48:24 +08:00
IOS-INFO-006 P0 | ReadingRuntimeSessionManager 【审计: 不存在】

完成报告

交付

Features/MaterialReader/ReadingRuntimeSessionManager.swift — V2 Session Manager:

@MainActor
final class ReadingRuntimeSessionManager {
    var state:
wangdl commented on issue wangdl/ios-projects#70 2026-06-08 21:45:49 +08:00
IOS-INFO-004 P0 | V1 ReadingEventCollector 断链修复 【审计: 致命F1】

修复完成

F1 修复

ReadingEventCollector.open/close 已实现且未被注释。修复内容:

  1. 标记 deprecated — `@available(*, deprecated, message: "Use ReadingRuntimeSes…
wangdl closed issue wangdl/ios-projects#70 2026-06-08 21:45:49 +08:00
IOS-INFO-004 P0 | V1 ReadingEventCollector 断链修复 【审计: 致命F1】