docs: sync hosted-pmxt custom endpoints#114
Conversation
760f088 to
0d5f0ff
Compare
0d5f0ff to
f9fbf64
Compare
f9fbf64 to
076fcd9
Compare
076fcd9 to
e3c1ad6
Compare
e3c1ad6 to
1bfcef3
Compare
1bfcef3 to
d79104f
Compare
d79104f to
f74ca2a
Compare
f74ca2a to
fff8734
Compare
fff8734 to
13c5f39
Compare
13c5f39 to
599e140
Compare
599e140 to
1ce7980
Compare
1ce7980 to
d860027
Compare
d860027 to
bc585ef
Compare
bc585ef to
c8fa1ab
Compare
c8fa1ab to
296388f
Compare
296388f to
b29a260
Compare
b29a260 to
732a651
Compare
732a651 to
4650a88
Compare
4650a88 to
df87306
Compare
df87306 to
87ef463
Compare
87ef463 to
bf2abec
Compare
bf2abec to
17ea2c5
Compare
17ea2c5 to
fa0d082
Compare
fa0d082 to
f4306cd
Compare
f4306cd to
c899a40
Compare
c899a40 to
f49488b
Compare
f49488b to
ffc17c0
Compare
realfishsam
left a comment
There was a problem hiding this comment.
PR Review: PASS (NOT VERIFIED)
What This Does
Syncs two new hosted-only endpoints (GET /v0/matched-markets, GET /v0/matched-prices) from the hosted-pmxt service into the repo's OpenAPI spec, Mintlify navigation, and LLM doc files. No exchange code, no SDK code, no core library touched — docs only.
Blast Radius
docs/api-reference/openapi-hosted.json— hosted-only spec (Mintlify rendering only, not consumed by sidecar server or SDKs)docs/docs.json— navigation sidebar for hosted docs sitedocs/llms-full.txt/docs/llms.txt— LLM index files served statically- No
core/, nosdks/, noopenapi.yaml(sidecar spec) touched
Consumer Verification
These endpoints live on api.pmxt.dev/v0/ (the hosted router, not the self-hosted sidecar). They cannot be tested against a local sidecar instance. Verification of whether the live hosted endpoints match the new spec is out of scope here — that belongs to hosted-pmxt. What can be verified is that the committed doc files are self-consistent and correctly generated.
Idempotency check (ran locally on PR branch):
$ npm run docs:llms
wrote docs/llms.txt (77 lines)
wrote docs/llms-full.txt (5225 lines)
$ git diff docs/llms.txt docs/llms-full.txt
(no output — committed files match generated output exactly)
generate-mintlify-docs.js also correctly preserves the Enterprise group's openapi-hosted.json-backed pages via the externalGroups filter; running it does not clobber the new entries.
Test Results
- Build: N/A (docs-only PR)
- Unit tests: N/A
- Server starts: N/A
- E2E smoke: NOT VERIFIED (hosted endpoints only, not testable locally)
CI check failures — both pre-existing, not caused by this PR:
-
"Verify API_REFERENCE.md files are up-to-date" (FAIL) —
sdks/python/API_REFERENCE.mdandsdks/typescript/API_REFERENCE.mdare identical betweenorigin/mainand this branch. The drift exists onmainindependent of this PR and would fail on any PR. -
"Verify docs are in sync with core" (FAIL) —
generate:openapiproduces"version": "2.17.1"(fromcore/package.json) but the committeddocs/api-reference/openapi.jsonhas"version": "2.42.7"(written by the lastpublish.ymlrun). This version skew exists onmaintoo — confirmed by runninggenerate:openapionorigin/mainand observing the same 1-line diff. Any PR touchingdocs/**will trip this check untilcore/package.jsonis bumped to the latest release version.
Findings
-
Duplicate SQL content in
llms-full.txt—"sql"now appears in both the Documentation/Get Started group (pre-existing, line ~723) and the new Enterprise group entry.generate-llms.jsprocesses every navigation entry independently, sodocs/sql.mdxgets rendered twice — adding ~236 lines of duplicated content. Not a correctness bug, but degrades LLM context quality. If the intent is a cross-link, consider whether the"sql"MDX entry needs to be in the Enterprise group at all (since"POST /v0/sql"already anchors the API spec there). Low severity. -
operationIdcontains hyphens (getV0Matched-markets,getV0Matched-prices) — hyphens in operationIds are valid OpenAPI but non-standard for identifier-style names. They work fine as Mintlify URL slugs but will produce broken identifiers if anyone runs a code generator against this spec (get_v0_matched-marketsin Python, etc.). Since this spec is Mintlify-only (not used for code generation), it's not blocking. Worth noting for hygiene. -
Identical descriptions for two distinct endpoints —
/v0/matched-marketsand/v0/matched-pricesshare the samedescription("Bulk cross-venue price comparison…"),summary-style distinction is minimal, and their response schemas are byte-for-byte identical. The only structural difference is thatmatched-marketsincludes aqueryparameter andmatched-pricesdoes not. It is unclear from the spec alone what behaviorally distinguishes these endpoints; thellms-full.txtentry for both reads "Bulk cross-venue price comparison." This is an authoring issue, not a technical defect — but LLM consumers will not be able to distinguish when to use one vs the other.
PMXT Pipeline Check
- Field propagation (3-layer): N/A — hosted-only endpoints, not routed through sidecar SCHEMAS or SDK shims
- OpenAPI sync (
openapi.yaml): N/A — onlyopenapi-hosted.jsontouched; sidecar spec unchanged - Financial precision: N/A
- Type safety: N/A
- Auth safety: N/A — no auth logic touched; endpoint documentation correctly omits credentials
Semver Impact
patch — documentation sync only; no SDK API surface changed, no response shapes modified
Risk
Low. The changes are documentation-only and correctly generated (idempotency verified locally). The two CI failures are pre-existing infrastructure conditions on main unrelated to this PR's content. The duplicate SQL section in llms-full.txt is a minor quality issue. The live behavior of the new endpoints cannot be verified from this repo alone.
Generated by Claude Code
ffc17c0 to
46c5783
Compare
Auto-generated from hosted-pmxt. Updates OpenAPI paths, docs.json navigation, rate limit tables, and catalog venue list.