-
1.3.2 Stable
released this
2026-08-28 18:17:15 +08:00 | 37 commits to main since this release1.3.2(2026-08-28)
本版不改库代码。
tools/与tests/都不在 pip 包内(脚本随仓库分发,见 README),故 1.3.2 的 wheel 与 1.3.1 除版本号外没有任何差异(__version__与包元数据是唯一的改动)。升级它不会改变任何库行为——本版的内容是运维脚本tools/telemetry_retention.py的一处契约扩展,以及测试隔离的重建。若你只用库本体,可以跳过本版。运维脚本:
--table让删除目标不再由连接环境决定(issue #18)tools/telemetry_retention.py此前删哪张表,取决于连接的search_path——它的首项是"$user",所以换个角色跑同一条命令,目标可能就换了一张表。脚本会把解析到的限定名打出来,但那行打印与DELETE在同一次运行里,中间没有人。新增可选参数
--table <schema>.llm_calls:给了它,目标由参数精确解析(to_regclass走引号限定名),绕开search_path。情形 行为 不给 --table与 1.3.1 完全一致,现有 cron 不受影响;但 --apply时会多打印一行,提示目标是推断来的表名段不是 llm_calls退出 1。本脚本只清理遥测表,不是通用清理器——一次 --table audit.events的手误,会对一张恰好也有created_at/tenant_id的业务表跑同一套分批 DELETE显式指定的表不存在/不可见 退出 2,消息附一句"PG 中未加引号建的标识符在 catalog 里是小写"(大小写手误是这里的高频原因) 显式指定的是分区表 仍退出 3 让路给 DROP PARTITION,语义未变退出码契约未新增也未改动。建议 cron 一律带上
--table:那一行配置从此自己说明删的是哪张表。测试隔离:从"事后观测共享表"改成"权限上做不到"
issue #18 报的是一条 PG 集成测试偶发红。查下来失败的断言并不在测被测脚本——它比对的是一张三个迁移项目也在写的表的前后行数,而报错时(61 行变 12 行)脚本本身被证明只动了自己的临时 schema。
行数快照承载不了它想守的属性:别人一写就假红,而外部插入恰好抵消掉一次误删时又会假绿——后一半守的正是"审计表被删空"。现在这条属性交给数据库强制:跑脚本的测试角色拥有自己的临时表、对共享表没有任何授权,
search_path万一落空就是permission denied而不是"但愿有断言发现"。共享表llm_calls至此不再被本仓库任何测试读写,killed 的测试也不会再往里留孤儿行。对下游没有影响(测试不进包),列在这里是因为它解释了本版为何存在。
Downloads