Commit Graph

650 Commits

Author SHA1 Message Date
Jordan Ritter ef3e59643b fix(showcase): update fixture routing tests for per-integration D6 layout
The four fixture routing regression tests still referenced the old
monolithic d5-all.json / smoke.json / feature-parity.json files that
were reorganized into per-integration d4/ d6/ shared/ directories.

Changes:
- Load fixtures via glob from d6/langgraph-python/ (reference
  integration) instead of deleted monolithic files
- Add _context to test requests (aimock 1.26.1 checks req._context
  against match.context for per-integration scoping)
- Adapt subagents test from toolCallId-based chaining to
  turnIndex-based chaining (matches new D6 fixture structure)
- Adapt state-context test to D6 context-scoping model (no
  systemMessage matching; routing happens via X-AIMock-Context)
- Remove _migrated-from-*.json shared files (all fixtures already
  exist in per-integration D6 dirs; the migration files caused
  620 shared-vs-scoped collisions)
- Add KNOWN_DUPLICATE_CEILING=11 ratchet for pre-existing D6
  intra-feature duplicate match keys
2026-05-26 11:54:06 -07:00
Jordan Ritter 781ed8b045 chore(showcase): D6 scripts, fixture tests, and docs
Add fixture analysis/split/merge scripts for the D6 restructure,
update aimock fixture collision detection tests for the new directory
layout, update GOTCHAS.md and QA-COVERAGE.md with D6 notes, and
add --d6 flag support to the showcase test CLI.
2026-05-26 11:26:37 -07:00
Martha Schumann d2934c149d Merge remote-tracking branch 'origin/main' into fix/showcase-docs-rendering 2026-05-26 10:36:52 -07:00
Martha Schumann 75334a1c78 fix(shell-docs): address review feedback on checkComponentImports
Derive snippet component names from SNIPPET_MAP in docs-render.tsx at
runtime instead of maintaining a hardcoded 35-entry set that was already
13 entries behind. Replace name-level handledByInline gate with per-match
inline pattern check to fix a false-negative path. Align function
signature with sibling check functions. Add 3 unit tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-26 10:31:41 -07:00
Martha Schumann b02a0f6db5 fix(shell-docs): fix broken prebuilt-components and HITL code examples across 6 integrations
6 prebuilt-components pages were missing their PrebuiltComponents import,
causing the inlineSnippets regex to skip them and drop the framework prop
(iframe URLs defaulted to langgraph). 8 HITL pages had copy-pasted code
examples using the deprecated v1 parameters array format instead of Zod
schemas. Added a component-imports validation check to verify-shell-docs.ts
to catch missing snippet imports going forward.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-26 09:59:28 -07:00
Jordan Ritter 381fb23994 chore(showcase): bump copilotkit to 0.1.91 in Python integrations
Picks up _extract_forwarded_headers_from_config from PR #4984, now
shipped as copilotkit 0.1.91 on PyPI. Three Python integrations move
forward together: langgraph-python, strands, langgraph-fastapi.

Updates validate-pins ratchet hash (count stays 106, FAIL set shifted
because showcase pins now diverge from Dojo on 0.1.91 vs 0.1.87).

