显式续租(「打开会话列表但还没说话」的 UI 场景;exchange 活动/heartbeat 即隐式续租照旧):last_seen_at 推进;归档标记恒不清空——已 DELETE 行同 id 续租恒 410 session_archived(终态,开新会话);窗口外未归档行同 id 续租仍按在册续租;续租恒走并发守门 acquire(窗内零变化,出窗重入按新会话判限 enforce 429 / shadow would_reject),判限先于 last_seen_at 刷新;归属三键(owner+App 键+endUser)不满足恒同形 404(不泄露存在性);续租步长 = 固定 30d 窗口,恒不随令牌 TTL(租约锚 = endUserId 解耦令牌,同 endUser 新令牌续用旧会话)
POST
/t1/sessions/{id}/renew
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”已续租({id, lastSeenAt})
Media typeapplication/json
object
id
required
string
lastSeenAt
required
string
Examplegenerated
{ "id": "example", "lastSeenAt": "example"}Not_found(不存在/越权,不泄露存在性)
Media typeapplication/json
object
error
required
object
code
required
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
string
message
required
string
requestId
required
string
detail
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}Session_archived(已归档会话;detail.sessionId;终态)
Media typeapplication/json
object
error
required
object
code
required
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
string
message
required
string
requestId
required
string
detail
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}Plan_concurrency_exceeded(enforce:出窗会话重入达硬帽;Retry-After 30)
Media typeapplication/json
object
error
required
object
code
required
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
string
message
required
string
requestId
required
string
detail
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}本文是否有帮助?
感谢反馈,我们会持续改进这篇文章。