Workspaces: add scoped Teams control hub#101913
Conversation
|
On |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Dependency graph guard clearedThis PR no longer has blocked dependency graph changes. A future dependency graph change requires a fresh
|
|
Codex review: needs real behavior proof before merge. Reviewed July 13, 2026, 9:32 AM ET / 13:32 UTC. Summary Reproducibility: not applicable. as a bug reproduction: this PR introduces a new multi-user capability. The relevant verification is a real two-principal deployment exercising authorization and session lifecycle behavior. Review metrics: 3 noteworthy metrics.
Stored data model Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review findings
Review detailsBest possible solution: First obtain explicit maintainer approval for the core multi-user Gateway trust model and permanent plugin API shape; if approved, land the authorization kernel, plugin contract, Workspaces integration, and portal in bounded reviewable stages with documented migrations, history projection coverage, and redacted two-principal live proof for fresh and upgraded installations. Do we have a high-confidence way to reproduce the issue? Not applicable as a bug reproduction: this PR introduces a new multi-user capability. The relevant verification is a real two-principal deployment exercising authorization and session lifecycle behavior. Is this the best way to solve the issue? No, not yet. The implementation is technically substantial, but establishing the entire trust model and public API in one conflict-prone PR is not the safest maintainable landing path without explicit sponsorship and staged review. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against afdc3931a80a. Label changesLabel justifications:
Evidence reviewedSecurity concerns:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (7 earlier review cycles)
|
|
Security (cross-PR, surfaced by the downstream Boardstate extraction's audit — SPEC invariant I6): private-tab leak via workspace history, emergent when this PR and #101913 both land.
Neither branch has the hole in isolation (this one has no private tabs yet; that one has no history endpoint). But once both are on Fix at integration: route the Flagging on both PRs so it isn't lost at merge. (The other two audit findings — approval-elevation via |
54e9649 to
6d35276
Compare
0e71316 to
0fa3bb7
Compare
0fa3bb7 to
1849e4d
Compare
Port the useful parts of the legacy Control Hub work onto the first-class Teams authorization contract. Keep tab access owner-controlled through exact resource grants, group canonical server-authored tabs by agent provenance, and expose bounded tenant/workspace/tab-scoped presence only after exact-tab authorization.
1849e4d to
7370091
Compare
What Problem This Solves
Teams need a useful shared control hub without receiving the workspace owner's full dashboard or inheriting a second, device-specific permission system. The previous version grouped tabs and modeled privacy around operator/device identity, which no longer matches the first-class tenant, principal, exact-resource grant, and Teams-session contracts now used by OpenClaw for Teams.
Why This Change Was Made
This rebuild uses the canonical Teams authorization domain and exact Workspaces tab grants introduced by the Teams foundation. It does not add another permission model:
Read,Read + request changes, andRead + write;createdByprovenance;The member portal polls only the tab it is authorized to view and clears stale presence after authorization failure, logout, or expiry.
User Impact
Workspace owners can share selected tabs with external team members at the intended access level. Team members see a focused, grouped control hub and exact-tab presence without learning about unrelated tabs, users, sessions, or workspace state. Agents and external members remain bounded by their assigned resource permissions; v1 does not allow either to become the default workspace administrator.
Evidence
e17f216d3fc76dd0490c56196d59e1c7f12140db, based on upstream-main snapshot151a259f9a9f6fd96ace336416a3e024477cce8c; all four PR commits range-diff identically after the base refresh.73700913b9ffc76ff4e2acdd45fb4e1ce1f0a238.git diff --checkpassed.zh-TWandfr: 41 each;hiandru: 39 each; the other 16 locales: 40 each). No fallback-generated locale output was written or committed; authenticated locale synchronization remains a required external gate.