Showcase auto-redeploys to Railway on merge via showcase_build.yml
(path filter showcase/**).
2026-05-26 09:21:43 -07:00
Jordan Ritter e9f0587d20 chore(showcase): bump validate-pins ratchet for D6 version bumps
Re-bump on top of main's new 102 baseline (PR #4985 absorbed the
pre-existing 9-FAIL drift). Our PR adds 4 intentional version-pin
divergences from Dojo (copilotkit 0.1.87 -> 0.1.90 in three Python
integrations, ag-ui-langgraph from ==0.0.34 to >=0.0.35 in
langgraph-fastapi), bringing the total to 106.

The ag-ui-langgraph and copilotkit catch-up will reduce this back
down once both release pipelines complete and Dojo reference
examples pick up the new versions.
2026-05-22 14:38:52 -07:00
Jordan Ritter cb086c0794 chore: update showcase pin-drift baseline to 102 2026-05-22 14:11:04 -07:00
Alem Tuzlak c9ec6ee735 fix(showcase): resync scripts lockfile after aimock 1.26.1 bump
PR #4956 bumped @copilotkit/aimock in showcase/scripts/package.json
from "latest" to "1.26.1" but did not regenerate package-lock.json
(still pinned to 1.16.4). This broke the Showcase Docker builds for
showcase-harness and shell-dashboard, since both run `npm ci` inside
showcase/scripts/ and `npm ci` fails on out-of-sync lockfiles.
2026-05-21 15:02:26 +02:00
Alem Tuzlak 551d6a5746 fix(showcase): stabilize ms agent demo fixtures 2026-05-21 14:15:33 +02:00
Tyler Slaton 96755476d0 chore(showcase/scripts): drop migration-only audit pipeline
These scripts existed solely to sanity-check the v1-docs → shell-docs
cutover during this PR. The cutover is now landed, so the audit
pipeline has no further job:

Removed
  - audit-docs-porting.ts (+ test) — produced per-framework JSON
    summaries of what still needed porting. Referenced only by its
    own package.json script entry and a comment in
    verify-shell-docs.ts.
  - split-baseline.mjs — orphan helper that read
    audit-output/_summary.json + verify-baseline.txt and wrote
    per-framework .baseline.txt files. Not in package.json, not in
    any workflow.
  - lib/component-mapping.ts — 80-row v1-component → v2-strategy
    table. Zero consumers anywhere in the repo (verified via
    `grep -rln "component-mapping\|COMPONENT_MAPPING"`).
  - audit-output/.gitkeep + showcase/scripts/.gitignore — the
    .gitkeep was a placeholder for the audit pipeline's output
    directory; the .gitignore's three entries (audit-output/*.json,
    audit-output/*.baseline.txt, verify-baseline.txt) all referenced
    files only produced/consumed by the deleted scripts.
  - audit-docs-porting script entry in showcase/scripts/package.json.
  - The comment cross-reference to audit-docs-porting.ts in
    verify-shell-docs.ts's fenced-code-strip rationale.

Kept (still actively useful)
  - verify-shell-docs.ts (+ test) — ongoing docs validator wired into
    `pnpm verify-shell-docs`; catches dead inline-demo refs, unknown
    snippet regions, broken internal links, and unresolved alias
    imports.
  - lib/essential-content.ts (+ test) — page-shape rule engine
    consumed by verify-shell-docs.
  - probe-shell-docs.ts — URL-coverage crawler (not in package.json
    but runnable via `tsx`; kept as a one-off utility).

Net diff: 905 lines removed, 1 line touched (verify-shell-docs.ts
comment update). Tests: 594/594 passing across 27 files in
showcase/scripts. Parity: exit 0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 13:19:24 -07:00
Tyler Slaton 1a534ba9dd Merge remote-tracking branch 'origin/main' into tyler/laughing-burnell-67b26b
# Conflicts:
#	showcase/integrations/strands/package-lock.json
2026-05-20 12:55:00 -07:00
Tyler Slaton 57221e2d41 fix(showcase/scripts): correct stale 'not yet registered' notes in component-mapping
Five component-mapping entries (A2UI, MigrateTo1100, MigrateTo182,
MigrateToV2, SelfHosting) carried `notes: '...needs shim stub'` while
all five are already registered as `stubWithPartial(...)` entries in
shell-docs/src/lib/mdx-registry.tsx (lines 472, 477-480). The
PydanticAIIcon entry also claimed it was an "emoji shim (🐍)" when
mdx-registry.tsx:527 resolves it to the real PydanticAiIcon SVG.

The stale notes would mislead anyone using component-mapping.ts as a
TODO list — they'd duplicate already-completed shim work or assume
PydanticAIIcon was a placeholder when the real icon is shipping.

This is a comments-only correction; the `kind` and `target` fields
remain unchanged so the mapping's behavior is identical.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 12:06:31 -07:00
Tyler Slaton 7e1ec07b70 fix(shell-docs): CR Round 1 bucket-a fixes — content + nav + MDX overrides + script hardening
Six fixes from CR Round 1 partition, all bucket (a):

- frontend_tools.py: docstring claimed the file was "Chat Customization
  (CSS) demo" but langgraph.json wires it as the Frontend Tools demo
  graph, and the new MDX setup snippets cite this exact file via the
  freshly-added `# region: middleware` markers. Users following the
  langgraph-python copilot-middleware setup would see CSS-demo wording
  on a Frontend Tools page. Rewrote the docstring to match what the
  cell actually demonstrates (mirroring the sibling
  frontend_tools_async.py phrasing).

- page.tsx mergeFrameworkNav: when introNode was non-null AND the root
  nav had no "Get Started" section, introNode was prepended to rootNav
  shifting every existing index +1. The adjustment block only added +1
  when getStartedIdx !== -1, so the splice-back position for the
  framework section was off-by-one in the no-Get-Started branch — the
  framework header rendered one slot too early in the sidebar.

- docs-page-view.tsx h2/h3 overrides: `{...rest}` was spread AFTER
  `id={id}`, so an MDX-supplied `<h2 id="custom">` would override the
  slugified id and silently break the TOC anchor + any inbound deep-
  links keyed on the slug. Reordered the spread so rest comes first
  and the slug-id always wins.

- probe-shell-docs.ts: terminated with bare `main();` while every
  sibling script (audit-docs-porting, verify-shell-docs) wraps in
  `.catch(e => { console.error(e); process.exit(1); })`. A rejected
  main() would surface as an unhandled rejection on older Node
  runtimes and exit 0 in CI, masking failure. Aligned with the
  established pattern.

- verify-shell-docs.ts: all four regex checks (InlineDemo refs,
  Snippet regions, internal links, alias imports) scanned page.body
  raw without first stripping fenced code blocks. Any docs page that
  showed example code containing `<InlineDemo demo="x" />`,
  `[link](/path)`, or `import x from "@/..."` triggered a false-
  positive validator failure. Mirrors audit-docs-porting.ts's
  FENCED_CODE_RE approach. Adds a regression test that fails without
  the strip.

- 3 new MDX content fixes:
  * mcp-apps.mdx + open-generative-ui.mdx: removed duplicate `<Callout>`
    "Free course" blocks (the same Callout appeared twice on each
    page, separated only by the Key Benefits list).
  * subagents.mdx: changed `[OnStateChanged, OnRunStatusChanged]` to
    `[UseAgentUpdate.OnStateChanged, UseAgentUpdate.OnRunStatusChanged]`
    — the bare identifiers aren't exported (the reference doc
    `useAgent.mdx` confirms the qualified form), so a user copying
    the snippet would hit an import error.

Call-site enumeration:
  - frontend_tools.py: only langgraph.json + the new setup MDX files
    reference this file by name; both consume the region markers, not
    the docstring. Docstring rewrite has zero call-site impact.
  - mergeFrameworkNav: single caller (FrameworkScopedDocsPage at this
    file's bottom). The new branch covers a strictly broader case;
    the original splice/replace paths are unchanged.
  - h2/h3: only used by the MDXRemote `components` map below. Spread
    order is a local prop-precedence change; no upstream callers.
  - probe-shell-docs main(): no external callers.
  - verify-shell-docs check functions: 4 exported functions called
    from runChecks() below + the test file. Strip is internal to each
    function so signature is unchanged.
  - UseAgentUpdate: confirmed exported from `@copilotkit/react-core/v2`
    per reference doc useAgent.mdx; no implementation change needed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 12:02:42 -07:00
github-actions[bot] 32737977f7 style: auto-fix formatting 2026-05-20 18:07:03 +00:00
Alem Tuzlak 00c9bc5c2e chore: ratchet showcase validate-pins baseline 95 → 93
Pinning `@copilotkit/*` to `1.57.2` exactly in `ms-agent-python`
(commit 1d40071d8) reduced the FAIL count from 95 to 93. CI's
validate-pins step asked us to ratchet the baseline down.

baselineDemoCount unchanged.
2026-05-20 14:27:34 +02:00
Tyler Slaton c37da7ecb5 feat(showcase): probe-shell-docs.ts URL coverage crawler
Adds a verification script under showcase/scripts/ that enumerates
every URL each visible framework should serve, fetches each against
a running dev server, and flags 404s + soft render failures via
structural signals (`<main>` + `<h1>` present in the SSR HTML).

Coverage: 17 visible frameworks = 14 registered integrations
(filtering docs_mode: hidden) + 3 docs-only frameworks (a2a /
agent-spec / deepagents — root URL only, since their route handler
explicitly notFound()s scoped subpaths). 618 URLs in the current
tree. Used by the cutover to confirm every authored framework's
ported MDX, every generated framework's data-driven layout, and
every hidden framework's 404 + switcher absence all render as
intended.

Design notes:
- Text matches against runtime/MDX error strings false-positive
  consistently in dev mode (Next.js bundles helper sources like
  MDXRemote and the not-found component into every page's
  serialized React tree, so "MDXRemote ... error" or
  "page could not be found" appear in every successful page's
  HTML). Structural signals are reliable; text patterns aren't.
- For docs-only frameworks, only the root URL is probed.
  Enumerating their MDX tree would produce false-positive 404s
  because the route handler intentionally restricts them to
  `/<slug>`.

Usage: `cd showcase/scripts && PREVIEW_URL=http://localhost:3003 \
npx tsx probe-shell-docs.ts`. CONCURRENCY defaults to 8.
2026-05-19 18:38:36 -07:00
Tyler Slaton 00af36c472 docs(showcase): worker prompt and baseline-split helper for Phase 1 blitz
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 14:08:09 -07:00
Tyler Slaton fc364337c9 feat(showcase): add v1 component mapping table + legacy shim barrel
Maps all 77 JSX components from the Phase 0 audit to either
use-existing (74 entries) or shim (5 entries: A2UI, MigrateTo1100,
MigrateTo182, MigrateToV2, SelfHosting). Creates the legacy/index.ts
barrel scaffold that Task 13 will populate with shim implementations.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 13:59:31 -07:00
Tyler Slaton 8508073bd3 feat(showcase): add essential-content checklist and wire into verifier
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 13:47:10 -07:00
Tyler Slaton c63161018a fix(showcase): strip route-group segments in shell-docs verifier known-routes
Fumadocs/Next.js route groups like (other) are stripped from URL paths, so
a file at (other)/telemetry.mdx is served at /telemetry. loadKnownRoutes()
now filters those segments before registering routes, eliminating false-positive
dead-link failures for pages inside route-group directories.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 13:44:28 -07:00
Tyler Slaton a251e21126 feat(showcase): shell-docs verifier CLI runs all checks against real repo state
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 13:41:49 -07:00
Tyler Slaton c573fd0622 feat(showcase): verifier checks @/snippets and @/components import paths 2026-05-19 13:36:34 -07:00
Tyler Slaton c485ec8981 feat(showcase): verifier checks internal markdown links against known routes 2026-05-19 13:36:04 -07:00
Tyler Slaton 4a56b958dc feat(showcase): verifier checks <Snippet> regions against demo-content 2026-05-19 13:35:32 -07:00
Tyler Slaton 11a351d4b9 feat(showcase): verifier checks <InlineDemo> ids against registry 2026-05-19 13:34:56 -07:00
Tyler Slaton b0a370b41b docs(showcase): clarify REPO_ROOT derivation in shell-docs verifier 2026-05-19 13:32:58 -07:00
Tyler Slaton 52ffd2ee8a feat(showcase): scaffold shell-docs verifier with nx build check
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 13:31:07 -07:00
Tyler Slaton de9ecd32cc fix(showcase): make docs-porting audit resilient to unreadable MDX files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 13:29:18 -07:00
Tyler Slaton 245a77e768 feat(showcase): add CLI entry for docs-porting audit and run end-to-end
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 13:26:25 -07:00
github-actions[bot] 2843f61581 style: auto-fix formatting 2026-05-19 20:25:47 +00:00
Tyler Slaton e4b52861a5 fix(showcase): strip code blocks and dedup snippet imports in MDX reference extraction
Fenced code blocks are now stripped before extracting JSX component
references so samples inside ``` blocks don't get counted as real
component refs. snippetImports is deduplicated via a Set consistent
with how components are handled.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 13:24:15 -07:00
Ran Shem Tov 6389d5111b chore: refresh showcase validate-pins hash after main merge 2026-05-19 15:23:01 -05:00
Tyler Slaton 23f562afb5 feat(showcase): extract MDX component refs and snippet imports in porting audit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 13:21:42 -07:00
Tyler Slaton 9a74927635 fix(showcase): normalize line endings and clean up tempdirs in docs-porting audit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 13:19:51 -07:00
Tyler Slaton 3e4eac44d9 feat(showcase): add per-framework page diff to docs-porting audit 2026-05-19 13:16:04 -07:00
Tyler Slaton ef991db232 fix(showcase): export READY_SLUGS and drop brittle length assertion in docs-porting audit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 13:13:51 -07:00
Tyler Slaton aef5637aa6 feat(showcase): scaffold docs-porting audit script with unready-framework enumeration 2026-05-19 13:10:42 -07:00
github-actions[bot] a3654c3f08 style: auto-fix formatting 2026-05-19 17:04:12 +00:00
Ran Shem Tov 00ce3a9332 chore: ratchet showcase baseline to 95 + sync strands lockfile 2026-05-19 11:45:34 -05:00
Alem Tuzlak a98c591044 chore(showcase): ratchet validate-pins baseline 95 -> 105
Main has been red on Validate Showcase since #4912 landed
("bump deps to v1.57.2") -- that PR bumped Dojo's @copilotkit/*
pins to 1.55.2 which exposed 10 new showcase=next vs Dojo=1.55.2
mismatches across ms-agent-python, pydantic-ai, and strands.

The count on origin/main is also 105 (verified against run
26082332924's logs); my branch produces an identical 105 FAIL set
with matching hash. So this ratchet absorbs unrelated drift from
#4912 -- needed to unblock CI for this PR (and every other PR
that touches showcase/).

Sign-off: this is a documented baseline ratchet per the fail
threshold instructions in fail-baseline.json's _comment field.
2026-05-19 12:50:28 +02:00
Tyler Slaton b30e01ad81 feat(shell-docs): adopt Fumadocs UI + floating sidebar + Shiki code chrome
Rebuild the shell-docs chrome on top of Fumadocs UI primitives and ship the
visual polish pass that replaces the legacy custom chrome.

- Fumadocs adoption: route every docs page (home, framework-scoped, ag-ui)
  through a shared ShellDocsLayout that wraps DocsLayout / DocsPage with
  the project's nav slot, sidebar config, scroll preserver, and content
  wrapper. Swap custom tabs/code-block components for Fumadocs's Tabs,
  CodeBlock, Pre, CodeBlockTabs, DynamicCodeBlock — Snippet and DemoSource
  now share the same chrome as authored fenced blocks.
- Syntax highlighting: replace rehype-highlight + hand-rolled hljs CSS
  with Fumadocs's Shiki-based rehypeCode in all three MDX renderers and
  in mdx-registry-loader. A tiny `transformerMeta` Shiki transformer
  surfaces fence title= / language as data-attrs so MdxCodeBlock can
  render the file-path figcaption + floating copy button.
- Sidebar: floats on all four viewport edges (rounded-2xl, 0.75rem inset,
  light-gray border), framework picker pill is rounded-xl with symmetric
  padding above/below, sticky picker bg matches the panel surface.
  Section headers render in normal caps (no more uppercase shouting), with
  scroll position preserved across navigations via SidebarScrollPreserver.
- Navbar: bg flips to `--bg`, full-width inset matches the sidebar,
  search trigger drops its border and the entire right-wing pill is the
  click target.
- Code chrome: figure surface forced to plain white in light and the
  matching dark in dark, shadow stripped, figcaption divider uses
  `--border` (was `currentColor` from `text-fd-muted-foreground`). Scoped
  the `.reference-content code` chip-bg rule to `:not(pre)` so block
  code bodies no longer pick up the gray inline-chip background.
- Content area: 49px (3.0625rem) of left/right padding so the article
  column has visible breathing room from both the floating sidebar and
  the viewport edge.
- IA: meta.json restructure for /docs (Build Generative UI section,
  controlled/declarative/open-ended folders, A2UI lifted to its own
  folder with an index page, Migrate moved under Other), Concepts content
  rewrite, snippet/region cleanups.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:20:48 -07:00
Ben Taylor a92d9e5e9a ci(docs-sync): exclude shell-docs deliberate-deletion paths from upstream sync (#4800)
## Summary

Adds shell-docs deliberate-deletion / divergent paths to
`PATH_EXCLUSIONS` in `showcase/scripts/sync-docs-from-main.ts`, so the
docs-sync workflow doesn't keep re-proposing them as upstream-wins
conflicts.

PR #4771 surgical review surfaced two clusters worth excluding now.

## Paths added

### Cluster 1: deliberately-deleted landing pages (5 paths)

- **`(root)/index.mdx`** + **`(root)/quickstart.mdx`** — collapsed into
a single shell-docs `/` route in commit `8adbebd30` ("merge docs landing
+ /quickstart picker").
- **`(root)/prebuilt-components.mdx`** — top-level single-file version
is duplicative of the `prebuilt-components/` directory + index.
- **`integrations/langgraph/index.mdx`** +
**`integrations/microsoft-agent-framework/index.mdx`** — framework
landing files collapsed into the canonical `/<framework>/` route in
commit `d1cd9f06a` ("collapse framework landing into shell").

### Cluster 2: reference/v2/* duplicates (5 paths)

- **`reference/v2/index.mdx`** + 4 component/hook files
(`components/CopilotChat.mdx`, `components/CopilotKit.mdx`,
`hooks/useCopilotKit.mdx`, `hooks/useThreads.mdx`)

Shell-docs's canonical reference path is
`showcase/shell-docs/src/content/reference/**` (no `v2` segment, no
`docs/` prefix). The upstream `docs/content/docs/reference/v2/*` files
mirror that content under a parallel `docs/`-prefixed path that doesn't
exist in shell-docs's routing. Syncing them in creates duplicate
parallel files.

## Scope

10 paths total. Other contested DROPs from #4771 (`shared-state.mdx`,
`a2ui.mdx`, `threads.mdx`, `premium/self-hosting.mdx`) were re-evaluated
and the bot's versions were either taken into PR #4771 or held pending
follow-up work — none are permanent exclusions, so they're NOT in this
PR.

## Test plan

- [ ] Next docs-sync workflow run does not flag these 10 paths as
conflicts
- [ ] Existing exclusions still work (no regression in current behavior)
2026-05-13 12:59:03 -05:00
Sam Julien 847deedbde ci(docs-sync): also exclude reference/v2/* (duplicates of canonical reference/)
Follow-up to PR #4771 surgical sync. The upstream reference/v2/* files
mirror shell-docs's canonical reference/ tree under a parallel
docs/-prefixed path that doesn't exist in shell-docs's routing. Syncing
them in creates duplicate parallel files. Block them from future sync
runs.

Per-file follow-up captured separately: mirror any legitimate content
updates from upstream's reference/v2 into the canonical reference/ tree
as needed (notably useCopilotKit.mdx, where the upstream version had 66
more lines than the current canonical).
2026-05-13 09:59:23 -07:00
Sam Julien 7701495710 ci(docs-sync): exclude shell-docs deliberate-deletion paths from upstream sync
The docs-sync workflow propagates upstream docs/content/docs/** changes
into showcase/shell-docs/src/content/docs/**. When shell-docs has
deliberately deleted/restructured pages, the existing PATH_EXCLUSIONS
mechanism prevents re-introduction.

PR #4771 surgical review surfaced 5 deliberate-deletion paths missing
from the exclusion list:

- (root)/index.mdx + (root)/quickstart.mdx — collapsed into a single
  shell-docs '/' route in commit 8adbebd30 ('merge docs landing +
  /quickstart picker').
- (root)/prebuilt-components.mdx — top-level single-file version is
  duplicative of the prebuilt-components/ directory + index.
- integrations/{langgraph,microsoft-agent-framework}/index.mdx —
  framework landing files collapsed into the canonical /<fw>/ route in
  commit d1cd9f06a ('collapse framework landing into shell').

Adding these to PATH_EXCLUSIONS so future docs-sync runs don't re-flag
them as upstream-wins conflicts.
2026-05-13 09:35:23 -07:00
Alem Tuzlak 9df97ee23b fix(showcase): refresh validate-pins ratchet hash after ADK demo set shift
The previous commit fixed the universal ADK loop + agent renames + A2UI
shape, which changed the pin-status of ~half of the google-adk demos in
the validate-pins matrix. Total FAIL count is unchanged at 95 (no
regression elsewhere), but the SET of failing tuples drifted, which the
ratchet correctly caught.

Updates validatePinsFailHash to the new sorted-failing-set SHA from the
CI run (62e06e1e...0b04d5e0). No baseline count change — `_comment`
explicitly forbids raising the count without sign-off.
2026-05-13 17:19:28 +02:00
Tyler Slaton 546f5f31ee Merge branch 'main' into tyler/distracted-mahavira-f58182 2026-05-12 22:05:14 -07:00
Tyler Slaton 2f7df90a02 fix(showcase/google-adk): unbreak shell build + ratchet validate-pins to 95
CI surfaced two issues with PR #4792:

1. shell/shell-dojo/shell-docs build-check: the bundler walks the
   manifest's `highlight:` list when bundling demo source for the
   shell's Code tab. Three paths were stale after the parity blitz
   restructured the demos:
   - chat-slots: custom-welcome-screen.tsx → slot-wrappers.tsx (LP's
     current highlight; the old file was replaced when chat-slots was
     ported to LP's Slot Atlas pattern)
   - headless-complete: message-list.tsx → chat/chat.tsx (file moved
     into the chat/ subdir during the LP-verbatim port)
   - declarative-hashbrown: copilotkit-byoc-hashbrown/route.ts →
     copilotkit-declarative-hashbrown/route.ts (route dir was renamed
     when the slug went byoc → declarative)

2. Validate Showcase: validate-pins is a drift ratchet — pin failure
   count can only decrease. Pinning google-adk's frontend +
   ag-ui-adk dropped the count from 98 → 95. Update baseline so the
   improvement locks in.

Verified locally with a script that walks every demo's `highlight:`
list and checks each path resolves on disk.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 21:50:35 -07:00
Sam Julien 38a5f71e52 feat(showcase/scripts): emit highlightOrder for bundled demo files
Adds an optional `highlightOrder` field (0-based index into the
manifest's `highlight:` array) on each bundled DemoFile that is flagged
`highlighted: true`. Consumers like shell-docs's new <DemoSource>
component use this to render highlighted files in the manifest author's
preferred order rather than the bundler's alphabetical-with-page-first
fallback. Files not in `highlight:` carry no `highlightOrder` and keep
the existing sort behavior.

Additive field; no migration needed.
2026-05-12 10:52:55 -07:00
github-actions[bot] 6823c58832 style: auto-fix formatting 2026-05-11 15:36:12 +00:00