Skip to content

fix(obsidian): 钉钉同步失败项需要可诊断的脱敏明细 #68

Description

@PANGKAIFENG

背景

在 v0.5.6 的真实 ClawVault 验收中,手动同步返回:新增 0、更新 0、取消 0、跳过 103、失败 2。自动完成主链路不受影响:账本中 21 个已结束 active 日程的本地镜像已全部变为 done

当前 lastResult 只记录 errors: 2lastError 也只有通用提示,无法区分是分段 REPORT 读取失败、iCalendar 解析失败还是本地写入失败,也无法定位应重试的脱敏对象。

影响

  • 用户只能看到“2 项失败”,不能判断是否遗漏日程;
  • 开发者无法在不接触凭据和原始日程正文的情况下复现;
  • 当前同步会继续重试,但缺少可观测性。

建议范围

  1. 在同步结果中分别统计 readErrorsparseErrorswriteErrors
  2. 仅保存脱敏诊断信息,例如错误类别和 href 哈希,不保存 CalDAV URL、账号、密码或原始 iCalendar;
  3. 保持单项失败不阻断其他合法日程;
  4. 在 Obsidian 设置中提供简短、可操作的错误摘要;
  5. 增加对应单元/集成测试。

验收标准

  • 真实同步出现失败时可确定失败阶段;
  • 日志和 data.json 不泄露凭据、远端 URL 或日程正文;
  • 合法日程仍正常同步和自动完成;
  • 不改变“钉钉只读、本地可编辑”的边界。

关联:#47#64、v0.5.6。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions