Skip to main content

Lessons — aceupdocs

  • [2026-09-11] studio cannot push to GitHub over git; xhuntr can. git push and even git ls-remote hang indefinitely from studio (they do not fail, they hang — GIT_TERMINAL_PROMPT=0 does not make them fail fast either). Plain HTTPS to GitHub from studio is fine: api.github.com returns 200 in 0.2s and github.com/<repo>.git/info/refs correctly returns 401 for a private repo. So it is git’s transport specifically, not the network and not credentials. → Push from xhuntr. rsync -az --delete <repo>/ xhuntr:<same path>/ then git push there. Verified working: the whole 20 MB repo with 6 commits of history pushed in one go. The GitHub MCP (authenticated as nxsdevv) also works from studio for creating repos and reading files, so use it for verification.
  • [2026-09-11] Two different “Mintlify MCP”s — do not conflate them. app.mintlify.com/<org>/<project>/products/mcp is an MCP server Mintlify auto-generates from your published docs, for your readers’ AI tools. It is unrelated to https://mcp.mintlify.com, the admin MCP used to edit and publish docs. Only the second one publishes anything, and it has no asset-upload operation — which is why a git-backed repo is the only route that carries the 30 screenshots.
  • [2026-09-11] Build docs from the running code, never from the design artifacts. rhbot/docs/ARTIFACT-GAPS.md exists because the shipped build and the Claude artifacts disagree on nearly every screen, and it says the build wins. Writing from SCREENS.md prose is what produced those gaps in the first place. One claim did slip through from artifact prose — that the public verify page shows a whole shared-table round — and was wrong: it is a four-field verifier form. Caught by grepping public/verify/index.html.
  • [2026-09-11] Check .env for overrides before publishing any configured number. config.ts parses money policy as int(NAME, fallback, …), so a live override diverges silently from the code default — exactly how the XHuntr docs shipped wrong prices. Verified by counting keys (grep -cE '^KEY=' .env) without ever opening the file: all nine money keys absent, so the fallbacks are the live values.
  • [2026-09-11] The Mintlify Admin MCP CAN publish — I was wrong to say it couldn’t. The token stored on xhuntr works from anywhere via plain JSON-RPC over HTTP; it is not tied to that box. Two gotchas cost time: Cloudflare 1010-blocks a bare Python user-agent (send User-Agent: node), and a session goes stale after save merges, so update_config fails with no_editor_metadata until you checkout with a fresh branch. What it genuinely cannot do: upload assets (zero asset operations in the SDK, verified by search) and connect a GitHub repo (dashboard-only; workflows.* needs a Pro entitlement).
  • [2026-09-11] Status codes are not verification — look at the page. All 41 pages returned 200 and 832 image refs resolved, and only webshot revealed CORS failures in the console. They turned out cosmetic, but the check that found them was the visual one, not the HTTP one. Equally, create_node on a path that already exists silently attaches to the existing file instead of seeding content: the homepage was an empty index.mdx and / served a redirect loop, while every status check said 200.