Skip to content

Align website docs journey with current APIs#756

Merged
blove merged 1 commit into
mainfrom
codex/threadplane-website-journey-alignment
Jul 6, 2026
Merged

Align website docs journey with current APIs#756
blove merged 1 commit into
mainfrom
codex/threadplane-website-journey-alignment

Conversation

@blove

@blove blove commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • align homepage, docs landing, prompts, llms.txt, and adapter chooser with current provideAgent/injectAgent package flows
  • add adapter chooser to docs search/sidebar/mobile navigation and fix stale sitemap route
  • clarify licensing and AG-UI durability claims, regenerate API docs from updated source comments
  • harden Claude review for docs-heavy PRs by making the advisory job non-blocking and raising review turn budget

Verification

  • npm run generate-api-docs
  • git diff --check
  • npx vitest run apps/website/src/lib/docs.spec.ts apps/website/src/components/landing/Hero.spec.tsx
  • npx nx lint website
  • npx nx e2e website
  • npx nx build website

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Automated approval: this PR received an intelligent (AI) code review. See the review comments on this PR.

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

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


PR Review #756 — Align website docs journey with current APIs

  • Gather context and read CLAUDE.md
  • Read PR diff and changed files
  • Review navigation/sidebar changes (Nav.tsx, DocsSidebar.tsx, DocsSearch.tsx)
  • Review docs config and route changes
  • Review library source changes (chat.component.ts, agent-lifecycle-registry.ts)
  • Review workflow changes (claude-review.yml)
  • Post findings

Summary

This PR is clean. No correctness bugs, security issues, type-safety problems, or Angular/RxJS pitfalls found.

What was reviewed (non-generated files):

  • Nav.tsx / DocsSidebar.tsx / DocsSearch.tsxspecialDocsPages is now surfaced in mobile nav, the docs sidebar, and search. The SearchablePage interface correctly makes library, section, and slug optional so special pages (with no library affiliation) compose cleanly with library pages. The default-results filter !p.library || p.library === library correctly shows adapter chooser in every library context. data-active={pathname === page.path || undefined} correctly omits the attribute when false.

  • Nav.tsx state syncinitialMobileLibrary via docsConfig.find() and the useEffect to sync on navigation are correct. The ?.id after find() is technically redundant (find already guards with lib.id === activeLibrary) but harmless.

  • docs-config.tstitle and description are now required on SpecialDocsPage. Correct — both fields are used at construction time in search and sidebar.

  • site-metadata.ts — Sitemap routes fixed: /angular/langgraph, /ag-ui added. Stale route removed.

  • positioning.tsLangGraph + AG-UI proof point now links to /docs/choosing-an-adapter instead of the LangGraph-specific concepts page. Better entry point.

  • claude-review.ymlcontinue-on-error: true makes the advisory review non-blocking. --max-turns 30 gives more budget for docs-heavy PRs. Both are intentional and appropriate.

  • chat.component.ts / agent-lifecycle-registry.ts — Comment-only corrections (agent()this.agent() / "configured agent instance"). Accurate.

  • llms.txt, page.tsx, ag-ui/page.tsx, docs/page.tsx — Consistent API naming (injectAgent() over agent()), install commands updated to include all required peer packages, licensing copy corrected. The AG-UI page correctly removes interrupt() from the shared contract bullets since that's backend-dependent.

One observation (not a blocker): choosing-an-adapter/index.mdx still ends with "Both adapters are MIT-licensed and live in the same monorepo." This is technically correct (it refers to @threadplane/langgraph and @threadplane/ag-ui, not @threadplane/chat), but the newly added "Next steps" link to the Chat quickstart sits just below it. A reader scanning the page could conflate the licensing claim with @threadplane/chat. Worth a parenthetical like "(the @threadplane/chat UI package has separate commercial licensing)" if the copy ever gets another pass — but not a PR blocker.

@vercel

vercel Bot commented Jul 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
threadplane Ready Ready Preview, Comment Jul 6, 2026 7:55pm

Request Review

@blove blove force-pushed the codex/threadplane-website-journey-alignment branch from 1faa78e to bc6c4d4 Compare July 6, 2026 19:51
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 1m 49s —— View job


PR Review #756 — Align website docs journey with current APIs

  • Gather context and read CLAUDE.md
  • Read PR diff and changed files
  • Review navigation/sidebar changes (Nav.tsx, DocsSidebar.tsx, DocsSearch.tsx)
  • Review docs config and route changes
  • Review library source changes (chat.component.ts, agent-lifecycle-registry.ts)
  • Review workflow changes (claude-review.yml)
  • Post findings

Summary

This PR is clean. No correctness bugs, security issues, type-safety problems, or Angular/RxJS pitfalls found.

Navigation / Search / Sidebar

Nav.tsxinitialMobileLibrary correctly validates against docsConfig (using find(...)?. id ?? 'langgraph') instead of the raw activeLibrary string. The useEffect syncing mobileLibrary on activeLibrary change is correct. The currentLib && guard at the section nav block protects all currentLib.* accesses. The demoUrl null-check refactor (if (!demoUrl) return;) is a minor type-safety improvement. The analytics call for special-page links correctly passes library: 'unknown' since those pages aren't library-scoped.

DocsSearch.tsxSearchablePage interface correctly makes library, section, and slug optional for special pages. The key={page.href} switch is correct (previous composite key depended on non-optional fields that are now optional). Default-results filter !library || !p.library || p.library === library correctly shows special pages in every library context. Optional chaining on description?.toLowerCase(), slug?.toLowerCase(), section?.toLowerCase() is correct.

DocsSidebar.tsxdata-active={pathname === page.path || undefined} correctly omits the attribute when the path doesn't match (standard React idiom). usePathname() import added alongside the existing useRouter() — correct.

Docs config and routes

docs-config.tstitle and description are now required on SpecialDocsPage. Both are used at construction time in search (description) and sidebar (title), so requiring them at the type level is correct.

site-metadata.ts — Sitemap fixed: /angular/langgraph, /ag-ui added. Correct.

positioning.tsLangGraph + AG-UI proof point links to /docs/choosing-an-adapter instead of the LangGraph-specific concepts page. Better entry point for the adapter decision.

Content and copy

Hero.tsx / Hero.spec.tsx — Install command updated to npm install @threadplane/chat @threadplane/langgraph. Spec updated to match new button text and clipboard value. Consistent.

ChatLandingCodeShowcase.tsx — The snippet now correctly shows provideAgent in the component's providers array and injectAgent() in the class field — the Angular DI pattern. Previously showed the old agent() call directly in the class field. Accurate.

llms.txt / docs/page.tsx / ag-ui/page.tsx / page.tsx — API names (injectAgent() over agent()), install commands, and licensing copy are consistent across all surfaces. AG-UI page correctly removes interrupt() from the shared-contract bullets since that's backend-dependent.

claude-review.ymlcontinue-on-error: true makes the advisory review non-blocking. --max-turns 30 gives more budget for docs-heavy PRs. Both appropriate.

One observation (non-blocking)

choosing-an-adapter/index.mdx still ends with "Both adapters are MIT-licensed and live in the same monorepo." The newly added "Chat quickstart" link sits directly below it. A reader scanning the page could conflate the licensing claim with @threadplane/chat. Worth a parenthetical like "(note: @threadplane/chat is commercially licensed for production)" on a future pass — not a blocker for this PR.

@blove blove merged commit 1492357 into main Jul 6, 2026
55 checks passed
@blove blove deleted the codex/threadplane-website-journey-alignment branch July 6, 2026 19:56
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