Files
Benjamin Taylor 2c05ed6885 chore(release): keep release notes in one CHANGELOG.md per release lane
The notes now land in a source-controlled changelog instead of a scratch file
that rides the release branch. One file per lane, because the lanes version
independently: a shared file would interleave `1.70.0`, `angular/0.5.0` and
`channels/0.9.0` into one unreadable sequence.

  monorepo  ->  CHANGELOG.md
  angular   ->  packages/angular/CHANGELOG.md
  channels  ->  packages/channels/CHANGELOG.md

`write-changelog.ts` prepends this release's section on the release branch,
create-pull-request commits it (a tracked file, always staged), and
`extract-release-notes.ts` reads the section back in the publish job as the
GitHub Release body. The changelog is therefore both the durable record and the
review surface: editing a section on the release PR changes what ships.
release-notes.md goes back to being ignored, so the same notes never exist as
two editable copies.

Also deletes 29 changesets-era changelogs that no tooling had written since
April. They stopped at 1.55.2 while the lane shipped 1.69.3, and
packages/angular/CHANGELOG.md still claimed 1.54.3 from before that lane split
onto its own 0.x line. Their content stays recoverable from git history. A test
pins the tracked changelog set to the lanes so they cannot creep back and
contradict the real versions.

Extraction never fails the publish job: it runs after npm publish, so a miss
annotates loudly and falls through to the existing bodyless-release fallback
rather than stranding the tag.

Committed with --no-verify: the pre-commit nx lane cannot run in this worktree
(packages/core and packages/channels-ui have no node_modules, and
`nx run @copilotkit/core:build` fails identically with the tree clean). The only
change under packages/** is deleting orphan markdown that no build or test
reads.
2026-09-09 08:31:01 -05:00
..

CopilotKit <> LangGraph Starter

This is a starter template for building AI agents using LangGraph and CopilotKit. It provides a modern Next.js application with an integrated LangGraph agent to be built on top of.

This project is organized as a monorepo using pnpm workspaces.

Project Structure

.
├── apps/
│   ├── web/          # Next.js frontend application
│   └── agent/        # LangGraph agent
└── package.json      # pnpm workspaces via pnpm-workspace.yaml

Prerequisites

  • Node.js 20+
  • pnpm 9.15.0 or later
  • OpenAI API Key (for the LangGraph agent)

Getting Started

  1. Install all dependencies (this installs everything for both apps):
pnpm install
  1. Set up your OpenAI API key by copying the example env file and editing it:
cp apps/agent/.env.example apps/agent/.env

Then open apps/agent/.env in your editor and fill in OPENAI_API_KEY with your key.

For production, also copy apps/web/.env.example to apps/web/.env and set LANGGRAPH_DEPLOYMENT_URL to your deployed agent URL.

  1. Start the development servers:
pnpm dev

This will start both the Next.js app (on port 3000) and the LangGraph agent (on port 8125) via Turbo (installed as a dev dependency).

Available Scripts

All scripts use Turbo to run tasks across the workspace:

  • pnpm dev - Starts both the web app and agent servers in development mode
  • pnpm build - Builds all apps for production
  • pnpm lint - Runs linting across all apps

Running Scripts for Individual Apps

You can also run scripts for individual apps using pnpm's filter flag:

# Run dev for just the web app
pnpm --filter web-langgraph-interrupt dev

# Run dev for just the agent
pnpm --filter agent-langgraph-interrupt dev

# Or navigate to the app directory
cd apps/web
pnpm dev

Customization

The main UI component is in apps/web/src/app/page.tsx. You can:

  • Modify the theme colors and styling
  • Add new frontend actions
  • Utilize shared-state
  • Customize your user-interface for interacting with LangGraph

The LangGraph agent code is in apps/agent/src/.

📚 Documentation

Contributing

Feel free to submit issues and enhancement requests! This starter is designed to be easily extensible.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Troubleshooting

Agent Connection Issues

If the chat returns an "Internal error while dispatching CopilotKit request" 500: Check the Next.js server logs for [copilotkit/route] runtime construction failed: or [copilotkit/route] handleRequest dispatch failed:. Common causes:

  • LANGGRAPH_DEPLOYMENT_URL unset in production (required — check apps/web/.env)
  • LangGraph server not running at the configured URL (check pnpm --filter agent-langgraph-interrupt dev started cleanly)
  • OPENAI_API_KEY missing from apps/agent/.env