Skip to content

docs(drift): draft from internal source - #434

Merged
pedromcunha merged 1 commit into
mainfrom
docs-drift/src-fc29d624dc-b26087b
Aug 31, 2026
Merged

docs(drift): draft from internal source#434
pedromcunha merged 1 commit into
mainfrom
docs-drift/src-fc29d624dc-b26087b

Conversation

@pedromcunha

Copy link
Copy Markdown
Member

Drafted from an internal source repo, requested by @Frizellle.

This PR was auto-generated by the reusable-docs-draft-pr workflow from a Claude-drafted update in the source repo. It is opened as a draft — please review, edit as needed, and mark ready for review before merging.

Review checklist

  • Content matches the behavior shipped in the source PR
  • No internal-only details (service names, file paths, unreleased names, security internals) leaked into the draft
  • Conforms to CLAUDE.md style rules
  • Cross-references and internal links resolve
  • Any Needs human input items from the source comment are addressed

Generated by reusable-docs-draft-pr.yml in relayprotocol/agents-config.

Requested by @Frizellle via /publish-docs-pr
@mintlify

mintlify Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
unevenlabs 🟢 Ready View Preview Aug 31, 2026, 6:38 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@github-actions

github-actions Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Claude finished @pedromcunha's task in 3m 2s —— View job


Code review — PR #434

  • Read PR diff
  • Read full features/fee-sponsorship.mdx for context and internal consistency
  • Check references/api/changelog.mdx format against §4.5 / scripts/build-changelog.mjs
  • Verify cross-references and valid parameter values
  • Check for internal-only leakage
  • Post review

The new content is well-organized and the maxSubsidizationAmount interaction is explained clearly. Good drive-by fix on features/fee-sponsorship.mdx:53 — the sponsoredFeeComponents row was missing its trailing |, which was breaking that cell's rendering.

Two things I verified as fine, so you don't need to chase them:

  • The example values ["execution", "swap"] (line 114) are real components — both documented at references/api/api_core_concepts/fees.mdx:120,122.
  • The duplicate ## 2026-08-13 heading in the changelog is harmless. renderTypeGroups() (scripts/build-changelog.mjs:537) flattens items across all entries sharing a date and groups them by change type, and per-entry titles aren't rendered — so both entries merge into one <Update> with four **Added** bullets. No build breakage. (Worth confirming 2026-08-13 is the actual ship date though, and not copied from the neighboring entry — the PR is dated 08-31 and the three entries above it are 08-19/20/26.)

Findings

1. GET /integrators/quote-data is not a documented endpoint — likely internal leakagereferences/api/changelog.mdx:22

This path appears nowhere else in the repo: no MDX page, no entry in docs.json, no other changelog mention. A reader following this entry has nothing to look up. This is exactly the PR checklist's "no internal-only details … leaked" item. Either drop it from the entry (leaving GET /requests/v2 and /v3, which are both documented) or add the endpoint to the API reference in this PR.

Fix this →

2. Self-contradicting sentence in the parameter definitionfeatures/fee-sponsorship.mdx:50

Defaults to full coverage when omitted; the user pays the remainder.

Under full coverage there is no remainder for the user to pay. The second clause belongs to the partial case, not the default. This is the first line a reader hits for the new parameter, so it's worth getting exactly right.

3. Deposit-address behavior is described two different waysfeatures/fee-sponsorship.mdx:56 vs :117

Line 56 says deposit addresses "do not support sponsoredFeeComponents or subsidizationBps" — phrasing that reads as silently ignored, which is how sponsoredFeeComponents behaves per fees.mdx:148. Line 117 says deposit-address flows "return 400 when the field is set". A reader can't tell whether to expect a rejected quote or a quote with no share applied. Pick one behavior and state it in both places (or state it once and cross-link).

4. "bucket" isn't this page's termfeatures/fee-sponsorship.mdx:104,110,112,114,121

The new section uses "fee bucket" / "bucket" nine times and never defines it. The reader-facing term everywhere else is fee component: that's the parameter's own name (sponsoredFeeComponents), and fees.mdx:146 says "which specific fee components to sponsor". "bucket" does appear in migrating-to-requests-v3.mdx:401, so it isn't invented — but on a feature guide it reads as internal vocabulary. Suggest a straight swap to "fee component".

Fix this →

5. No link to where the component values are definedfeatures/fee-sponsorship.mdx:110,114

The section tells readers the share applies to "every bucket named in sponsoredFeeComponents" and then uses execution and swap in the example, but never points at the list of valid values. Per §2.6 (link a concept on first mention), link to Cost & Fee Structure.

6. The table cell duplicates the entire sectionfeatures/fee-sponsorship.mdx:50

Six sentences, where every other row in that table is one or two. §2.7 is explicit: "Keep cell descriptions concise; move long explanations into prose below the table." Everything in this cell after "Requires subsidizeFees: true." is already covered in §How subsidizationBps Works. Trim to the one-line definition plus the existing anchor link.

7. fees.mdx needs a companion updatereferences/api/api_core_concepts/fees.mdx:144-148

That section is the other place sponsorship parameters are documented, and it currently asserts "setting subsidizeFees to true sponsors all fee components" with sponsoredFeeComponents as the only granularity knob. After this change that's an incomplete picture. Per §4.1, flagging rather than assuming — but a sentence there pointing at subsidizationBps would close the gap. ## Best Practices on the feature page (line 270, "Always set a reasonable cap") is a smaller candidate for the same treatment.

