Skip to content

docs(review): address Greptile review feedback across the stack#96

Open
rodrigopavezi wants to merge 3 commits into
docs/revamp-tristan-feedbackfrom
docs/revamp-greptile-fixes
Open

docs(review): address Greptile review feedback across the stack#96
rodrigopavezi wants to merge 3 commits into
docs/revamp-tristan-feedbackfrom
docs/revamp-greptile-fixes

Conversation

@rodrigopavezi
Copy link
Copy Markdown
Member

Applies 16 of 18 Greptile review comments from PRs #88-95. Skipped:

PR #88

  • getting-started.mdx: replaced the "API Key Generation" steps with the
    Client ID flow on the Dashboard.

PR #89

  • secure-payment-supported-networks-and-currencies.mdx: qualified the
    cross-chain note — Tron payments are same-chain; Li.Fi swap-to-pay
    is EVM-source only.
  • release-notes/request-api.mdx: distinguished the four "2026-Q1"
    Update blocks with topical sub-labels (Payouts, Tron, Accounting,
    Calldata).

PR #90

  • docs.json: removed the duplicate tools/dashboard entry from the API
    Setup group. The Tools group in Resources is the canonical home.
  • programmatic-payment-links.mdx: TS/Python/cURL switched from
    to per AGENTS.md style. Other Tabs blocks (EVM-vs-Tron
    variants) stay as Tabs since they are alternative content.
  • programmatic-payment-links.mdx: fixed the timingSafeEqual signature
    check to compare decoded buffer lengths instead of raw hex string
    lengths.

PR #91

  • package.json: dropped @playwright/test (only playwright is used).
  • scripts/capture-screenshots.ts: switched waitUntil from "networkidle"
    to "load". Vite HMR keeps a persistent WebSocket open so networkidle
    always timed out against dev servers.

PR #92

  • integration-tutorial.mdx: changed the webhook-section .env placeholder
    from <YOUR_API_KEY> to <YOUR_CLIENT_ID> for consistency.

PR #93

  • secure-payments.mdx: rewrote the redirectUrl description to remove
    the self-contradiction ("redirected" vs "no auto-redirect").
  • programmatic-payment-links.mdx: the "send back to your site" code
    example now captures the response and uses securePaymentUrl.

PR #94

  • payee-destinations.mdx: accessPolicy sub-fields restructured from a
    Markdown table to with nested entries.
  • compliance-gated-payments.mdx: "How it works" numbered list switched
    to with components.

PR #95

  • multi-chain-checkout.mdx: "you decide of the destination" →
    "you decide on the destination" (grammar).
  • batch-payouts.mdx: removed the duplicate "hosted" in the Mode 1
    description.
  • welcome.mdx: dropped the SDK framing — the Dashboard and Secure
    Payment Page are no-code hosted tools, not SDK consumers.

Applies 16 of 18 Greptile review comments from PRs #88-95. Skipped:
- PR #88 forward-links comment (resolved by Phase B in #90 — pages now
  exist)
- PR #91 lockfile exclusion (P2 opinion; team has chosen to gitignore)

PR #88
- getting-started.mdx: replaced the "API Key Generation" steps with the
  Client ID flow on the Dashboard.

PR #89
- secure-payment-supported-networks-and-currencies.mdx: qualified the
  cross-chain note — Tron payments are same-chain; Li.Fi swap-to-pay
  is EVM-source only.
- release-notes/request-api.mdx: distinguished the four "2026-Q1"
  Update blocks with topical sub-labels (Payouts, Tron, Accounting,
  Calldata).

PR #90
- docs.json: removed the duplicate tools/dashboard entry from the API
  Setup group. The Tools group in Resources is the canonical home.
- programmatic-payment-links.mdx: TS/Python/cURL switched from <Tabs>
  to <CodeGroup> per AGENTS.md style. Other Tabs blocks (EVM-vs-Tron
  variants) stay as Tabs since they are alternative content.
- programmatic-payment-links.mdx: fixed the timingSafeEqual signature
  check to compare decoded buffer lengths instead of raw hex string
  lengths.

