cursor: Docs slice 1 — ONE policy point: human + agent tokens resolv - #511
cursor: Docs slice 1 — ONE policy point: human + agent tokens resolv#511servathadi wants to merge 1 commit into
Conversation
Keystone for per-project Docs RBAC: normalize human session and agent mupot tokens into the same claim set and gate both through checkContentTier (6 tiers + permitted_roles + entity_id match). No parallel agent-RBAC path. Co-authored-by: Cursor <cursoragent@cursor.com>
servathadi
left a comment
There was a problem hiding this comment.
BLOCK — exact-head content gate at ba9deb0c.
The shared policy's squad and project tiers check only whether the caller has any squad_id or project_id; the content context contains no target squad/project ID to compare against. A principal belonging to squad A/project A therefore satisfies content labeled squad/project even when the content belongs to B, unless every caller adds a separate parallel scope check.
That makes the proposed single policy point authorization-incomplete and misses the done-when claim. The required build check is also failing.
|
Tracked as #562 for incremental fix (2026-07-25 backlog triage — codex diverse-gate BLOCK, real finding, not merged/live). Leaving this PR open as the fix branch; will re-request gate and merge on GREEN when picked up. |
Dispatched to the
cursoragent (Grok) headless via the mupot loop for taskc1a32ab5-3385-4737-b4bf-469cde80378f.Task done-when: content-tier.ts (Inkwell) is extended so BOTH a human session token AND an agent mupot token resolve visibility through the SAME tier/role function — the agent's entity_id/roles/capabilities are just another claim set; NO parallel agent-RBAC path is introduced; a test proves a human and an agent with IDENTICAL claims get IDENTICAL visibility across all 6 tiers (public/squad/project/role/entity/private); permitted_roles + entity_id-claim-match enforced for both; typecheck + tests green; PR opened (NOT merged).
Driver verified: cursor committed real work +
tsc --noEmitclean. Kasra-core gates this PR before merge (the task is inreview; cursor cannot self-close it).