Nits

  • integer is off-vocabulary (:50). Every other row in that table uses TS types — boolean, string, string[]. integer is JSON-Schema. Use number.
  • Callout density (:116-122). Two <Info> blocks back to back, directly below the two callouts at :94-100. §2.5 frames callouts as quick pointers; the rounding note is a single sentence that reads fine as prose. Consider merging the two or inlining the second.
  • Anchor #how-subsidizationbps-works (:50) is almost certainly right — Mintlify strips backticks when slugifying — but there's no existing precedent in this repo for linking a heading that contains a code span, so it's worth one click on the preview to confirm.

I reviewed only; no changes pushed. Happy to apply any subset of the above if you want — just say which.
· branch docs-drift/src-fc29d624dc-b26087b

@pedromcunha
pedromcunha merged commit c02d213 into main Aug 31, 2026
5 checks passed
@pedromcunha
pedromcunha deleted the docs-drift/src-fc29d624dc-b26087b branch August 31, 2026 18:44
@greptile-apps

greptile-apps Bot commented Aug 31, 2026

Copy link
Copy Markdown

Greptile Summary

This change documents percentage-based fee sponsorship, including the new subsidizationBps request option and fee-sponsorship metadata returned by Requests and quote-data APIs. Verification confirmed that the changelog announces feeSponsorship.subsidizationBps, but the detailed v2 and v3 Requests references, migration guide examples and field reference, and quote-data endpoint documentation do not describe the field. Update those references before merging so integrators can locate its quoted/actual nesting and understand when it is omitted.

Confidence Score: 4/5

The documentation change needs accompanying endpoint and migration reference updates before it is ready to merge.

A focused documentation-coverage check confirmed one non-security documentation gap affecting discoverability of the newly announced response field.

Files Needing Attention: references/api/changelog.mdx and the detailed Requests, quote-data, and migration reference pages need aligned response-field documentation.

T-Rex T-Rex Logs

What T-Rex did

  • T-Rex produced a finding-proof for the posted P2 finding and linked it to the reviewer comment.
  • T-Rex produced a finding-proof for the posted P1 finding and linked it to the reviewer comment.
  • T-Rex validated the contract change, confirming a line-22 announcement was added but coverage remained undocumented, producing UNDOCUMENTED_RESPONSE_ADDITION with exit code 0.

View all artifacts

T-Rex Ran code and verified through T-Rex

Comments Outside Diff (1)

  1. General comment

    P1 Announced fee-sponsorship response field lacks endpoint and migration documentation

    • Bug
      • references/api/changelog.mdx:22 says GET /requests/v2, GET /requests/v3, and GET /integrators/quote-data return feeSponsorship.subsidizationBps in both quoted and actual phases. The detailed v2/v3 endpoint pages contain no field documentation, the migration response examples and field-reference section omit it, and the repository has no detailed GET /integrators/quote-data page.
    • Cause
      • The changelog-only update added the API response announcement without updating OpenAPI-backed response documentation, examples, the v2-to-v3 migration field reference, or supplying the quote-data endpoint reference.
    • Fix
      • Document the optional feeSponsorship.quoted.subsidizationBps and feeSponsorship.actual.subsidizationBps fields (including that they are absent when unset) in the v2, v3, and quote-data response schemas/examples; add the field to the migration sponsorship example and field-reference table.

    T-Rex Ran code and verified through T-Rex

Reviews (1): Last reviewed commit: "docs(drift): draft from internal source" | Re-trigger Greptile


**Added** — `POST /quote` and `POST /quote/v2`: the new optional `subsidizationBps` request field lets sponsors cover a fixed share of each selected sponsorable fee bucket instead of covering it in full. Values are integer basis points in the range `0`–`10000` (`10000` = 100%). Requires `subsidizeFees: true`. Applied per bucket **before** `maxSubsidizationAmount`, which continues to cap the sponsor's total contribution. Currently supported only on swap execution flows — bridge and deposit-address flows return `400` when set. Omitting the field preserves the previous full-coverage behavior. See [Fee Sponsorship](/features/fee-sponsorship#how-subsidizationbps-works).

**Added** — `GET /requests/v2`, `GET /requests/v3`, and `GET /integrators/quote-data`: the `feeSponsorship` object now includes `subsidizationBps` on both the quoted and actual phases, reflecting the share configured at quote time when one was set. Absent when the field was not configured on the request.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Response field lacks reference coverage

This announces feeSponsorship.subsidizationBps for the v2, v3, and quote-data responses, but the detailed Requests references, v2-to-v3 migration examples and field reference, and a quote-data endpoint reference do not document the field. Add the optional quoted and actual phase fields, including their nesting and omission-when-unset behavior, so integrators can consume the announced API addition.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Artifacts

Fee sponsorship documentation coverage checker source

  • Authored Python checker that reads the changelog, detailed request references, migration guide, and all MDX files to verify coverage of the announced response field; it provides the reproducible validation path.

Baseline documentation coverage check before the changelog addition

  • Executed checker against commit `506e2ca881f866c82c13e9053e498f6189d03f70`; it shows no announcement existed and records the same documentation baseline.

Current documentation coverage check after the changelog addition

  • Executed checker against commit `9a2eb3286055d0924a35a6f5f9cba34fa392c43c`; it finds the announcement but zero matching response-field references and reports `UNDOCUMENTED_RESPONSE_ADDITION`, confirming the finding.

View artifacts

T-Rex Ran code and verified through T-Rex

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.

1 participant