PR #91
- package.json: dropped @playwright/test (only `playwright` is used).
- scripts/capture-screenshots.ts: switched waitUntil from "networkidle"
  to "load". Vite HMR keeps a persistent WebSocket open so networkidle
  always timed out against dev servers.

PR #92
- integration-tutorial.mdx: changed the webhook-section .env placeholder
  from <YOUR_API_KEY> to <YOUR_CLIENT_ID> for consistency.

PR #93
- secure-payments.mdx: rewrote the redirectUrl description to remove
  the self-contradiction ("redirected" vs "no auto-redirect").
- programmatic-payment-links.mdx: the "send back to your site" code
  example now captures the response and uses securePaymentUrl.

PR #94
- payee-destinations.mdx: accessPolicy sub-fields restructured from a
  Markdown table to <Expandable> with nested <ParamField> entries.
- compliance-gated-payments.mdx: "How it works" numbered list switched
  to <Steps> with <Step> components.

PR #95
- multi-chain-checkout.mdx: "you decide of the destination" →
  "you decide on the destination" (grammar).
- batch-payouts.mdx: removed the duplicate "hosted" in the Mode 1
  description.
- welcome.mdx: dropped the SDK framing — the Dashboard and Secure
  Payment Page are no-code hosted tools, not SDK consumers.
This was referenced May 11, 2026
Copy link
Copy Markdown
Member Author

rodrigopavezi commented May 11, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 11, 2026

Greptile Summary

This PR applies 16 of 18 Greptile review comments from PRs #88–95, covering terminology updates (API Key → Client ID), component migrations (<Tabs><CodeGroup>, numbered list → <Steps>), endpoint path fixes (/v2/ prefix), and a timingSafeEqual buffer-length correctness fix.

  • Auth terminology sweep: x-api-key / RN_API_KEY replaced with x-client-id / RN_CLIENT_ID across getting-started.mdx, integration-tutorial.mdx, create-requests.mdx, batch-payments.mdx, and payouts.mdx; the Mermaid sequence diagram in create-requests.mdx still annotates auth as {apiKey} while the code examples below it use x-client-id.
  • Component and phrasing fixes: payee-destinations.mdx moves accessPolicy sub-fields from a Markdown table to <Expandable> + nested <ParamField>; compliance-gated-payments.mdx converts a conditional numbered list to <Steps>, but steps 3 and 4 describe mutually exclusive screening outcomes rather than sequential actions.
  • Script and config fixes: capture-screenshots.ts switches waitUntil from "networkidle" to "load" to avoid HMR WebSocket timeouts; docs.json removes the duplicate tools/dashboard nav entry; package.json drops the unused @playwright/test dev dependency.

Confidence Score: 5/5

Safe to merge — all changes are documentation and tooling; no runtime logic is altered.

Every change is confined to MDX documentation content, a JSON nav config, a dev script, and a package.json update. None of the edits touch production code paths. The two open observations (a stale {apiKey} annotation in a Mermaid diagram and mutually exclusive outcomes rendered as sequential Steps) are editorial issues that do not block a reader from using the API correctly.

The Mermaid diagram in api-features/create-requests.mdx (auth annotation) and the Steps block in use-cases/compliance-gated-payments.mdx (branching outcomes) are worth a second editorial look, but neither blocks merging.

Important Files Changed

