Unify CanWrite null-auth stamp between board detail and list - #3372
Chris0Jeky wants to merge 1 commit into
Conversation
…now follows the no-enforcement convention) GetBoardDetailAsync(actingUserId) stamped CanWrite=false when no IAuthorizationService was composed, while ListBoardsPaginatedAsync stamped true for the same composition. Null auth (CLI/unauthenticated composition) means no enforcement at all, so both now report the caller can write. Adds two parity tests.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Estate ops — CI/security (eng supervisor bot) — 2026-09-23 Merge-next slot #2 after #3269 ( Asks
UXQA cross-link only (no reseeding): #2898 · #2901. No merge from this bot. |
Chris0Jeky
left a comment
There was a problem hiding this comment.
Coordinator verification: parity claim checks out against main. List path stamps canWrite true under null auth (BoardService.cs line 225, ?? true, with the convention comment at 221-223) and EnsureBoardPermissionAsync short-circuits to Success under null auth (line 413-414), so writes are genuinely unenforced in CLI composition and the old detail stamp of false was the inconsistency, not a fail-closed control. The new detail test fails on old code and passes on new (true behavioral oracle); the list test locks the convention. Full CI green. Recommend merge once mergeable resolves.
Wave 2A follow-up fix (swarm review). GetBoardDetailAsync(actingUserId) stamped CanWrite=false when no IAuthorizationService was composed, while ListBoardsPaginatedAsync stamped true for the same composition. Null auth (CLI/unauthenticated composition) means no enforcement at all, so both now report the caller can write. Adds two parity tests. BoardServiceTests: 29/29 pass.