Skip to content

[P1] 自动交付、买家目标绑定与 Email 最小披露 #74

Closed

Description

@LIghtJUNction

依据与现状

设计第 05、09、12、15 章规定站内 /_delivery 是权威交付,Inbox 仅最小引用,Email 是可选通知通道;下单锁定买家已验证 endpoint,发货复核 buyer/DeliveryTarget/邮箱 owner/加密钥 owner。现有 ≤1MiB managed_instant 的手动 prepare/get/accept,不是自动 Delivery。

未完成与验收

  • 官方 fixture 的固定 bundle(文本 msg.lmm.best store selftest 与 hello.txt=delivery-ok\n)购买后自动 Delivery 与结算;摘要/manifest/权限/续读一致。
  • sealed_manual、secret、service 和大型 Transfer 分别定义加密/上传/确认/超时状态;secret 不进入明文 SMTP,seller 不获买家真实邮箱。
  • 已验证且属于 buyer 的地址才能直接绑定;未验证地址只收无订单信息的验证消息,SMTP 关/失败时站内交付照常完成且 Email disabled/pending。
  • 本地 SMTP sink/FakeNotificationSender 断言邮件仅含 order_id、下单时 handle 快照和需重新认证的提货链接;不含商品正文、附件、bearer token 或其他主体信息。claimed 不以 HTTP/SMTP 成功自动成立。

困惑

自动发货后 buyer 何时视作接受,digest 错配是否自动退款或争议?邮件 endpoint 在下单后撤销/转移时,worker 的重新校验和通知状态如何收敛?

代码质量

src/msg/plugins/delivery.py 与订单状态、邮件 worker 的目标复核应共享一个授权/owner 检查函数;投递重试与业务结算必须分离,避免 SMTP 故障改变资金结果。

设计正文:https://docs.google.com/document/d/1EM5Qr5qdg6tAFi2wvY0EBm6zxMj6DTBMc_dybU5qkz0/edit
当前差距:docs/DESIGN_GAP_REPORT.md;实现状态:docs/IMPLEMENTATION_STATUS.md。

Activity

  1. LIghtJUNction commented on Sep 27, 2026

    @LIghtJUNction
    ContributorAuthor

    实现推进见 #111,当前提交 8aa0e12d893a51c839d023fed1f21af8cca10563,尚未合并或部署。

    本次补齐 managed_instant 文件/组合商品的显式 orders.buy@2:买家签名绑定商品摘要,同一事务完成扣入托管、准备站内交付;仅新 escrow-instant-v1 政策且买家明确 auto_accept 时自动结算。结算不等于已领取,后续 delivery.claim 必须单独签名,且不再次转账。旧 orders.buy@1/escrow-v1 不被改写。

    准备、读取、领取、结算、邮件 worker 共用当前买家/DeliveryTarget 校验。邮件绑定已验证邮箱的所有者、地址、generation 和用户名快照,只投递订单号、用户名、需重新认证的提货链接。SMTP 关闭/失败/结果不明不撤销站内交易,也不标记领取。未验证邮箱保持 pending;验证仍需买家显式走现有 identity.email_* 流程后调用 delivery.notify。

    Python 3.15 + PostgreSQL 定向测试已跑通“预充值银行发布 10 MSG 签名挑战→重复请求不重复奖励→5 MSG 买文本+文件→买家余额5 MSG、总发行量守恒”。完整集成测试还补出了旧库裁决表引用分类遗漏,已修正;最终全量门禁为 run 36353919437,不能用此前局部通过代替该结果。

    仍保留此 issue:大型/加密/密文与服务类商品、对应分片/超时/回执完整流程、订单 Inbox 引用投影及部署后的官方商品初始化尚未全部验收。文档 docs/MANAGED_CHECKOUT.md 明确当前边界和新增操作的证书权限升级前提。

  2. LIghtJUNction commented on Sep 27, 2026

    @LIghtJUNction
    ContributorAuthor

    已合并 #111 至 main,提交 4eabfda2cd178516c767cde97cf48d8abe5a763d。合并后的树与经过完整验证的 4ef3548 完全一致(b55140fa)。最终 CI run 36354944861:1,171 项业务/安全测试 + 8 项协议一致性测试全部通过,零失败/错误/跳过,四分片、最终 contracts gate、wheel/sdist 均成功。

    本次交付包括签名绑定商品摘要的原子站内交付、明确选择政策后的自动结算、独立签名领取确认,以及绑定买家已验证邮箱的最小通知。10 MSG 签名挑战→5 MSG 文本+文件购买→买家余5 MSG 的真实数据库端到端测试通过。

    此 issue 保留:大型/加密/服务商品、完整分片与超时交付、订单 Inbox 引用投影、生产官方商品初始化尚未全部验收。未执行生产部署或证书权限更新。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions