Per plan revision 3 (Project Collaboration and Linked Permissions):
U1 capability-association: backend stores project.create links atomically with the manager capabilities (project.settings, project.members.manage, project.permissions.manage, document.duties.assign); closed gracefully without deleting existing rows. (afb65c5)
U3A capability-explanation: extension DTO CapabilityExplain plus HTTP endpoint and Host providers; 4 categorized errors (409/403/404/503); no information leakage for unauthorized callers. (e942a35b)
Files
19 files, 2123 insertions, 13 deletions.
Verification
GOWORK=off go test ./internal/authz/... ./internal/store/... ./internal/server/... ./internal/app/... ./pkg/extension/... -count=1 → all ok
GOWORK=off go vet ./... exit=0
Why: host integration step 1 of 8 (Backend L1→main). Plan revision 3 U1 + U3A implementations (host authoritatively-verified, full unit/repo tests green, no regressions). U3B in Dev RDM side still blocked until this lands in Backend main so RDM can consume the new CapabilityExplain methods.
Refs: /tmp/iam-role-permission-plan-20261019-sqfu_4g4/plan.md revision 3; L1 PR #628 on Dev.
## Plan
Per plan revision 3 (Project Collaboration and Linked Permissions):
- **U1** capability-association: backend stores project.create links atomically with the manager capabilities (project.settings, project.members.manage, project.permissions.manage, document.duties.assign); closed gracefully without deleting existing rows. (`afb65c5`)
- **U3A** capability-explanation: extension DTO `CapabilityExplain` plus HTTP endpoint and Host providers; 4 categorized errors (409/403/404/503); no information leakage for unauthorized callers. (`e942a35b`)
## Files
19 files, 2123 insertions, 13 deletions.
## Verification
- GOWORK=off go test ./internal/authz/... ./internal/store/... ./internal/server/... ./internal/app/... ./pkg/extension/... -count=1 → all ok
- GOWORK=off go vet ./... exit=0
## Why: host integration step 1 of 8 (Backend L1→main). Plan revision 3 U1 + U3A implementations (host authoritatively-verified, full unit/repo tests green, no regressions). U3B in Dev RDM side still blocked until this lands in Backend main so RDM can consume the new CapabilityExplain methods.
Refs: /tmp/iam-role-permission-plan-20261019-sqfu_4g4/plan.md revision 3; L1 PR #628 on Dev.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Plan
Per plan revision 3 (Project Collaboration and Linked Permissions):
afb65c5)CapabilityExplainplus HTTP endpoint and Host providers; 4 categorized errors (409/403/404/503); no information leakage for unauthorized callers. (e942a35b)Files
19 files, 2123 insertions, 13 deletions.
Verification
Why: host integration step 1 of 8 (Backend L1→main). Plan revision 3 U1 + U3A implementations (host authoritatively-verified, full unit/repo tests green, no regressions). U3B in Dev RDM side still blocked until this lands in Backend main so RDM can consume the new CapabilityExplain methods.
Refs: /tmp/iam-role-permission-plan-20261019-sqfu_4g4/plan.md revision 3; L1 PR #628 on Dev.