Commit Graph

166 Commits

Author SHA1 Message Date
Jordan Ritter 765baa3237 fix(shell-docs): point Integrations top-nav at the shell host (#4233)
## Summary

The top-nav "Integrations" link on shell-docs (and the inline link
inside `IntegrationGrid`) both pointed at `/integrations` on shell-docs
itself — a redundant framework-picker + matrix page that duplicated the
sidebar's framework selector. The real integration explorer (live demos,
filtering, feature browsing) lives on the shell app at `/integrations`.
This PR routes both links to the shell host instead.

## Changes

- `showcase/shell-docs/src/components/brand-nav.tsx` — top-nav
"Integrations" href is now `${NEXT_PUBLIC_SHELL_URL}/integrations`.
- `showcase/shell-docs/src/components/integration-grid.tsx` — inline
"See Integrations" href updated the same way.
- `showcase/shell-docs/next.config.ts` — adds `NEXT_PUBLIC_SHELL_URL`
build-time validation mirroring the existing `NEXT_PUBLIC_BASE_URL`
pattern: throws during `next build` if missing, warns in dev.
- `showcase/shell-docs/src/content/docs/integrations/index.mdx` —
deleted. The redundant page those links targeted. Legacy per-framework
subtrees under `integrations/*` are unchanged.

Components use a localhost:3000 dev fallback via
`process.env.NEXT_PUBLIC_SHELL_URL ?? "http://localhost:3000"` — matches
the existing dev-fallback pattern documented in `next.config.ts` for
`NEXT_PUBLIC_BASE_URL`. No hardcoded prod URLs in the code.

## Prod safety

`next build` fails loudly if `NEXT_PUBLIC_SHELL_URL` is unset. Since
`NEXT_PUBLIC_*` values are inlined at build time, a successful prod
build ships with the correct host baked in; the localhost fallback is
only reachable in dev.

## Test plan

With shell running at `http://localhost:3000` and shell-docs running at
`http://localhost:3003`:

- [ ] Hover the "Integrations" link in shell-docs' top nav — status bar
shows `http://localhost:3000/integrations`
- [ ] Click it — lands on the live `IntegrationExplorer` at
`localhost:3000/integrations`
- [ ] The inline "See Integrations" link rendered by `<IntegrationGrid
/>` (e.g. on `/prebuilt-components`) behaves the same way
- [ ] Visiting `/integrations` on shell-docs directly (e.g.
`http://localhost:3003/integrations`) 404s — the page was deleted
- [ ] Sidebar and other nav elements unchanged
2026-04-23 21:37:47 -07:00
Jordan Ritter 72381f81bc fix(showcase): ensure all build/dev/test/Docker paths generate data
Now that generated JSON is gitignored, every path that consumes these
files must run generators first. Fixes:

- shell: add bundle-demo-content to dev preamble (eliminates race
  between watcher and Next.js on fresh clone); add
  bundle-starter-content to Dockerfile RUN chain
- shell-dojo: add predev hook (generate-registry + bundle-demo-content)
- shell-docs: add predev hook (generate-registry + bundle-demo-content
  + generate-search-index)
- ops: replace direct COPY of gitignored registry.json with
  generate-registry.ts at build time (copy scripts+shared+packages,
  npm ci, run generator)
