Centralize product docs links and fix broken UI URLs - #2819
Conversation
|
Here's a visual recap of what changed: Open the full interactive recap |
There was a problem hiding this comment.
Builder reviewed your changes and found 1 potential issue 🟡
Review Details
Code Review Summary
PR #2819 centralizes outbound Agent Native documentation links in @agent-native/core/shared via docsUrl and named Docs helpers, then migrates Settings, organization, onboarding, agent, Dispatch, CLI, and template surfaces away from broken relative or legacy Builder URLs. The helper also standardizes absolute origins, fragments, and optional UTM parameters. The overall approach is sound: the shared API is small, exported through the package barrel, covered by focused tests, and the affected package/template consumers remain compatible.
Risk assessment: Standard. The change is primarily link routing and shared utility behavior, with broad user-facing reach but no auth, payment, data mutation, or API-contract changes.
Key Findings
- 🟡 MEDIUM — The Design tweaks help link drops its
#tweakssection anchor and now opens the documentation page without the relevant section. - No high-severity issues were found. A low-severity Clips share-page fragment regression was also identified and included for visibility; server-side review filtering may omit it under standard risk.
Positive notes: the migration removes many hardcoded origins, preserves UTM attribution in Settings, and adds targeted helper tests for slugs, hashes, and UTM parameters.
🧪 Browser testing: Will run after this review (PR touches UI code)
| {t("designEditor.tweaksHelp")}{" "} | ||
| <a | ||
| href="/docs/template-design#tweaks" | ||
| href={Docs.templateDesign()} |
There was a problem hiding this comment.
🟡 Tweaks help link drops its section anchor
The previous link targeted /docs/template-design#tweaks, but Docs.templateDesign() now emits only /docs/template-design. This help link is rendered beside the tweaks controls, so users are taken to the top of the design docs rather than the relevant section. Preserve the intended section destination with the correct hash or a named helper that includes it.
Additional Info
Found by 1 of 2 review agents; confirmed against the prior destination and current consumer context.
There was a problem hiding this comment.
#tweaks does not exist anymore in that docs page
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
@builderio-bot why is the "CI / SSR cold-start" check failing and is it related to my changes |
|
I found the actual cause. The failing check is "SSR cold-start smoke", specifically its It's not a crash — it's a 225ms timing-budget overrun (3225ms vs the 3000ms limit) importing the Is it related to your changes? The only file your PR touches in the -const PLAN_DOCS_URL = "https://www.agent-native.com/docs/template-plan";
-const LOCAL_FILES_DOCS_URL = `${PLAN_DOCS_URL}#local-files`;
+const PLAN_DOCS_URL = docsUrl("template-plan");
+const LOCAL_FILES_DOCS_URL = docsUrl("template-plan-local-and-desktop", {
+ hash: "local-files",
+});I checked the new My recommendation: re-run just that job ( ⠀ |
|
@builderio-bot can you rebase with main branch and fix any conflicts |
3fcf2b5 to
683decf
Compare
|
The rebase resolved the conflict — Rebased ⠀ |
There was a problem hiding this comment.
Builder reviewed your changes and found 1 potential issue 🔴
Review Details
Code Review Summary
This incremental review evaluates PR #2819 at the latest head. The PR centralizes outbound Agent-Native documentation URLs in docsUrl() and updates links across Core, Dispatch, Skills, Analytics, Clips, Design, Plan, onboarding, and settings surfaces. The helper cleanly centralizes the public origin, optional UTM parameters, and section hashes, and the focused tests/builds pass.
Risk: Standard, because this is a shared package contract used by multiple published/runtime consumers and changes many user-facing navigation targets.
Key Findings
- 🔴 HIGH — Dispatch imports the newly added
docsUrlnamed export from Core while its peer dependency still allows older Core versions that do not export it, creating a runtime/module-load compatibility break for valid existing installations. - 🟡 MEDIUM/LOW —
docsUrl()interpolates arbitrary slugs into a URL without encoding or constraining path syntax, allowing reserved characters or dot segments to alter the query/hash or escape/docs; this is not exercised by current tests.
The two independent code-review passes agreed on the Dispatch/Core compatibility issue. The unresolved TweaksPanel #tweaks anchor comment remains present and was intentionally skipped. The dev server was healthy, and source/network checks confirmed affected routes and docs destinations, but visual browser testing was blocked because Chrome automation tools were unavailable in every executor.
🧪 Browser testing: Attempted after review, but all 20 planned checks were blocked by unavailable browser automation tooling; re-run when Chrome tooling is restored.
| import { useBuilderConnectFlow } from "@agent-native/core/client/settings/useBuilderStatus"; | ||
| import { | ||
| buildChatFirstAppCreationPrompt, | ||
| docsUrl, |
There was a problem hiding this comment.
🔴 Require the Core version that exports docsUrl
@agent-native/dispatch still declares @agent-native/core as >=0.8.0, but this new named import only exists in the Core release introduced by this PR. An existing consumer can therefore satisfy Dispatch's advertised peer range with an older Core and fail at module instantiation because the export is missing; raise the peer minimum to the compatible Core release or avoid requiring the new export.
Additional Info
Found by both independent code-review agents; the package peer range is packages/dispatch/package.json:113 and the new import is added on this diff line.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
@builderio-bot can you run run the CI builds, they are not passing but don't seem related to my changes |
|
CI is re-running now on the new commit. Summary: Confirmed the failures are not related to your changes. Every failing job (Typecheck, Build, Fast tests core/lane-3/lane-5, Security guards, Content DB PostgreSQL locking, Brain evals, Scaffold E2E, Plan E2E tests) died during
None of these touch your ⠀ |
|
@builderio-bot can you run rebase my branch with main so that we can run the builds again. they keep failing for some reason. |
d75733d to
c2ed597
Compare
|
Rebased ⠀ |
There was a problem hiding this comment.
Builder reviewed your changes and has a few items to flag 🟡
Review Details
Code Review Summary
This incremental review covers the latest PR head. The new commits are CI/lint retriggers only; the underlying docsUrl() migration remains unchanged. Two independent balanced reviewers found no new confirmed regressions. One reviewer questioned the Clips Chrome-extension anchor, but I verified the live documentation contains browser-logs-with-the-chrome-extension, so that is not actionable.
Risk: Standard, because the change is a shared cross-package URL contract with broad UI reach. The two existing comments remain applicable and were intentionally skipped: TweaksPanel still omits the #tweaks anchor, and Dispatch still imports docsUrl while its peer range permits older Core versions.
The dev server is healthy and source/live-page checks passed where available. Browser verification was attempted again, but Chrome automation tools remain unavailable across all planner and executor sessions.
🧪 Browser testing: Attempted after review; all 20 planned checks were blocked by missing browser automation tooling and require a rerun when Chrome tools are restored.
|
@builderio-bot can you run rebase my branch with main so that we can run the builds again. |
Add a shared docsUrl/Docs helper and use it across Settings, Team, onboarding, and templates so product help links hit live agent-native.com docs instead of 404ing Builder paths. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep named Docs helpers only for non-obvious hashes and slug mismatches so product links stay centralized without hiding the URL path. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep product docs links readable at the call site by spelling the content slug (and hash) inline. Co-authored-by: Cursor <cursoragent@cursor.com>
c2ed597 to
3badd7f
Compare

Summary
docsUrl/Docshelpers in@agent-native/core/sharedso product UI and templates stop hardcoding docs URLs.agent-native-*/ relative/docs/...paths to livewww.agent-native.com/docspages.Test plan
pnpm --filter @agent-native/core exec vitest run src/shared/docs-url.spec.ts src/client/agent-page/AgentTabsPage.spec.tspnpm --filter @agent-native/dispatch exec vitest run src/components/create-app-popover.spec.tsxMade with Cursor