diff --git a/server/internal/handler/permission_relay_release_test.go b/server/internal/handler/permission_relay_release_test.go index 17c4714..dde9b1f 100644 --- a/server/internal/handler/permission_relay_release_test.go +++ b/server/internal/handler/permission_relay_release_test.go @@ -23,11 +23,17 @@ import ( // created_at = 2026-09-12 06:06:13 // // 该键的 session 位不是 UUID,于是 `RequestPermission` 走到 -// `uuid.Parse` 失败那条 `Invalid session_id`(permission.go:112)时直接 return, -// **没有调用 ReleaseRelay**。键因此永久留在表里:之后任何用同一个 +// `uuid.Parse` 失败那条 `Error(w, http.StatusBadRequest, "Invalid session_id")` +// 时直接 return,**没有调用 ReleaseRelay**。键因此永久留在表里:之后任何用同一个 // (agent_name, relay_key) 的重试都会拿到 `ErrRelayDuplicate`(→ 200 // duplicate_relay),而那次询问其实**从未发出去**。 // +// ⚠️ 这里**故意不写行号**(pi 2026-09-25 那条:引用位置要用唯一标识,行号只作辅助)。 +// 原始版本写的是 `permission.go:112` —— 而 `7589f0a` 自己插入的注释把那条 return +// 推到了 **128 行**,于是**同一个提交里**引用就失效了(实测:112 行现在是本注释的 +// 上游注释文本,`Invalid session_id` 在 128)。⇒ 唯一标识是那句**错误字符串**与 +// 函数名(`RequestPermission`),它们在重构中比行号稳。 +// // 为什么必须是两个独立的测试:这两件事在**早退路径**上观测等价。 // 早退时正确实现与"把 ClaimRelay 换成空操作"的坏实现**都**在表里留下一个空键, // 所以任何单条用例都无法同时钉住"该退的时候退"和"该占的时候占"。