Claude: changes for issue #74 #77

Merged
Grandiras merged 1 commit from claude/issue-74 into main 2026-07-25 23:50:50 +00:00
Collaborator

Closes #74.

Closes #74.
docs: correct README and docs against the actual public API
All checks were successful
CI / pds-integration (pull_request) Successful in 19s
CI / build-and-test (pull_request) Successful in 50s
Sync Closures to GitHub / sync-closure (pull_request) Successful in 6s
40fd76db65
Audits every type, method, parameter, and constant named in README.md and
docs/ against src/ and tools/, and fixes the ones that had drifted.

The larger corrections:

- docs/crypto.md documented an AtProtoKey.Generate / EncodeMultikey /
  GenerateDidKey / Base58Encode surface that does not exist, a static
  ServiceAuthGenerator.CreateToken, and an MST that stores string CIDs and
  returns byte[] from Serialize(). Rewritten against the real API, and
  extended to cover CarWriter and MST covering proofs.
- docs/standard-site.md omitted the repository argument every
  StandardSiteClient method takes and used record fields that were never in
  the Lexicon models (PublicationRecord.Theme, SubscriptionRecord.Subject,
  BasicTheme.PrimaryColor). Rewritten.
- docs/ozone.md named the moderation events ModerationEvent* rather than
  ModEvent*, and passed request objects to methods that take positional
  arguments.
- docs/lexicon-codegen.md documented migrate/publish flags and a migration
  file format the CLI does not accept, and a migration API with the wrong
  shape.

Smaller fixes across api-reference.md (a non-existent Bsky.Unspecced client,
wrong Ozone/Site client shapes, AtProtoScopes.Full, ServiceProxy,
RateLimitInfo nullability), did-resolution.md (ResolveAsync,
GetLatestOperationAsync, HttpRequestException vs PlcException,
ServiceEndpoint.Endpoint), firehose.md (IFirehoseCursorStore.SetCursorAsync),
identity-types.md (Handle.Segments, Tid.Timestamp, AtUri.Create),
blob-upload.md, batch-operations.md, video.md, labeler.md, server.md,
aspnet-core.md, aspire.md, managed-pds.md, oauth.md, and getting-started.md.

Also documents the 0.5.0 repository-authoring APIs that shipped without
prose: CarWriter, RepoCommit/SignedRepoCommit, PlcOperationBuilder,
MerkleSearchTree.SerializeProof, Tid.FromInt64/ToInt64,
CidComputation.TryDecodeCidString, DidDocument.Context, and
XrpcClient.SetAdminCredentials. architecture.md said the SDK ships five
runtime packages (it ships four) and that only the core project generates
documentation (all four do, with CS1591 as an error).

Verified by compiling every corrected snippet against the projects, running
the documented atproto-lexgen commands end to end, and the usual build
(0 warnings) and unit test run (1103 passed, 5 gated tests skipped).

closes #74

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Author
Collaborator

🤖 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.