Filename Overview
use-cases/programmatic-payment-links.mdx Tabs → CodeGroup migration, timingSafeEqual buffer-length fix, and response capture for redirectUrl example — all correct.
api-features/create-requests.mdx Code examples correctly updated to x-client-id / RN_CLIENT_ID, but the Mermaid sequence diagram still annotates auth as {apiKey}, creating a terminology mismatch within the same file.
use-cases/compliance-gated-payments.mdx Numbered list converted to Steps; steps 3 and 4 are mutually exclusive outcomes, not sequential actions, which the Steps component implies.
api-features/crypto-to-fiat-payments.mdx All three payer endpoints now consistently include the /v2/ prefix in both diagram and bullet list; Mermaid participant alias fixed for Payee Bank.
api-setup/integration-tutorial.mdx RN_API_KEY renamed to RN_CLIENT_ID throughout; eq import from drizzle-orm added (used at lines 282 and 587); typo succesfully fixed.
api-features/payee-destinations.mdx accessPolicy sub-fields correctly migrated from Markdown table to Expandable + nested ParamField per AGENTS.md style guide.
scripts/capture-screenshots.ts waitUntil changed from networkidle to load with a clear comment explaining the Vite HMR WebSocket reason; correct fix.
docs.json Duplicate tools/dashboard entry removed from API Setup group; Tools group in Resources remains the canonical location.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[PR #96: Address Greptile Review Feedback] --> B[Auth Terminology]
    A --> C[Component Migrations]
    A --> D[Endpoint Fixes]
    A --> E[Script & Config]

    B --> B1["x-api-key → x-client-id\n(getting-started, integration-tutorial,\ncreate-requests, batch-payments, payouts)"]
    B --> B2["RN_API_KEY → RN_CLIENT_ID\n(env var rename across docs)"]

    C --> C1["Tabs → CodeGroup\n(programmatic-payment-links)"]
    C --> C2["Numbered list → Steps\n(compliance-gated-payments)"]
    C --> C3["Markdown table → Expandable + ParamField\n(payee-destinations)"]

    D --> D1["/v2/ prefix added\n(crypto-to-fiat, query-payments)"]
    D --> D2["paymentReference → requestId\n(create-requests)"]
    D --> D3["timingSafeEqual buffer-length fix\n(programmatic-payment-links)"]

    E --> E1["waitUntil: networkidle → load\n(capture-screenshots.ts)"]
    E --> E2["Remove duplicate nav entry\n(docs.json)"]
    E --> E3["Drop @playwright/test\n(package.json)"]
Loading

Reviews (3): Last reviewed commit: "docs(review): finish /v2/ prefix consist..." | Re-trigger Greptile

Comment thread use-cases/programmatic-payment-links.mdx Outdated
Comment thread api-setup/integration-tutorial.mdx
Bundles two passes of Greptile feedback:

(A) PR #96 follow-up — the fixes PR itself attracted two new comments:
- use-cases/programmatic-payment-links.mdx: cURL language tag bash → curl
- RN_API_KEY → RN_CLIENT_ID and X-Api-Key → x-client-id renamed across
  api-setup/integration-tutorial.mdx, api-setup/getting-started.mdx,
  api-features/create-requests.mdx for stack-wide consistency. Zero
  RN_API_KEY / X-Api-Key references remain.

(B) Older PRs (51-87) — 23 still-applicable comments out of 51 total.
The other 28 are stale (resolved by the revamp rewriting or removing
the relevant sections/files); those will be resolved on GitHub with a
note explaining staleness.

PR #53 — getting-started.mdx
- Added Express setup (express + app.use(express.json())) before the
  webhook handler example so the snippet is runnable.

PR #54 — integration-tutorial.mdx
- Added missing `import { eq } from 'drizzle-orm';`.
- Fixed spelling "succesfully" → "successfully".

PR #55 — create-requests.mdx
- v2 pay endpoint takes requestId, not paymentReference (mermaid +
  code sample updated to `${requestId}/pay`).

PR #56 + #87 — crosschain-payments.mdx
- Boundary wording: "under \$1" → "of \$1 or less" to align with the
  "greater than 1 USD" half of the sentence.
- viem snippet now imports createPublicClient + http and instantiates
  publicClient so `publicClient.waitForTransactionReceipt(...)` works.

PR #57 — batch-payments.mdx
- Code samples now use x-client-id (consistent with rest of docs),
  dropped legacy x-platform-id, added `if (!response.ok)` error handling
  on both examples.

PR #59 — crypto-to-fiat-payments.mdx
- "I**mportant:" → "**Important:"
- mermaid: {payerId} → {clientUserId} (twice).
- Endpoint paths: /payer → /v2/payer for consistency.
- mermaid: declared "Payee Bank" as a participant (was used but never
  declared, breaking the diagram).

PR #66 — query-payments.mdx
- Frontmatter description: /payments → /v2/payments.

PR #67 — platform-fees.mdx
- Clarified query- vs body-param scope: GET /v2/request/{id}/pay uses
  query params; POST /v2/payouts and /payouts/batch use body params.

PR #68 — protocol-fees.mdx
- Grammar: "protocol fees applies" → "protocol fee applies".
- Typo: "simple reduce" → "simply reduce".
- Math: payee receives 999.50 USDC (not 999.95). Added intermediate
  invoice/fee lines for transparency.

PR #77 — faq.mdx
- On-ramp question now explicitly answered: "Fiat-to-crypto (on-ramp)
  payments are not currently supported by the API."

PR #86 — payouts.mdx
- "ERC-712" → "EIP-712" (correct EIP designation).

PR #86 — api-reference/secure-payments.mdx
- expiresAt example: 15 minutes → 7 days, matching the documented
  default expiry.

PR #87 — payouts.mdx
- Added "500" row to error-handling table.

mintlify broken-links: zero.
Comment thread api-features/crypto-to-fiat-payments.mdx Outdated
Greptile follow-up on api-features/crypto-to-fiat-payments.mdx:127-129.
The earlier fix added the /v2/ prefix to POST /v2/payer but missed the
sibling GET and PATCH entries on the next lines — fixed now. All
relative /payer/... references on the page use the versioned path.
Copy link
Copy Markdown
Member

@MantisClone MantisClone left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the cumulative 40-PR stack against 6 source repos (request-api, request-auth-api, request-secure-payment, request-dashboard, request-token-list, request-infrastructure) plus the live preview at requestnetwork-docs-revamp-greptile-fixes.mintlify.app.

Two must-fix items below. Non-blocking observations will be filed as separate issues after deploy.

Must-fix #1 — SIWE example doesn't match server output

File: api-reference/wallet-authentication.mdx:35 (not in this PR's specific diff, so flagging here instead of inline)

The current message example shows a Chain ID: 1 line, omits an Expiration Time: line, and is missing the period after Sign in to Request Network. The actual server template at request-auth-api/src/auth/auth.service.ts:187-196 emits no Chain ID, always emits Expiration Time: (5 min after Issued At), and ends Sign in to Request Network. with a period.

Three edits:

  • Drop the Chain ID: 1 line
  • Add Expiration Time: <iso8601> (5 minutes after Issued At)
  • Add the period: Sign in to Request Network.

Corrected example:

auth.request.network wants you to sign in with your Ethereum account:
0x6923831ACf5c327260D7ac7C9DfF5b1c3cB3C7D7

Sign in to Request Network.

URI: https://auth.request.network
Version: 1
Nonce: a1b2c3d4e5f6
Issued At: 2026-03-15T10:00:00.000Z
Expiration Time: 2026-03-15T10:05:00.000Z

Why it matters: signature verification is byte-exact. Anyone typing the example verbatim to test will get Invalid challenge and have no way to figure out why.

Must-fix #2 — Client ID Generation flow doesn't match Dashboard UI

See inline comment on api-setup/getting-started.mdx.


Already handled

  • bassgeta's CHANGES_REQUESTED on #54 has been dismissed
  • Code Sandbox link drop on api-setup/integration-tutorial.mdx:8 is in Rodrigo's queue (the workspaceId query parameter is user-scoped, so the link doesn't work for any non-author reader)

Comment thread api-setup/getting-started.mdx
Copy link
Copy Markdown
Member

@MantisClone MantisClone left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Must-fix items from prior review have been addressed in PR #97 (now sitting on top of this PR). SIWE message in wallet-authentication.mdx and Client ID Generation flow in getting-started.mdx both fixed correctly. Approving #96 to clear the review record — the stack is ready to ship.

Copy link
Copy Markdown
Member Author

Merge activity

  • May 12, 4:02 PM UTC: A user started a stack merge that includes this pull request via Graphite.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants