| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(core,jdbc): issues/137 §3-6 删除腿收口为「原值 ∪ trim 值」两形并集(java 基准腿) owner 2026-10-02 第 1 问拍 A(仓储删除侧义务=「只丢空值、不 trim 非空值」),但动手前普查推翻了它的 事实前提,回报后 owner 改拍**「两形并集」**: - 案文说 trim 派是 php/csharp/moon 三栈 ⇒ 实测是**四栈八处**,spec 06 的 ⚠️ 现状清单**漏记了 rust** ( memory.rs:313 与 repository-sqlx/lib.rs:837 同样过 model::normalize_actors); - 案文说裸传只有三口 ⇒ 实测**四栈九处**(go 两仓、node 两仓、python 两仓、java 三处——其中 core 测试桩 MemoryProcessRepository:256 是启动词漏掉的第四口,RemoveTaskActorActionTest:529 的 spy 正是 super 到它,不改则 core 腿判据打在旧语义上); - 更要紧的:trim 派八处注释全部引 issues/142 §9.2 第二批,且有**已随 1.8.36 发版的既有测试**正向钉住 trim (rust test_i142_b_remove_task_actor_trims_and_blank_is_noop 内存+mysql 两格、 moon i142b_task_actor_write_test.mbt:72、moon T1-F119)⇒ 按 A 字面执行就要反向改它们(撞红线)。 两个场景靠"不 trim"无法同时满足:门面按语义 6 交脏行原值 " 9101 " ⇒ 不 trim 才删得掉; 第三方绕过门面直连仓储传 " 8601 " 而库里是规范行 ⇒ trim 才删得掉。 ⇒ 并集:删除值**同时**以「原值」与「trim 值」两形进 DELETE ... IN,空值一律丢弃、并集为空则早退。 脏行按原值命中(修 1.8.36 的假成功:门面报成功而被摘的人待办还在)、规范行按 trim 形命中 (142 §9.2 那一路不破),且**既有测试零反向改**——并集包含 trim 形,142 那几格照绿。 - StringUtils.actorDeleteForms:删除腿单点。trim 与判空仍复用 normalizeActors 那一枚,本方法只加 "原值也进集合"这一层,**不抄第二份判据**(§2.11 尾注)。 - JdbcProcessRepository.removeTaskActor:改前裸传(两头都不成立)。 - 两个测试桩(persist MemoryRepo:86、core MemoryProcessRepository:256)同口径,两仓同答案 (issues/117 场景 27);core 那处另加 seedTaskActorsForTest 绕开写侧归一种脏行——addTaskActor 会 trim+丢空,正常路径建不出 " 9101 " 也建不出 actor_id='' 行。 - IProcessRepository.removeTaskActor 的 SPI 注释按 §2.11「SPI 注释义务」改写(旧注释还写着 142 的 「入参同样按 trim() 归一后再比」,把删除腿与写侧义务混为一谈)。 新增 TaskActorDeleteFormsTest 14 格(内存仓)+ JdbcTaskActorDeleteFormsTest 9 格(SQL 仓,断言全打在 wf_process_task_actor.actor_id 真实列值上;脏行夹具一律用**前导空格**——MySQL 5.7 PAD SPACE 只忽略尾部、 8.0 NO PAD 连尾部也算,前导空格在任何排序规则下都与规范行不等,判据不会因跑在哪台库上而漂)。 改前红样各三组(tmp/b3-36-{java,jdbc}-red-sample.py,字节级替换+copyback+sha 核对,两脚本 SELFCHECK PASS): · 内存仓 M1 裸传 ⇒ 3 失败 1 错误;M2 只 trim ⇒ 6 失败;M3 只原值(=owner A 案字面)⇒ 5 失败—— M3 打红的正是 normalizedRowIsStillDeletedByTrimmedForm,即 142 §9.2 那一路被破的实测证据; · SQL 仓 J1 裸传 ⇒ 3 红;J2 只 trim ⇒ 红 untrimmedLegacyRowIsDeletedByItsRawForm; J3 只原值 ⇒ 红 normalizedRowIsStillDeletedByTrimmedForm。 bothFormsOfTheSamePersonAreRemovedTogether 在三组变异下**都红**,是真正的判别式那一格。 读数:core **277** / repository-jdbc **63**(54+9)/ persist **31**,BUILD SUCCESS(JDK8)。 既有测试期望值改动 **0 处**。 ⚠️ 跑 repository-jdbc 必须带 -am:-pl 单模块会吃到本地仓库里的旧 jeeflow-core jar, 报 NoSuchMethodError: StringUtils.actorDeleteForms(本轮实测踩过)。 | 13 天前 | |
chore: bump version to 1.8.51 | 3 小时前 |