Commit Graph

10887 Commits

Author SHA1 Message Date
Tyler Slaton 928bd602c2 chore: release monorepo v1.59.1 (#5101)
## Release monorepo v1.59.1

**Scope:** `monorepo` | **Bump:** `patch`

---

### How this release process works

1. **This PR was created automatically** by the "release / create-pr"
workflow.
   It bumped the `monorepo` packages to `1.59.1`
   and generated AI-enhanced release notes.

2. **CI runs on this PR** — the full test suite (unit tests, lint, type
checks, build)
   must pass before merging. This is the review gate.

3. **Review the release notes** in `release-notes.md` in this PR.
If a Notion draft was created, you can edit the release notes there
before merging.

4. **When this PR is merged**, the `release / publish` workflow
automatically:
   - Builds all packages
   - Publishes the `monorepo` packages to npm at version `1.59.1`
   - Creates git tag `monorepo/v1.59.1`
   - Creates a GitHub Release with the final release notes

### Before merging

- [ ] CI is green (tests, lint, types, build)
- [ ] Version bumps look correct
- [ ] Release notes are accurate (edit in Notion if a draft was created)

---

> **Do not merge until CI is fully green.** The full test suite runs
automatically on this PR.
v1.59.1
2026-05-29 08:44:31 -07:00
BenTaylorDev 28f6264dd4 chore: release monorepo v1.59.1 2026-05-29 15:19:08 +00:00
Tyler Slaton 8e59b1e2e9 chore: run pnpm format
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
2026-05-29 08:17:21 -07:00
Tyler Slaton 13d585f5b4 Merge branch 'main' into codex/shell-docs-polish-pass 2026-05-29 08:13:55 -07:00
Tyler Slaton beb5e52b7b fix(docs): align shell docs header width 2026-05-29 08:10:35 -07:00
Tyler Slaton 360eac2320 chore: bump @copilotkit/license-verifier to ~0.4.2 (#5100)
## What

Bumps `@copilotkit/license-verifier` from an exact `0.4.0` pin to a
`~0.4.2` patch range across:

- `package.json` — root `pnpm.overrides`
- `packages/runtime/package.json` — `dependencies`
- `packages/shared/package.json` — `dependencies`
- `pnpm-lock.yaml` — regenerated, resolves to `0.4.2`

## Why

Aligns the runtime/shared deps with the newly published
`@copilotkit/license-verifier@0.4.2`. Switching from an exact pin to
`~0.4.2` (`>=0.4.2 <0.5.0`) means future `0.4.x` patches are picked up
automatically, while `0.5.0`+ still requires an intentional bump.

## Notes

- `.npmrc` `minimum-release-age` guard was **not** modified; the
lockfile was regenerated with a one-off override since `0.4.2` was
freshly published.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-05-29 07:51:25 -07:00
Martha Kelly Schumann d60285c337 fix(react-core): preserve generated thread tool followups (#5043)
## Summary
- keep `CopilotChat` agents aligned to SDK-generated thread IDs even
when `/connect` is intentionally skipped for non-explicit threads
- stabilize `CopilotKitProvider` default object props so rerenders do
not re-sync an empty local agent registry and replace the live
remote/Intelligence agent mid-run
- add regression coverage for SDK-generated thread frontend-tool
follow-up runs and provider empty-agent rerender stability
- add a focused langgraph-python showcase demo, aimock fixture,
Playwright smoke, and QA checklist for ENT-658
- add a patch changeset for `@copilotkit/react-core`

## Testing
- `npx nx run @copilotkit/react-core:test --
src/v2/components/chat/__tests__/CopilotChat.absentThreadConnect.test.tsx`
- `npx nx run @copilotkit/react-core:test --
src/v2/providers/__tests__/CopilotKitProvider.stability.test.tsx`
- Pre-commit hook passed: `pnpm run test` and `pnpm run check:packages`
- Verified exact `CopilotKit/Intelligence` repro branch
`mme/threadid-repro`: unchecked `Explicit threadId`, sent `invoke
testFrontendToolCalling with label X`, confirmed user message/tool
card/assistant reply remain visible
- Verified the same Intelligence repro with `Explicit threadId` checked
- `pnpm exec playwright test
tests/e2e/threadid-frontend-tool-roundtrip.spec.ts --project=chromium
--workers=1` from `showcase/integrations/langgraph-python`

## QA Checklist
- [x] Reproduce the reset in `CopilotKit/Intelligence` branch
`mme/threadid-repro` with `Explicit threadId` unchecked
- [x] Confirm generated-thread frontend-tool round-trip preserves the
user message, tool card, and assistant response
- [x] Confirm explicit-thread frontend-tool round-trip still preserves
the user message, tool card, and assistant response
- [x] Open `/demos/threadid-frontend-tool-roundtrip` in the
langgraph-python showcase demo
- [x] Confirm `Explicit threadId` is unchecked and the chat starts in
SDK-generated thread mode
- [x] Send `invoke testFrontendToolCalling with label X`
- [x] Confirm the user message remains visible
- [x] Confirm the `testFrontendToolCalling` card remains visible and
shows `label: X` plus `result: handled X`
- [x] Confirm the assistant reply `Frontend tool finished for X.`
appears
- [x] Confirm the chat does not return to the empty state
- [x] Repeat with `Explicit threadId` checked and confirm the
explicit-thread path is unchanged

## Notes
The visible reset had two frontend-side causes. First, the chat and
agent could diverge when the SDK generated the thread ID. Second, in
Intelligence mode, provider rerenders could re-sync an empty local agent
registry and replace the live remote agent instance mid-run, dropping
the in-memory chat stream. Both fixes live in `@copilotkit/react-core`.

The Playwright file is intentionally a smoke test for the demo
route/toggle. The source-level regressions live in
`CopilotChat.absentThreadConnect.test.tsx` and
`CopilotKitProvider.stability.test.tsx`.
2026-05-29 07:50:01 -07:00
Benjamin Taylor 832eb435b5 chore: bump @copilotkit/license-verifier to ~0.4.2
Move runtime and shared deps (and the root pnpm override) from an exact
0.4.0 pin to ~0.4.2, so future 0.4.x patches are picked up automatically.
Regenerate pnpm-lock.yaml to resolve 0.4.2.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 09:04:07 -05:00
Anmol Baranwal 2c652990d8 Merge branch 'main' into showcase-a2ui-pdf-analyst 2026-05-29 15:08:34 +05:30
github-actions[bot] 1b6c32cc8a style: auto-fix formatting 2026-05-29 06:07:31 +00:00
Tyler Slaton 6228503cda fix(docs): polish shell docs UX 2026-05-28 23:03:57 -07:00
Jordan Ritter b26272c0ec chore: release monorepo v1.59.0 (#5069)
## Release monorepo v1.59.0

**Scope:** `monorepo` | **Bump:** `minor`

---

### How this release process works

1. **This PR was created automatically** by the "release / create-pr"
workflow.
   It bumped the `monorepo` packages to `1.59.0`
   and generated AI-enhanced release notes.

2. **CI runs on this PR** — the full test suite (unit tests, lint, type
checks, build)
   must pass before merging. This is the review gate.

3. **Review the release notes** in `release-notes.md` in this PR.
If a Notion draft was created, you can edit the release notes there
before merging.

4. **When this PR is merged**, the `release / publish` workflow
automatically:
   - Builds all packages
   - Publishes the `monorepo` packages to npm at version `1.59.0`
   - Creates git tag `monorepo/v1.59.0`
   - Creates a GitHub Release with the final release notes

### Before merging

- [ ] CI is green (tests, lint, types, build)
- [ ] Version bumps look correct
- [ ] Release notes are accurate (edit in Notion if a draft was created)

---

> **Do not merge until CI is fully green.** The full test suite runs
automatically on this PR.
v1.59.0
2026-05-28 22:35:02 -07:00
github-actions[bot] db5ca601ab style: auto-fix formatting 2026-05-29 05:34:17 +00:00
Mark Fogle 580fe9bc58 feat(examples): add daytona-runcode showcase app
The deployable Next.js demo behind the new Daytona cookbook recipe. A minimal
CopilotKit Built-in Agent whose only added capability is the recipe's runCode
server tool — executes Python / TypeScript / JavaScript in an isolated Daytona
sandbox and streams the result back to the chat via a custom useRenderTool
card (fixed-height streaming code pane with react-syntax-highlighter +
vscDarkPlus, mirroring @copilotkit/react-ui's own CodeBlock, and a fixed-
height result pane with a 'Generated code:' / 'Result:' label pair). The
agent's system prompt instructs it not to restate stdout in chat text since
the renderer already shows it.

Standalone npm project — intentionally not in the monorepo's pnpm workspace
(matches the existing examples/showcases/* convention; only generative-ui-
playground is in the workspace globs). Validated end to end against published
@copilotkit/runtime@1.58.0 with both Python and JavaScript snippets round-
tripping through real Daytona sandboxes.

OSS-222
2026-05-29 05:33:34 +00:00
Jordan Ritter 564e2935c2 chore(sdk-python): release v0.1.93 (#5097)
Releases copilotkit Python SDK 0.1.93 to PyPI, shipping the App Context
forwarded-headers strip (#5096).

Bumps sdk-python/pyproject.toml. Merging triggers the
publish-release.yml PyPI lane (OIDC trusted publisher).

Note: uv.lock not regenerated — this is a poetry-managed project without
a [project] table, so `uv lock` is not applicable. `uv sync --dry-run`
confirms the existing lock is consistent. Only sdk-python/pyproject.toml
changes, which is the exact trigger the publish workflow keys on.
python-sdk/v0.1.93
2026-05-28 21:16:11 -07:00
Jordan Ritter e77856e6b7 chore(sdk-python): release v0.1.93 2026-05-28 21:15:00 -07:00
Jordan Ritter 5317aca368 fix(sdk-python): strip copilotkit_forwarded_headers from LLM prompt (#5096)
## Summary

- **Root cause**: `langgraph-api` auto-copies the entire
`config.configurable` dict into `runtime.context`. That dict carries the
CopilotKit-internal transport key `copilotkit_forwarded_headers`,
populated solely to drive the httpx header-forwarding hook. The
middleware's `before_agent` step renders `runtime.context` into the LLM
prompt as an "App Context" system message, and the `expose_state` path
can surface the same key via the state note — both leak transport
headers into the prompt body.
- **Symptom**: under strict fixture matching (D6 / aimock), the leaked
headers change the request payload and the match fails (503). Prompts
are also polluted with transport metadata that the user never set.
- **Fix**: hard-exclude `copilotkit_forwarded_headers` from both render
paths. The App Context renderer strips the reserved key before
serialization; the `expose_state` allowlist applies the same exclusion
so an explicit allow cannot reintroduce the leak. The httpx
header-forwarding hook is unchanged — the key still reaches downstream
as an HTTP header. Pure conveyance, no body pollution.

## Why

This is part of the D6 langgraph-python header-conveyance work. Header
conveyance to aimock already works via the httpx hook, but the same
forwarded-headers dict was leaking into the prompt body via
langgraph-api's `configurable` → `context` auto-copy. That broke aimock
strict fixture matching and polluted prompts. The reserved key
`copilotkit_forwarded_headers` is now transport-only.

## Test plan

- Red-green unit tests added for both paths:
  - App Context renderer strips `copilotkit_forwarded_headers`.
- `expose_state` default-deny strips it; explicit-allow allowlist also
strips it.
- Full `sdk-python` suite green: **181 passed, 11 skipped, 0 failed**.
- Middleware test file: **51 passed**.
- Proven end-to-end locally via the D6 1-pill
(`langgraph-python:agentic-chat`, 3/3 turns green). aimock journal
confirms the header arrives on the request, no App Context leak appears
in the prompt body, and the fixture matches.

## Known follow-ups (NOT in this PR)

- The OpenAI Responses API (`/v1/responses`) path does not currently
carry forwarded headers — a separate, pre-existing conveyance gap
affecting reasoning-model demos. Tracked separately.
- Full D6 rollout also requires the `@copilotkit/runtime` release
carrying `@ag-ui/langgraph` 0.0.34. Not bundled here.

This PR does **not** claim full D6 parity — it closes the prompt-leak
half of the conveyance work.
2026-05-28 21:11:12 -07:00
github-actions[bot] b2f10f6753 style: auto-fix formatting 2026-05-29 03:58:54 +00:00
Tyler Slaton bafce506a8 fix(docs): address 404ing links due to docs cutover (#5094)
## Summary
- Redirected the remaining broken legacy docs URLs to their current
shell-docs locations, including `copilot-suggestions`, `integrations`,
`integrations/built-in-agent`, `telemetry`, and
`learn/tutorials/multi-conversation-chat`.
- Ported the missing telemetry page into the built-in-agent docs and
added it to the sidebar.
- Added the missing `useCapabilities` reference page, restored
`migrate/1.10.X`, and taught shell-docs to resolve docs stored under
route-group folders like `(other)`.
- Added DeepAgents to the framework picker and docs navigation so
framework redirects resolve cleanly.

## Testing
- `npm run test` passed.
- `npm run typecheck` passed.
- `npm run lint` passed with existing unrelated warnings.
- Verified the local shell-docs preview serves the new canonical pages
and returns the expected redirect targets for the legacy URLs.
2026-05-28 20:57:48 -07:00
Jordan Ritter 59eff59b7f fix(sdk-python): strip copilotkit_forwarded_headers from LLM prompt (App Context + expose_state)
langgraph-api auto-copies the entire config.configurable dict into runtime.context. That dict
carries the CopilotKit-internal transport key `copilotkit_forwarded_headers`, populated solely
to drive the httpx header-forwarding hook (it is not user-visible state). The middleware's
before_agent step then rendered runtime.context into the LLM prompt as an "App Context" system
message, and the expose_state path could surface the same key via the state note — either path
leaks transport headers into the prompt body and, under strict fixture matching (D6/aimock),
changes the request payload and breaks the match.

Fix: hard-exclude `copilotkit_forwarded_headers` from both render paths. The App Context
renderer strips the reserved key before serialization, and the expose_state allowlist applies
the same exclusion so an explicit allow cannot reintroduce the leak. The httpx hook is
unchanged, so the key still reaches aimock as an HTTP header — pure conveyance, no body
pollution.

Adds red-green unit coverage for both paths (App Context strip, expose_state default + allowlist).
2026-05-28 20:57:37 -07:00
Sam Julien 94d1548ded fix(shell-docs): stop framework-scoping cross-framework + reserved links
Three coupled bugs surfaced from the BIA-as-default cutover, all hitting
the A2UI snippet rendered on /built-in-agent/generative-ui/a2ui:

1. Framework-scoped link rewriter (docs-page-view) blindly prefixed
   every root-relative MDX href with the active framework slug, so
   `/a2a/generative-ui/declarative-a2ui` rendered as
   `/built-in-agent/a2a/generative-ui/declarative-a2ui` (404). Now skip
   the rewrite when the first URL segment matches a known framework
   slug (registry integrations + docs-only a2a/agent-spec/deepagents)
   or a reserved top-level route (/docs, /ag-ui, /reference, /api).

2. Snippet `shared/generative-ui/a2ui.mdx` "Learn More" block linked at
   legacy paths (`/generative-ui/specs`, `/ag-ui-protocol`,
   `/generative-ui/specs/*`) that the IA retired. Updated to canonical
   destinations (`/concepts/generative-ui-overview`,
   `/agentic-protocols/ag-ui`, `/generative-ui/<spec>`) so the
   framework-prefix rewriter produces valid framework-scoped URLs.

3. S13 redirect (concepts/* -> framework root) was generated for every
   legacy framework slug including those whose canonical slug didn't
   change (mastra, ag2, agno, ...). The legacy docs never had
   /<canonical-slug>/concepts/* pages so the rule never had legitimate
   work for them — but shell-docs serves agnostic /concepts/* under
   every framework's scope now, and the unconditional rule was 301'ing
   those valid URLs to the framework root. Restricted to renamed
   frameworks only.

Verified locally: every link rendered on /built-in-agent/generative-ui/a2ui
now resolves to 200; /<unchanged-slug-fw>/concepts/architecture still
serves; /langgraph/concepts/* still collapses to /langgraph-python.
2026-05-29 03:30:38 +00:00
Tyler Slaton bfa38998aa Fix shell-docs redirects and port telemetry docs 2026-05-28 18:24:31 -07:00
Tyler Slaton 238b12b486 docs: fix shared docs error anchors (#5061)
## Summary
- Update shared error troubleshooting URLs to current shell-docs routes
and heading fragments.
- Drop the authentication fragment because shell-docs no longer has an
equivalent section.

## Tests
- node source check for generated docs URLs and shell-docs heading slugs
- NX_DAEMON=false pnpm nx run @copilotkit/shared:test
- pre-commit hook: package test/check suite

## Notes
- NX_DAEMON=false pnpm nx run @copilotkit/shared:check-types currently
fails on existing @copilotkit/license-verifier export errors in
packages/shared/src/index.ts and a telemetry index-signature error in
packages/shared/src/telemetry/telemetry-client.ts; this PR only changes
docs URL strings in packages/shared/src/utils/errors.ts.
2026-05-28 17:41:47 -07:00
Tyler Slaton c8fa0bb68a Merge branch 'main' into tyler/pdx-199-error-anchor-drift 2026-05-28 17:29:31 -07:00
Jordan Ritter 75ab40d983 ci(sdk-python): honor dry-run, fail-loud tag push, env-pass token, guard empty dist
publish-python now skips when dry-run=true (matching the npm lane). Add
set -euo pipefail to the tag step so a failed push no longer emits a ghost
tag output or proceeds to the GitHub Release. Pass GITHUB_TOKEN via env
instead of inline interpolation, guard against an empty dist/ before
uv publish, and surface curl errors from the PyPI verify-live loop.
2026-05-28 16:38:54 -07:00
Jordan Ritter f3365d8603 ci(sdk-python): zero-pad version compare, drop yanked releases, fail loud on bad PyPI JSON
Right-pad version tuples so 0.2 and 0.2.0 compare equal (PEP 440), avoiding a
duplicate-version publish that PyPI rejects. Exclude fully-yanked releases when
computing the published max so a yanked high version can't block real bumps.
Fail loud when a 200 response lacks a releases key instead of assuming the
package is new. Surface curl transport errors and add red-green coverage.
2026-05-28 16:38:54 -07:00
Jordan Ritter 8b758ac806 ci(sdk-python): harden py-version detection — max-over-releases + numeric-local-only
Compare against the max numeric version in PyPI `releases` rather than
`info.version` (latest-uploaded, not highest). Apply strict dotted-numeric
validation to the LOCAL version only; non-numeric published versions
(prereleases) are filtered out instead of aborting the script. Add curl
--max-time/--retry hardening and red-green test coverage for both cases.
2026-05-28 16:38:54 -07:00
Jordan Ritter fcc5f537e3 ci(sdk-python): fail-loud pyproject-change gate + publish guard + doc fixes
Add set -euo pipefail and non-empty SHA validation to the pyproject-change
detection step so a null/stale merge_commit_sha fails loudly instead of
silently skipping a real version bump. Mirror the npm lane's success guard
on publish-python. Correct the python_publish input description (detection
still runs) and drop the dead checkout token (persist-credentials is false).
2026-05-28 16:38:54 -07:00
Jordan Ritter 65918d048e ci(sdk-python): publish to PyPI via OIDC trusted publishing 2026-05-28 16:38:54 -07:00
Jordan Ritter 227365a708 ci(sdk-python): add testable PyPI version-change detection script 2026-05-28 16:38:54 -07:00
Mark Fogle cb15565cde fix(cookbook): drop inline icon import in landing for shell-docs MDXRemote
shell-docs renders MDX server-side via MDXRemote, not Fumadocs's compile-
time MDX pipeline, so inline 'import { Boxes } from "lucide-react"' in an
.mdx body doesn't resolve at render time — Boxes ends up undefined and the
page errors with 'Expected component Boxes to be defined' on /cookbook.

Drop the import and the icon prop from the landing's <Card>. Existing
shell-docs pages (e.g. tutorials/ai-powered-textarea/*) use <Card> with no
icon, so this matches the local idiom. The Daytona recipe page is
unaffected because its icon is in frontmatter (icon: 'lucide/Boxes' — a
string, resolved by the page layout, not by MDX body).

OSS-222
2026-05-28 23:38:35 +00:00
Mark Fogle 2dff431d70 docs(cookbook): migrate Cookbook section + nav tab from docs/ to shell-docs
Addresses PR review feedback (@tylerslaton): the docs/ folder is deprecated
in favor of showcase/shell-docs and will be removed soon. Move the entire
Cookbook contribution to shell-docs:

- showcase/shell-docs/src/content/docs/cookbook/ — landing + Daytona recipe
  copied verbatim (Fumadocs frontmatter/components/dividers all match).
- showcase/shell-docs/src/content/docs/meta.json — new top-level
  '---Cookbook---' divider with a '...cookbook' spread, slotted between
  Platforms and Other.
- showcase/shell-docs/src/components/brand-nav.tsx — Cookbook tab added to
  LEFT_LINKS (lucide ChefHat icon) and active-route detection extended so
  /cookbook/* highlights it (peer to the existing Reference handling).

Reverts all earlier edits to docs/ from this PR (navbar, root meta, learn
meta, and the docs/content/docs/cookbook/ tree) so the deprecated folder is
left at zero-diff vs main.

OSS-222
2026-05-28 22:59:37 +00:00
Tyler Slaton e5ed1508db fix: add v1 reference version selector for shell-docs (#5086)
## Summary
- Add a version selector to the reference docs so readers can switch
between v1 and the default reference content
- Update reference routing and item loading to support the new v1
hierarchy
- Add v1 reference content metadata and pages for hooks, components,
SDKs, and classes
- Extend SEO redirects to preserve reference navigation across versions

## Testing
- Not run (not requested)
2026-05-28 15:58:46 -07:00
Tyler Slaton 64100d849f Merge branch 'main' into tyler/docs-add-v1-reference-selector 2026-05-28 15:54:21 -07:00
Tyler Slaton b552a62124 docs(landing): overhaul landing page (#5091)
Improving the overall visual design of the docs landing page.

<img width="1756" height="1315" alt="Screenshot 2026-05-28 at 3 13
05 PM"
src="https://github.com/user-attachments/assets/aeef2c94-0cb1-475c-8f9c-c2a37437e0e1"
/>
2026-05-28 15:48:58 -07:00
Jordan Ritter 7908788a71 chore(showcase): update validate-pins fail baseline for copilotkit 0.1.92 bump
The PR bumps copilotkit==0.1.91 -> 0.1.92 across three showcase
requirements.txt files (langgraph-python, langgraph-fastapi, strands).
The validate-pins ratchet compares the SHA-256 of the sorted [FAIL]
tuple set against the recorded baseline. The langgraph-fastapi tuple
"copilotkit pinned ==0.1.91, Dojo has ==0.1.87" now reads
"==0.1.92, Dojo has ==0.1.87" — same already-failing tuple, new text,
so the FAIL count is unchanged at 106 but the hash flipped.

No new pin drift was introduced (count stays at 106). The
pre-existing langgraph-fastapi <-> Dojo parity gap is out of scope
for this bump and tracked separately. Updating only validatePinsFailHash
to reflect the new tuple text.

Old: d340cdebe623177b957b62576821b51cde7f174b6b788040d67cc87e3d20b702
New: 4355457a222f8011c361da7a848d7361e897ee588ad0b8c6487b851fd0c23b77
2026-05-28 15:23:25 -07:00
Jordan Ritter e56634e0ae chore(showcase): bump copilotkit SDK pin to 0.1.92
Bumps copilotkit Python SDK from 0.1.91 to 0.1.92 across the three showcase integrations that
pin it: langgraph-python, langgraph-fastapi, and strands.

This picks up the header_propagation fix from CopilotKit/CopilotKit#5088, which ensures the
runtime's X-* headers (including X-AIMock-Context) propagate end-to-end through the Python
SDK middleware so D6 testing of langgraph-python sees the expected context routing.

No lockfiles to regenerate — these are plain pip requirements consumed directly by the
integration Dockerfiles.
2026-05-28 15:23:25 -07:00
Mark Fogle f6cb61dfd3 docs(cookbook): drop skill pointer + clarify codeRun response shape
- Remove the 'copilotkit-daytona skill packages this same setup' sentence
  from the 'Get started with a coding agent' section, since the skill is
  no longer shipped.
- Tighten the prompt so coding agents map the Daytona SDK response
  correctly: `codeRun` returns an ExecuteResponse whose stdout is on
  `.result` (not `.stdout`). A verification run with a fresh subagent
  on a minimal Built-in Agent fixture initially produced `{ stdout:
  res.stdout }` (silent undefined); the tightened prompt now reliably
  produces `{ stdout: res.result, exitCode: res.exitCode }`.

OSS-222
2026-05-28 22:21:09 +00:00
Mark Fogle 11fbb9d010 chore(skills): drop copilotkit-daytona skill
After validating the recipe's inline 'Get started' prompt against a fresh
coding-agent run on a minimal Built-in Agent fixture, the skill package is
no longer needed — the prompt alone produces the same correct setup. Keep
the docs surface minimal per OSS-222's 'as minimal as possible' mandate.

OSS-222
2026-05-28 22:21:09 +00:00
Austin Merrick 180011586e fix(skills): fix Express subpath — runtime/express → runtime/v2/express
Verification revealed @copilotkit/runtime/express is not a real subpath
export (throws ERR_PACKAGE_PATH_NOT_EXPORTED). The correct path is
@copilotkit/runtime/v2/express.
2026-05-28 15:14:04 -07:00
Tyler Slaton c6f4cea781 docs(landing): overhaul landing page
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
2026-05-28 14:40:25 -07:00
Jordan Ritter 3110cf9b00 docs(sdk-python): document header_propagation module purpose and scope
Adds a module-level docstring at the top of header_propagation.py that explains in plain
English what the module does (forwards CopilotKit request-context x-* headers onto
outbound LLM/provider HTTP calls so downstream services like the aimock test server and
proxies can correlate the outbound call with the original inbound request), the precise
scope (only headers the application itself set via set_forwarded_headers; no request
bodies, cookies, user data, credentials, or telemetry), and the mechanics (walks the
._client chain to find the httpx client and attaches an async hook for AsyncClient or a
sync hook for Client). Also softens a few comments and docstrings whose wording could
read as surveillance language ("inject" / "installing an async hook ... silently dropped")
to neutral engineering phrasing ("attach" / "the forwarded headers would not be attached
to the outbound request") without losing any technical meaning or warnings. No executable
logic, signatures, conditionals, or string literals in code paths were changed; the diff
is comments and docstrings only.

In response to review feedback on PR #5088.
2026-05-28 14:39:07 -07:00
Jordan Ritter 6b6e08fb8a chore(sdk-python): release v0.1.92 2026-05-28 14:39:07 -07:00
Jordan Ritter 3e6fc5ca32 fix(sdk-python): walk _client chain and install async hook on AsyncClient
Forwarded headers (e.g. X-AIMock-Context) were dropped before reaching the
wire in two cases. First, install_httpx_hook only attached to the immediate
client, missing an httpx client nested one or more ._client hops deep; it now
walks the ._client chain (bounded) to find the object that carries
event_hooks. Second, a sync def hook installed on an httpx.AsyncClient was
invoked as a coroutine and never awaited, silently dropping headers; the hook
is now async def for AsyncClient and sync def for Client. Async detection
prefers isinstance against the real httpx classes and falls back to an EXACT
"AsyncClient" MRO class-name match (not startswith("Async"), which would
misclassify a sync client whose MRO includes an Async*-named base).
2026-05-28 14:39:07 -07:00
Austin Merrick 250fe0e1e0 fix(skills): correct package names and import paths in copilotkit-setup skill
@copilotkit/react and @copilotkit/agent do not exist on npm. Replace
with the real published packages (@copilotkit/react-core, @copilotkit/runtime)
and update all import paths to use the v2 subpath exports throughout.
2026-05-28 14:23:09 -07:00
Martha Schumann 8b62c97f60 fix(react-core): harden thread stability regression 2026-05-28 14:15:07 -07:00
Mark 4c3ab65299 Merge branch 'main' into docs/222-daytona-cookbook 2026-05-28 14:13:57 -07:00
Martha Schumann b54eb3a5da fix(react-core): stabilize provider defaults 2026-05-28 13:57:43 -07:00
Mark Fogle aedd0b0ff2 docs(cookbook): wire Cookbook as a top-level nav tab
Decision made on the nav-placement deferral from the previous commit: the
Cookbook gets a top-level nav tab (next to Learn) — mirroring how reference
and learn appear both as top-level tabs and as root meta.json entries.
Adds a Cookbook entry to LEFT_LINKS in navbar.tsx using the lucide ChefHat
icon (matching the section's frontmatter icon) and restores 'cookbook' to
the root docs meta.json so it also appears in the Documentation sidebar.

OSS-222
2026-05-28 20:46:28 +00:00
github-actions[bot] 70cb273edb style: auto-fix formatting 2026-05-28 20:43:26 +00:00