2026-04-23 21:13:21 -07:00
Jordan Ritter e772879b73 fix(showcase): gitignore generated data JSON and untrack committed blobs
Add */src/data/*.json patterns to showcase/.gitignore for all 4 shell
apps. Remove 11 tracked JSON blobs (~28K lines of generated content)
that were causing constant git noise from embedded timestamps and
leaking into PRs on every build/dev run.

Every build path (Docker, CI, npm run build, npm run dev) regenerates
these files — they never needed to be committed.
2026-04-23 21:13:12 -07:00
Jordan Ritter 58f95a08ae fix(showcase): strip generated_at timestamps from generators and consumers
Every generator embedded `generated_at: new Date().toISOString()` in its
output, causing constant git noise on every build/dev run even when
actual content was unchanged. Remove the field from all 4 generator
scripts, all consumer interfaces (Registry, BundledContent,
BundledStarters, DocsStatusBundle), inline type casts, and test
assertions.

Also: add shell-dashboard as a generate-registry output directory (it
was cross-importing from shell); move probe-docs output to
shell-dashboard/src/data/ (sole consumer); update test beforeAll to
generate files instead of restoring from git HEAD (prep for gitignore).
2026-04-23 21:12:32 -07:00
github-actions[bot] e95c55ceb8 style: auto-fix formatting 2026-04-23 22:39:43 +00:00
Sam Julien a5e5ef52a0 fix(shell-docs): route /integrations and /matrix to the shell host
Shell owns /integrations (live explorer) and /matrix (feature matrix),
mirroring shell's existing redirect table that sends /docs/*, /ag-ui/*,
/reference/*, and /<framework>/* to the docs host. Adds the reverse
redirects in shell-docs' next.config so /integrations and /matrix jump
out to showcase.copilotkit.ai at the edge.

Removes the redundant shell-docs framework-picker page at
showcase/shell-docs/src/content/docs/integrations/index.mdx. All internal
links can now use bare /integrations hrefs — the redirect handles the
cross-host jump in production, and in dev it 404s cleanly (no local
page to render). Legacy per-framework subtrees under integrations/* are
unchanged.
2026-04-23 15:38:20 -07:00
Sam Julien 75ee996608 docs(shell-docs): snippet-linking sweep — round 1 (prebuilt-components) (#4231)
## Summary

First round of the snippet-linking sweep: every code fence in shell-docs
should be a `<Snippet>` pointing to real showcase source, not
hand-written inline ```tsx.

Scope on this PR is **prebuilt-components + the unselected twin** — 4
commits, easy per-commit review.

### Commits

- `7efe08ae8` — **Strip hand-written fences from Styling sections** on
all 6 prebuilt-components pages (base + unselected ×
chat/sidebar/popup). Keeps the `## Styling` header, intro copy, and
bullet links to `/custom-look-and-feel/*`; drops only the duplicative
slot-override code.
- `157cdae57` — **Wording pass**: replace "showcase cell" references
with neutral phrasing ("the example below", etc.) across 21 files.
- `f6086011a` — **Snippet-ify the Code example section on both chat.mdx
pages.** Adds a new `@region[chat-component]` to
`showcase/packages/langgraph-python/src/app/demos/agentic-chat/page.tsx`
wrapping the existing `Chat` helper (hook + render). Hand-written tsx
fences on `docs/prebuilt-components/chat.mdx` and
`docs/unselected/prebuilt-components/chat.mdx` replaced with `<Snippet
region="chat-component">`. The three `demo-content.json` bundles are
regenerated to include the new region.
- `ef0823372` — **Snippet-ify variant code blocks on
`unselected/prebuilt-components/index.mdx`.** Three hand-written tsx
fences (CopilotChat, CopilotSidebar, CopilotPopup variants) become
Snippets pointing at `chat-component` (agentic-chat),
`sidebar-basic-setup` (prebuilt-sidebar), and `popup-basic-setup`
(prebuilt-popup). Drops the redundant Deep customization inline example
in favor of a link to the Slots guide.

### Showcase-source change

Only one: `@region[chat-component]` / `@endregion[chat-component]`
markers added around the existing `Chat` helper in
`showcase/packages/langgraph-python/src/app/demos/agentic-chat/page.tsx`
(2 lines, no runtime behavior change).

## Test plan

Run shell-docs at `localhost:3003`.

Prebuilt-components pages (clear framework selection to reach
`/unselected/*`):

- [ ] `/langgraph-python/prebuilt-components/chat` — Basic setup =
`provider-setup` Snippet; Code example = new `chat-component` Snippet
showing the full `Chat` function; Styling = header + intro + 3 bullet
links, no code
- [ ] `/langgraph-python/prebuilt-components/sidebar` — Basic setup =
`sidebar-basic-setup` Snippet; Configuring = `sidebar-configuration`
Snippet; Styling = header + intro + link, no code
- [ ] `/langgraph-python/prebuilt-components/popup` — Basic setup =
`popup-basic-setup` Snippet; Styling = header + intro + link, no code
- [ ] `/unselected/prebuilt-components/chat`, `/sidebar`, `/popup` —
same expected rendering as the langgraph-python variants

Index page (URL-only, not in sidebar):

- [ ] `/unselected/prebuilt-components` — 3 variant subsections
(CopilotChat, CopilotSidebar, CopilotPopup), each showing a real-source
Snippet block; Deep customization is a one-paragraph pointer to Slots,
no code
2026-04-23 14:38:34 -07:00
Sam Julien 161ca994d7 feat(shell-docs): Snippet-ify variant code blocks on unselected/prebuilt-components index
Replaces the three hand-written tsx fences (CopilotChat, CopilotSidebar,
CopilotPopup variants) with Snippet references pointing at real showcase
regions: chat-component in agentic-chat, sidebar-basic-setup in
prebuilt-sidebar, and popup-basic-setup in prebuilt-popup.

Also drops the redundant Deep customization inline example — the section
already links out to the dedicated Slots guide; a hand-written slot-pattern
example duplicates what that guide covers with real code. Shortened the
lead-in to point readers at Slots for runnable examples.

One fence remains on this page: the 'Setup' section's CSS stylesheet import,
a one-line CLI-style instruction with no corresponding showcase region.
Left inline as a legitimate snippet-linking exception (same pattern used
for npx commands).
2026-04-23 14:27:53 -07:00
Sam Julien 758bc5e464 feat(shell-docs): Snippet-ify Code example on prebuilt-components/chat pages
Replaces the hand-written tsx fence in the 'Code example' section of both
docs/prebuilt-components/chat.mdx and docs/unselected/prebuilt-components/chat.mdx
with a <Snippet> reference to a new chat-component region in the
langgraph-python agentic-chat demo source.

The new @region[chat-component] wraps the whole Chat helper function in
showcase/packages/langgraph-python/src/app/demos/agentic-chat/page.tsx,
so readers see a self-contained real-code component (hook + render) with
the view-source link that a Snippet provides.

Also regenerates the three demo-content.json bundles to include the new
region.
2026-04-23 14:27:53 -07:00
Alem Tuzlak 6dff6200e8 feat(showcase): wire open-gen-ui demos, update manifest and constraints
Declare open-gen-ui and open-gen-ui-advanced in langgraph-python
manifest (code existed, was never registered). Add both to
constrained-explicit allowlist, fill shell_docs_path for 5 demos,
add hitl-in-app override, drop stale chat-customization-css fallback.

Regenerate registry.json, demo-content.json, constraints.json,
and docs-status.json across shell / shell-dojo / shell-docs.
Bump feature/demo count assertion 30→32 in generate-registry test.
Extend check-binaries.sh whitelist for sister-shell demo-content.
2026-04-23 12:45:36 -07:00
Sam Julien 157cdae574 docs(shell-docs): wording pass — replace 'showcase cell' references with generic phrasing 2026-04-23 12:12:32 -07:00
Sam Julien 7efe08ae8c fix(shell-docs): strip hand-written code fences from Styling sections on prebuilt-components pages
Resolves former priority item 5. The Styling sections on the chat, sidebar,
and popup prebuilt-component pages (base + unselected/) each had an inline
tsx code fence that duplicated styling patterns already covered on the
dedicated /custom-look-and-feel/{css,slots,headless-ui} pages. Per Atai's
directive that every code fence in shell-docs should be a showcase-linked
Snippet, not hand-written, removing these fences is the right move here.

Section headers, intro copy, and bullet links to the dedicated styling
pages are preserved — those are legitimate pointers.
2026-04-23 11:53:32 -07:00
copilotkit-devops-bot[bot] 3b0f20d3fd chore: docs sync from main — needs review (2026-04-23) 2026-04-23 18:21:01 +00:00
Sam Julien 97c112df55 fix(shell-docs): fill empty stylesheet import fence on reference index
The Styling section referenced "import the stylesheet once at your app
boundary" but the fenced block was empty, leaving users with nowhere
to copy from.
2026-04-23 10:30:52 -07:00
Sam Julien 779bb10236 fix(shell-docs): move docs scrollbar to viewport edge
Previously <main> was both the scroll container AND width-capped
(`flex-1 max-w-4xl px-8 py-10 overflow-y-auto`). The scrollbar
rendered at the capped column's right edge, parking it mid-viewport
with a blank gutter beside it.

Separate the concerns: <main> is now full-width with the scroll, and
an inner <div> caps the content width and owns the padding. Scrollbar
now lands at the viewport edge (or TOC's left edge on pages that
render the right-rail TOC).

Applies to the four docs entry points that shared this pattern:
the root overview, the /<framework> landing + scoped pages, the
/ag-ui route, and the shared DocsPageView used by scoped docs.
2026-04-23 10:30:52 -07:00
Sam Julien 8fc126066b fix(shell-docs): account for BrandNav border in docs container height
The four docs flex containers used `calc(100vh - 52px)` to subtract the
top nav, but BrandNav is 52px flex content + 1px bottom border = 53px.
The 1px undercount made body overflow by exactly 1px and produced a
document-level scrollbar on top of the inner <main>'s own scroll.

The reference route already uses `calc(100vh - 53px)`; this aligns the
other four layouts with that convention.
2026-04-23 10:30:52 -07:00
Sam Julien cab83d3c21 feat(shell-docs): port platform pages from upstream
Adds multimodal-attachments, runtime-server-adapter, and vs-code-extension
pages under a new ---Platform--- section in meta.json. threads.mdx was
already in place and left untouched. fumadocs-ui import lines are stripped
since shell-docs pulls components from its MDX registry instead.
2026-04-23 10:30:52 -07:00
Sam Julien 386accd457 chore(docs): drop unnecessary agentId specs in built-in agent examples
When the runtime registers an agent as default, CopilotKit hooks auto-select
it; passing agentId: "default" (or a stale "assistant" ID that isn't
actually registered) is noise. Applies to built-in-agent/shared-state.mdx
and unselected/shared-state.mdx across shell-docs and upstream.
2026-04-23 10:30:52 -07:00
Sam Julien 2783d1aa11 chore(docs): switch built-in agent model to openai:gpt-5.4-mini
Goal: fast 'wow that's fast' initial experience for users trying the
built-in agent. Sweeps shell-docs unselected/ and upstream built-in-agent/
so both trees match. Also collapses two mismatched GPT-4o rows in the
model-selection table into a single honest 'GPT-5.4 Mini' row.
2026-04-23 10:30:52 -07:00
Sam Julien c1a861d0dd docs(shell-docs): revert LangGraph agent to LangChain agent in prose
LangChain wants to be referred to as LangChain in docs; LangGraph is the
under-the-hood graph framework. Updates prose only — URLs, package names,
code identifiers, and LangGraph Studio/Platform product names are preserved.
Upstream docs/ already reflects this change; this brings shell-docs into
alignment so the next sync does not regress.
2026-04-23 10:30:52 -07:00
github-actions[bot] e94aa1d4e1 style: auto-fix formatting 2026-04-23 16:16:22 +00:00
Jordan Ritter 9bce821779 feat(shell-dashboard): Phase 3 dashboard honesty pass
Phase 3.0: Pre-flight verified — 34 e2e_smoke rows in PB (producer
gap from PR #4200 resolved).

Phase 3.1: Rename dashboard e2e subscription to e2e_smoke to match
ops producer key. Update formatLabel/formatTooltip dim unions.

Phase 3.2: Add per-integration L1-L4 LevelStrip with Up/Wired/Chats/
Tools badges. New subscriptions for agent, chat, tools, e2e_smoke.
Widen aggregateConnection to variadic. Tools n/a gate uses
integration.demos.some(d => d.id === "tool-rendering").

Phase 3.3: Retire HealthDot from per-feature cells (L1 Up badge in
strip replaces it). Drop smokeRow from per-cell rollup (Decision #7).
Rollup now uses [healthRow, e2eRow] only. First-ever green rollups
enabled (smokeRow was always null in production).

Phase 3.4: Remove QA column — drop LiveBadge QA, CellState.qa,
subscription, legend entry. No producer ever existed.

Phase 3.5: Docs four-glyph mapping: ok->checkmark, missing->middle
dot, notfound->cross, error->exclamation. Each DocState has a
distinct glyph and tone.

Phase 3.6: Legend rewrite — drop QA/Hosted, add L1-L4 strip docs,
expand docs row for four glyphs, rewrite ? footnote.

Phase 3.7: Add PackagesSection below starters grid. Extends
registry.json with packages array from shared/packages.json. CI
drift test ensures package set matches integration set.
2026-04-23 09:14:05 -07:00
Sam Julien 85046381df docs-sync(needs-review): sync from main (189c45fb4) [NEEDS REVIEW] (#4119)
⚠️ **Docs sync — MANUAL REVIEW REQUIRED**

This PR was auto-opened because the docs-sync script detected
showcase-local modifications overlapping with upstream changes.

The script attempted a best-effort 3-way merge:

- Where `git merge-file` produced a clean merge, the merged content was
written.
- Where `git merge-file` produced conflict markers, **upstream content
was written as-is** and showcase-local modifications were overridden.
**Manual review required.**

### Review items

```
Files where 3-way merge FAILED — upstream content written as-is, local modifications overridden. Manual review REQUIRED before merging this PR:
  - docs/snippets/shared/generative-ui/tool-rendering.mdx

Files auto-merged via 3-way merge (clean, no conflict markers — still worth a glance):
  - docs/content/docs/integrations/langgraph/generative-ui/state-rendering.mdx
```

### Source

- Upstream ref:
[`189c45fb4`](https://github.com/CopilotKit/CopilotKit/commit/189c45fb4)
- Workflow run:
https://github.com/CopilotKit/CopilotKit/actions/runs/24736203326

**Review before merging.** Auto-merge is intentionally disabled
for `needs-review` PRs — confirm the upstream-wins sections
preserve any intentional showcase-local divergence you want to
keep, then merge manually.
2026-04-23 08:48:05 -07:00
Sam Julien 467fcfe06e fix(shell-docs): restore stripped import lines in reference docs
The initial shell-docs content-import left 21 reference pages with missing
import statements: 8 component pages had empty `## Import` code fences, and
13 hook pages had `## Signature` fences whose leading `import { X } from
"@copilotkit/react-core/v2";` line was stripped.

This commit restores the import(s) in the Import and Signature fences only.
Usage examples and other code blocks are intentionally not touched.

- 8 components: fill empty Import fence with named (or default for
  CopilotChatView) import + styles.css side-effect import
- 13 hooks: prepend import line(s) at the top of the Signature fence.
  - useComponent: 3 imports (z, type ComponentType, useComponent)
  - useRenderTool: imports injected into both Wildcard and Named overload fences
  - useCopilotChatConfiguration: imports injected into both Provider and
    hook ### Signature subblocks
2026-04-23 08:34:37 -07:00
Sam Julien fe76378ca0 fix(shell-docs): hide TOC on integrations matrix page 2026-04-23 08:34:37 -07:00
github-actions[bot] a8b08ab49d style: auto-fix formatting 2026-04-23 08:34:37 -07:00
Sam Julien bc65153aa9 docs(shell-docs): add intro sentences before code examples that directly follow headings 2026-04-23 08:34:37 -07:00
Sam Julien 795b0a9115 fix(shell-docs): strip all hardcoded IntegrationGrid headings from MDX files 2026-04-23 08:34:37 -07:00
Sam Julien 4f7530002b fix(shell-docs): remove duplicate backend header on index page 2026-04-23 08:34:37 -07:00
Sam Julien cc4a22e6ed feat(shell-docs): add table of contents (TOC) support 2026-04-23 08:34:37 -07:00
Sam Julien 1644fb8422 fix(shell-docs): align index page card styles to site CSS variables 2026-04-23 08:34:37 -07:00
Sam Julien 224871e135 fix(shell-docs): move 'Choose your AI backend' heading into IntegrationGrid component 2026-04-23 08:34:37 -07:00
Sam Julien e36792d04b fix(shell-docs): hide IntegrationGrid on framework-scoped routes 2026-04-23 08:34:37 -07:00
Sam Julien 81dced2e8e docs(shell-docs): add bridging text between InlineDemo and gif on prebuilt component pages 2026-04-23 08:34:37 -07:00
Sam Julien 1ad171b620 docs(shell-docs): writing pass to remove em-dash overuse and fix hardcoded framework references
Replace em-dashes in prose across ~37 shell-docs files with appropriate
punctuation (colons, semicolons, commas, parens, periods). Also fixes a
hardcoded "LangGraph Python" reference in quickstart.mdx bridging text,
adds a user-friendly placeholder when no framework is selected on snippet
pages, and makes heading code font size proportional rather than fixed.
2026-04-23 08:34:37 -07:00
Sam Julien 824553b251 chore(showcase): update generated data and quickstart default integration
- Update registry.json, demo-content.json, status.json, constraints.json,
  docs-status.json across shell/shell-docs/shell-dojo
- Add integration="langgraph-python" default to quickstart InlineDemo so
  the base unscoped page shows a demo instead of being empty
2026-04-23 08:34:37 -07:00
Sam Julien b7090a5d07 feat(shell-docs): build real feature matrix, fix card underlines, add backend intro
- Replace FeatureMatrix stub with a real server-rendered table reading from
  registry — 17 integrations × 12 curated feature columns, sticky first column,
  ✓/— cells, integration names link to /{slug} landing pages
- Fix matrix links from /integrations/{slug} (404) to /{slug}
- Remove redundant "Feature comparison" section from index.mdx (FeatureMatrix
  was a stub pointing to same destination as IntegrationGrid)
- Add .reference-content .not-prose a rule to suppress underlines on card grids
  inside MDX without breaking prose link styling
- Add intro sentence to "Explore by AI backend" section
2026-04-23 08:34:37 -07:00
Sam Julien 9582d4770a fix(shell-docs): fix empty FeatureIntegrations and matrix 404
- Correct 3 mismatched feature IDs in MDX (generative-ui-tool-based ->
  gen-ui-tool-based, frontend-tools-sync -> frontend-tools, reasoning ->
  agentic-chat-reasoning) so FeatureIntegrations renders integration chips
- Remove stale 'matrix' from RESERVED_ROUTE_SLUGS (no app/matrix/ route exists)
- Replace broken /matrix links in IntegrationGrid and search-modal with /
  since the matrix lives in shell-dashboard, not shell-docs
2026-04-23 08:34:37 -07:00
Sam Julien 4873761c2e Merge branch 'main' into docs-sync/needs-review/189c45fb4-1776791837 2026-04-22 19:04:59 -07:00
Jordan Ritter 8db7b211a4 fix(shell-docs): resolve findFrameworksWithCell + SidebarLink scope type errors
Two pre-existing type errors from commit 9b05ed41 surfaced on main's
Docker build:

1. `unscoped-docs-page.tsx` imports `findFrameworksWithCell` from
   `@/lib/docs-render`, but the helper was only declared locally in the
   two page.tsx routes with a 1-arg signature (and referenced an
   undeclared `demos` in one case — dead code). Export a 3-arg shared
   version from docs-render.tsx that accepts the integration slug list
   and demo map as parameters (keeps the lib free of registry imports),
   drop the dead local in `[[...slug]]/page.tsx`, and rewire the live
   caller in `[framework]/[[...slug]]/page.tsx` through the shared
   export.

2. The Step-2 section cards on the overview call `<SidebarLink>`
   without the required `scope` prop. The prop was already ignored
   internally (destructured as `_scope`) so relaxing it to optional is
   the minimal fix and keeps the call-site intent documented.

`npm run build` in showcase/shell-docs now compiles cleanly.
2026-04-22 12:16:38 -07:00
Sam Julien 1d1ed63a6b Merge remote-tracking branch 'origin/docs-sync/needs-review/189c45fb4-1776791837' into docs-sync/needs-review/189c45fb4-1776791837 2026-04-22 11:23:14 -07:00
Sam Julien 8e2c4c3488 Merge remote-tracking branch 'origin/main' into docs-sync/needs-review/189c45fb4-1776791837
# Conflicts:
#	showcase/shell-docs/src/content/docs/learn/index.mdx
2026-04-22 11:12:48 -07:00
Jordan Ritter 9b05ed41b3 feat(showcase/shell-docs): error boundary consolidation + docs components
Drop error-boundary-card in favour of Next.js error.tsx at each route,
refresh docs components (brand-nav, docs-callout, docs-page-view,
docs-steps, docs-tabs, framework-provider/selector/tabs,
property-reference, router-pivot, sidebar-link, snippet), update
docs-render + mdx-registry + reference-items for the new QA shape.
2026-04-22 11:00:46 -07:00
github-actions[bot] e713ad2a07 style: auto-fix formatting 2026-04-22 11:20:02 +00:00
Alem Tuzlak 06d24fd8ba Merge remote-tracking branch 'origin/main' into fix/scrub-open-gen-ui
The scrub and #4084 touched the same surface: #4084 re-added an `open:`
generative_ui profile listing `open-gen-ui`/`open-gen-ui-advanced`, and
re-added both features to `constrained-explicit.allowed`. Extending the
branch's scrub to both re-additions keeps the semantic consistent with
the schema (which already dropped `open` from the approaches enum).

- `showcase/shared/constraints.yaml`: drop `open-gen-ui` +
  `open-gen-ui-advanced` from `constrained-explicit.allowed`; drop main's
  re-added `open:` profile entirely.
- `showcase/packages/langgraph-python/manifest.yaml`: drop the now-orphan
  `open-gen-ui` + `open-gen-ui-advanced` feature and demo entries
  (validator confirmed they had no allowed approach left).
- Regenerated `showcase/shell/src/data/registry.json` + sibling
  `shell-docs`/`shell-dojo` registries and `constraints.json` via
  `pnpm --dir showcase/scripts generate-registry`. All 17 integrations
  validate.

`feature-registry.json` intentionally still defines both features — the
original scrub commits (2b996c54d, 27f886e59) left it untouched, so the
demo source files on disk also stay. Follow-up deletion if desired is
out of scope for this merge.
2026-04-22 13:17:34 +02:00
Sam Julien 8c4d0c36f9 fix(shell-docs): remove stale 'integrations' from RESERVED_ROUTE_SLUGS
There is no app/integrations/ route, so the reservation was causing
/integrations/... URLs to 404. Without it, these paths fall through to
UnscopedDocsPage via the non-integration fallthrough in [framework].
2026-04-21 17:35:01 -07:00
Sam Julien b37a3043e6 fix(shell-docs): remove hardcoded langgraph-python from main docs MDX
Strip snippet_framework: langgraph-python from frontmatter and
integration="langgraph-python" from all InlineDemo tags in the
main docs tree (27 files). On framework-scoped pages frameworkOverride
drives Snippet and InlineDemo; on unscoped pages FrameworkGuardedContent
already hides the body until a framework is selected, so no default
is needed.
2026-04-21 17:35:01 -07:00
github-actions[bot] a043aa5ba0 style: auto-fix formatting 2026-04-21 17:35:01 -07:00
Sam Julien a265cc7d48 fix(shell-docs): skip root-flagged dirs from parent nav tree
buildNavTree now checks meta.root before including a subdirectory,
so unselected/ (and any other root:true directory) is excluded from
the main nav tree. This eliminates the flicker where SidebarLink
generated /langgraph-python/unselected/coding-agents and the
[framework] route had to server-redirect to the correct scoped URL.
2026-04-21 17:35:01 -07:00
Sam Julien 64aa05d1b8 fix(showcase/shell-docs): rewrite MDX body links to framework-scoped URLs
On framework-scoped pages, MDX links like /quickstart rendered as plain
<a href="/quickstart"> causing RouterPivot redirect flicker. Override the
MDX `a` component when frameworkOverride is set to prepend the framework
prefix to root-relative internal links.
2026-04-21 17:35:01 -07:00