fix: restrict membership management to org publishers#2285
fix: restrict membership management to org publishers#2285vyctorbrzezowski wants to merge 5 commits into
Conversation
|
@vyctorbrzezowski is attempting to deploy a commit to the Amantus Machina Team on Vercel. A member of the Team first needs to authorize it. |
|
Codex review: needs changes before merge. Workflow note: Future ClawSweeper reviews update this same comment in place. How this review workflow works
Summary Reproducibility: yes. Source inspection at PR head gives a high-confidence path: create a stale PR rating Rank-up moves:
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. PR egg What is this egg doing here?
Real behavior proof Risk before merge
Maintainer options:
Copy recommended automerge instructionNext step before merge Security Review findings
Review detailsBest possible solution: Finish the authorization sweep so every personal-publisher gate keys off Do we have a high-confidence way to reproduce the issue? Yes. Source inspection at PR head gives a high-confidence path: create a stale Is this the best way to solve the issue? No. The linked-user-only direction is the right fix, but this patch is incomplete until the remaining direct owner gates use the same personal-versus-org authorization split. Label justifications:
Full review comments:
Overall correctness: patch is incorrect Security concerns:
Acceptance criteria:
What I checked:
Likely related people:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 2aa2a449e5fc. |
7d3ffa9 to
33ffa7f
Compare
33ffa7f to
5f97962
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
5f97962 to
8f08815
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
Summary
Keeps personal publishers as identity aliases instead of collaborative org-like publishers.
What changed
linkedUserId === actorUserId.Public behavior
Publishing, transferring, or managing through a personal publisher now requires that the personal publisher is linked to the acting user. A stale membership row cannot authorize a different user's personal publisher.
Org publisher membership remains valid for org-owned publishing.
Behavior proof
Live Convex runtime proof for the remaining stale personal-membership paths ClawSweeper called out:
This proof creates a stale personal-publisher membership for a non-linked actor and verifies that it cannot authorize direct skill transfer, package appeal submission, or owner-only package moderation status access.
Focused regression suite:
Validation
Current GitHub CI for this head also has
unit,packages,types-build,e2e-http,playwright-smoke, andplaywright-local-authpassing. Thestaticjob currently stops atbun auditon the existing transitivewsadvisoryGHSA-58qx-3vcg-4xpx.