Conversation
|
Caution Review failedThe pull request is closed. WalkthroughAdded a comprehensive Rust/TypeScript ZK Compression client guide, updated Docs navigation and many internal links, removed numerous Changes
Sequence Diagram(s)sequenceDiagram
participant Dev as Developer (TS/Rust)
participant SDK as Client SDK
participant RPC as RPC Node
participant Program as Compressed-PDAs Program
participant Tree as Merkle / State
participant Proof as Validity Verifier
rect rgb(245,248,255)
Dev->>SDK: build instruction(s) + validity proof(s)
SDK->>RPC: send transaction
end
rect rgb(240,255,240)
RPC->>Program: deliver transaction
Program->>Tree: read merkle/state
Program->>Proof: validate proof(s)
alt proof valid
Program-->>RPC: apply state changes
else proof invalid
Program-->>RPC: reject tx (error)
end
RPC-->>SDK: return tx result
SDK-->>Dev: surface result
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~30 minutes
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (26)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (5)
client-library/README.mdx (5)
700-700: Fix hyphenation: "32 byte pubkeys" → "32-byte pubkeys".Compound adjectives modifying a noun should be hyphenated.
Apply this diff:
- * Indices are included in instruction data, instead of 32 byte pubkeys. + * Indices are included in instruction data, instead of 32-byte pubkeys.
176-176: Remove duplicate word: "Starts a start a" → "Starts a".Typo in the Rust Localnet section.
Apply this diff:
- Starts a start a single-node Solana cluster, an RPC node, and a prover node at ports 8899, 8784, and 3001. + Starts a single-node Solana cluster, an RPC node, and a prover node at ports 8899, 8784, and 3001.
1279-1279: Fix spelling: "feepayer" → "fee payer".Use the two-word form for clarity in informal contexts.
Apply this diff:
- 1. **Pass program-specific accounts** as defined by your program's IDL (signer, feepayer). + 1. **Pass program-specific accounts** as defined by your program's IDL (signer, fee payer).
1262-1285: Step 7 shows only Rust code; consider adding TypeScript equivalent.The "Instruction" step demonstrates building an instruction in Rust but omits the TypeScript equivalent, while other steps consistently show both languages. If instruction building is framework-independent and identical between languages, a clarifying note would help. If there's a meaningful TypeScript pattern, include it for completeness.
1287-1290: Step 8 "Send Transaction" is empty.The final step contains no implementation guidance. Either provide guidance on submitting transactions (which will be framework/library-dependent), or remove the empty step. If intentional (to keep guide generic), consider a brief note explaining why transaction submission is omitted.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
client-library/README.mdx(1 hunks)docs.json(1 hunks)
🧰 Additional context used
🪛 LanguageTool
client-library/README.mdx
[grammar] ~700-~700: Use a hyphen to join words.
Context: ...luded in instruction data, instead of 32 byte pubkeys. * The indices point to the...
(QB_NEW_EN_HYPHEN)
[grammar] ~1279-~1279: Ensure spelling is correct
Context: ... defined by your program's IDL (signer, feepayer). 2. Add all remaining accounts fro...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🔇 Additional comments (2)
docs.json (1)
33-33: Navigation path correctly updated for the new README file.The change from
"client-library"to"client-library/README"properly aligns with the new file structure and Mintlify conventions for resolving README.mdx files in subdirectories.client-library/README.mdx (1)
1-1327: Comprehensive and well-structured client library guide.The documentation effectively covers the full workflow from installation through instruction building for both TypeScript and Rust. MDX formatting is clean, code examples are consistent and properly annotated, and the step-by-step progression is logical. Version pinning is clear (TS: 0.22.1-alpha.1, Rust: 0.16.0). Navigation updates in docs.json correctly reference the new file.
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (3)
client-library/README.mdx (3)
724-750: Consider clarifying the accounts array graphics and headings per previous review feedback.The graphics at lines 724-750 show the account structure for Anchor and Native programs. However, the section headings and explanatory text could be clearer based on previous reviewer feedback:
- The heading at line 724 "Array Anchor framework:" is grammatically awkward. Previous suggestion was "Accounts Array Anchor framework:" or similar.
- The Native Programs section heading at line 740 could be more specific (e.g., "Instruction Accounts for Native Programs:").
- The notation "(before)" at line 749 is unexplained. Clarify what it refers to (e.g., "before packing").
Consider restructuring these sections for better clarity, or elaborate on what each graphic illustrates.
1267-1284: Clarify Anchor-specific method references in the instruction building section.Lines 1279-1284 reference Anchor-specific methods (
.accounts()and.remainingAccounts()) in comments, but the code example shown (lines 1267-1277) is pure Rust using theInstructionstruct directly, which doesn't use these methods.This creates confusion about whether this guidance applies to Anchor programs, native programs, or both. Either:
- Provide separate examples for Anchor vs. native program patterns, or
- Clarify the context of these comments.
Additionally, line 1279 contains a spelling error: "feepayer" should be "fee payer" (two words).
1293-1327: Reconsider "Full Code Examples" section - currently provides setup, not examples.The section heading at line 1293 ("Full Code Examples") promises complete working code examples, but the content (lines 1295-1327) provides CLI setup instructions instead. This mismatch may confuse users looking for end-to-end working programs.
Consider either:
- Renaming the section to "Local Testing Setup" to match the content, or
- Adding actual complete code examples showing a full create/update/burn workflow
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
client-library/README.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
client-library/README.mdx
[grammar] ~700-~700: Use a hyphen to join words.
Context: ...luded in instruction data, instead of 32 byte pubkeys. * The indices point to the...
(QB_NEW_EN_HYPHEN)
[grammar] ~1279-~1279: Ensure spelling is correct
Context: ... defined by your program's IDL (signer, feepayer). 2. Add all remaining accounts fro...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
There was a problem hiding this comment.
Actionable comments posted: 2
♻️ Duplicate comments (1)
client-library/README.mdx (1)
700-700: Hyphenate compound adjective for clarity.Line 700 uses "32 byte pubkeys" but should hyphenate the compound adjective: "32-byte pubkeys".
-* Indices are included in instruction data, instead of 32 byte pubkeys. +* Indices are included in instruction data, instead of 32-byte pubkeys.
🧹 Nitpick comments (1)
client-library/README.mdx (1)
303-308: Clarify the constraint on random tree usage.The tip at lines 303–308 advises minimizing different trees but doesn't explicitly state a critical constraint: random trees should only be used when there are no input compressed accounts. This is easy to miss but crucial for developers to understand.
Consider making this constraint more explicit. For example:
- When creating an account → use the address tree (not random, specific derivation required)
- When updating/closing/burning an existing account → use its existing state tree (not random)
- Only use random tree selection when you have no input compressed accounts to reference
Would you like me to generate clearer guidance text that explicitly states this constraint?
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
client-library/README.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
client-library/README.mdx
[grammar] ~700-~700: Use a hyphen to join words.
Context: ...luded in instruction data, instead of 32 byte pubkeys. * The indices point to the...
(QB_NEW_EN_HYPHEN)
[grammar] ~1279-~1279: Ensure spelling is correct
Context: ... defined by your program's IDL (signer, feepayer). 2. Add all remaining accounts fro...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🔇 Additional comments (1)
client-library/README.mdx (1)
1-10: Excellent comprehensive structure and coverage.The guide provides thorough, step-by-step coverage of the client library workflow with consistent TypeScript and Rust examples throughout. The use of tabs, tip boxes, and progressive disclosure makes complex concepts accessible. Documentation quality is high overall, with good cross-references and a logical progression from setup through instruction execution.
ae42ef1 to
032cf22
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
client-library/README.mdx (1)
700-700: Fix hyphenation in compound adjective: "32 byte" → "32-byte".Line 700 uses the compound adjective "32 byte pubkeys," which requires a hyphen to properly modify the noun "pubkeys."
Apply this diff:
-* Indices are included in instruction data, instead of 32 byte pubkeys. +* Indices are included in instruction data, instead of 32-byte pubkeys.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
client-library/README.mdx(1 hunks)docs.json(3 hunks)
🧰 Additional context used
🪛 LanguageTool
client-library/README.mdx
[grammar] ~700-~700: Use a hyphen to join words.
Context: ...luded in instruction data, instead of 32 byte pubkeys. * The indices point to the...
(QB_NEW_EN_HYPHEN)
🔇 Additional comments (4)
docs.json (3)
16-16: Navigation updates are consistent with new file structure.The renamed tab "Docs," updated page references with
c-token/prefix, and newclient-library/READMEpath all align correctly with the file organization. ✓Also applies to: 21-22, 33-33
80-105: Footer updates add appropriate branding and partnership links.The new footer sections ("Compressed by Light Protocol" and "Indexed by Helius") with their respective links provide clear attribution and partnership visibility. The added Discord social link completes the community channels.
38-48: Confirm the "Compressible" tab's file path is intentional.Verification confirms that
compressible/READMEdoes not exist in the repository, nor does thecompressible/directory exist. Determine whether this is a forward reference for an upcoming PR or if the path needs correction.client-library/README.mdx (1)
1172-1188: Add TypeScript example to match the Tab pattern used in Step 6.Step 6 (instruction_data section) uses
<Tab>elements to provide both TypeScript and Rust implementations. The Instruction section (lines 1176–1186) breaks this pattern by showing only Rust. Add a TypeScript tab demonstrating how to construct anInstructionusing Anchor's method or builder approach to maintain consistency with the documented pattern.
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
client-library/README.mdx(1 hunks)
🧰 Additional context used
🪛 GitHub Check: Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck
client-library/README.mdx
[warning] 17-17: client-library/README.mdx#L17
Did you really mean 'Solana'?
[warning] 64-64: client-library/README.mdx#L64
Did you really mean 'validator'?
[warning] 64-64: client-library/README.mdx#L64
Did you really mean 'Solana'?
[warning] 67-67: client-library/README.mdx#L67
Did you really mean 'devnet'?
[warning] 67-67: client-library/README.mdx#L67
Did you really mean 'mainnet'?
[warning] 69-69: client-library/README.mdx#L69
Did you really mean 'Solana's'?
[warning] 95-95: client-library/README.mdx#L95
Did you really mean 'Solana'?
[warning] 99-99: client-library/README.mdx#L99
Did you really mean 'Merkle'?
[warning] 111-111: client-library/README.mdx#L111
Did you really mean 'Solana'?
[warning] 114-114: client-library/README.mdx#L114
Did you really mean 'devnet'?
[warning] 114-114: client-library/README.mdx#L114
Did you really mean 'mainnet'?
[warning] 172-172: client-library/README.mdx#L172
Did you really mean 'Solana'?
[warning] 197-197: client-library/README.mdx#L197
Did you really mean 'validator'?
[warning] 197-197: client-library/README.mdx#L197
Did you really mean 'Solana'?
[warning] 206-206: client-library/README.mdx#L206
Did you really mean 'Merkle'?
[warning] 212-212: client-library/README.mdx#L212
Did you really mean 'Merkle'?
[warning] 212-212: client-library/README.mdx#L212
Did you really mean 'Merkle'?
[warning] 216-216: client-library/README.mdx#L216
Did you really mean 'Devnet'?
[warning] 284-284: client-library/README.mdx#L284
Did you really mean 'Reinit'?
[warning] 304-304: client-library/README.mdx#L304
Did you really mean 'pubkeys'?
[warning] 307-307: client-library/README.mdx#L307
Did you really mean 'Merkle'?
[warning] 307-307: client-library/README.mdx#L307
Did you really mean 'pubkey'?
[warning] 308-308: client-library/README.mdx#L308
Did you really mean 'pubkey'?
[warning] 308-308: client-library/README.mdx#L308
Did you really mean 'Merkle'?
[warning] 309-309: client-library/README.mdx#L309
Did you really mean 'Merkle'?
[warning] 312-312: client-library/README.mdx#L312
Did you really mean 'devnet'?
[warning] 339-339: client-library/README.mdx#L339
Did you really mean 'PDAs'?
[warning] 340-340: client-library/README.mdx#L340
Did you really mean 'PDAs'?
[warning] 428-428: client-library/README.mdx#L428
Did you really mean 'pubkey'?
[warning] 471-471: client-library/README.mdx#L471
Did you really mean 'Helius'?
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.windsurf/rules/mint.md (1)
1-130: Fix typo in working relationship section.Line 29 uses "inferrance" but should use "inference" (the act of inferring; a conclusion drawn from evidence).
Apply this diff:
-If you are making an inferrance, stop and ask me for confirmation or say that you need more information +If you are making an inference, stop and ask me for confirmation or say that you need more information
🧹 Nitpick comments (7)
client-library/README.mdx (1)
1334-1357: Instruction assembly example lacks TypeScript parallel.The section provides only a Rust example (lines 1345-1355), breaking the TypeScript/Rust parallel that's maintained throughout earlier steps. Consider adding a TypeScript Instruction construction example for consistency and completeness.
.windsurf/workflows/ask-deepwiki.md (1)
1-114: Address markdown formatting violations.The file has multiple markdownlint style violations (per static analysis):
- Heading style: Using atx headings (#) instead of setext (underline) format
- List indentation: Using 4 spaces instead of 2
- Bare URL at line 34: Should be wrapped in markdown link syntax
If your project enforces these standards, apply fixes. Otherwise, these are cosmetic and can be deferred. Given the "Chill" review stance, this is territory.
Would you like me to generate a corrected version matching your preferred markdown style?
mintlify-docs/quick-reference/api-reference/endpoint/webhook.mdx (1)
1-4: Clarify the webhook endpoint title.The title "New Plant" is vague and doesn't clearly indicate this is a webhook endpoint. Consider a more descriptive title such as "New Plant Webhook" or "Plant Webhook" to improve documentation clarity.
Does the title accurately reflect the endpoint type for end users browsing the API documentation?
mintlify-docs/quick-reference/quickstart.mdx (1)
16-16: Use hyphen for compound adjective.Line 16 should read "three-step quickstart guide" (hyphenate compound adjectives that precede a noun).
Apply this diff:
- Follow our three step quickstart guide. + Follow our three-step quickstart guide.mintlify-docs/quick-reference/essentials/images.mdx (1)
16-16: Minor style: Capitalize "Markdown" as proper noun.Line 16 references "markdown syntax" but Markdown is a proper noun and should be capitalized consistently with the file title and Mintlify documentation conventions.
-The [markdown syntax](https://www.markdownguide.org/basic-syntax/#images) lets you add images +The [Markdown syntax](https://www.markdownguide.org/basic-syntax/#images) lets you add imagesmintlify-docs/quick-reference/essentials/markdown.mdx (1)
31-31: Minor style: Capitalize "Markdown" consistently.Line 31 references "markdown formatting" but should use the proper noun capitalization "Markdown formatting" for consistency with the file title and documentation standards.
-We support most markdown formatting. Simply add `**`, `_`, or `~` around text to format it. +We support most Markdown formatting. Simply add `**`, `_`, or `~` around text to format it.mintlify-docs/quick-reference/api-reference/openapi.json (1)
41-46: Consider adding maxItems constraint to array response (optional best practice).The GET /plants response returns an unbounded array of Plant objects (lines 41-46). While this is common in demo specifications, OpenAPI best practices recommend defining a
maxItemsconstraint to document API expectations and prevent potential performance issues.This is a minor refinement for a demo spec. If your actual backend has limits, consider adding:
"schema": { "type": "array", "items": { "$ref": "#/components/schemas/Plant" }, "maxItems": 100 }Alternatively, the
limitquery parameter (lines 25-34) effectively serves this purpose by allowing clients to control response size.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
images/deepwiki-logo.svgis excluded by!**/*.svgimages/windsurf-logo.svgis excluded by!**/*.svg
📒 Files selected for processing (32)
.windsurf/rules/mint.md(1 hunks).windsurf/workflows/ask-deepwiki.md(1 hunks)api-reference-overview.mdx(1 hunks)api-reference/links.mdx(1 hunks)client-library/README.mdx(1 hunks)compressed-token.mdx(1 hunks)docs.json(3 hunks)light-client.mdx(1 hunks)light-program-test.mdx(1 hunks)light-sdk.mdx(1 hunks)mintlify-docs/docs(1 hunks)mintlify-docs/quick-reference/ai-tools/claude-code.mdx(1 hunks)mintlify-docs/quick-reference/ai-tools/cursor.mdx(1 hunks)mintlify-docs/quick-reference/ai-tools/windsurf.mdx(1 hunks)mintlify-docs/quick-reference/api-reference/endpoint/create.mdx(1 hunks)mintlify-docs/quick-reference/api-reference/endpoint/delete.mdx(1 hunks)mintlify-docs/quick-reference/api-reference/endpoint/get.mdx(1 hunks)mintlify-docs/quick-reference/api-reference/endpoint/webhook.mdx(1 hunks)mintlify-docs/quick-reference/api-reference/introduction.mdx(1 hunks)mintlify-docs/quick-reference/api-reference/openapi.json(1 hunks)mintlify-docs/quick-reference/development.mdx(1 hunks)mintlify-docs/quick-reference/essentials/code.mdx(1 hunks)mintlify-docs/quick-reference/essentials/images.mdx(1 hunks)mintlify-docs/quick-reference/essentials/markdown.mdx(1 hunks)mintlify-docs/quick-reference/essentials/navigation.mdx(1 hunks)mintlify-docs/quick-reference/essentials/reusable-snippets.mdx(1 hunks)mintlify-docs/quick-reference/essentials/settings.mdx(1 hunks)mintlify-docs/quick-reference/index.mdx(1 hunks)mintlify-docs/quick-reference/quickstart.mdx(1 hunks)mintlify-docs/quick-reference/table-styling.md(1 hunks)mintlify-docs/snippets/snippet-intro.mdx(1 hunks)stateless-js.mdx(1 hunks)
✅ Files skipped from review due to trivial changes (6)
- mintlify-docs/quick-reference/ai-tools/claude-code.mdx
- compressed-token.mdx
- mintlify-docs/quick-reference/essentials/code.mdx
- mintlify-docs/quick-reference/essentials/navigation.mdx
- mintlify-docs/docs
- mintlify-docs/quick-reference/essentials/settings.mdx
🧰 Additional context used
🪛 Checkov (3.2.334)
mintlify-docs/quick-reference/api-reference/openapi.json
[medium] 41-46: Ensure that arrays have a maximum number of items
(CKV_OPENAPI_21)
🪛 GitHub Check: Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck
client-library/README.mdx
[warning] 17-17: client-library/README.mdx#L17
Did you really mean 'Solana'?
[warning] 64-64: client-library/README.mdx#L64
Did you really mean 'validator'?
[warning] 64-64: client-library/README.mdx#L64
Did you really mean 'Solana'?
[warning] 67-67: client-library/README.mdx#L67
Did you really mean 'devnet'?
[warning] 67-67: client-library/README.mdx#L67
Did you really mean 'mainnet'?
[warning] 69-69: client-library/README.mdx#L69
Did you really mean 'Solana's'?
[warning] 99-99: client-library/README.mdx#L99
Did you really mean 'Solana'?
[warning] 108-108: client-library/README.mdx#L108
Did you really mean 'Merkle'?
[warning] 120-120: client-library/README.mdx#L120
Did you really mean 'Solana'?
[warning] 123-123: client-library/README.mdx#L123
Did you really mean 'devnet'?
[warning] 123-123: client-library/README.mdx#L123
Did you really mean 'mainnet'?
[warning] 181-181: client-library/README.mdx#L181
Did you really mean 'Solana'?
[warning] 220-220: client-library/README.mdx#L220
Did you really mean 'validator'?
[warning] 220-220: client-library/README.mdx#L220
Did you really mean 'Solana'?
[warning] 229-229: client-library/README.mdx#L229
Did you really mean 'Merkle'?
[warning] 235-235: client-library/README.mdx#L235
Did you really mean 'Merkle'?
[warning] 235-235: client-library/README.mdx#L235
Did you really mean 'Merkle'?
[warning] 287-287: client-library/README.mdx#L287
Did you really mean 'Devnet'?
[warning] 309-309: client-library/README.mdx#L309
Did you really mean 'Reinit'?
[warning] 327-327: client-library/README.mdx#L327
Did you really mean 'pubkeys'?
[warning] 330-330: client-library/README.mdx#L330
Did you really mean 'Merkle'?
[warning] 330-330: client-library/README.mdx#L330
Did you really mean 'pubkey'?
[warning] 331-331: client-library/README.mdx#L331
Did you really mean 'pubkey'?
[warning] 331-331: client-library/README.mdx#L331
Did you really mean 'Merkle'?
[warning] 332-332: client-library/README.mdx#L332
Did you really mean 'Merkle'?
api-reference-overview.mdx
[warning] 3-3: api-reference-overview.mdx#L3
Did you really mean 'SDKs'?
[warning] 14-14: api-reference-overview.mdx#L14
Did you really mean 'Solana'?
api-reference/links.mdx
[warning] 2-2: api-reference/links.mdx#L2
Did you really mean 'SDKs'?
[warning] 3-3: api-reference/links.mdx#L3
Did you really mean 'SDKs'?
[warning] 14-14: api-reference/links.mdx#L14
Did you really mean 'Solana'?
🪛 Gitleaks (8.29.0)
mintlify-docs/quick-reference/ai-tools/cursor.mdx
[high] 127-129: Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.
(curl-auth-header)
🪛 LanguageTool
mintlify-docs/quick-reference/api-reference/endpoint/get.mdx
[grammar] ~1-~1: Hier könnte ein Fehler sein.
Context: --- title: 'Get Plants' openapi: 'GET /plants' ---
(QB_NEW_DE)
mintlify-docs/quick-reference/index.mdx
[grammar] ~16-~16: Use a hyphen to join words.
Context: ...start" horizontal > Follow our three step quickstart guide. ## Make ...
(QB_NEW_EN_HYPHEN)
.windsurf/rules/mint.md
[grammar] ~29-~29: Ensure spelling is correct
Context: ...uld be valuable. - If you are making an inferrance, stop and ask me for confirmation or sa...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~46-~46: To elevate your writing, try using a synonym here.
Context: ...e successful. Too much content makes it hard to find what people are looking for. To...
(HARD_TO)
mintlify-docs/quick-reference/essentials/markdown.mdx
[uncategorized] ~31-31: Did you mean the formatting language “Markdown” (= proper noun)?...
Context: ...p> ## Text formatting We support most markdown formatting. Simply add **, _, or `
(MARKDOWN_NNP)
client-library/README.mdx
[grammar] ~960-~960: Ensure spelling is correct
Context: ...`` ### Tree Accounts Depending on your instruction...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
light-client.mdx
[grammar] ~1-~1: Hier könnte ein Fehler sein.
Context: --- title: "light-client" url: "https://docs.rs/light-client/latest/light_client/" ---
(QB_NEW_DE)
light-program-test.mdx
[grammar] ~1-~1: Hier könnte ein Fehler sein.
Context: --- title: "light-program-test" url: "https://docs.rs/light-program-test/latest/light_program_test/" ---
(QB_NEW_DE)
light-sdk.mdx
[grammar] ~1-~1: Hier könnte ein Fehler sein.
Context: --- title: "light-sdk" url: "https://docs.rs/light-sdk/latest/light_sdk/" ---
(QB_NEW_DE)
mintlify-docs/quick-reference/api-reference/endpoint/webhook.mdx
[grammar] ~1-~1: Hier könnte ein Fehler sein.
Context: --- title: 'New Plant' openapi: 'WEBHOOK /plant/webhook' ---
(QB_NEW_DE)
mintlify-docs/quick-reference/essentials/images.mdx
[uncategorized] ~16-~16: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ... /> ## Image ### Using Markdown The [markdown syntax](https://www.markdownguide.org/b...
(MARKDOWN_NNP)
stateless-js.mdx
[grammar] ~1-~1: Hier könnte ein Fehler sein.
Context: --- title: "stateless.js" url: "https://lightprotocol.github.io/light-protocol/stateless.js/index.html" ---
(QB_NEW_DE)
🪛 markdownlint-cli2 (0.18.1)
.windsurf/workflows/ask-deepwiki.md
15-15: Heading style
Expected: setext; Actual: atx
(MD003, heading-style)
31-31: Heading style
Expected: setext; Actual: atx
(MD003, heading-style)
34-34: Bare URL used
(MD034, no-bare-urls)
36-36: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
37-37: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
39-39: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
40-40: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
41-41: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
42-42: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
43-43: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
45-45: Heading style
Expected: setext; Actual: atx
(MD003, heading-style)
53-53: Heading style
Expected: setext; Actual: atx
(MD003, heading-style)
57-57: Heading style
Expected: setext; Actual: atx
(MD003, heading-style)
76-76: Heading style
Expected: setext; Actual: atx
(MD003, heading-style)
82-82: Heading style
Expected: setext; Actual: atx
(MD003, heading-style)
88-88: Heading style
Expected: setext; Actual: atx
(MD003, heading-style)
95-95: Heading style
Expected: setext; Actual: atx
(MD003, heading-style)
100-100: Heading style
Expected: setext; Actual: atx
(MD003, heading-style)
106-106: Heading style
Expected: setext; Actual: atx
(MD003, heading-style)
111-111: Heading style
Expected: setext; Actual: atx
(MD003, heading-style)
🔇 Additional comments (32)
mintlify-docs/snippets/snippet-intro.mdx (1)
1-4: LGTM!This concise DRY principle snippet appropriately emphasizes the importance of reusable content in documentation. It will serve well as an imported component.
mintlify-docs/quick-reference/table-styling.md (1)
1-39: LGTM!Clear, practical guidance on Tailwind-based table styling. The explanation of why inline styles are problematic and the concrete example make this a useful quick-reference addition.
client-library/README.mdx (7)
1-224: Prerequisites section is comprehensive and well-structured.Clear separation of TypeScript and Rust setup paths, with appropriate links to API documentation. RPC environment setup (mainnet/devnet/localnet) is well-explained with working examples for both languages.
226-350: Tree configuration guidance is clear and comprehensive.V1/V2 distinction is well-explained, tree requirement matrix is accurate, and the accordion explaining TreeInfo structure adds helpful context. Best practices guidance about minimizing tree variety per transaction is valuable.
352-489: Address derivation guidance is clear and complete.V1/V2 distinction is evident, and the important reminder about using the same address tree for all operations is emphasized appropriately.
491-732: Validity proof guidance is thorough and practical.Clear distinction between create (non-inclusion proof) and update operations (existence proof). Combined proof optimization section with concrete circuit capacity tables is especially valuable. Example showing create + update in one proof demonstrates real-world optimization.
734-1061: Accounts configuration guidance is comprehensive and well-illustrated.The PackedAccounts visual diagram clarifies account layout. Tree account requirement tables for V1/V2 are accurate. The accordion explaining Light System accounts provides good reference material without overwhelming the main flow.
1063-1332: Instruction data guidance is comprehensive and operation-specific.Each operation (create, update, close, reinit, burn) has clear code examples and explanatory steps. The distinction between proof types and tree account requirements for each operation is well-documented.
1365-1630: Full code examples are comprehensive and well-integrated.Both TypeScript and Rust examples follow the step-by-step flow of the guide and show complete, executable workflows. The reference to GitHub for additional operation examples and debugging resources is appropriate.
mintlify-docs/quick-reference/essentials/reusable-snippets.mdx (1)
1-110: LGTM!Well-structured guide showing three patterns for snippet reuse (default export, variables, components). The warning about MDX compilation in arrow functions is important and appropriately placed.
mintlify-docs/quick-reference/ai-tools/windsurf.mdx (1)
1-96: LGTM!Clear setup instructions with well-structured embedded workspace rules. Aligns with the mint.md governance approach and provides actionable guidance for Windsurf configuration in documentation workflows.
mintlify-docs/quick-reference/ai-tools/cursor.mdx (1)
127-129: No changes needed—placeholder is already explicit.The cURL example at lines 127-129 already uses
YOUR_API_KEYas a clear, recognizable placeholder following standard documentation conventions. Changing it toYOUR_API_KEY_HEREprovides no meaningful improvement and is unnecessary. The current format is unambiguous and appropriate.Likely an incorrect or invalid review comment.
stateless-js.mdx (1)
1-4: LGTM!Frontmatter is correctly structured with a valid external documentation link. The static analysis warning is a false positive.
light-client.mdx (1)
1-4: LGTM!Frontmatter is correctly structured with a valid docs.rs reference. The static analysis warning is a false positive.
mintlify-docs/quick-reference/api-reference/endpoint/delete.mdx (1)
1-4: LGTM!Frontmatter is correctly formatted and consistent with the OpenAPI endpoint documentation pattern.
light-sdk.mdx (1)
1-4: LGTM!Frontmatter is correctly structured with a valid docs.rs reference. Consistent with other SDK documentation files.
mintlify-docs/quick-reference/index.mdx (1)
1-97: LGTM!The introduction page is well-structured with clear sections, helpful card navigation, and relevant documentation links. Content is comprehensive and user-friendly.
mintlify-docs/quick-reference/api-reference/endpoint/get.mdx (1)
1-4: LGTM!Frontmatter is correctly formatted and consistent with the OpenAPI endpoint documentation pattern.
light-program-test.mdx (1)
1-4: LGTM!Minimal frontmatter correctly references the external Rust documentation. The static analysis warning is a false positive.
mintlify-docs/quick-reference/api-reference/endpoint/create.mdx (1)
1-3: LGTM!Endpoint metadata correctly structured with OpenAPI reference. Aligns with the API documentation pattern.
mintlify-docs/quick-reference/essentials/images.mdx (1)
1-59: Well-structured documentation.The guide clearly explains image usage with practical examples, file size constraints, and hosting recommendations. The iframe and embed sections provide good context for advanced HTML usage.
mintlify-docs/quick-reference/api-reference/introduction.mdx (1)
1-33: LGTM!Clear introduction explaining both OpenAPI and MDX documentation approaches. The authentication example is well-presented. Static analysis warnings (SDKs, Solana) are false positives—these are legitimate technical terms.
api-reference-overview.mdx (1)
1-52: LGTM!Well-organized overview with clear card descriptions for each library. The TypeScript/JavaScript and Rust sections are properly structured. Static analysis warnings are false positives.
Note: This file is very similar to
api-reference/links.mdx. Confirm that both are needed for the navigation/routing structure you intend.api-reference/links.mdx (1)
1-52: Duplicate content detected.This file is nearly identical to
api-reference-overview.mdxwith the same CardGroups and library descriptions. Only the title differs slightly ("Overview to Libraries and SDKs" vs "Overview").Confirm whether both files are intentionally duplicated for different navigation contexts, or if one should be consolidated.
mintlify-docs/quick-reference/essentials/markdown.mdx (1)
1-88: Comprehensive Markdown guide.Excellent coverage of formatting, linking, blockquotes, and LaTeX integration with clear examples throughout.
mintlify-docs/quick-reference/development.mdx (2)
49-55: Verify CLI update command syntax.Line 54 shows
npm mint updatewhich is not standard npm command syntax. Verify the correct command for updating the Mintlify CLI.Expected formats would be one of:
npm update -g mintnpm install -g mint@latestmint update(if mint is a standalone CLI)Please confirm the correct command.
1-94: Comprehensive development guide.Clear instructions for local setup, custom ports, link validation, and troubleshooting. The prerequisites and step-by-step guide are well-structured. Address the CLI update command syntax above, and the guide is solid.
docs.json (4)
39-50: Verify nested group structure in API Reference section.The "Overview" group is nested as a child page object within the "API Reference" group (lines 39-50). This nested
"group"structure is non-standard for Mintlify's typicalpagesarray, which usually contains page references or top-level group objects. Verify that this nesting pattern is compatible with your Mintlify configuration and rendering engine.If Mintlify expects flat groups, consider restructuring this as:
"pages": [ "api-reference-overview", { "group": "stateless-js", "pages": ["stateless-js"] }, // ... etc ]Or confirm that your version of Mintlify supports nested groups.
87-98: Approve DeepWiki contextual option addition.The new "Open DeepWiki" contextual option (lines 87-98) is well-structured with proper icon reference, dynamic context passing, and description. This provides useful debugging assistance to users.
111-112: Approve footer social links update.Adding Discord link to footer socials alongside existing X and GitHub links improves community channel discoverability.
114-133: Approve new footer link sections.The new footer sections "Compressed by Light Protocol" and "Indexed by Helius" with their respective links are properly structured and enhance footer navigation clarity.
mintlify-docs/quick-reference/api-reference/openapi.json (1)
1-216: LGTM — OpenAPI specification is well-structured.The OpenAPI 3.1.0 specification for the Plant Store API is comprehensive and properly structured:
- Clear paths with GET, POST, DELETE operations
- Proper request/response definitions with schema references
- Webhook support for event notifications
- Bearer authentication properly configured
- Schema composition using
allOffor inheritanceThe spec integrates well with the documentation structure referenced in docs.json.
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
There was a problem hiding this comment.
Actionable comments posted: 3
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
client-library/client-guide.mdx(1 hunks)
🧰 Additional context used
🪛 GitHub Check: Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck
client-library/client-guide.mdx
[warning] 10-10: client-library/client-guide.mdx#L10
Did you really mean 'Solana'?
[warning] 94-94: client-library/client-guide.mdx#L94
Did you really mean 'Solana's'?
[warning] 120-120: client-library/client-guide.mdx#L120
Did you really mean 'Solana'?
[warning] 120-120: client-library/client-guide.mdx#L120
Did you really mean 'validator'?
[warning] 141-141: client-library/client-guide.mdx#L141
Did you really mean 'Helius'?
[warning] 191-191: client-library/client-guide.mdx#L191
Did you really mean 'Solana'?
[warning] 284-284: client-library/client-guide.mdx#L284
Did you really mean 'PDAs'?
[warning] 285-285: client-library/client-guide.mdx#L285
Did you really mean 'PDAs'?
[warning] 289-289: client-library/client-guide.mdx#L289
Did you really mean 'Merkle'?
[warning] 289-289: client-library/client-guide.mdx#L289
Did you really mean 'pubkeys'?
[warning] 289-289: client-library/client-guide.mdx#L289
Did you really mean 'Merkle'?
[warning] 302-302: client-library/client-guide.mdx#L302
Did you really mean 'Helius'?
[warning] 323-323: client-library/client-guide.mdx#L323
Did you really mean 'pubkeys'?
[warning] 324-324: client-library/client-guide.mdx#L324
Did you really mean 'Merkle'?
[warning] 351-351: client-library/client-guide.mdx#L351
Did you really mean 'pubkeys'?
[warning] 387-387: client-library/client-guide.mdx#L387
Did you really mean 'pubkey'?
[warning] 387-387: client-library/client-guide.mdx#L387
Did you really mean 'pubkey'?
[warning] 414-414: client-library/client-guide.mdx#L414
Did you really mean 'pubkeys'?
[warning] 431-431: client-library/client-guide.mdx#L431
Did you really mean 'Merkle'?
[warning] 486-486: client-library/client-guide.mdx#L486
Did you really mean 'pubkeys'?
[warning] 487-487: client-library/client-guide.mdx#L487
Did you really mean 'pubkeys'?
[warning] 514-514: client-library/client-guide.mdx#L514
Did you really mean 'pubkeys'?
[warning] 514-514: client-library/client-guide.mdx#L514
Did you really mean 'pubkey'?
[warning] 531-531: client-library/client-guide.mdx#L531
Did you really mean 'Merkle'?
[warning] 533-533: client-library/client-guide.mdx#L533
Did you really mean 'pubkeys'?
[warning] 534-534: client-library/client-guide.mdx#L534
Did you really mean 'pubkeys'?
[warning] 558-558: client-library/client-guide.mdx#L558
Did you really mean 'Pre'?
[warning] 558-558: client-library/client-guide.mdx#L558
Did you really mean 'PDAs'?
[warning] 558-558: client-library/client-guide.mdx#L558
Did you really mean 'CPIs'?
[warning] 560-560: client-library/client-guide.mdx#L560
Did you really mean 'pre'?
client-library/client-guide.mdx
Outdated
|
|
||
| <Step> | ||
| ## Accounts | ||
| In your instruction data, you reference in which [Merkle tree](/learn/core-concepts/merkle-trees-validity-proofs#state-trees) compressed accounts are or will be stored and other accounts required to interact with the <Tooltip tip="The system program enforces the compressed account layout with ownership and sum checks and verifies the validity of your input state. It is also invoked to create/write to compressed accounts and PDAs.">Light System Program</Tooltip>. |
There was a problem hiding this comment.
| In your instruction data, you reference in which [Merkle tree](/learn/core-concepts/merkle-trees-validity-proofs#state-trees) compressed accounts are or will be stored and other accounts required to interact with the <Tooltip tip="The system program enforces the compressed account layout with ownership and sum checks and verifies the validity of your input state. It is also invoked to create/write to compressed accounts and PDAs.">Light System Program</Tooltip>. | |
| In your instruction data, you reference in which [Merkle tree](/learn/core-concepts/merkle-trees-validity-proofs#state-trees) compressed accounts are or will be stored. Usage of compressed accounts requires additional accounts such as the <Tooltip tip="The system program enforces the compressed account layout with ownership and sum checks and verifies the validity of your input state. It is also invoked to create/write to compressed accounts and PDAs.">Light System Program</Tooltip>. |
There was a problem hiding this comment.
Actionable comments posted: 3
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
client-library/client-guide.mdx(1 hunks)snippets/compressed-pdas-system-accounts-list.mdx(1 hunks)
🧰 Additional context used
🪛 GitHub Check: Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck
client-library/client-guide.mdx
[warning] 10-10: client-library/client-guide.mdx#L10
Did you really mean 'Solana'?
[warning] 94-94: client-library/client-guide.mdx#L94
Did you really mean 'Solana's'?
[warning] 120-120: client-library/client-guide.mdx#L120
Did you really mean 'Solana'?
[warning] 120-120: client-library/client-guide.mdx#L120
Did you really mean 'validator'?
[warning] 141-141: client-library/client-guide.mdx#L141
Did you really mean 'Helius'?
[warning] 191-191: client-library/client-guide.mdx#L191
Did you really mean 'Solana'?
[warning] 284-284: client-library/client-guide.mdx#L284
Did you really mean 'PDAs'?
[warning] 285-285: client-library/client-guide.mdx#L285
Did you really mean 'PDAs'?
[warning] 289-289: client-library/client-guide.mdx#L289
Did you really mean 'Merkle'?
[warning] 289-289: client-library/client-guide.mdx#L289
Did you really mean 'pubkeys'?
[warning] 289-289: client-library/client-guide.mdx#L289
Did you really mean 'Merkle'?
[warning] 302-302: client-library/client-guide.mdx#L302
Did you really mean 'Helius'?
[warning] 323-323: client-library/client-guide.mdx#L323
Did you really mean 'pubkeys'?
[warning] 324-324: client-library/client-guide.mdx#L324
Did you really mean 'Merkle'?
[warning] 351-351: client-library/client-guide.mdx#L351
Did you really mean 'pubkeys'?
[warning] 387-387: client-library/client-guide.mdx#L387
Did you really mean 'pubkey'?
[warning] 387-387: client-library/client-guide.mdx#L387
Did you really mean 'pubkey'?
[warning] 414-414: client-library/client-guide.mdx#L414
Did you really mean 'pubkeys'?
[warning] 431-431: client-library/client-guide.mdx#L431
Did you really mean 'Merkle'?
[warning] 486-486: client-library/client-guide.mdx#L486
Did you really mean 'pubkeys'?
[warning] 487-487: client-library/client-guide.mdx#L487
Did you really mean 'pubkeys'?
[warning] 514-514: client-library/client-guide.mdx#L514
Did you really mean 'pubkeys'?
[warning] 514-514: client-library/client-guide.mdx#L514
Did you really mean 'pubkey'?
[warning] 533-533: client-library/client-guide.mdx#L533
Did you really mean 'Merkle'?
[warning] 535-535: client-library/client-guide.mdx#L535
Did you really mean 'pubkeys'?
[warning] 557-557: client-library/client-guide.mdx#L557
Did you really mean 'Pre'?
[warning] 558-558: client-library/client-guide.mdx#L558
Did you really mean 'PDAs'?
[warning] 558-558: client-library/client-guide.mdx#L558
Did you really mean 'CPIs'?
[warning] 558-558: client-library/client-guide.mdx#L558
Did you really mean 'pre'?
[warning] 559-559: client-library/client-guide.mdx#L559
Did you really mean 'pinocchio'?
🔇 Additional comments (4)
snippets/compressed-pdas-system-accounts-list.mdx (1)
35-35: Row indices correctly updated after removal.The table renumbering is consistent with removing two rows (Noop Program and Invoking Program). Account Compression Authority (#5) and System Program (#6) are properly sequenced.
Also applies to: 43-43
client-library/client-guide.mdx (3)
1-6: File naming discrepancy with PR objectives.The PR objectives reference
client-library/README.mdx, but the actual file isclient-library/client-guide.mdx. Verify this naming aligns with the intended navigation structure indocs.jsonand that import statements referencing this file (line 8) are correct.
46-1063: Core documentation structure and content is comprehensive and well-organized.The step-by-step workflow (Setup through Send Transaction) progresses logically and provides solid guidance. TabSection patterns are consistent, code examples are clear, and the coverage of both TypeScript and Rust (where present) is thorough. Apart from the three critical gaps already noted (missing compressed-token version, missing TypeScript in Step 6, empty Step 7), the documentation quality is high.
1094-1359: Full code examples are comprehensive and production-quality.Both TypeScript and Rust examples demonstrate complete, working workflows with proper imports, error handling, and test assertions. These serve as excellent reference implementations for developers completing the step-by-step guide.
| <Tabs> | ||
| <Tab title="npm"> | ||
|
|
||
| ```bash | ||
| npm install --save \ | ||
| @lightprotocol/stateless.js@0.22.1-alpha.1 \ | ||
| @lightprotocol/compressed-token@0.22.1-alpha.1 \ | ||
| @solana/web3.js | ||
| ``` | ||
|
|
||
| </Tab> | ||
|
|
||
| <Tab title="yarn"> | ||
|
|
||
| ```bash | ||
| yarn add \ | ||
| @lightprotocol/stateless.js@0.22.1-alpha.1 \ | ||
| @lightprotocol/compressed-token@0.22.1-alpha.1 \ | ||
| @solana/web3.js | ||
| ``` | ||
|
|
||
| </Tab> | ||
|
|
||
| <Tab title="pnpm"> | ||
|
|
||
| ```bash | ||
| pnpm add \ | ||
| @lightprotocol/stateless.js@0.22.1-alpha.1 \ | ||
| @lightprotocol/compressed-token@0.22.1-alpha.1 \ | ||
| @solana/web3.js | ||
| ``` | ||
|
|
||
| </Tab> | ||
| </Tabs> |
There was a problem hiding this comment.
Unpublished package version @lightprotocol/compressed-token@0.22.1-alpha.1 will cause installation failures.
The npm registry confirms @lightprotocol/compressed-token@0.22.1-alpha.1 does not exist (404). While @lightprotocol/stateless.js@0.22.1-alpha.1 is valid, the compressed-token package must be updated to the published version 0.22.0 in all three package manager tabs (npm, yarn, pnpm).
<Tab title="npm">
```bash
npm install --save \
@lightprotocol/stateless.js@0.22.1-alpha.1 \
- @lightprotocol/compressed-token@0.22.1-alpha.1 \
+ @lightprotocol/compressed-token@0.22.0 \
@solana/web3.jsyarn add \
@lightprotocol/stateless.js@0.22.1-alpha.1 \
- @lightprotocol/compressed-token@0.22.1-alpha.1 \
+ @lightprotocol/compressed-token@0.22.0 \
@solana/web3.jspnpm add \
@lightprotocol/stateless.js@0.22.1-alpha.1 \
- @lightprotocol/compressed-token@0.22.1-alpha.1 \
+ @lightprotocol/compressed-token@0.22.0 \
@solana/web3.js🤖 Prompt for AI Agents
In client-library/client-guide.mdx around lines 57 to 90, the install
instructions reference an unpublished package version
@lightprotocol/compressed-token@0.22.1-alpha.1 which causes install failures;
update all three package-manager code blocks (npm, yarn, pnpm) to use the
published version @lightprotocol/compressed-token@0.22.0 so the commands
succeed, ensuring the other packages and versions remain unchanged.
| <Step> | ||
| ## Send Transaction | ||
|
|
||
| </Step> | ||
| </Steps> |
There was a problem hiding this comment.
Send Transaction step is empty—leaves end-to-end workflow incomplete.
Step 7 provides no code examples or guidance for the final transaction submission step. Add minimal, copy-paste-ready implementations for TypeScript and Rust:
<Step>
## Send Transaction
+<Tabs>
+<Tab title="Typescript">
+
+```typescript
+const tx = new web3.Transaction();
+tx.add(instruction);
+tx.recentBlockhash = (await rpc.getRecentBlockhash()).blockhash;
+tx.sign(signer);
+
+const sig = await rpc.sendTransaction(tx, [signer]);
+await confirmTx(rpc, sig);
+console.log("Transaction confirmed:", sig);
+```
+
+</Tab>
+
+<Tab title="Rust">
+
+```rust
+let sig = rpc
+ .create_and_send_transaction(&[instruction], &payer.pubkey(), &[payer])
+ .await?;
+
+println!("Transaction confirmed: {}", sig);
+```
+
+</Tab>
+</Tabs>
+
</Step>🤖 Prompt for AI Agents
In client-library/client-guide.mdx around lines 1088 to 1092, the "Send
Transaction" step is empty and needs minimal, copy-paste-ready TypeScript and
Rust examples; add a TypeScript snippet that creates a Transaction, adds the
instruction, sets recentBlockhash, signs with the signer, sends via
rpc.sendTransaction and awaits confirmation, and add a Rust snippet that calls a
helper like create_and_send_transaction (or the equivalent RPC helper) with the
instruction and payer to send and print the returned signature.
- Remove empty Key Points section - Simplify combined proof advantage description - Reorganize accounts section with clearer accordion structure - Update system accounts list from 8 to 6 accounts - Remove Noop Program and Invoking Program entries - Clarify PackedAccounts purpose and instruction structure
There was a problem hiding this comment.
Actionable comments posted: 4
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
client-library/client-guide.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
client-library/client-guide.mdx
[grammar] ~537-~537: Use a hyphen to join words.
Context: ...pend PackedAccounts after your program specific accounts and in anchor in `rema...
(QB_NEW_EN_HYPHEN)
There was a problem hiding this comment.
Actionable comments posted: 3
♻️ Duplicate comments (1)
client-library/client-guide.mdx (1)
537-537: Use hyphen to join compound modifier.Change "program specific" to "program-specific" before the noun "accounts":
-We recommend to append `PackedAccounts` after your program specific accounts and in anchor in `remaining_accounts`. +We recommend to append `PackedAccounts` after your program-specific accounts and in anchor in `remaining_accounts`.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
client-library/client-guide.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
client-library/client-guide.mdx
[grammar] ~537-~537: Use a hyphen to join words.
Context: ...pend PackedAccounts after your program specific accounts and in anchor in `rema...
(QB_NEW_EN_HYPHEN)
There was a problem hiding this comment.
Actionable comments posted: 2
♻️ Duplicate comments (1)
client-library/client-guide.mdx (1)
606-606: Use hyphen to join compound modifier.Use
program-specificinstead ofprogram specificbefore the noun "accounts".-We recommend to append `PackedAccounts` after your program specific accounts and in anchor in `remaining_accounts`. +We recommend to append `PackedAccounts` after your program-specific accounts and in anchor in `remaining_accounts`.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (11)
client-library/client-guide.mdx(1 hunks)compressed-pdas/create-a-program-with-compressed-pdas.mdx(1 hunks)compressed-pdas/guides.mdx(1 hunks)compressed-pdas/guides/how-to-burn-compressed-accounts.mdx(1 hunks)compressed-pdas/guides/how-to-close-compressed-accounts.mdx(1 hunks)compressed-pdas/guides/how-to-create-compressed-accounts.mdx(1 hunks)compressed-pdas/guides/how-to-reinitialize-compressed-accounts.mdx(1 hunks)compressed-pdas/guides/how-to-update-compressed-accounts.mdx(1 hunks)compressed-pdas/program-examples.mdx(2 hunks)resources/sdks/client-development.mdx(1 hunks)resources/sdks/program-development.mdx(1 hunks)
✅ Files skipped from review due to trivial changes (3)
- compressed-pdas/guides/how-to-burn-compressed-accounts.mdx
- compressed-pdas/guides/how-to-close-compressed-accounts.mdx
- compressed-pdas/guides/how-to-create-compressed-accounts.mdx
🧰 Additional context used
🪛 LanguageTool
client-library/client-guide.mdx
[grammar] ~606-~606: Use a hyphen to join words.
Context: ...pend PackedAccounts after your program specific accounts and in anchor in `rema...
(QB_NEW_EN_HYPHEN)
🔇 Additional comments (8)
resources/sdks/client-development.mdx (1)
82-82: Link target correctly updated to new client guide path.The href update from
/compressed-pdas/client-libraryto/client-library/client-guidealigns with the new documentation structure introduced in this PR.compressed-pdas/guides/how-to-reinitialize-compressed-accounts.mdx (1)
588-588: Link correctly updated to new client guide destination.The "Build a client for your program" card now points to the centralized
/client-library/client-guidepath.compressed-pdas/guides/how-to-update-compressed-accounts.mdx (1)
577-577: Link updated consistently with other guides.The href change to
/client-library/client-guidemaintains parity with the navigation updates across all compressed-pdas guides.compressed-pdas/create-a-program-with-compressed-pdas.mdx (1)
185-188: Card updated with consistent navigation path and punctuation.Title now ends with a period for consistency with other cards, and href correctly points to
/client-library/client-guide.compressed-pdas/program-examples.mdx (1)
13-17: Content clarified and broken link corrected.The Basic Operations descriptions are tightened for clarity, and the Next Steps href corrected from the malformed
/compressed-pdas/guides/guidesto/compressed-pdas/guides. This fixes the broken navigation path.Also applies to: 50-50
compressed-pdas/guides.mdx (1)
2-4: Navigation metadata updated for renamed documentation section.The page title, description, and sidebar label now reflect the "Program Guides" organization and provide clearer context for the overview function of this page.
resources/sdks/program-development.mdx (1)
50-53: Card target updated to align with navigation restructuring.The title now reflects "Program Guides" and the href points to
/compressed-pdas/guides(the overview) rather than the specific create-a-program page, providing better navigation hierarchy.client-library/client-guide.mdx (1)
1-10: New comprehensive client guide successfully introduces centralized learning resource.The new
client-guide.mdxprovides a well-structured, multi-step guide for TypeScript and Rust developers with clear sections on setup, RPC connections, address derivation, validity proofs, account packing, instruction building, and transaction submission. The integration of graphics, tabs for cross-language examples, and full code examples supports the PR objective of consolidating client-side guidance under a single authoritative resource.
| @lightprotocol/stateless.js@0.22.1-alpha.1 \ | ||
| @lightprotocol/compressed-token@0.22.1-alpha.1 \ |
There was a problem hiding this comment.
CRITICAL: Unpublished package version will cause installation failures.
The installation instructions reference @lightprotocol/compressed-token@0.22.1-alpha.1 across all three package manager tabs (npm, yarn, pnpm), but this version does not exist on npm and will cause 404 errors. While @lightprotocol/stateless.js@0.22.1-alpha.1 is valid, the compressed-token package must be updated to the published version 0.22.0.
Update all three tabs:
<Tab title="npm">
```bash
npm install --save \
@lightprotocol/stateless.js@0.22.1-alpha.1 \
- @lightprotocol/compressed-token@0.22.1-alpha.1 \
+ @lightprotocol/compressed-token@0.22.0 \
@solana/web3.jsyarn add \
@lightprotocol/stateless.js@0.22.1-alpha.1 \
- @lightprotocol/compressed-token@0.22.1-alpha.1 \
+ @lightprotocol/compressed-token@0.22.0 \
@solana/web3.jspnpm add \
@lightprotocol/stateless.js@0.22.1-alpha.1 \
- @lightprotocol/compressed-token@0.22.1-alpha.1 \
+ @lightprotocol/compressed-token@0.22.0 \
@solana/web3.jsAlso applies to: 138-139, 149-150
🤖 Prompt for AI Agents
In client-library/client-guide.mdx around lines 127-128 (and also apply same
change at 138-139 and 149-150): the docs reference an unpublished package
version @lightprotocol/compressed-token@0.22.1-alpha.1 which will cause install
failures; update each occurrence in the npm, yarn, and pnpm install snippets to
use the published version @lightprotocol/compressed-token@0.22.0 so the commands
succeed (replace 0.22.1-alpha.1 with 0.22.0 in all three tabs and the other
noted line ranges).
| <Step> | ||
| ## Send Transaction | ||
|
|
||
| </Step> |
There was a problem hiding this comment.
Empty Send Transaction step leaves end-to-end workflow incomplete.
Step 7 provides no code examples or guidance for the final transaction submission step. Add minimal, copy-paste-ready implementations for TypeScript and Rust:
<Step>
## Send Transaction
+<Tabs>
+<Tab title="Typescript">
+
+```typescript
+const tx = new web3.Transaction();
+tx.add(instruction);
+tx.recentBlockhash = (await rpc.getRecentBlockhash()).blockhash;
+tx.sign(signer);
+
+const sig = await rpc.sendTransaction(tx, [signer]);
+await confirmTx(rpc, sig);
+console.log("Transaction confirmed:", sig);
+```
+
+</Tab>
+
+<Tab title="Rust">
+
+```rust
+let sig = rpc
+ .create_and_send_transaction(&[instruction], &payer.pubkey(), &[payer])
+ .await?;
+
+println!("Transaction confirmed: {}", sig);
+```
+
+</Tab>
+</Tabs>
+
</Step>🤖 Prompt for AI Agents
In client-library/client-guide.mdx around lines 1178 to 1181, the "Send
Transaction" step is empty and must be replaced with minimal, copy-paste-ready
TypeScript and Rust examples showing how to build, sign, send and confirm a
transaction; add a TypeScript Tab that creates a Transaction, adds the
instruction, sets recentBlockhash, signs with the signer, sends via
rpc.sendTransaction and waits for confirmation, then logs the signature, and add
a Rust Tab that calls the RPC helper to create and send the transaction with the
payer and signer(s), awaits the result, and prints the returned signature.
Ensure both snippets are placed inside their respective Tab blocks and use the
same variable names referenced earlier (rpc, instruction, signer/payer) so
readers can copy-paste directly.
…ground Remove ?api-key=<api_key> from server URLs across all OpenAPI specs. This fixes the Mintlify API playground not rendering request examples and language snippets. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Summary
client-library/README.mdx)docs.jsonnavigation to reference the new file pathChanges
client-library/README.mdx- Complete client library guide for TypeScript and Rustdocs.json- Updated navigation path fromclient-librarytoclient-library/READMESummary by CodeRabbit
New Features
Documentation
Removed
Chores
✏️ Tip: You can customize this high-level summary in your review settings.