Files
PaperClipAI/doc
DottaandClaude Opus 4.8 f83dc827b9 feat: enforce issue privacy on plugin issue reads
Plugins are non-member principals, so the host services backing the
issues.read capability must apply the canonical issue-visibility
predicate. This is the leak surface a Slack notifier/digest plugin
would consume (PAP-16091, follow-up to PAP-16050).

- issues.list: push issueReadSqlCondition into the query
- issues.get / listComments / listAttachments / getAttachmentContent:
  gate on canActorReadIssuePrivacy for the (parent) issue
- getOrchestrationSummary: drop private subtree descendants and redact
  blocker/blocks edges pointing at private issues; private root 404s
- synthetic { type: "none" } actor => public-only scope, no
  local-implicit / instance-admin bypass; pass-through in off/shadow
- 8 non-member leak tests + doc/ISSUE-PRIVACY.md plugin section and
  residual-disclosure note

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-01 23:19:05 +00:00
..
2026-03-10 14:43:34 -05:00
2026-08-01 22:54:01 +00:00
2026-02-16 14:25:00 -06:00