Commit Graph

35 Commits

Author SHA1 Message Date
Jordan Ritter f8bbb1390c feat: complete open-genui removal from tests, registries, middleware, and docs 2026-04-15 16:44:28 -07:00
Jordan Ritter 1fcc49e100 feat: remove open-genui rendering from starter template and registry 2026-04-15 16:37:56 -07:00
github-actions[bot] df9c812047 style: auto-fix formatting 2026-04-15 22:25:26 +00:00
Jordan Ritter 93b730aba5 feat: add deployed field to starter objects in registry.json
Add a `deployed` boolean to all 17 starter sub-objects. 14 marked
true (healthy on Railway), 3 marked false (mastra, crewai-crews,
claude-sdk-typescript — currently down). Used by smoke tests to
gate which starters are tested.
2026-04-15 15:17:04 -07:00
copilotkit-devops-bot[bot] 068521d0ec chore: auto-sync docs from main (2026-04-15) 2026-04-15 15:32:42 +00:00
Jordan Ritter 80ee51dc46 fix: wider starter hero section, sticky renderer selector above sidebar (#3913)
## Summary

- Shell: starter section breaks out to `max-w-[90rem]` (1440px) while
header/demos stay at `max-w-5xl` (1024px) — gives the dashboard +
sidebar room to breathe
- Starter: renderer selector bar gets `sticky top-0 z-[60]` — stays
visible and clickable above the CopilotKit sidebar (z-50)
- All 17 starters regenerated with sticky header
2026-04-14 15:28:52 -07:00
Jordan Ritter 665c312372 fix: harden deploy pipeline — independent concurrency, post-deploy health checks (#3908)
## Summary

- **Fix concurrency group**: Manual dispatches targeting different
services no longer cancel each other. Push events still cancel stale
deploys (same group), but `workflow_dispatch` runs for different
services get unique groups and run independently.
- **Add post-deploy health check**: After Railway deploy, polls the
service health endpoint (6 attempts over ~90s). Non-blocking for
sleep-on-idle services but logs clearly for visibility.
- **Enhance Slack notification**: Now includes service count and names
in both success and failure messages, plus guards against empty webhook
secret.
2026-04-14 15:26:54 -07:00
Jordan Ritter c8b5bfd890 fix: wider starter hero section, sticky renderer selector above sidebar 2026-04-14 15:26:24 -07:00
Jordan Ritter 1855ea11c2 fix: format 2026-04-14 15:12:10 -07:00
Jordan Ritter 8ca2b38557 fix: responsive iframe height and scrollable starter content 2026-04-14 15:07:00 -07:00
Jordan Ritter 8786ee98fc fix: regenerate shell registry and starter content data 2026-04-14 14:17:24 -07:00
Jordan Ritter ce8a9fe18b feat: showcase starter restructuring — Sales Dashboard as hero (#3896)
## Summary

- **17 generated clonable starters** at `showcase/starters/<slug>/` with
Sales Dashboard + 5 GenUI rendering strategies (Tool-Based, A2UI
Catalog, HashBrown, json-render fallback, Open GenUI)
- **153 demo pages reverted** to self-contained originals from git
history — zero shared imports, fully readable in Code tab
- **Shared frontend deleted** — all packages now fully self-contained
- **17 Railway services provisioned** with sleep-on-idle for all
starters
- **Aimock integration** — 37 fixture rules covering all 9 demo types,
per-package playwright configs wired, docker-compose for CI
- **CI updated** — 17 starter services in deploy workflow, drift
detection CI for template consistency
- **Shell updated** — `npx degit` clone commands, full component tree in
Code tab, `.java` file support

## What Changed

### Phase 1A: Starter Template + Generation
- Canonical template at `showcase/starters/template/` with Sales
Dashboard, 5 renderer strategies, per-language Dockerfiles (non-root
user, agent health checks)
- Generation script at `showcase/scripts/generate-starters.ts` with
Python import rewriting, TypeScript shared-tools rewriting, `--check`
mode for CI drift detection, deterministic output (sorted
devDependencies)
- 537 tests: 267 unit (generation script + transform functions) + 270
cross-starter consistency

### Phase 1B: Demo Revert
- All 9 feature demos across all 17 packages reverted to self-contained
originals from commits `cbc4c8f77` and `52ac091ef`
- Zero `@copilotkit/showcase-shared` imports in any demo page
- Dead `demo-wrapper.tsx` and `error-boundary.tsx` files removed

### Phase 2: Integration + Cleanup
- Removed webpack alias and tsconfig paths from all 17 packages
- Deleted `showcase/shared/frontend/` and removed from
`pnpm-workspace.yaml`
- Updated all 17 manifest.yaml files with new starter paths + Railway
domains
- Updated CI deploy workflow with 17 starter services + Railway IDs
- Added drift detection CI (`showcase_template-drift.yml`) with expanded
trigger paths
- Updated shell clone command to `npx degit`, starter content bundler
discovers full component tree + `.java` files

### Phase 3: Aimock Integration
- Expanded `showcase/aimock/feature-parity.json` from 18 to 37 fixture
rules covering all demo interactions
- Updated all 17 `showcase/packages/*/playwright.config.ts` with env
passthrough for `OPENAI_BASE_URL`/`OPENAI_API_KEY`
- Created `showcase/tests/docker-compose.packages.yml` — CI aimock
sidecar (fixtures-only, strict mode)
- Created `showcase/scripts/run-e2e-with-aimock.sh` — convenience script
for local testing
- Aimock modes: CI = strict/fixtures-only, Live demos = proxy +
fixtures, Local = developer choice

### E2E Tests
- Starter interaction tests: renderer switching verifies content
changes, "Add a deal" exercises React state
- Demo interaction tests: suggestion buttons verified by text,
click-and-verify for agentic-chat, hitl, tool-rendering
- Playwright screenshot structure for 3 viewports (iPhone SE, iPhone 14
Pro Max, Desktop)

### Quality
- Docker: non-root user, process identification in entrypoint (`wait -n`
+ PID check), agent health checks for all 4 languages
- Types: `SalesStage` and `RenderMode` derived from `as const` arrays,
`VALID_MODES` localStorage validation, `HashBrownDealCardProps.stage`
typed as `SalesStage`
- Error handling: generation script fails hard on missing required
inputs, warns on known-incomplete agents, sorted devDependencies for
determinism
- HashBrown prompt: fixed `name=` to `label=` (MetricCard prop
mismatch), deduplicated generator functions

## Quality Gates

| Gate | Result |
|------|--------|
| MSAL CR Phase 1 (7 agents x 4 rounds) | Converged: 30 → 20 → 4 → 0 |
| MSAL CR Phase 2 (7 agents x 2 rounds) | Converged: 4 → 0 |
| Final MSAL CR (7 agents) | Converged |
| Aimock CR (7 agents) | 4 clean + 3 fixed |
| Unit tests (267) + Consistency (270) | 537 passing |
| Build validation (4 starters) | All pass |
| Drift detection (`--check`) | Pass |
| Playwright screenshots (33) | Visual verification pass |
| CI (16 checks) | ALL GREEN |

## Test plan

- [x] 537 vitest tests passing (generation script + starter consistency)
- [x] 4 starters build successfully (langgraph-python, ag2, mastra,
spring-ai)
- [x] Zero `@copilotkit/showcase-shared` imports in any demo page
- [x] All 17 manifest.yaml files have correct starter sections with
Railway domains
- [x] Drift detection: `npx tsx showcase/scripts/generate-starters.ts
--check` exits 0
- [x] 33 Playwright screenshots verified at 3 viewports
- [x] 37 aimock fixture rules cover all 9 demo types
- [x] CI: 16/16 checks green
- [x] E2e tests exercise real interactions (renderer switching, deal
creation, suggestion clicks)
- [ ] Aimock-backed e2e run via Docker (blocked by Node v25 local compat
— works in Docker)

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-04-14 13:11:54 -07:00
Jordan Ritter d8d889aebf chore: remove dead demo-wrapper/error-boundary files, regenerate shell data
Remove orphaned demo-wrapper.tsx (1 file) and error-boundary.tsx (17 files)
that still imported from the deleted @copilotkit/showcase-shared.
Regenerate registry.json, demo-content.json, and starter-content.json.
2026-04-14 12:57:32 -07:00
Jordan Ritter 5ac07d4d9b feat: CI, shell, and aimock integration for showcase starters
CI:
- Add 17 starter services to showcase deploy workflow with Railway IDs
- Add drift detection workflow (triggers on starters, packages, scripts, shared)
- Remove shared_frontend copy step for starter builds

Shell:
- Update clone command to npx degit with clipboard fallback
- Update starter content bundler for full component tree + .java support
- Add clone_command to manifest schema and registry types

Aimock:
- Expand feature-parity.json from 18 to 37 fixture rules
- Add docker-compose.packages.yml for CI aimock sidecar (strict mode)
- Add run-e2e-with-aimock.sh convenience script
2026-04-14 12:52:52 -07:00
copilotkit-devops-bot[bot] 475fda23de chore: auto-sync docs from main (2026-04-14) 2026-04-14 14:00:31 +00:00
Jordan Ritter ae3d871542 feat: showcase feature parity: shared tools, Sales Dashboard, A2UI across all 17 integrations (#3873)
## Summary
- Create `@copilotkit/showcase-shared` — shared frontend package with
React hooks, components, A2UI catalog, and SalesDashboard
- Create shared Python + TypeScript tool implementations (get_weather,
query_data, manage_sales_todos, search_flights, schedule_meeting,
generate_a2ui)
- Upgrade all 17 showcase integrations to full feature parity with the
langgraph-python starter
- Docker builds verified locally for all 17 packages
- Comprehensive test coverage: 165 unit tests, 68 React component tests,
130+ Playwright e2e files

## Commits
1. `feat:` shared packages — frontend, Python tools, TypeScript tools,
unit tests, React component tests, aimock fixtures
2. `feat:` all 17 package upgrades — tools, demo pages, cross-cutting
fixes, Playwright e2e tests
3. `feat:` Docker + CI — tsconfig paths resolution, shared module
copying, spring-ai base image fix
4. `chore:` pnpm lockfile update

## Code review
5 rounds of fresh unbiased MSAL (1 dedicated agent per package, zero
prior context). Round 5: **20/20 packages PASS with 0 findings.** Test
quality audit: all criticality-7+ gaps fixed.

## Docker builds (all 17 verified locally)
```
langgraph-python         langgraph-typescript  
langgraph-fastapi        mastra               
pydantic-ai              claude-sdk-typescript 
crewai-crews             spring-ai            
google-adk               ms-agent-dotnet      
agno                     claude-sdk-python     
ag2                      langroid             
strands                  ms-agent-python      
llamaindex           
```

## Test coverage
- Python unit: 54 tests (tools + parity + framework wrappers)
- TypeScript unit: 43 tests
- React component: 68 tests (7 suites)
- Playwright e2e: 130+ files, per-package UI adaptation
- Aimock: 18 deterministic fixtures (ready for Docker-compose wiring)

## Known gaps (follow-up PR)
- Feature set varies: langgraph-python/fastapi have 9 demos, rest have 4
- gen-ui-tool-based: Chart/Haiku/Sales Pipeline variants across packages
- HITL: MeetingTimePicker vs step-selector variants
- Node 22 upgrade across all Dockerfiles + CI

## Test plan
- [x] `python3 -m pytest showcase/shared/python/tests/ -v` (54 passed)
- [x] `npx vitest run --config
showcase/shared/typescript/vitest.config.ts` (43 passed)
- [x] `npx vitest run --config
showcase/shared/frontend/vitest.config.ts` (68 passed)
- [x] Docker build all 17 packages locally
- [ ] Deploy to Railway and run smoke tests

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-04-13 20:17:54 -07:00
github-actions[bot] b670dd34bc style: auto-fix formatting 2026-04-14 03:03:54 +00:00
Jordan Ritter b6fcafe4cd feat: all 17 showcase packages to 9-demo parity with Sales Dashboard hero
Every package: 9 demos (agentic-chat hero, hitl MeetingTimePicker, tool-rendering,
gen-ui-tool-based Chart Generator, gen-ui-agent A2UI dynamic, shared-state-read/
write/streaming, subagents), 7 backend tools, Playwright e2e tests per demo.
Cross-cutting: debug routes, error boundaries, camelCase SSE, generate_a2ui
conversation context, spring-ai JSON weather, langroid adapter fixes.

# Conflicts:
#	showcase/packages/ag2/manifest.yaml
#	showcase/packages/ag2/src/agents/agent.py
#	showcase/packages/ag2/src/app/api/debug/route.ts
#	showcase/packages/ag2/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/ag2/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/ag2/src/app/demos/hitl/page.tsx
#	showcase/packages/ag2/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/ag2/tests/e2e/gen-ui-tool-based.spec.ts
#	showcase/packages/ag2/tests/e2e/hitl.spec.ts
#	showcase/packages/ag2/tsconfig.json
#	showcase/packages/agno/manifest.yaml
#	showcase/packages/agno/src/agents/main.py
#	showcase/packages/agno/src/app/api/debug/route.ts
#	showcase/packages/agno/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/agno/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/agno/src/app/demos/hitl/page.tsx
#	showcase/packages/agno/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/agno/tsconfig.json
#	showcase/packages/claude-sdk-python/manifest.yaml
#	showcase/packages/claude-sdk-python/src/agents/agent.py
#	showcase/packages/claude-sdk-python/src/app/api/debug/route.ts
#	showcase/packages/claude-sdk-python/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/claude-sdk-python/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/claude-sdk-python/src/app/demos/hitl/page.tsx
#	showcase/packages/claude-sdk-python/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/claude-sdk-python/tests/e2e/gen-ui-tool-based.spec.ts
#	showcase/packages/claude-sdk-python/tests/e2e/hitl.spec.ts
#	showcase/packages/claude-sdk-python/tsconfig.json
#	showcase/packages/claude-sdk-typescript/.gitignore
#	showcase/packages/claude-sdk-typescript/src/app/api/debug/route.ts
#	showcase/packages/claude-sdk-typescript/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/claude-sdk-typescript/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/claude-sdk-typescript/tests/e2e/gen-ui-tool-based.spec.ts
#	showcase/packages/claude-sdk-typescript/tests/e2e/hitl.spec.ts
#	showcase/packages/crewai-crews/manifest.yaml
#	showcase/packages/crewai-crews/src/agents/crew.py
#	showcase/packages/crewai-crews/src/agents/tools/custom_tool.py
#	showcase/packages/crewai-crews/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/crewai-crews/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/google-adk/manifest.yaml
#	showcase/packages/google-adk/src/agents/main.py
#	showcase/packages/google-adk/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/google-adk/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/google-adk/src/app/demos/hitl/page.tsx
#	showcase/packages/langgraph-fastapi/src/app/api/debug/route.ts
#	showcase/packages/langgraph-fastapi/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/langgraph-fastapi/src/app/demos/hitl/page.tsx
#	showcase/packages/langgraph-fastapi/tests/e2e/hitl.spec.ts
#	showcase/packages/langgraph-fastapi/tsconfig.json
#	showcase/packages/langgraph-python/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/langgraph-python/src/app/demos/hitl/page.tsx
#	showcase/packages/langgraph-python/tests/e2e/agentic-chat.spec.ts
#	showcase/packages/langgraph-python/tests/e2e/hitl.spec.ts
#	showcase/packages/langgraph-python/tests/e2e/shared-state-streaming.spec.ts
#	showcase/packages/langgraph-python/tests/e2e/shared-state-write.spec.ts
#	showcase/packages/langgraph-python/tests/e2e/subagents.spec.ts
#	showcase/packages/langgraph-python/tsconfig.json
#	showcase/packages/langgraph-typescript/.gitignore
#	showcase/packages/langgraph-typescript/src/agent/graph.ts
#	showcase/packages/langgraph-typescript/src/app/api/debug/route.ts
#	showcase/packages/langgraph-typescript/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/langgraph-typescript/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/langgraph-typescript/tests/e2e/gen-ui-tool-based.spec.ts
#	showcase/packages/langgraph-typescript/tests/e2e/hitl.spec.ts
#	showcase/packages/langroid/src/agents/agent.py
#	showcase/packages/langroid/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/langroid/src/app/demos/hitl/page.tsx
#	showcase/packages/langroid/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/llamaindex/manifest.yaml
#	showcase/packages/llamaindex/src/agents/agent.py
#	showcase/packages/llamaindex/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/llamaindex/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/llamaindex/src/app/demos/hitl/page.tsx
#	showcase/packages/llamaindex/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/mastra/.gitignore
#	showcase/packages/mastra/package.json
#	showcase/packages/mastra/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/mastra/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/mastra/src/mastra/agents/index.ts
#	showcase/packages/mastra/src/mastra/tools/index.ts
#	showcase/packages/mastra/tests/e2e/gen-ui-tool-based.spec.ts
#	showcase/packages/mastra/tests/e2e/hitl.spec.ts
#	showcase/packages/ms-agent-dotnet/agent/Program.cs
#	showcase/packages/ms-agent-dotnet/manifest.yaml
#	showcase/packages/ms-agent-dotnet/src/app/api/debug/route.ts
#	showcase/packages/ms-agent-dotnet/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/ms-agent-dotnet/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/ms-agent-dotnet/src/app/demos/hitl/page.tsx
#	showcase/packages/ms-agent-dotnet/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/ms-agent-dotnet/tests/e2e/hitl.spec.ts
#	showcase/packages/ms-agent-dotnet/tsconfig.json
#	showcase/packages/ms-agent-python/src/agents/agent.py
#	showcase/packages/ms-agent-python/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/ms-agent-python/src/app/demos/hitl/page.tsx
#	showcase/packages/ms-agent-python/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/pydantic-ai/manifest.yaml
#	showcase/packages/pydantic-ai/src/agents/agent.py
#	showcase/packages/pydantic-ai/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/pydantic-ai/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/pydantic-ai/src/app/demos/hitl/page.tsx
#	showcase/packages/spring-ai/manifest.yaml
#	showcase/packages/spring-ai/src/app/api/debug/route.ts
#	showcase/packages/spring-ai/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/spring-ai/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/spring-ai/src/app/demos/hitl/page.tsx
#	showcase/packages/spring-ai/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/spring-ai/src/main/java/com/copilotkit/showcase/springai/AgentConfig.java
#	showcase/packages/spring-ai/src/main/java/com/copilotkit/showcase/springai/tools/WeatherTool.java
#	showcase/packages/spring-ai/tests/e2e/gen-ui-tool-based.spec.ts
#	showcase/packages/spring-ai/tests/e2e/hitl.spec.ts
#	showcase/packages/spring-ai/tsconfig.json
#	showcase/packages/strands/manifest.yaml
#	showcase/packages/strands/src/agents/agent.py
#	showcase/packages/strands/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/strands/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/strands/src/app/demos/hitl/page.tsx
#	showcase/packages/strands/src/app/demos/tool-rendering/page.tsx
#	showcase/shell/src/data/registry.json
2026-04-13 19:57:58 -07:00
Jordan Ritter 2accac1d07 feat: add shared showcase packages with tools, components, and test coverage
- @copilotkit/showcase-shared: hooks, components, A2UI catalog, SalesDashboard
- Shared Python tools: 7 impls + 61 pytest tests (unit + parity + equivalence + wrappers)
- Shared TypeScript tools: equivalents + 52 vitest tests (incl generateA2uiImpl)
- React component tests: 68 tests (7 suites)
- Aimock: 18 deterministic demo fixtures

# Conflicts:
#	showcase/shared/frontend/src/components/__tests__/bar-chart.test.tsx
#	showcase/shared/frontend/src/components/__tests__/meeting-time-picker.test.tsx
#	showcase/shared/frontend/src/components/__tests__/pie-chart.test.tsx
#	showcase/shared/frontend/src/components/__tests__/sales-dashboard/todo-card.test.tsx
#	showcase/shared/frontend/src/components/__tests__/sales-dashboard/todo-list.test.tsx
#	showcase/shared/frontend/src/components/__tests__/tool-reasoning.test.tsx
#	showcase/shared/frontend/tsconfig.json
#	showcase/shared/manifest.schema.json
#	showcase/shared/typescript/tools/__tests__/get-weather.test.ts
#	showcase/shared/typescript/tools/__tests__/schedule-meeting.test.ts
#	showcase/shared/typescript/tools/__tests__/search-flights.test.ts
#	showcase/shared/typescript/tools/index.ts
#	showcase/shared/typescript/tools/sales-todos.ts
2026-04-13 19:57:45 -07:00
github-actions[bot] 88763b348c style: auto-fix formatting 2026-04-14 00:41:48 +00:00
Jordan Ritter e233d08f40 feat: upgrade all 17 showcase packages to full feature parity
Each package wraps shared tools in its framework's idiom, demo pages import
from @copilotkit/showcase-shared via tsconfig paths. Comprehensive Playwright
e2e tests adapted per package (130+ test files).

Cross-cutting fixes: debug routes (/ok→/health), dead code removal,
error boundaries, thread safety, langroid adapter, claude-sdk-ts text emission.
2026-04-13 17:38:55 -07:00
copilotkit-devops-bot[bot] c11816f259 chore: auto-sync docs from main (2026-04-14) 2026-04-14 00:10:21 +00:00
github-actions[bot] cd9bd28d3c chore: auto-sync docs from main (2026-04-12) 2026-04-12 20:53:03 +00:00
Jordan Ritter faf8fe9925 chore: sync docs from main (model name fixes from #3666, new pages) 2026-04-09 14:58:31 -07:00
Jordan Ritter 1294bd86f3 fix: reset docs sync marker to valid main commit (pre-3666) 2026-04-09 14:55:36 -07:00
Jordan Ritter 204dd29a97 fix: standardize health checks on /health port 8000 2026-04-08 21:22:35 -07:00
Jordan Ritter 6d05499ecd feat: add automated docs sync from main with transform pipeline 2026-04-08 19:59:31 -07:00
Jordan Ritter 6f679bd092 feat: deploy Claude SDK, Langroid, and Spring AI integrations 2026-04-08 19:59:30 -07:00
Jordan Ritter 31f046d0ac feat: add SEO redirect infrastructure with PostHog tracking 2026-04-08 19:59:30 -07:00
Jordan Ritter 2c543adc7a feat: add mobile responsive design with hamburger nav and dropdown filter 2026-04-08 19:59:30 -07:00
Jordan Ritter 101a783c0c fix: replace TODO placeholders and fix markdown rendering in demo content 2026-04-08 19:59:30 -07:00
Jordan Ritter 759ffeb29a feat: add animated preview GIFs with per-demo capture automation 2026-04-08 19:59:30 -07:00
Jordan Ritter 7238241127 feat: add integration explorer with guided flow, feature catalog, and partner ordering 2026-04-08 19:59:29 -07:00
Jordan Ritter f1b197b580 feat: add docs system with MDX rendering, hierarchical nav, inline demos, and content cleanup 2026-04-08 19:59:29 -07:00
Jordan Ritter 479e62cb7f feat: add unified showcase platform with CI, Docker starters, and 13 deployed integrations 2026-04-08 19:59:29 -07:00