feat: add daily manual price review workflow
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# ARR 测试数据库已执行记录
|
||||
|
||||
更新时间:2026-08-04
|
||||
状态:008–015 已提交;014/015 已通过迁移回滚探针、正式应用、结构/数据复核及真实 PostgreSQL 草稿激活外层回滚验收。016 已提交代码、待在测试机 booking_test 应用并完成 OSS 月报验收。首次真实业务工作簿激活仍待操作员授权。
|
||||
更新时间:2026-08-06
|
||||
状态:008–018 已提交。016 的实时函数体和注释已于 2026-08-06 与代码语义核对一致,但早期应用时间未留在本台账,本次没有重跑 016。017 已完成隐私最小化备份、修正后的 up/down 外层事务回滚探针、正式应用、结构/数据复核和真实 `0805.XML` 初始待复核验收。018 已通过独立备份、精确 up/down 回滚探针和最终化外层事务竖切后正式应用。最新冻结 case 的员工重试与最终 Finance/月报验收仍待显式操作;首次真实 Booking 业务工作簿激活也仍待操作员授权。
|
||||
|
||||
## 目标与隔离
|
||||
|
||||
@@ -29,7 +29,51 @@
|
||||
| `013_daily_upload_filename.sql` | `f7ea18d6b844d9bd90fa757a4cf8428d1dd5833c088ae23444ac81fbe204fb0a` | 已提交并验收 |
|
||||
| `014_booking_current_source_batch.sql` | `23bf0fcc880225ca276d4d7d871057be4f7950e761ddbeed1df2a3c6e25463b5` | 2026-07-31 已通过同事务回滚探针后由受控连接正式应用;数据复核通过 |
|
||||
| `015_booking_excel_review_drafts.sql` | `a80689c4ecc3b6b3502e8f094a8c175af38df8c09f9d2c64412a9aec55bae12a` | 2026-07-31 已由受控连接正式应用;真实 PostgreSQL 草稿编辑/激活外层回滚通过 |
|
||||
| `016_monthly_report_oss_artifacts.sql` | `70ca052f71da9f88e83fe8bccf0a6682cdd3138c3525981c80eebc868e401626` | 代码已提交;尚未在远程 `booking_test` 应用 |
|
||||
| `016_monthly_report_oss_artifacts.sql` | `70ca052f71da9f88e83fe8bccf0a6682cdd3138c3525981c80eebc868e401626` | 实时函数体/注释于 2026-08-06 核对为已生效;历史应用时间未记录,本次未重跑 |
|
||||
| `017_daily_price_review.sql` | `22a0578e8748573d29ff2c15dbc687aaea14d7dc0c34cf8fe1faa2ef56067b5b` | 2026-08-06 通过修正后的 up/down 回滚探针后由受控连接正式应用;初始真实复核验收通过 |
|
||||
| `018_daily_review_manual_override_artifact.sql` | `5600d82597304d66ffb4933df4b375406080484dfbc7717c360b48a9e28ccd00` | 2026-08-06 通过精确 up/down 与最终化外层回滚探针后由受控连接正式应用;既有业务事实不变 |
|
||||
|
||||
## 017 日报价格人工复核(已部署,最终人工定价待验收)
|
||||
|
||||
017 为 `artifact_callback/fixed_processor` 的 v4 `PRICE_UNMATCHED` 专项能力增加:
|
||||
|
||||
- `awaiting_review` run、`review_required` attempt/delivery 与 `recorded_review` receipt;初始复核不创建
|
||||
`finance.daily_versions`、日报下载、`arr.processing_failed` 或月报 outbox;
|
||||
- `ingestion.daily_review_cases`、items、append-only events,含服务端 actor、revision、前后价格和冻结清单
|
||||
provenance,但不保存姓名、备注或 raw trace;
|
||||
- 最终成功才在现有原子事务内写入 Finance review lineage、`manual_review` retained facts 和一次
|
||||
`arr.daily_version_committed`;可重试基础设施错误保留同一清单,确定性最终错误关闭 case/run;
|
||||
- 最小权限授予无 DELETE;down 文件一旦存在任意 review/manual 事实即拒绝破坏性回滚。
|
||||
|
||||
`017_daily_price_review.down.sql` SHA-256:`9e85af0cedb03acafed84623c12c2719ee36ddcbb5012c27c1f2379e0ee29101`。
|
||||
正式应用使用 checkpoint `runtime/backups/booking_test_pre_017_20260806T192026+0800/manifest.json`(SHA-256
|
||||
`d66cc4341db42420b9382fa78c90214f5ecb3c200062c0ac4bb8d275a7123b17`)。探针仅在内存中移除 up/down 最外层
|
||||
`BEGIN`/`COMMIT`,将两份正文放进同一外层事务,验证 up 中间态、down 精确恢复和第二连接零残留后回滚;正式
|
||||
应用才执行原始 up 文件的自带事务。首个探针发现并回滚了对 010 `direct_mcp` 终态约束的漂移,修正后才正式
|
||||
应用。现已存在真实 review case,down 会按设计拒绝破坏性回滚,后续只能使用前向修复迁移。
|
||||
|
||||
运行态验收:runs 61–63 已通过正常 repository 入口关闭为 `REVIEW_SCHEMA_MIGRATION_MISSING`;run 64 安全记录
|
||||
了随后发现并修复的 delivery 占位符错误;run 65 为 `awaiting_review`,含两个未填写价格项和一个
|
||||
`PRICE_REVIEW_REQUIRED` 事件。它没有日报、Finance 版本、run outbox 或新增月报事件,历史版本 28 保持 rejected。
|
||||
|
||||
## 018 人工清单工件约束修复(已部署,员工重试待验收)
|
||||
|
||||
017 增加了人工清单引用列,但遗漏了 `manual_override_json` 工件类型。018 只重建
|
||||
`ingestion.artifacts_artifact_kind_check`,在原十类工件基础上增加这一类;它不新增表、列、业务行或权限。
|
||||
up 文件拒绝非 `booking_test`、缺失 017、未知既有类型和重复应用。down 文件 SHA-256 为
|
||||
`514ba908059bd8eadedd9a38da6efae85efb378ccfca0395028eae1fed22b92f`,一旦存在不可变人工清单即拒绝回滚。
|
||||
|
||||
正式应用使用 checkpoint
|
||||
`runtime/backups/booking_test_pre_018_20260806T210250+0800/manifest.json`(SHA-256
|
||||
`fcc24362d43c5982590a6566276e6ac7d1d172da2f2f040e8e54a063ca7e2b16`)。up/down 外层事务探针恢复精确前态
|
||||
且零残留;正式应用证据 SHA-256 为 `651dc998d471734ebfc1ebd5ba81f5a5da57942879676aa1747fe5bcb2d24d84`。
|
||||
应用后,一个真实 PostgreSQL 外层事务竖切完成复核登记、整数 `0` 输入、`0.00` 清单冻结、Finance 激活和单一
|
||||
commit event,然后整体回滚为零残留;证据 SHA-256 为
|
||||
`857cee393fa232ea4cbd85913f5069948246acdace6add39c019bd91787711dd`。
|
||||
|
||||
当前 live 状态未自动重试:run 66 冻结 GRP1/LBLT `2300/0`,最新 run 67 冻结 `200/0`,两者均为
|
||||
`generation_failed` 且没有 Finance 版本或 run outbox;run 65 仍未填写。员工必须刷新登录后核对并只重试
|
||||
预期的最新 case,历史版本 28 保持 rejected。
|
||||
|
||||
## 014/015 最新核查状态
|
||||
|
||||
@@ -53,7 +97,7 @@
|
||||
- 整个重建在一个事务内完成;
|
||||
- 不触碰 `public` 或其他数据库。
|
||||
|
||||
当前对象:23 张基础表(`ingestion=8`、`booking=8`、`finance=4`、`reporting=3`)和 8 个视图;012 另增加月报发布/子表不可变保护触发器。
|
||||
当前对象:26 张基础表(`ingestion=11`、`booking=8`、`finance=4`、`reporting=3`)和 8 个视图;012 增加月报发布/子表不可变保护触发器,017 增加三张价格复核表及其不可变保护触发器。
|
||||
|
||||
## 009/010 增量迁移
|
||||
|
||||
|
||||
Reference in New Issue
Block a user