| content |
{"Commits":[{"Sha1":"a76562a9c {"Commits":[{"Sha1":"a76562a9c4710a6763243f4f1e1b87f12461b429","Message":"chore(reports): rebind gate reports to 66d02e6\n\n本轮 pnpm check(exit 0,30 项)与治理回归 183/183 的报告产物,按仓纪律 §5 落在实现提交之后。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-14T06:52:39-07:00"},{"Sha1":"66d02e665eba56a132e0c68a0916fdbb54f535e1","Message":"feat(governance,client-fact): land U-31 / U-33 / U-34 consumer feedback\n\n真实上层接入(digital-employee-os 的 os-employment-projection)暴露的三条缺口,\n按回灌纪律「机器门禁 \u003e 手册条目 \u003e 口头经验」落到本仓。\n\nU-33(机器门禁):check:pins 只读 package.json 的版本字符串,\n`\"@juhai/client-fact\": \"1.0.0-rc.2\"` 在它眼里是完美 exact pin,而 pnpm-lock.yaml 可以把同一个\n包解析到临时目录的 tarball(实测:会话 scratchpad 下的 file:/private/tmp/...tgz)。这比明着写\nfile: 依赖更危险——所有既有门禁全绿,只有别人 clone 后 pnpm install 失败才暴露。现把判据下沉到\nlockfile 的解析结果:@juhai/* 的 resolution tarball 必须落在 .npmrc 声明的 scope registry 下;\n非 registry 来源须在 platform-dependency-deviations.json 完整登记(五字段全填且未过期);\n临时目录来源不可登记豁免。\n\n不误伤既有上层仓的三条:无 lockfile 不判定;lockfile 里没有 @juhai 外部条目(纯 workspace 消费)\n不判定、也不要求 .npmrc;只有真的存在外部解析才要求声明 registry。本仓自测 checked=0 通过,\n对 OS 仓实测 4 个解析来源全部合规。\n\nU-34 / U-31(包契约):client-fact 此前没有 README,而 clients/README 却说\"实现与验收见包 README\"。\n新建并加进 files:\n- baseUrl 必须含 /api 前缀——本包用相对 URL 解析端点,少写 /api 不报错而是让所有回查 404,\n 消费者若把 404 当\"事实不存在\"就会判 UNTRUSTED_FACT、三次进死信;一个配置漏字母把整条摄入\n 变成全量死信。同时写明 404 / 不可达 / 未配置三种情况的不同处置。\n- 迁移模板只给表:策略无 TO 子句(对 PUBLIC 生效,system 角色同样被挡)且全文无 GRANT,\n 消费者若用低权限运行角色,照抄后对五张表没有任何权限。契约改为\"表 DDL 逐字照用,\n GRANT 与策略角色绑定由消费者按自身角色模型补齐\"。\n- 附 rc.3 的 STALE 行为变更与\"升级后应删除边界翻译\"。\n\n验证:新增 governance/test/check-pins.test.mjs 10 例(1 正向 + 6 负向判据 + 3 条不误伤);\n治理回归 183/183;根 pnpm check exit 0(30 项)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-14T06:52:14-07:00"},{"Sha1":"036a308f27acf35a46f068c96fea7723ef74d05e","Message":"feat(client-fact): U-29 判落后版本为 STALE,不再当毒消息\n\n真实消费者接入(digital-employee-os 的 os-employment-projection)暴露:applyOne 在\nversion \u003c= watermark 时抛 FactRejected(\"UNPROCESSED_VERSION_BEHIND_WATERMARK\"),\n而 handle 把任何 FactRejected 计入 attempts——至少一次投递下的**正常迟到重投**三次即\n被打进死信,与\"内容有毒\"共用一套判据;类型里写着的 \"STALE\" 返回值反而不可达。\n平台自己的主线 e2e 用合成宿主表,从不重放已过水位的事实,因此一直照不出这条。\n\n改为返回 \"STALE\",并顺手删掉该 fact 可能留在 gap 缓冲里的副本:落后事实永远等不到\nprevious_version = 水位,留着只会把缓冲占满到 GAP_BUFFER_FULL,drain 循环也会空转。\n\n证据:runtime/test/e2e/mainline.test.ts 新增断言——清掉 processed 行后重放旧事实,\n连判三次 STALE、platform_client_fact_failure 无行、投影仍停在 11;该文件 6/6 通过\n(真实 M3/M5/M6 库 + Redpanda,MAINLINE_ENV=ms23)。治理负向回归 173/173、\ncheck:pins 34 个 package.json 全 exact pin、根 pnpm check 全链通过。\n\n发布列车三件套同步升到 1.0.0-rc.3,**尚未发布**:rc.2 已在 Registry 且不可覆盖,\n上层在 rc.3 发布前继续 pin rc.2 并在边界做错误码翻译。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-13T22:10:52-07:00"}],"HeadCommit":{"Sha1":"a76562a9c4710a6763243f4f1e1b87f12461b429","Message":"chore(reports): rebind gate reports to 66d02e6\n\n本轮 pnpm check(exit 0,30 项)与治理回归 183/183 的报告产物,按仓纪律 §5 落在实现提交之后。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-14T06:52:39-07:00"},"CompareURL":"luoanwu/enterprise-platform/compare/d1ef5414093aa67ff4b8e2b7af8d13be86aed7ba...a76562a9c4710a6763243f4f1e1b87f12461b429","Len":3}... |