Repository navigation
refactor: reuse delivery guards and derive order email status from EffectJob - #114
Conversation
…ery guards Preserve checkout versions, endpoint generations, signed payloads and worker lease fences. Remove worker writes to order notification projections and consolidate account-email, address and pickup-link validation. Add 58 boundary tests and two PostgreSQL integration regressions; publish scoped architecture guidance and versioned system rule changes. Refs #85, #81, #71, #72.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
本轮已复核本 PR 全部 10 文件改动,并下载当前 head 确认此切片仅复用收件地址/提货地址校验并把邮件状态回归 EffectJob 事实,保留旧接口/消息格式、endpoint generation、当前授权、attempt/deadline 栅栏。未改历史签署数据、资金流转或 orders.buy@1/@2/@3。将使用 expected head SHA 合并;#85/#81 仍按完整验收范围保持开放。随后在独立集成分支处理 #112/#103 冲突,不覆盖双方安全逻辑,也不进行生产部署或实际外发。 |
Scope
Refs #85 and #81; design/coordination refs #71, #72, #83. This is the first bounded implementation slice of the user-approved architecture convergence, not closure of the umbrella issues.
Base:
acc542ab7cbb6983c1e44d294e116d2b0eb6ed68(main push CI 36388965574 succeeded). Head:2fc4916b6cfc36889d9c5cd0b5972b3d58166720. All ten submitted blobs match the locally checked source/test/docs by Git blob SHA.Actual changes
EffectJobplus result. Missing jobs do not prove delivery; failed jobs show failed; disabled and uncertain work is not reactivated.docs/ARCHITECTURE_REUSE.md, update the versioned security rule and_index.md; Google authoritative design and issue [P2] 跨模块代码质量与测试债:拆分长路径、统一不变量 #85 have also been updated.Verification
Local Python 3.13.5 unit evidence only (not a substitute for project Python 3.15/real PostgreSQL):
The added two real-application PostgreSQL tests verify (1) SMTP completion changes no order, delivery, payment or immutable contract rows while read projections report the current job result; (2) the lifecycle renderer enforces the same invalid-origin rejection. They are part of normal full CI collection, not skipped/xfail. All existing worker-lease, ownership, email, marketplace, schema, migration and transport tests remain in the complete four-shard CI gate. Target-environment full CI is pending verification; do not merge on the local unit result alone.
Integration boundaries / remaining work
#103 and #112 remain untouched. This PR has small overlapping edits in
market/orders.py,market/targets.pyand the worker files; integrate by preserving their financial/recovery changes and this job-state projection, not replacing either entire file. No CI/workflow/shared schema/config change and no production deployment, issuance, live banking or outbound email.ServerOffer→Listing, Purchase→Order, typed account migrations and a new default explicit-acceptance policy are recorded remaining work, not implemented here. Existing explicit auto-settlement policies must retain their meaning and regression tests.