[failproofai-555] docs: talk-to-us CTA, footer parity, prune orphaned translations#556
Conversation
… translations Docs chrome: - Navbar button now points at the landing page's "talk to us" booking link rather than the getting-started page, matching befailproof.ai's primary CTA. - The docs linked back to the marketing site from nowhere — once a reader landed here, befailproof.ai was unreachable. Mirror the landing footer: website + discord socials (npm is not a valid Mintlify social key, so it goes in a column) plus Product and Resources link columns. - Redirect the 13 AgentEye pages the upstream syncs deleted instead of hard-404ing them. Translation prune: Translation only ever moved forward — getEnglishMdxPages() drives what gets written, so a page deleted upstream left its 14 translations untouched forever. --update-nav then dropped them from the sidebar, which hid them but did not unpublish them: Mintlify serves any .mdx present, so the Chinese kubernetes-deployment page was live and indexable while its English source 404'd. 154 such orphans (11 pages x 14 locales) are removed here. Adds --prune (and --no-prune to opt out), run by default on every translation pass and as an explicit consolidate step — that job re-checks-out main and overlays the artifacts, and download-artifact only ever adds files, so a prune done solely in the per-language jobs would be silently undone. A repo invariant test now fails if any translation outlives its English source, so this cannot silently regress on the next sync. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 16 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (161)
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 |
Summary
Started as "make the docs' Get started button say talk to us, pointing where the landing page points". That change is here — and chasing it surfaced two larger gaps in the docs chrome and the translation pipeline.
Docs chrome
Navbar CTA.
Get started→Talk to us, pointing at the same cal.com link as befailproof.ai's[ talk to us → ]. Sentence case to match the docs' existing style rather than the landing page's lowercase terminal aesthetic.The docs had no link back to befailproof.ai from anywhere — not navbar, not footer. Once a reader landed in docs, the marketing site was unreachable. The footer carried only GitHub and X while the landing footer carries GitHub, npm, Discord, and X. Now mirrored:
website+discordadded to socials, plus Product (Home / Blog / Guides) and Resources (npm / GitHub / Discord) columns.npmis not a valid Mintlify social key (only these 19 are), so it lives in a column.Redirects. The AgentEye syncs deleted 13 English pages with no redirects configured, so
/agenteye/deploymentand friends hard-404 for anyone with a bookmark. Each now redirects to a live page (mostly/agenteye/overview;github-token/tenant-management→api-keys,health-monitoring→observability).The translation prune (the real find)
scripts/translate-docs/had no prune step at all. Translation only ever moves forward —getEnglishMdxPages()drives what gets written — so when an English page is deleted upstream (the AgentEye sync does this routinely), its 14 translations are never revisited.--update-navthen drops them fromdocs.json, which hides them from the sidebar but does not unpublish them: Mintlify serves any.mdxpresent.Verified live before this PR:
docs.befailproof.ai/zh/agenteye/kubernetes-deploymentdocs.befailproof.ai/ja/agenteye/troubleshootingdocs.befailproof.ai/agenteye/deployment(English source)So a Chinese or Japanese reader could land on deployment instructions for a surface that no longer exists, with no way to navigate out. 154 orphans (11 pages × 14 locales) are deleted here.
To stop it recurring:
--prunemode, plus an automatic prune on every translation pass (--no-pruneopts out), so the daily cron self-heals.consolidatejob. This one matters:consolidatere-checks-outmainand overlays the artifacts, anddownload-artifactonly ever adds files — a prune done solely in the per-language jobs would be silently undone.Relationship to #555
Complementary, not conflicting — verified:
navigationindocs.json; this PR touches onlynavbar/footer/redirects. Disjoint regions, clean merge in either order.Merge #555 first if convenient. It creates the locale
agenteye/overviewpages, which then unblocks a follow-up adding locale redirects for the 154 pruned URLs (they're deliberately omitted here —/zh/agenteye/overviewdoesn't exist yet, so redirecting there today would just point at a different 404).Known follow-ups (deliberately not in this PR)
buildLanguageNav'sgroupNameMaponly knows the six Enforcement group names, soOverview/Features/SDK and CLI/Administrationfall through untranslated in every locale. Fixing it means authoring ~90 UI strings across 14 languages (incl. Arabic, Hebrew, Hindi) — that deserves review by someone who speaks them, not machine-authored strings shipped unreviewed.Test plan
bun run test:run— 2092 passed (122 files), including 9 new prune tests + 2 redirect-integrity tests.bun run validate:mdx— 463 pages parse cleanly (617 − 154).bun scripts/translate-docs/cli.ts --validate— all 448 nav references resolve.bun run lint(0 errors) andtsc --noEmit(clean).mintlify validatecould not run locally (the CLI produces no output even for--helpin this environment); each field was checked against Mintlify's published settings reference instead. CI is the real check fordocs.json.🤖 Generated with Claude Code