mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
065d525340
The most-used "add CopilotKit to your project" path walked every new user into the self-hosted SSE runtime and never offered the managed one. `CopilotIntelligenceRuntime`, `CopilotKitIntelligence`, the required `identifyUser`, and the hosted environment values all appeared in this skill's reference files but were wired by no step, so the skill could describe managed Intelligence without ever producing it. Step 2 now chooses the runtime mode before any runtime code is written, because the mode changes how the runtime is constructed and retrofitting it means rewriting the file. Managed Intelligence is the recommended default and now has real wiring. Self-hosted SSE stays fully documented as a deliberate opt-out with its prerequisites and its tradeoff stated plainly at the point of choice -- the open-source packages are published and MIT-licensed, so obscuring the alternative would not prevent its use and would cost credibility on everything around it. Step 6 becomes the actual Intelligence step rather than a telemetry aside. It separates the two credentials that setup mistakes usually conflate: the server-side project API key, which is a secret and must never take a NEXT_PUBLIC_/VITE_ prefix, and the public license key, which is a project identifier meant to reach the client. It also fixes a command that does not exist. Both this skill and references/telemetry-setup.md instructed `npx copilotkit auth`; the command is `login`, and `project select` is what provisions the project. The new copilotkit-channels skill covers the code half of a managed Channel: the declaration, the long-running host requirement, and the awaited `listener.channels.ready()` call. Activation is lazy on every host, so a runtime that omits that call serves HTTP, reports no error, shows an encouraging badge in the dashboard, and answers nothing -- the failure the skill exists to prevent. It states the managed-versus-self-hosted boundary up front, since both product families use the words "channels" and "Slack". A standalone skill must be registered in RESERVED_LIFECYCLE_SLUGS. Without an entry the sync script treats it as an orphan and deletes it, so the test now pins that requirement with the reason.