fix(collaboration): make shared access lifecycle durable and actionable - #4907
Merged
Conversation
Keep retained Guest access discoverable, persist explicit rejection, add access labels, and distinguish connection failure from uncertain credential finalization. Generated-by: Codex
Generated-by: Codex
Generated-by: Codex
jackwener
approved these changes
Sep 6, 2026
jackwener
left a comment
Member
There was a problem hiding this comment.
Approved at exact head e11444969493e082c370a27770841d8d204e2365 at the explicit direction of M4n5ter. No technical review was performed as part of this action; M4n5ter requested the approval and accepts responsibility for subsequent handling.
Review notice: This approval was submitted by an automated review agent operated by jackwener and is published at the direction of M4n5ter, who requested this action and is the human accountable for it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
English
Summary
This does not enable public application relays or claim to fix every NAT traversal failure. Direct application traffic still requires a direct path or an explicitly approved Mesh transit member.
Verification
--test-concurrency=4). Targeted protocol, authority, lifecycle and UI tests: 103 passed.peer_path_unavailable, never reportedfinalizing_access, and left the saved-access count unchanged. Connection reasons and alias save/reopen were verified.Compatibility
Protocol compatibility epoch advances to 119 because older peers cannot decode named Guest principals. Update connecting clients and hosts together. Rejected-access persistence uses mount-store schema 2 only when a terminal access decision exists; those stores deliberately reject older readers.
AI use
Tool(s) and scope: Codex — implementation and tests.
Checklist
Does this PR entail a change in behavior?
简体中文
Summary
不启用公共应用流量 relay,也不声称修复所有 NAT 打洞失败。应用连接仍只允许直连或明确授权的 Mesh 成员转发。
Verification
peer_path_unavailable,未进入授权提交阶段,未增加共享记录;失败原因展示、别名保存与重新打开验证通过。Compatibility
协议兼容 epoch 升至 119,旧版本无法解析带别名的 Guest 投影,连接双方需一起更新。仅当存在终态授权决定时,共享挂载存储使用 schema 2,并拒绝旧版本读取,防止撤销状态在降级后丢失。
AI use
Tool(s) and scope: Codex — 实现与测试。
Checklist