From 962363a33cce8b016c3c0c7ed3a527d7c316a84b Mon Sep 17 00:00:00 2001 From: Brian Love Date: Sat, 16 May 2026 13:58:29 -0700 Subject: [PATCH 1/2] chore(docs): regenerate telemetry api-docs (unblocks deploy job) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit apps/website/content/docs/telemetry/api/api-docs.json drifted 19 lines on main — a recent telemetry change added a public API entry but didn't regenerate the docs. The `Verify generated API docs are committed` step in Website — lint / build has been failing on every push to main since, and that job gates the entire Deploy → Vercel job (which is the one that auto-deploys demo.cacheplane.ai + cacheplane.ai + cockpit.cacheplane.ai + examples.cacheplane.ai). Result: the demo has been stuck on a stale build despite the auto- deploy wiring being correct. Regenerated via `npm run generate-api- docs`; diff is purely additive (19 inserts, 0 deletes). Co-Authored-By: Claude Opus 4.7 (1M context) --- .../content/docs/telemetry/api/api-docs.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/apps/website/content/docs/telemetry/api/api-docs.json b/apps/website/content/docs/telemetry/api/api-docs.json index cf7df9074..c3af8655f 100644 --- a/apps/website/content/docs/telemetry/api/api-docs.json +++ b/apps/website/content/docs/telemetry/api/api-docs.json @@ -406,6 +406,25 @@ }, "examples": [] }, + { + "name": "isPersonalEmailDomain", + "kind": "function", + "description": "", + "signature": "isPersonalEmailDomain(domain: string | null | undefined): boolean", + "params": [ + { + "name": "domain", + "type": "string | null | undefined", + "description": "", + "optional": false + } + ], + "returns": { + "type": "boolean", + "description": "" + }, + "examples": [] + }, { "name": "normalizePostHogHost", "kind": "function", From 2ca9398d9f0cbe970fd10e2e45d77d94d0b92b6a Mon Sep 17 00:00:00 2001 From: Brian Love Date: Sat, 16 May 2026 14:38:53 -0700 Subject: [PATCH 2/2] docs(chat): explain the dual ensureChatRootStyles path Document why we keep both the module-eval side-effect call AND the explicit constructor calls in the top-level chat compositions: the side-effect is the fast path for source-resolution consumers, the constructor calls are the guaranteed path for production-bundled consumers where tree-shaking can drop the side effect. Also: this commit's libs/ change unblocks the canonical-demo Vercel redeploy that's been stuck since v0.0.32 (the prior libs/ commits all failed CI's website-lint-build api-docs check; #377 fixed that but its diff didn't trigger demo_changed=true). Co-Authored-By: Claude Opus 4.7 (1M context) --- libs/chat/src/lib/styles/chat-tokens.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libs/chat/src/lib/styles/chat-tokens.ts b/libs/chat/src/lib/styles/chat-tokens.ts index a8835ef4d..864b8a20f 100644 --- a/libs/chat/src/lib/styles/chat-tokens.ts +++ b/libs/chat/src/lib/styles/chat-tokens.ts @@ -382,4 +382,15 @@ export function ensureChatRootStyles(): void { // Auto-inject on module evaluation. Every chat component imports // `CHAT_HOST_TOKENS` from this file, so the first chat component to load // triggers this once. Safe to evaluate eagerly: idempotent + SSR-guarded. +// +// Note: this side-effect call is the "fast path" — it normally fires +// during the first chat-component import on the client. But production +// bundlers with aggressive tree-shaking can drop it if they treat the +// published artifact as side-effect-free (the published `sideEffects` +// field doesn't match the bundled fesm filename, and TS-path consumers +// route through the source where it does match). The top-level chat +// compositions (`ChatComponent`, `ChatPopupComponent`, +// `ChatSidebarComponent`, `ChatDebugComponent`) also call this from +// their constructors so the injection is guaranteed even when the +// module-eval call gets stripped. Both paths are idempotent. ensureChatRootStyles();