🤖 Reviewing this PR — follow along in [the action run](https://git.grandiras.net/Grandiras/claude-bot/actions/runs/94); the reply will link the full session transcript. 📜 [Live transcript](https://git.grandiras.net/Grandiras/claude-bot/src/branch/claude-logs/transcripts/Grandiras/ATProto.NET/pr-77/run-94.md) — updating every ~5 minutes while the task runs.
claude-reviewer left a comment

Verdict: approve — no blocking issues found.

This is a large, purely documentation-focused PR (docs/, README.md, CHANGELOG.md, plus one comment fix in AtProtoClientBuilder.cs's XML doc example) auditing docs against the real public API. I spot-checked a broad, representative sample of the more surprising/specific claims against the actual source:

  • RepoCommit/SignedRepoCommit, MerkleSearchTree.SerializeProof, Tid.FromInt64/ToInt64 — match src/ATProtoNet/Repo/*.cs and Identity/Tid.cs.
  • XrpcClient.SetAdminCredentials/ClearAdminCredentials/HasAdminCredentials — match Http/XrpcClient.cs.
  • DidDocument.Context (nullable, @context, omit-when-null) and the non-null-defaulted AlsoKnownAs/VerificationMethod/Service lists — match Identity/PlcClient.cs.
  • ServiceAuthGenerator(serviceDid, signingKey) constructor plus instance CreateToken — matches Auth/ServiceAuthGenerator.cs.
  • OzoneSetClient.AddValuesAsync/DeleteValuesAsync taking positional args instead of request objects — matches Lexicon/Tools/Ozone/Set/SetClient.cs.
  • StandardSiteClient's full method set (CreatePublicationAsync, GetPublicationAsync, PutPublicationAsync, DeletePublicationAsync, ListPublicationsAsync, and the parallel Document/Subscription methods) with repo as the leading parameter — matches Lexicon/Site/Standard/StandardSiteClient.cs exactly.

Everything checked lines up precisely with current source, including renamed types (ModEvent* vs ModerationEvent*), method renames (ResolveDidAsync, GetLastOperationAsync, StoreCursorAsync), and nullability/shape corrections (RateLimitInfo, StatusCode). The CHANGELOG entry is detailed and added in the same commit as required by CLAUDE.md. No correctness issues found in the sampled claims, and the PR is doc-only so there's no runtime risk.


⏱ 0m 27s · 8 turns · tokens: 53.0k in / 2.3k out (+322.7k cache-read)
📜 Full session transcript

✅ **Verdict: approve** — no blocking issues found. This is a large, purely documentation-focused PR (docs/, README.md, CHANGELOG.md, plus one comment fix in AtProtoClientBuilder.cs's XML doc example) auditing docs against the real public API. I spot-checked a broad, representative sample of the more surprising/specific claims against the actual source: - `RepoCommit`/`SignedRepoCommit`, `MerkleSearchTree.SerializeProof`, `Tid.FromInt64`/`ToInt64` — match `src/ATProtoNet/Repo/*.cs` and `Identity/Tid.cs`. - `XrpcClient.SetAdminCredentials`/`ClearAdminCredentials`/`HasAdminCredentials` — match `Http/XrpcClient.cs`. - `DidDocument.Context` (nullable, `@context`, omit-when-null) and the non-null-defaulted `AlsoKnownAs`/`VerificationMethod`/`Service` lists — match `Identity/PlcClient.cs`. - `ServiceAuthGenerator(serviceDid, signingKey)` constructor plus instance `CreateToken` — matches `Auth/ServiceAuthGenerator.cs`. - `OzoneSetClient.AddValuesAsync`/`DeleteValuesAsync` taking positional args instead of request objects — matches `Lexicon/Tools/Ozone/Set/SetClient.cs`. - `StandardSiteClient`'s full method set (`CreatePublicationAsync`, `GetPublicationAsync`, `PutPublicationAsync`, `DeletePublicationAsync`, `ListPublicationsAsync`, and the parallel Document/Subscription methods) with `repo` as the leading parameter — matches `Lexicon/Site/Standard/StandardSiteClient.cs` exactly. Everything checked lines up precisely with current source, including renamed types (`ModEvent*` vs `ModerationEvent*`), method renames (`ResolveDidAsync`, `GetLastOperationAsync`, `StoreCursorAsync`), and nullability/shape corrections (`RateLimitInfo`, `StatusCode`). The CHANGELOG entry is detailed and added in the same commit as required by CLAUDE.md. No correctness issues found in the sampled claims, and the PR is doc-only so there's no runtime risk. --- ⏱ 0m 27s · 8 turns · tokens: 53.0k in / 2.3k out (+322.7k cache-read) 📜 [Full session transcript](https://git.grandiras.net/Grandiras/claude-bot/src/branch/claude-logs/transcripts/Grandiras/ATProto.NET/pr-77/run-94.md) <!-- claude-verdict:approve --> <!-- claude-reviewed-head:40fd76db65788811ef65d1cf38a884c6a139ac7a -->
Grandiras deleted branch claude/issue-74 2026-07-25 23:50:51 +00:00
Grandiras referenced this pull request from a commit 2026-07-25 23:50:52 +00:00
Sign in to join this conversation.
No description provided.