Commit Graph
176 Commits
Author SHA1 Message Date
windyboy 43bb561f47 fix(processing): 接通 Redis 投影并修正验证缺口 2026-09-21 17:03:26 +08:00
windyboy 6980926a7c docs(reference): 启动必需配置表首列改描述名,键走 PARAM 引用(修 97 引入的门禁红)
check-docs 的 PARAM 定义判定按表格首列计数,重复键名导致三项参数报重复定义。
2026-09-21 16:16:28 +08:00
windyboyandCursor e5449a5cb1 feat(refdata): Q22 basicdata 映射与 ReferenceDataProcessor(ACM2-93)
闭合 Q22;V6 建 basicdata 表组;RefData 走真处理器(DNLD/RESP/ADD/UPD/DEL/RSTA)。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 16:01:06 +08:00
windyboyandCursor 02b0b2f189 feat(flight): UNMAPPED_FIELD、SRVT/VIPF 明细与白名单内未映射留档(ACM2-89/99/100)
V5 迁移;集合段出现才写;白名单 7 类内未落态写入 UNMAPPED_FIELD,不扩白名单。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 15:54:55 +08:00
windyboyandCursor 54b383fa9d feat(outbound): REQ_TRACK/COUTMSGS/schd-sync 与 RESP 守卫(ACM2-92/86)
出站请求状态机与编码;SCHD-RESP 须匹配未过期开放请求;EROR 结案匹配 SENT。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 15:50:14 +08:00
windyboyandCursor b545fd2b58 feat(wave4): GET /all/flights and SCHD day-plan processing (ACM2-80, ACM2-85)
Expose projection read API with MAID filtering and 503 on failure; complete schedule snapshot sweep, field clearing, batched PG via FlightCommit, and contract/PARAM docs with regression tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 15:40:58 +08:00
windyboyandCursor 2c3d6af309 feat(processing): 领域/投影/终态三步提交与 FlightProjectionPort(ACM2-79)
PIPELINE_LOCK 跨 Redis 写;MSG_EVENT HELD→PENDING;Redis 失败不终态不投递;V3 迁移。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 15:24:34 +08:00
windyboyandCursor 891088235c feat(ingress): 按处理时间为空扫描信箱,移除水位消费(ACM2-78)
readUnprocessed 替代 ID 水位;去掉 INBOX_CURSOR/cutover-watermark/max-commit-delay 及相关健康与指标。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 14:49:40 +08:00
windyboyandCursor 23b74ed554 fix(processing): Wave1 — IgnoreRules/ROUT截断/Q9文档/schd FLTR 数组(ACM2-94/88/81/96)
REGN/RSTA/EROR 退出忽略清单;ROUT/ERUT 升序留 4 且不落 SCAT/SCDT;C-1/Q9 统一库方清除;flushSchd 聚合成无 key 的 FLTR 数组。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 14:18:40 +08:00
windyboyandCursor d298fcc48f fix(delivery): claimBatch 排除已暂停 FLID,避免投递饿死(ACM2-95)
同 FLID 事件占满 delivery-batch 时后续轮次不再重复领到同一批;补饥饿回归用例。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 14:11:53 +08:00
windyboyandCursor 2fb9e76919 docs: 纠正对齐后的文档反向漂移(UNSUPPORTED/CHDT/FDEL/Flyway)
ACM2-83/87/90 落地后 reference、implementation、MsgEvent 与迁移注释仍描述旧行为;拆开 UNSUPPORTED 两行,并写清 V1+V2 与删航班只走 msg。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 14:04:55 +08:00
windyboy f9d51399da fix(flight): 历史清理判据对齐 US-14 AC2 五类已结束条件(ACM2-91)
- HistoryRules.isEnded 共享求值器:计划超 3 天/取消超 1h/离港/到港;JDBC 与 stub 同源不漂移
- 删除无依据的 idle/deleted/terminal 三个窗口(reference.md 四行冲突参数重写为 AC2 口径)
- 备降条件依赖 FDIV(DDES/DDIR),落地(Q3、ACM2-100)前显式不命中,参数先行登记
- 修「当日」取系统时钟的缺陷,改由传入 now 推导(测试抓出)
- implementation.md 12.5 与配置、yml 同批对齐
2026-09-21 13:39:18 +08:00
windyboy 1d95926e06 feat(jobs): PROC_STATE 终态行到期清理(ACM2-82)
- 新增 deleteExpiredTerminal:仅删终态 + BACKFILL_AT 非空 + UPDATED_AT 超期的行(US-11)
- ProcStateCleanupJob 每轮 tick 执行,与人工重放共用 MessageLifecycleGate,不持 PIPELINE_LOCK
- 登记参数 msgx.pipeline.terminal-retention(默认 90d,暂定)进 reference.md
- Stub 与 JDBC 实现同口径;补四类候选条件回归
2026-09-21 12:52:26 +08:00
windyboy 477f038cc1 feat(config): 配置值非法无条件拒启,登记启动必需配置清单(ACM2-97)
- 新增 PipelineConfigCheck(@Context):退避档位/播种取值校验不再等 autostart(CLM-7、OPS-1)
- OperationDayZoneCheck 扩展 cutoff-hour 0-23 校验
- reference.md 新增「启动必需配置与显式开关」:必需清单、缺值路径、显式开关与运行时故障的边界
- PipelinePropsBindingTest 补一致退避档位;补非法值/范围用例
2026-09-21 12:46:47 +08:00
windyboy 9bf879ff76 feat(metrics): 投递失败与死信可观测指标,修 flushSchd 首次失败原因丢失(ACM2-98)
- PipelineCounters 按 target 累计发送失败;Dispatcher.retryOrDead 记账(OPS-2)
- 新增 deadByTarget 查询与 DeliveryDeadSnapshotProvider(TTL 缓存),死信存量按 target 暴露
- /metrics 注册 send_failures.total{target} 与 dead{target},登记进 reference.md「指标与健康」
- flushSchd 失败改记真实异常原因,不再退回固定 send-failed
2026-09-21 12:40:53 +08:00
windyboy a1c56f546f fix(delivery): 删除通知只登记 KAFKA:msg,schd 不再发 tombstone(ACM2-87)
- FdelProcessor 移除 schd TOMBSTONE,仅保留 msg 删除通知(C-9)
- HistorySweepJob 补发的清退通知由 schd TOMBSTONE 改为 msg 删除通知
- msg value 形态沿用现状(deleted:true JSON),待 Q5 定稿不改成 null tombstone
- 同步修订 FdelAndAdftProcessorTest / HistorySweepJobTest / HistorySweepPurgePgTest 断言
2026-09-21 12:31:02 +08:00
windyboy df087c7933 fix(delivery): msg 队头失败或退避只暂停同 FLID,不阻塞其他航班(ACM2-95)
- drainKafkaMsg 按分区键维护本轮暂停集:队头失败/退避未到期仅停该 FLID(D2)
- 同一 FLID 内仍严格按 EVENT_ID 保序不越队
- 补三条用例:失败仅停同 FLID、退避未到期仅停同 FLID、同 FLID 跨轮保序(TestClocks 无 sleep)
2026-09-21 12:26:09 +08:00
windyboy 0e09365cf6 fix(codec): CHDT 类字段统一为 SIS 口径 CCLS/CTYP(ACM2-90)
- ChdtXml wire 绑定与 SisWireMapper 映射键改为 CCLS/CTYP(implementation.md「动态运行事件」)
- 新增 V2 迁移将自有 PG FLIGHT_CHUTE 列 chcls/chtyp 更名为 ccls/ctyp,不动已发布的 V1
- FlywayMigrationTest 更新迁移链断言并校验更名后列;补 CHDT 解码→合并往返用例
2026-09-21 12:20:50 +08:00
windyboy 29465e2131 fix(codec): FLOP 子类型白名单,白名单外 STYP 落 Unsupported(ACM2-84)
- kindOf FLOP 分支仅放行现行七类(US-05 AC1),FDEL 独立分派不受影响
- 白名单外子类型(ACTT/CNCL 等 Q3 闭合目标)解码为 Unsupported,经 ACM2-83 路径记 SKIPPED、不改航班
- 补 codec 白名单回归与处理层「跳过且不触碰航班」用例
2026-09-21 11:44:43 +08:00
windyboy 3c577b4d1e fix(processing): 合法不支持类型改记 SKIPPED 终态,参考数据单列 RefData(ACM2-83)
- MsgKind.RefData 承接 SIS:3.1~3.14 类别码,白名单分派对齐 implementation.md
- Unsupported 由 FAILED(UNSUPPORTED) 重试改为 SKIPPED(unsupported) 终态(US-03 AC2)
- RefData 在 ReferenceDataProcessor 实装前保持可重试失败,不被吞为跳过
- 同步更新 IgnoreBranchTest / PipelineSmokeTest 旧断言,补 codec 分派回归
2026-09-21 11:41:34 +08:00
windyboy 32bbd459c1 chore(acm2-75): 补文档校验盲区并接入 CI 门禁 2026-09-21 10:35:01 +08:00
windyboy 6da5a0021a docs(acm2-75): 收敛日计划覆盖范围、信箱清除边界与历史判据 2026-09-21 10:35:00 +08:00
windyboy 6dde1d3050 docs(acm2): 精简 implementation 并对齐术语
- 压缩 implementation.md 管道与航班章节(553→463 行),保留表/SQL/事务边界
- 术语对齐:Redis 航班快照、写回信箱、建立处理记录;DLQ→死信
- 移除已定 Q 正文引用,修复 INV-6 与丢失内链
- 同步 README 事实归属表与 specification INV-6
2026-09-21 08:12:29 +08:00
windyboy b4ef787e93 docs(acm2): 重构 spec 并整理 Q 编号
- specification:直白说法、编号一览、合并 Q 台账、补 Q2/Q15
- interface-contract:POST /cminmsgs/send 待确认项指向 Q15
- 代码:SRVT/VIPF 清空语义 Q11 → Q2
2026-09-21 07:54:55 +08:00
windyboy 7aec4ea0ab docs(acm2): 精简运行参考并澄清配置和指标 2026-09-20 19:15:25 +08:00
windyboy c8acb74432 docs(acm2): 对齐设计与参考表——C-1/Q9 信箱清理口径、REQ_TRACK 开放键两类各一条、FLOP 现行基线 7 类、EROR 迁移、C-7 引用、PROTOCOL 归位、参考表去 Q11/Q23 误引并补 OPS-2 缺口 2026-09-20 10:26:12 +08:00
windyboy 050eadc1a2 docs(acm2): spec 对齐三文档——C-8 登记语义、C-7/CLM-3/术语对齐、删恒等映射与复述行、Q25 改小节名引用 2026-09-20 09:43:23 +08:00
windyboy f3b791712b docs: 统一术语、收紧需求验收范围、修正 Q3 归属
- "自有业务数据库" → "自有 PG",与 specification/architecture 统一
- US-05 AC1 钉死现场 7 类子类型,白名单其余待 Q3 确认后增补
- US-05 AC3 恢复未映射字段唯一键(信箱编号+路径+出现序号)
- US-09 AC1 恢复旧请求作废可观察约束
- implementation.md VIPP/未映射字段去掉误引 Q3(不在 Q3 范围)
- 精简 architecture/requirements 系统定位复述与实现机制泄漏
2026-09-20 09:30:01 +08:00
windyboy 8749d83d83 docs(acm2-75): 精简接口契约并对齐已定边界 2026-09-20 08:51:49 +08:00
windyboy 3e64228c3d docs(architecture): 去除跨文件复述与悬空承诺
- 删防御性声明、旧系统背景、实现细节
- 删 OPS-1/OPS-2 逐字复述,留 OPS-4 交接机制
- 删"出站的后半程"整段(与 US-09 重复)
- requirements US-07 表格"直接处理"改为对比点
- specification US-13 联动 AC5 删除
2026-09-20 07:59:05 +08:00
windyboy aef7b00104 docs(requirements): 清理废话——复述标题、自相矛盾、笼统归属
- 开头合并去重,删同义反复和"以本文件为准"式声明
- 非目标段删实现层否定、旧系统背景、法律腔
- US-06/11/14 目标删复述,留动机或目的
- US-13 标准 5 整条删(与 §1 数据面段重复三处)
2026-09-20 07:48:10 +08:00
windyboy 2bd650a551 docs(acm2-75): 清理空转待决项并对齐全仓旧编号引用
- 删 Q2/Q15/Q19/Q20:时钟偏斜不进判据、实现自定已是结论、原文留存已定、
  运营日冲突处置已由 DEAD(PROTOCOL) 定
