Claude: changes for issue #94 #95
No reviewers
Labels
No labels
breaking-change
bug
documentation
duplicate
enhancement
good first issue
help wanted
performance
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Grandiras/ATProto.NET!95
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "claude/issue-94"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #94.
An omitted `action=` list means the full default set in the scope grammar, so `AtProtoScopes.Repo("app.bsky.feed.post", RepoAction.None)` emitted `repo:app.bsky.feed.post` — a create + update + delete grant, the exact opposite of the zero-write one the caller asked for. The grammar has no marker for an empty action list, so the request is inexpressible rather than narrow: both `Repo` overloads now throw `ArgumentException`, matching what `AtProtoScopes.Space(...)` does for `SpaceAction.None`. The guard sits in the shared `AppendRepoActions` helper, so it covers the single-collection overload, the multi-collection one, and the one-element list that delegates between them. Also documents `SpaceAction.None` as rejected — `Space(...)` has thrown for it since #90, but the enum member still read "No specific action". closes #94🤖 Reviewing this PR — follow along in the action run; the reply will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the task runs.
✅ Verdict: approve — no blocking issues found.
Clean, well-scoped fix.
RepoAction.Nonenow throwsArgumentExceptionfromAppendRepoActions, matching the existingSpaceAction.Noneguard exactly (same exception, samenameof(actions)parameter name, same rationale in the doc comments). Verified against the current source that theSpacemethod already has this identical pattern, so the change bringsRepointo consistency rather than inventing a new convention.The list overload's count-1 path delegates to the single-collection overload, so it inherits the guard automatically — the PR adds an explicit test for that delegation path, which is a good catch since it's easy to assume coverage there without verifying it.
CHANGELOG entry is correctly filed under Breaking changes with a clear migration note. No other callers in the codebase pass
RepoAction.None, so there's no fallout elsewhere. Tests cover all three call paths (single collection, multi-collection, and the one-element list delegating to single). No issues found.⏱ 0m 30s · 8 turns · tokens: 20.9k in / 2.0k out (+329.8k cache-read)
📜 Full session transcript