From c2f6f32093eb3b195cd47e7ae4f1cef747603171 Mon Sep 17 00:00:00 2001 From: anonsaber Date: Mon, 28 Sep 2026 21:49:31 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20roadmap=20=E8=A1=A5=E5=85=A8=20XAUTOCLA?= =?UTF-8?q?IM=20=E9=98=88=E5=80=BC=E5=85=AC=E5=BC=8F=E5=9B=A0=E5=AD=90?= =?UTF-8?q?=EF=BC=8CAGENTS=20=E6=96=87=E6=A1=A3=E5=9F=BA=E7=BA=BF=20bump?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - roadmap.md:26「超时预算 × 安全系数 × 批大小」→ 写全真实公式 (max_retries+1) × (jmap+telegram+llm 超时) × 2 × 批大小,并注明 300s 下限 / 6h 上限与 reference.md §6.3 交叉引用;原来的压缩写法漏了 attempts 因子 - AGENTS.md 版本基线:文档 399b269(⑤)→ c746ead(锚点核验基线);代码仍 bfe0fd8。 本次改动仅触两处文档文字、未引入任何新行号锚点,故 c746ead 仍是有效的 锚点核验基线 - design.md §10.5 历史已修复清单里的「XAUTOCLAIM 空闲阈值按批大小缩放」按原样 保留:它是当时的真实状态,非当前状态,不改写历史条目 --- AGENTS.md | 8 +++++--- docs/roadmap.md | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 90194fd..329f2f2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,9 +8,11 @@ > > **跨文档引用一律用稳定 ID**(`C-` / `NG-` / `MOD-` / `FLOW-` / `REQ-` 等),**不用章节号(§x.y)**;定义点位置与一句话说明见 [§7 跨文档引用索引](#7-跨文档引用索引表)。 > -> **版本基线 v3(2026-09-26,本轮 ④+⑤,代码随 ⑥ 推进):代码 `bfe0fd8`,文档 `399b269`(⑤ 收口)。** -> 本轮新增 `src/debug.rs` 远程联调面与 6 个 `*DEBUG*` ID(§2 第 19 条、§5 测试清单、§7 六行),文档侧同步落位 -> `docs/deployment.md` §2.1、`docs/reference.md` §3/§4、`README` 中英双版;各文档的行号锚点以该基线为准,代码变动后须同步重锚。 +> **版本基线 v3(2026-09-26):代码 `bfe0fd8`(⑥-a/b/c 收口),文档 `c746ead`(锚点核验基线)。** +> ④ 新增 `src/debug.rs` 远程联调面与 6 个 `*DEBUG*` ID(§2 第 19 条、§5 测试清单、§7 六行),文档侧同步落位 +> `docs/deployment.md` §2.1、`docs/reference.md` §3/§4、`README` 中英双版;⑥ 落地 `/search` 与两项可靠性修复, +> `docs/design.md` §5.7、`docs/reference.md` §6.3/§6.4、`docs/roadmap.md` 代码缺口区同步更新。 +> 各文档的行号锚点以代码 `bfe0fd8` 为准,代码变动后须同步重锚。 --- diff --git a/docs/roadmap.md b/docs/roadmap.md index 9fe5b1e..69a2d9f 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -23,7 +23,7 @@ - **`/search` + `SearchSnippet/get` 高亮(已完成,`bfe0fd8`)** — `Intent::Search` 变体 + `JmapService::search_emails`(`email_query`(`Filter::text`) 取 ID + `SearchSnippet/get` 取高亮);高亮经 `strip_mark_tags`/`unescape_html_entities` 渲染成 Telegram 纯文本;snippet 不支持时降级为纯 ID 列表;`subject`/`preview` 有 120/160 字符截断上限;每条命中带 `email_id` 可直接接 `/summary`。设计见 `docs/design.md` §2.3、§3.2、§5.7。 - **Telegram 429 退避(已完成,`f4cae00`)** — `src/channel.rs` 的 `max_retries`(默认 3,硬上限 5)现在按 429 的 `Retry-After` 退避,缺该头时指数退避。 -- **多实例重复投递窗口(已完成,`6c99ce5`)** — XAUTOCLAIM 空闲阈值不再按固定 300s 单条上限缩放,改为按运行配置推导(超时预算 × 安全系数 × 批大小),单实例与多实例部署下的提前认领窗口关闭。 +- **多实例重复投递窗口(已完成,`6c99ce5`)** — XAUTOCLAIM 空闲阈值不再按固定 300s 单条上限缩放,改为按运行配置推导:`(max_retries + 1) × (jmap + telegram + llm 超时) × 2` 为单条上限、再乘批大小,下限 300s、上限 6h(完整公式见 `docs/reference.md` §6.3)。单实例与多实例部署下的提前认领窗口关闭。 - **`/debug/notify` 空白名单不拦截**(`SAF-DEBUG-ALLOWLIST`)— 白名单校验只在白名单**非空**时才生效(`src/debug.rs:232-235`),因此业务白名单未配置时 `chat_id` 可为任意值。**已定位、已文档化、本轮不改代码**:该面默认关闭且需 Bearer,且业务白名单为空时主产品本身即接受任意 chat,沿用同一语义不构成额外泄露面。若日后要收紧,需把语义改为「空白名单则拒绝」,并补单元测试、跑 `GATE-P0`。 ## 验收待办