- Q6 的 abdg 定案本版不提供;Q22 改为 13 类报文到 admin-api 实体表组的映射
  (REF_MASTER 单表口径退位);Q23 收窄为 SODT+FLID 幂等重试
- C-1 自清口径四方同步(requirements 非目标、US-03 AC2、architecture §6)
- INV-2 吸收回填只写空值;§7 恢复 G-RESP-GUARD
- architecture/implementation/README/V1/oracle/Kotlin/seed 中 40+ 处旧编号
  按映射重指,check-docs 全绿
2026-09-20 07:13:20 +08:00
windyboy 21168d728a docs(acm2-75): Q1 定案 schd record 粒度沿用旧系统整批单条 2026-09-19 21:49:47 +08:00
windyboy 25cc967bd2 feat(acm2-76): 联调栈数据库自动初始化——基础数据/字典/信箱报文/历史索引
- postgres-init:02 建 basicdata schema 与 25 张基础数据表(表列对齐
  admin-api secondary 实体注解),03 灌双流 T2 种子(fims_* 待 Q25 不造数);
  独立 schema 避免 public 非空导致 Flyway 首次 migrate 失败
- admin-mysql-init:原样引入 admin-api 仓库 adminapi_* 建表与字典/UI 种子,
  v0.0.2 补 FLIGHT_TASK/FLIGHT_TYPE 条目;compose 强制 utf8mb4 并设 LANG,
  防 initdb 客户端落 latin1 造成中文双重编码
