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
windyboy and Cursor
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
windyboy and Cursor
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
windyboy and Cursor
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
windyboy and Cursor
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
windyboy and Cursor
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
windyboy and Cursor
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
windyboy and Cursor
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
windyboy and Cursor
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
windyboy and Cursor
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
windyboy and Cursor
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
windyboy and Cursor
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