windyboy
|
491fc276c9
|
docs(acm2-75): 按审核结论收口规范内容缺口
|
2026-09-16 10:21:42 +08:00 |
|
 windyboyandCursor
|
fd65bb24fb
|
docs(acm2-75): 按需求与架构收口契约和规范
补齐接口契约的入站、Redis 与出站边界,规范对齐已定语义并作废过期条款;Kafka 生产端约束编号改为 D2。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-16 08:49:19 +08:00 |
|
windyboy
|
7cd17409f5
|
docs(acm2-75): 起草接口契约与现役对拍线索
|
2026-09-15 22:10:19 +08:00 |
|
windyboy
|
de2549af2e
|
docs(acm2-75): 澄清需求与架构验收口径
|
2026-09-15 21:48:37 +08:00 |
|
windyboy
|
ca7c36ef38
|
docs(acm2-75): 精简重构架构文档并对齐两段事务口径
- architecture.md:§1–§7 全文精简重构——图收敛为拓扑、主流程改七步时序+类别差异表、
约束红线去行话、数据归属去黑话、关键决策按章程瘦身为 D1/D2
- specification.md:INV-17b 补静态参考数据单事务口径
- implementation/reference/README/requirements:对齐扫描谓词与两段事务表述
- AGENTS.md:新增文字纪律与用词归属规则
|
2026-09-15 13:23:40 +08:00 |
|
windyboy
|
723b3e4c09
|
docs(acm2-75): 精简规范引言并重写术语表
- 删除引言段:唯一出处清单、编号规则与空缺说明按评审结论去除
- 术语表逐行改写为平话:库方收敛为 CIIMS adapter 方(信箱表在其 MySQL,表结构变更与清除归它,机制未定);上游收敛为 CIIMS adapter 写入,AODB 经它落信
- 落信涵盖兼容 HTTP 入口;处理标记标注与需求文档「处理时间」的对应
- 术语行去掉内部表名、编号括注与管道术语指针;处理完成、Redis 投影按 US-05/US-07 口径收窄 Redis 条件
|
2026-09-14 17:56:18 +08:00 |
|
windyboy
|
e57152dd83
|
docs(acm2-75): 规范全面对齐新需求口径
specification.md 按新需求重写:
- 扫描模型反转:水位/ID 区间 → 处理标记为谓词(C-30 取代 C-1/C-2/C-13;INV-2b 替代 INV-2/4/5)
- Redis 回归为查询投影:处理完成门(INV-23)、投影治理与同源读取(INV-24),INV-11b 扩充非权威清单
- 日计划快照语义反转:缺席航班删除、未携带字段清除(INV-15b),增量报文语义另立(INV-14b)
- 终态记录归档 → 到期删除(INV-25),G-PROC-HST/G-HST-RETENTION/G-REPLAY-CHANNEL/G-FLOP-DIRECTION 关闭并清扫全仓引用
- 重放移出交付范围:R_keep 公式收窄、CLM-3 重定义为重处理幂等、Q6 删除
- 新增 INV-23~28:Redis 完成门、投影治理、清理谓词、参考数据逐类保存/门控、历史先行红线
- C-25/C-26 定案(原子级联不回发 EROR;快照未携带字段清除),Q13/Q14 关闭,Q6/Q12 删除,新增 C-30/C-31
联动:implementation.md 收报/回填/快照/生命周期/FLOP 方向各章按新口径重写;architecture.md
D1/D4 改删除语义;reference.md 退役 archive-after;requirements.md OPS 表改为注册表定义
语法;AGENTS.md 状态边界随新口径更新;check-docs.py OPS 注册表节名同步。
scripts/check-docs.sh 全部通过。
|
2026-09-14 16:40:00 +08:00 |
|
windyboy
|
2471ea9cab
|
docs(acm2-75): 大范围修正需求定义与验收口径
- 收敛为 US-01~US-14 + OPS-1~4 的交付定义,去除阶段 A 框架、覆盖矩阵与契约依赖索引
- 明确系统定位与数据流向:航班动态入 PG 并同步写 Redis、经 Kafka 通知网页客户端,静态参考数据入库供 admin-api 只读
- US-14 改为航班历史与清理(ES 历史库),删除原 US-15
- 非目标重写:单实例、至少一次投递、同 FLID 保序、Oracle 未验证不承诺、不调 admin-api
|
2026-09-14 15:54:16 +08:00 |
|
windyboy
|
0fbdf381b2
|
docs(acm2-75): align static reference data flow
|
2026-09-14 08:28:47 +08:00 |
|
windyboy
|
5b7938ac4b
|
docs(acm2-74): 补齐 FLOP 逐类语义、静态参考数据与数据结构
自洽与精简:
- specification 补第四种状态词 [我们自证]、验证映射补 INV-14 两行、去 CLM-7/CLM-9 的进度语、补编号空缺说明
- architecture/requirements/implementation 去除逐字复述(领域决策三写句、时间常数排序、C-25/C-26、INV-12/21/22)与参数值重复
- README 与新文档对齐:收报谓词改 ID>W、删不存在的 reference/ 包与 lua/、删 msgx.phase 与 MSGX_REDIS_URI、设计权威口径改 docs/、进度段改指 Plane
内容补齐:
- 新增 implementation.md「动态运行事件(FLOP)」:按 SIS 3.19–3.43 的 25 类逐类映射与空标签语义(含 CNCL 空标签为撤销等),补 RMS→AODB 方向拒绝、ROUT 只保留 4 条、VIPP 忽略等约束;厘清 legacy 29 类与 SIS 25 类的差集
- 新增 implementation.md「静态参考数据」章:13 类参考数据与资源状态的 RTYPE/RKEY、list 与增量合并语义、删除只由 DEL 表达、SLST/REMT/RSTA 机位与登机桥映射
- §11.3 数据结构改为标量分组表与集合明细表(元素键、条数上限、SIS 锚点)
- specification 新增 G-FLOP-DIRECTION / G-FLOP-UNMAPPED / G-REF-DATA;Q8 收窄为真实报文分布与 admin-api 清单
|
2026-09-14 07:34:17 +08:00 |
|
windyboy
|
cedd859bdf
|
docs(acm2-74): consolidate design documentation
|
2026-09-13 20:31:13 +08:00 |
|
windyboy
|
800d7617f2
|
chore(db): 压缩 Flyway 迁移链为单基线
原 V1–V10 的净结构全部合并进 V1__flight_state_baseline.sql,迁移链收敛为一条。
表集合、逐列类型/非空/默认值、表级约束、索引与种子行经重放比对与旧链条一致;
仅丢弃 5 条只对既有库有意义的存量数据语句(RECEIVED_AT/ENQUEUED_AT 回填、
schd 与开放请求去重、SENT_AT 回写)。
已按旧链迁移过的库版本链与校验和对不上,必须重建 schema 或删除数据卷后重跑,
禁止手工 repair 或改写 flyway_schema_history。
- 删除 V2–V10 共 9 个迁移文件
- 注释统一范式并改用稳定 ID(INV-x/C-x/G-x),修正 KAFKA_MSG/KAFKA_SCHD 与实际值不符
- 同步 docs/reference.md、docs/user-stories.md、oracle11g/README.md、README、application.yml、compose.yaml
- FlywayMigrationTest 改为断言单基线,并补 MSG_EVENT.SENT_AT 覆盖
|
2026-09-13 16:31:14 +08:00 |
|
windyboy
|
62f61ad9e4
|
feat(delivery): 真实 Kafka 投递端口 + 闭合 G-BACKFILL-BACKOFF 配置缺口
- 新增 KafkaDeliveryPort:ProducerRegistry + 同步 Future.get() 至少一次投递,
闭合 OPS-1 真实适配器要求与 US-07 INV-10/C-29
- 回填退避从硬编码 30s/15min 提升为 backfill-backoff-ms / backfill-backoff-cap-ms
配置绑定,闭合 [G-BACKFILL-BACKOFF]
- 删除死依赖 micronaut-redis-lettuce(代码零引用,ACM2-28 Redis 已退出阶段 A)
|
2026-09-13 16:26:03 +08:00 |
|
windyboy
|
5bb9d6bb07
|
docs(spec): 精简需求边界闭合方案
|
2026-09-13 16:01:07 +08:00 |
|
windyboy
|
fc744d0cfd
|
feat(acm2): 闭合 G-KAFKA-D3 / G-IGNORE / G-EVENT-RETENTION 三个缺口
- G-KAFKA-D3:max-in-flight 默认收敛到 1,KafkaD3Check 启动自检钉住三项联合满足 D3
- G-IGNORE:IgnoreRules 在身份绑定后精确匹配 TYPE 字段,命中写 SKIPPED + 回填意图
- G-EVENT-RETENTION:V10 迁移加 SENT_AT 列,投递原子写,EventCleanupJob 有界清理过期 SENT 行
|
2026-09-13 15:48:16 +08:00 |
|
windyboy
|
d37a9eb38e
|
docs(spec): 收敛领域边界闭合方案为三个缺口
- 本轮只做 G-KAFKA-D3 / G-IGNORE / G-EVENT-RETENTION,其余缺口不再写入 spec
- 删除约束与表结构副本、User Stories 重复、phase B 清单与进度记录
- US-04 AC1 明确先绑定身份再转 SKIPPED,引用改用稳定 ID US-03
|
2026-09-13 13:49:06 +08:00 |
|
windyboy
|
30dc8adf00
|
docs(spec): 领域边界闭合 spec 与配套文档修正
新增 docs/spec-boundary-closure.md:自包含 spec,内联展开所有
PRE/INV/CLM/D/C/US/PARAM/Q/错误分类/表结构/时间常数序引用,
覆盖 G-KAFKA-D3 / G-IGNORE / G-EVENT-RETENTION / G-BACKFILL-BACKOFF
/ G-PROC-HST 五个缺口的实现决策、验收与测试决策。
同步修正 design.md(归档段落改条件 DELETE、ARCHIVED 影子行、
SENT_AT 描述)与 user-stories.md US-11(AC1 改 UPDATED_AT、
AC2 删投递判据、AC3 补条件回滚语义)。
|
2026-09-13 12:52:21 +08:00 |
|
windyboy
|
729e102b8e
|
docs(lifecycle): 补齐清除生命周期与逐对象归档边界
- design.md 9.3 扩为「生命周期与清除」:清除通则、逐对象生命周期表、
处理终态归档判据(终态 ∧ 回填了结 ∧ 终局后到期)与时间常数排序
- contracts.md 新增 C-16:回填放弃清单在对应信箱边界清除前必须保持可查
- invariants.md 缺口索引新增 G-HST-RETENTION、G-FLIGHT-HIST-RETENTION、
G-REQ-TRACK-RETENTION
- flight-state.md 补航班历史存储保留期开放项
- 同步 architecture.md / user-stories.md 的 9.3 交叉引用
|
2026-09-13 10:49:48 +08:00 |
|
windyboy
|
17a4bfe91b
|
feat(codec): 观测未落库的 SRVT/VIPF 集合
SRVT/VIPF 只保留在 wire/domain 并计数告警,不落明细表、不参与合并:
出现事实不再被静默丢弃,为 Q13 定案提供真实流量证据([G-SRVT-VIPF])。
- wire DTO:SRVT/SERVICEDATA、VIPF/VIPDATA 与嵌套 VIPT(OPER 为元素属性)
- 出现即留键:缺席与"出现但为空"不再等价;已落库 10 类集合语义不变
- 新增 msgx.pipeline.codec.srvt_seen.total / vipf_seen.total(reference.md 已登记)
- 一并提交此前的 MAFL 文档改动(INV-21/INV-22、flight-state §2.3、G-MAFL 措辞)
|
2026-09-13 09:21:51 +08:00 |
|
windyboy
|
b8738554e6
|
refactor(ingress): 移除 G1 窗口补偿扫描与迟到到达检测
实际负载不足 10 条/秒,G1 属过度防御。删除迟到到达检测机制、
existingIds 接口、PipelineCounters 字段、lateDetect 配置,
以及文档中 CLM-1/CLM-2 声明与 G1 缺口索引。
|
2026-09-13 08:08:43 +08:00 |
|
windyboy
|
a6b2120836
|
fix(infra): 消除 StubRepositories 编译警告
- KDoc 移到注解之前(2 处)
- upsertSchd 改显式 null 检查避免 !! 警告
- findBackfillDue 链式调用转 asSequence
- 移除 persistFullState 中 always-null 的 fallback
- markDeleted/revive 改 !! 断言(mains/snapshots 同步写入)
|
2026-09-12 22:39:16 +08:00 |
|
windyboy
|
8053c01964
|
docs(contracts): Q8/Q13 标记为暂缓
- Q8 逐类清单现阶段不处理
- Q13 缺失字段语义测试前不决定,真实消息优先于 SIS 文档
|
2026-09-12 22:39:09 +08:00 |
|
windyboy
|
cfece0c559
|
docs: drop merged message-lifecycle stub
message-lifecycle.md 内容已全部并入 design.md / contracts.md;仓库内唯一引用是 docs/README.md 的跳转说明,已同步删除并在「当前状态」记录删除事实。历史链接按 README §2 职责表重定向到 design.md。
|
2026-09-12 21:04:42 +08:00 |
|
windyboy
|
82cc70cbb3
|
docs(acm2-63): 精简架构文档并闭合模块入口登记
architecture.md 138→116 行:删除 §9「当前实现与上线门槛」(进度内容,归 invariants 声明边界与 Plane,其中部署前提并入 §8);§4 主流程压成链路摘要 + design 节名指针,去掉与 design 重复的机制细节;§8 可观测性收成一句并把指标口径指向 reference;D1–D4 第三列由「当前状态」改为「证据 / 缺口」稳定 ID 指针。
reference.md:模块入口补 infra/metrics/JobActivity.kt、infra/health/JobRunnerHealthIndicator.kt 与 config/OperationDayProps.kt;迁移清单补 V7–V9。
|
2026-09-12 21:03:23 +08:00 |
|
windyboy
|
8093d20f9b
|
docs(acm2-63): 收敛文档口径并补齐作业健康指标登记
含:MAFL 派生投影与 SRVT/VIPF 无界集合口径、schd EVENT_ID 写代次与 DEAD 代次替换、运营日时区 fail-fast、缺口索引增删(G-MAFL/G-SRVT-VIPF/G-COMPAT-HTTP/G-REQ-OPEN-UNIQUE,移除 G-JOB-HEARTBEAT)、job 心跳/扫描积压/最近失败指标登记、INV-18 验证映射改为实际测试名。
|
2026-09-12 21:00:01 +08:00 |
|
windyboy
|
8631ec0b20
|
docs(agents): 改写为角色、工作流与项目约束约定
|
2026-09-12 21:00:01 +08:00 |
|
windyboy
|
799243b0a8
|
fix(ingress): diagnose missing shared mailbox generated key
共享信箱 insertRaw 取不到 CMINMSGS_ID 时抛出可诊断错误,指明该列必须由库方生成(C-14、Q7);只改适配代码,不动共享 Schema。
|
2026-09-12 20:56:41 +08:00 |
|
windyboy
|
267eb20219
|
feat(jobs): expose last job failure time
JobActivity 记录最近失败时刻并进入快照;JobRunner 失败时上报该时刻;新增指标 msgx.pipeline.job.last_failure_age_seconds 与健康明细 lastFailureAgeSeconds(对齐 reference 作业健康口径)。
验证:./gradlew test 145 tests / 0 fail / 0 skipped。
|
2026-09-12 20:56:41 +08:00 |
|
windyboy
|
8a380c7646
|
refactor(config): drop system-time defaults from domain and entry points
删除会被误用的系统时间默认值:MsgEvent.createdAt、ProcState.updatedAt、InboxPoller.pollOnce(now)、HistorySweepJob.run(now)、Identity.of(day)。Identity 的日期边界改由 MessageProcessor 按 PARAM:msgx.operation-day.zone 算出后传入(边界关闭时身份值不变);StubProcState/StubInbox 改注入 Clock(测试可传假时钟),全部调用点显式传时间。
验证:./gradlew test 145 tests / 0 fail / 0 skipped。
|
2026-09-12 20:56:41 +08:00 |
|
windyboy
|
ebe81d8665
|
fix(processing): stamp outbox events from the injected clock
所有生产 MsgEvent 构造点显式传 createdAt:ScheduleProcessor.snapshotEvents、FdelProcessor 删除事件、eventsFor(新增 createdAt 参数,三个调用点传注入时钟)、HistorySweepJob.tombstone(传 run 的 now)。领域默认保留给测试便利,但生产写入不再依赖系统时钟。
验证:./gradlew test 145 tests / 0 fail / 0 skipped。
|
2026-09-12 20:52:24 +08:00 |
|
windyboy
|
4b71b5bb09
|
feat(jobs): expose job heartbeat and scan backlog
新增 JobActivity 持有作业心跳与扫描积压,JobRunner 每轮 tick 上报(失败只计数、不刷新心跳),PipelineMetrics 注册 msgx.pipeline.job.heartbeat_age_seconds / ticks.total / failures.total / last_sweep_selected,新增 JobRunnerHealthIndicator(未启动 UP 并标 started=false;已启动但心跳缺失或超过 3×扫描周期 DOWN)。对应 reference 作业健康段与 [G-JOB-HEARTBEAT]。
验证:./gradlew test 145 tests / 0 fail / 0 skipped(新增 JobRunnerTest 2、JobRunnerHealthIndicatorTest 4、PipelineMetrics 指标注册 1)。
|
2026-09-12 20:52:24 +08:00 |
|
windyboy
|
ab18e4ec3f
|
test(jobs): verify purge rollback on real postgres
新增 HistorySweepPurgePgTest(Testcontainers 本地 PG):归档确认后删除阶段注入失败,验证同事务登记的 tombstone 随事务回滚、当前态保留(INV-17/INV-18)。
|
2026-09-12 20:45:41 +08:00 |
|
windyboy
|
15c035182f
|
test(delivery): verify schd upsert on real postgres
新增 JdbcMsgEventUpsertPgTest(Testcontainers 本地 PG):单行只进不退、旧版本被拒、同版本 tombstone 胜出且不可复活、条件确认旧代次 0 行/当前代次 1 行、DEAD 行被更高代次替换后单行 PENDING 且错误清空。此前该 SQL 无任何执行覆盖。
|
2026-09-12 20:45:41 +08:00 |
|
windyboy
|
5beb67dadb
|
fix(ingress): preserve compat receipt semantics
接收结果边界改为 insertRaw 是否返回 ID:接收时间读取失败回退注入 Clock 并留痕,PG insertIfAbsent 失败只记日志与 pgEnqueueFailures 计数,不再冒泡成 HTTP 失败(避免客户端重试多写信箱行)。缺的 PROC_STATE 由收报轮询按 US-01 补建且只建一条(INV-1),入口高 ID 仍等水位追平(INV-4)。
验证:./gradlew test 135 tests / 0 fail / 0 skipped(新增 InboxServiceTest 4 例:读时间失败+入队失败仍返回同一 ID、接收时间 NULL 回退时钟、真实插入失败仍失败且无伪造 ID、轮询对失败入队补建且仅一条)。
|
2026-09-12 20:43:11 +08:00 |
|
windyboy
|
46e901fd44
|
fix(jobs): recheck archived flight version before purge
HistorySweepJob 归档成功后进 PIPELINE_LOCK 事务,按 (FLID, STATE_VERSION) 用同一判据复查,仍合格才登记 tombstone 并删除;purgeArchived 改收候选而非裸 FLID 列表,并带 (flid, state_version) 删除守卫。事件与删除同事务提交或回滚(INV-17、INV-18)。
验证:./gradlew test 131 tests / 0 fail(新增「归档后主泵更新同一 FLID → 不删、不发 tombstone」用例)。tombstone 与删除的回滚原子性依赖真实 PG 事务,本机无 Docker 时无法执行。
|
2026-09-12 20:40:32 +08:00 |
|
windyboy
|
592079055f
|
fix(delivery): drop redundant schd event index
V9 追加删除已无消费者的 idx_evt_flid(读端不再按 (PARTITION_KEY, STATE_VERSION) 合并),并在最终 schema 断言其不存在;新增用例覆盖 schd DEAD 行被更高合法代次替换为单行 PENDING、错误字段清空、旧代次不得复活。
验证:./gradlew test 130 tests / 0 fail。
|
2026-09-12 20:39:15 +08:00 |
|
windyboy
|
d21555091f
|
fix(delivery): upsert latest schedule event
KAFKA:schd 收敛为每 FLID 单行:V9 先按 (STATE_VERSION DESC, EVENT_ID DESC) 收敛存量再建部分唯一索引 uq_schd_event;写入走带谓词的单行 upsert(只进不退、同版本 tombstone 优先、接受新代次即换 EVENT_ID 并重置 PENDING/清旧错误);读取不再 DISTINCT ON;成功确认改按 (EVENT_ID, STATE_VERSION, PENDING) 条件更新,删除 Dispatcher superseded 清理循环。msg 路径不变。
验证:全量 ./gradlew test 129 tests / 0 fail(新增 3 个用例:单行只进不退、同版本 tombstone 不可复活、发送期间新代次保持 PENDING)。V9 的存量收敛/索引与 upsert SQL 需真实 PG,本机无 Docker 时 FlywayMigrationTest 跳过。
|
2026-09-12 20:38:18 +08:00 |
|
windyboy
|
21739a439d
|
fix(infra): enforce one open request
新增 V8 部分唯一索引 uq_req_open:(REQ_TYPE, OPERATION_DAY, SENDER) 仅在 PENDING/SENT 唯一;建索引前用 DO 块检测存量重复组并以带业务键的异常中止迁移,禁止静默删数据。保留 idx_req_open 服务含关闭态的查询;不引入运行时协调器(归 US-08)。
验证:全量 ./gradlew test 126 tests / 0 fail;索引与拒绝第二条开放请求的断言在 FlywayMigrationTest(需真实 PG,本机无 Docker 时按既有 assumeTrue 跳过)。
|
2026-09-12 20:35:58 +08:00 |
|
windyboy
|
9554b1aae8
|
fix(config): fail fast on invalid operation-day zone
运营日时区只认 PARAM:msgx.operation-day.zone:JobRunner、HistorySweepJob、JdbcSnapshotLogRepository.purgeBefore 改走注入的 OperationDayProps;ScheduleProcessor/AdftProcessor 删除「非法值回退字面量」;新增 @Context 启动自检 OperationDayZoneCheck,配置错位在启动时暴露。
验证:./gradlew test 126 tests / 0 fail(新增 OperationDayPropsTest 覆盖合法解析与非法即失败)。
|
2026-09-12 20:34:56 +08:00 |
|
windyboy
|
3f2a1be75b
|
chore(processing): remove stale backfill comment
BackfillService.attempt 前仍声称「处理完立刻试一次、调用方是主泵」,与类注释及「回填一律扫描驱动」矛盾;删除过时 inline KDoc,保留 @param 说明,运行时代码不变。
|
2026-09-12 20:32:52 +08:00 |
|
windyboy
|
a89755c200
|
fix(processing): clear replay error state
人工重放把 FAILED/DEAD 拨回 PENDING 时,与 attempts/next_attempt_at 一起清空 error_class 与 last_error,使活动状态不携带上一轮失败结论;identity_key、白名单与 MessageLifecycleGate 不变。
同语句同时改 JDBC 与内存实现,避免两套行为漂移。验证:ReplayServiceTest 3/0、InboxLifecycleJdbcSqlTest 8/0(H2 真实 SQL)。
|
2026-09-12 20:32:27 +08:00 |
|
windyboy
|
eb103d6244
|
refactor(processing): remove unused processing start field
processing_started_at 没有任何判据消费(终态只看尝试上限),删除字段、仓储接口与方法、主泵写入、重放清理、SELECT/映射与 H2 fixture,并新增 V7 DROP COLUMN;V1–V6 历史迁移不动。
验证:./gradlew test 123 tests / 0 fail;V7 的 DROP 与最终 schema 断言需真实 PG,本机无 Docker 时 FlywayMigrationTest 按既有 assumeTrue 跳过。
|
2026-09-12 20:31:23 +08:00 |
|
windyboy
|
161914eeb8
|
fix(processing): keep exhausted failures terminal
ProcFailure.fail 在 markTerminal 后继续执行 update(FAILED),把 DEAD(EXHAUSTED) 覆写回非终态。改为耗尽分支写完终态即返回,保持 INV-6 终态不可逆与 INV-8 回填意图同语句。
回归:ProcFailureTest 覆盖临界次数保持 DEAD、不可回退 FAILED,以及非耗尽退避。
|
2026-09-12 20:29:23 +08:00 |
|
windyboy
|
3085431bea
|
docs: 落地上轮复审修正并修正参考表位置
- G-IGNORE 缺口表述去掉错引 INV-19、补 US-04
- reference 登记 msgx.pipeline.backfill-scan-period
- user-stories 的 R_keep 下界/deadline 措辞对齐
- reference 归档参数行从空行后挪回参数表内(修正 acm2-52 提交中的表格位置)
|
2026-09-12 11:36:52 +08:00 |
|
windyboy
|
dcdc5117bf
|
docs(acm2-51): 收口 D10/D14/D15
- D10 投递保序:architecture 改为 FLID 级(与 design/CLM-7 对齐,实现收敛归 ACM2-34)
- D14 REQ_TRACK 状态名:user-stories US-08 对齐实现的 PENDING/SENT/DONE/EXPIRED
- D15 容量假设:invariants 新增 CLM-10(未实测,含解除条件),design §10 加指针
纯文档,不改代码/迁移/配置/legacy。
|
2026-09-12 11:33:58 +08:00 |
|
windyboy
|
69c2cf219f
|
docs(acm2-52): 修正跨文档事实冲突 F1–F9 与错引编号
- F1/F6 HTTP 契约:C-28 目标 ResponseDto + 请求体上限暂定 10MB,Q3 指向 C-28
- F2 legacy 与 SIS 的优先级限定;F3 超期判据对齐 ENQUEUED_AT;F4 改引 D1
- F5 参数默认值改引 reference/PARAM;F7 补 4 条契约状态词;F8 定义 MAID/MAFL 并明确排除共享航班;F9 补 INV-20
- N1/N2 错配编号改引;N3 迁移链指针;N4/M5 白名单补 D-x/OPS-x;N6 补 INV-16/17 映射;N7 加粗规则
- M1 回填退避事实与论证;M2 Q6/Q7;M4 Q4 假定标注;M7 去复述
纯文档,不改代码/迁移/配置/legacy。
|
2026-09-12 09:57:26 +08:00 |
|
windyboy
|
817236ca26
|
fix(processing): 落地 D1/D5/D6 三项裁决,删除 head-deadline 参数
D5(终态判据只保留尝试上限):
- Pump.tick 内联 attempts 判定,删除 head-deadline 相关的毒丸分支与滞留告警代码
- 删除配置项 head-deadline(PipelineProps / application.yml)与 PumpDeadlineTest
- PROCESSING_STARTED_AT 变为只写,注释如实说明当前无判据消费它
D1(回填放弃判据改为时间):
- 暂时性故障在 R 之前只退避重试,不再按尝试次数放弃;到 R 才放弃并记 TRANSIENT_DEADLINE
- backfill-max-attempts 降级为单行重试的告警阈值
D6(超期判据改用本地入队时间):
- 新增 V6 迁移:PROC_STATE 加 ENQUEUED_AT(回填存量后置为非空 + 默认)
- findBackfillDue 的谓词与 overdue 标记改比较 enqueued_at,不再用库方时钟的 received_at
- BackfillDue 增加 overdue;收报与兼容入口显式写入本地入队时间
文档同步:
- 清理 4 处 message-lifecycle.md 章节号死链(Pump/InboxService/PipelineProps/application.yml)
- 关闭 G-HEAD-DEADLINE、G-BACKFILL-ABANDON-BYTIME、G-ENQUEUED-AT 三条缺口登记
- reference/user-stories/README 与实现对齐
验证:./gradlew test ⇒ 122 tests, 0 failures, 1 skipped
Refs: ACM2-45
|
2026-09-11 20:44:30 +08:00 |
|
windyboy
|
6eade95a97
|
docs: 拆分契约/前提/参数文档,合并消息生命周期并收敛设计裁决
- design.md 合并 message-lifecycle.md(后者保留跳转 stub),去重并改用稳定 ID 引用
- 新增 invariants.md(前提/不变量/声明边界/验证映射)、contracts.md(对外条款与 Q 台账)、
reference.md(参数/指标/模块/错误分类)
- architecture/flight-state/user-stories/README 同步重划引用;README 废止「引用章节号」
- 裁决收敛:R 按超期而非次数放弃、清除前提含放弃清单、航班表写者互斥、head-deadline 仅告警、
超期判据用本地入队时间、投递批次读取时刻冻结、schd 只进不退与条件标记、FLID 复用为前提
- 删除 runbooks 与 CI 防漂移校验:设计阶段不产出面向执行期的产物
Refs: ACM2-42..51
|
2026-09-11 15:48:14 +08:00 |
|
windyboy
|
632a5fe422
|
docs: 精简重复论证与过时流程表述,口径与实现双向对齐
|
2026-09-11 14:26:44 +08:00 |
|
windyboy
|
a84751bf03
|
fix(jobs): 留痕清理独立接通历史存储开关;精简死逻辑并对齐陈旧注释
|
2026-09-11 14:26:44 +08:00 |
|