- es-init 一次性服务:按 admin-api mapping 建 flight_hts2(别名 flight_hts),
  副本置 0 保持单节点 green
- dev/mysql-init:CMINMSGS 5 条样例报文(SCHD/FLOP×2/REGN/ARPT),
  REGN/ARPT 标注现状预期(SKIPPED / DEAD(EXHAUSTED))
- seed-flight.sql:Flyway 建表后手动执行,8 条航班 6 场景 + 资源明细
- admin-api.yml secondary 加 currentSchema=basicdata,public
- README:初始化/种子/重建卷/验收边界说明

已用 podman compose 重建数据卷全链实测;ACM2-76 有评审与验收全记录。
2026-09-19 11:09:58 +08:00
windyboy abf598a250 fix(deploy): add integration stack with SELinux-compatible mounts 2026-09-18 15:35:20 +08:00
windyboy 9909dbd7e0 docs(acm2-75): 收敛 Kafka 口径并清掉航班版本号残留
- Kafka「尚需确定」去掉消费者去重与版本标识,改为消费方的字段要求
- `schd` 落定内容(`SCHD.FLTR` JSON,空字段不输出)、删除不进本主题、批次边界为定时 tick
- `Q1` 收窄为 record 粒度(`C-9` 每条一条 vs 旧系统整批一个数组)
- `Q5` 由版本标识改为 `msg` 的字段、编码与删除区分
- 删除航班版本号表述:README 事实归属的 `STATE_VERSION`、契约 `FLIGHT_SCHD` 的版本字段、验证映射 `INV-4`
- 删除 requirements 的「本版本主要新增能力」changelog 句
2026-09-18 08:47:27 +08:00
windyboyandCursor c63d6d4dce docs(acm2-75): 重排 Q 序号并补齐 Redis 投影与查询侧边界
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 13:06:59 +08:00
windyboy 2a06c42993 docs(acm2-75): 删除作废条款并收紧 CLM 与 Q 序号
- 删除 4.4 已作废条款(INV 旧编号已无外部引用)
- CLM-3,6,7,8,9,10,11 收紧为 CLM-1 至 CLM-7,全文引用同步更新
- 6.2 已确认事项按 Q 编号排序
- C-1/C-4/C-7/C-11 合并已确认结论,6.1 清空
2026-09-16 17:56:19 +08:00
windyboyandCursor dc1c49af6e docs(acm2-75): 精简不变量与声明边界,去掉无依据条目
审改 specification 管道/航班域/投影与 CLM:作废与需求重复或依据不足的 INV/CLM,白话重写保留条款,并同步架构、实现与引用注释。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 17:26:49 +08:00
windyboy 6fa4da60f1 docs(acm2-75): 收敛 2.1-2.4 约定条目并重排编号
- 2.1 共享信箱:从 14 条收敛为 C-1、C-2
- 2.2 上游:从 8 条收敛为 C-3 到 C-6
- 2.3 HTTP 入口:C-7、C-8
- 2.4 下游:C-9 到 C-11
- 删除 2.5 已作废条款节
- 更新全文交叉引用
2026-09-16 14:43:38 +08:00
windyboy 88a182a2d9 docs(acm2-75): 按审改收敛约定条目措辞与标记 2026-09-16 12:38:49 +08:00
windyboy 23f5ba6f7b docs(acm2-75): 处理完成术语改用日常语言 2026-09-16 12:30:19 +08:00
windyboy 68c6bab7ef docs(acm2-75): 处理完成术语压缩为一句话 2026-09-16 12:28:59 +08:00
windyboy 6bb5faab79 docs(acm2-75): 处理完成术语改为直白表述 2026-09-16 12:27:49 +08:00
windyboy f938242028 docs(acm2-75): 收口处理时间口径与开篇元信息 2026-09-16 11:49:47 +08:00
windyboy ba7494242d docs(acm2-75): 术语表去契约化并修正完成与投影定义 2026-09-16 11:40:43 +08:00
windyboy 1424293194 docs(acm2-75): 信箱术语改为只述归属与边界,读写细节归各契约 2026-09-16 11:39:09 +08:00
windyboy 87d28fd8bc docs(acm2-75): 术语处理标记点名为处理时间 2026-09-16 11:36:26 +08:00
windyboy 8a690705e3 docs(acm2-75): 精简术语表并顺化表达;校验器兼容约定小节名 2026-09-16 11:34:54 +08:00
windyboy 56ad8c9220 docs(acm2-75): 收窄 c30 写边界并修正架构扫描谓词指针 2026-09-16 11:12:09 +08:00