Commit Graph
57 Commits
Author SHA1 Message Date
windyboy 2175c352f6 fix(processing): WP1 核心语义(ACM2-10 U06/U08/U10/U11)
- U06/N03:Dispatcher 逐条循环显式排除 KAFKA_SCHD(唯一出口 flushSchd 批量聚合),
  修复 schd 事件被无条件 markSent 吞掉、flush 永远 claim 不到的整链死路;flush 失败整批
  保持 PENDING、lastFlush 仅成功后推进(N24)
- U08 部分:Pump/Dispatcher loop 异常隔离(单次异常不静默死亡,U12 补告警日志);
  processOne FAILED 入口 attempts 毒丸升级 DEAD(防退避到期后无限重试);
  N28:backoffFor(attempt≤0) 下界保护不再抛异常
- U10/N21:未注册 handler → FAILED(UNSUPPORTED)+退避(绝不写终态);占位安全化——
  HistorySweep.pickHistory 占位改空集(T07 修订)、SnapshotFlow staging 未实装改
  FAILED(UNSUPPORTED)+退避而非 DEAD(N05),CAS 冲突 FAILED(INFRA)+退避(N06 紧循环修复)
- U11/T06:decode 失败差异化——MALFORMED→DEAD 不重试;CODEC_ERROR→FAILED 可重放
- 新增 ErrorClass.UNSUPPORTED;单测:DispatcherTickTest(3)/MessageProcessorTest(6)/
  PipelinePropsTest(2),19 个测试全绿
2026-09-06 18:19:04 +08:00
windyboy 821da1334c feat(build): 阶段0 冒烟底座(ACM2-10 U01–U04)
- U01:接入 KSP(kotlin-ksp 2.3.0)+micronaut-inject-kotlin,Micronaut BeanDefinition 由 0→94 个生成;
  移除 processing.annotations 业务包过滤(N23)
- U02:补 Gradle wrapper(9.6.1);版本矩阵单一来源——micronaut 固定 5.1.3(gradle.properties
  micronaut.version,平台 BOM 最高发布版)、JDK25 口径统一、snakeyaml 版本入 catalog;
  新增 .github/workflows/ci.yml 与 Dockerfile;.gitignore 补 .kotlin/.opencode/.zcode/.gradle-*
- U03:application.yml 键位修正(datasources.default/flyway.datasources.default/kafka.producers.default),
  移除 logstash 死配置块、logback env 统一 MSGX_LOGSTASH_*;新增 application-dev.yml(/env、/beans
  仅开发放开);PipelineProps 四嵌套类补 @ConfigurationProperties;新增 PipelinePropsBindingTest
  (改值—回读离线验收,Micronaut Test 5.x 用 TestPropertyProvider)
- U04:README「数据库初始化」与 V2.0.0 脚本头声明 CMINMSGS legacy 前置(全新库需先建旧表)
2026-09-06 17:59:07 +08:00
windyboy 38d5cecfac docs: copy legacy user-stories baseline (ACMA-4) for golden replay
Behavior-comparison baseline referenced by ACM2-3 (G13 golden matrix).
Copied from legacy repo working copy (was untracked there).
2026-09-06 16:36:29 +08:00
windyboy b77bb9c687 docs(readme): reference message-structure spec and XSD 2026-09-06 16:34:50 +08:00
windyboy 372612f8d0 docs: copy message-structure spec and XSD from legacy repo
- SIS_AODB_RMS-V0.1.md: wire protocol spec (single source of truth, frozen contract)
- doc/unisysaodbsis.xsd: message schema for codec implementation (phase 2)

Self-contained for codec work per ACM2-2/ACM2-3. Refs: ACM2
2026-09-06 16:34:00 +08:00
windyboy 105386c6fb chore: align project name with repo msgexchange-v2 (repo.windy.me/cdia) 2026-09-06 16:22:57 +08:00
windyboy b2f3b896cc feat: scaffold Micronaut+Kotlin service per ACMA-8 v4 architecture
- 4 modules (ingress/processing/delivery/reference) + codec + infra + jobs
- Flyway V2.0.0: six aux tables (PROC_STATE/MSG_EVENT/REF_DATA/REQ_TRACK/PUMP_JOB/FLIGHT_STATE)
- Lua: snapshot_replace (atomic cover+gen-diff-delete), batch_delete (3:30 sweep)
- config: env-externalized secrets, phase A/B switch, ACMA-8 param-table defaults
- logback: logstash TCP JSON + traceId MDC
- pure-logic tests: identity (I3), schd aggregation max-by-EVENT_ID (FIX #7)
- build verified: gradle compile+test green on JDK 25 (Micronaut 5.1 requires JVM 25+)

Migrated from legacy repo subdirectory per repo-strategy decision (separate repo
per service, org convention). Refs: ACMA-9, ACMA-8 v4, ACMA-6
2026-09-06 16:13:50 +08:00