From 622b17f90c600e3863c6a9613628ac29761607dd Mon Sep 17 00:00:00 2001 From: iomgaa Date: Sat, 29 Aug 2026 14:19:30 -0400 Subject: [PATCH] =?UTF-8?q?chore(release):=20=E5=AE=9A=E7=89=88=201.0.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CHANGELOG 的「未发布」段落定成 1.0.3(2026-08-29),上面留一个空段给下一版接着攒;两处版本号 (pyproject.toml 与 polyloop/__init__.py)同步。 发之前跑了一轮完整压测,与 1.0.2 那次验收逐项可比:正常负载 400 次运行、3501 次真实模型调用, 十一条不变量全部通过、零击穿、零无法判定;九类故障注入 58 条判据全部通过、零击穿,剩下那条 无法判定与 1.0.2 是同一条。产物在 tools/soak/runs/v1.0.3/(该目录在 gitignore 里)。 第一次开跑那轮作废:模型中转连返 20 次 503 打开了网关熔断,400 次运行全部快速失败以 llm_error 收尾,整轮 181 秒「跑完」。正常负载那一轮的记分板不开 --allow-undetermined,当场拦下、退出码 非零——一次什么都没验到的跑没有冒充通过,那道闸是对的。产物留在 v1.0.3-aborted-503/。 README 的三条安装命令不用改:约束是 polyloop==1.0.*,1.0.3 落在里面。这意味着钉了那个约束的 下游一次例行升级就会拿到这一版,而这一版有一次破坏性的行为变更(绑定里不带前缀的 session_id 与 parent_call_id 从静默转发变成抛 ValueError)——眼下没有下游在用,所以实际影响为零, CHANGELOG 那一节把迁移写法写清楚了。 Co-Authored-By: Claude Opus 5 (1M context) --- CHANGELOG.md | 16 ++++++++++++++++ pyproject.toml | 2 +- src/polyloop/__init__.py | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2508939..0628f1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,22 @@ 长期停在 1.0.5,下游 `pip install` 拿不到任何修复且无人发现。提前把号写进这一段就是在重演 那个形态——读到号的人会以为那一版已经在 registry 上,而它不在。 +## 1.0.3(2026-08-29) + +回应 GovDoc-SaaS 提的 issue #6:网关适配器的转发白名单把 `cache_namespace` 挡在外面,而那是 +PolyGateway 指定的租户隔离手段。 + +**这一版发出去之前跑了一轮完整压测**,与 1.0.2 那次验收逐项可比:正常负载 400 次运行、3501 次 +真实模型调用,十一条不变量全部通过、零击穿、零无法判定;九类故障注入 58 条判据全部通过、零 +击穿,剩下那一条无法判定与 1.0.2 那次是同一条(`cancel_env` 那次运行一条事件都没发出过, +事件文件的完整性无从判起)。库本身没有被压出 bug。产物在 `tools/soak/runs/v1.0.3/` +(该目录在 gitignore 里)。 + +第一次开跑那轮作废了,原因不在库:模型中转连返 20 次 503 打开了网关的熔断,其后每次调用都 +快速失败,400 次运行全部以 `llm_error` 收尾。正常负载那一轮的记分板不开「允许无法判定」, +于是它当场拦下、退出码非零——一次什么都没验到的跑没有冒充通过。那批产物留在 +`tools/soak/runs/v1.0.3-aborted-503/`。 + ### 网关适配器改按保留前缀转发绑定,而不是按键名撞 **这是一次破坏性的行为变更。** 绑定里不带前缀的 `session_id` 与 `parent_call_id` 从「静默转发 diff --git a/pyproject.toml b/pyproject.toml index c9578d3..d2910e9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "polyloop" # 与 src/polyloop/__init__.py 的 __version__ 必须一致,由 tests/unit/test_package.py 断言。 -version = "1.0.2" +version = "1.0.3" description = "PolyLoop:实验室共用的 Agent 执行内核——一次运行的预算、停止语义、取消、逐步轨迹与 Skill 注入" # registry 的包页面正文只认这一项:缺了它页面就是一片空白,而 twine 只会警告 # long_description missing,不阻塞上传——三步全绿、产物是坏的(PolyGateway 1.1.2 的教训)。 diff --git a/src/polyloop/__init__.py b/src/polyloop/__init__.py index 08860e6..29010b7 100644 --- a/src/polyloop/__init__.py +++ b/src/polyloop/__init__.py @@ -15,4 +15,4 @@ import 时把网关连同它的 provider 目录一起拉起来,而不传存储 #: 与 `pyproject.toml` 的 `project.version` 必须一致,由 `tests/unit/test_package.py` 断言。 #: 两处双写是因为运行时读不到构建元数据(未安装的源码树里 `importlib.metadata` 查不到), #: 而下游报 bug 时第一件事就是问版本号。 -__version__ = "1.0.2" +__version__ = "1.0.3"