From 1492ea55b0fd69e87052aed6b4cb7f810adae810 Mon Sep 17 00:00:00 2001 From: Brian Love Date: Thu, 18 Jun 2026 19:52:12 -0700 Subject: [PATCH 1/2] docs(chat): note injection-context + module-scope signal requirement in thread-routing guide --- apps/website/content/docs/chat/guides/thread-routing.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/website/content/docs/chat/guides/thread-routing.mdx b/apps/website/content/docs/chat/guides/thread-routing.mdx index a83cb884..23f5b000 100644 --- a/apps/website/content/docs/chat/guides/thread-routing.mdx +++ b/apps/website/content/docs/chat/guides/thread-routing.mdx @@ -2,6 +2,8 @@ `injectThreadRouting()` binds an app-owned active-thread signal to the Angular Router: it restores the thread id from the URL on load, stamps signal changes back into the URL, validates stale links, and treats a bare URL as "no thread" (the welcome state). **The URL is the sole source of truth — nothing is written to localStorage**, so links remain shareable without any extra plumbing. +> Call `injectThreadRouting()` from an injection context (a component constructor or field initializer), and declare the active-thread signal at module scope so your `provideAgent({ threadId })` provider can reference it. + ## What it does | Behavior | Detail | From 8f9e8e5302e176c61330c5bcf08bee2ba433ac35 Mon Sep 17 00:00:00 2001 From: Brian Love Date: Thu, 18 Jun 2026 19:56:29 -0700 Subject: [PATCH 2/2] docs(chat): use for the prerequisites note (match file convention, per review) --- apps/website/content/docs/chat/guides/thread-routing.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/website/content/docs/chat/guides/thread-routing.mdx b/apps/website/content/docs/chat/guides/thread-routing.mdx index 23f5b000..19a5b61e 100644 --- a/apps/website/content/docs/chat/guides/thread-routing.mdx +++ b/apps/website/content/docs/chat/guides/thread-routing.mdx @@ -2,7 +2,9 @@ `injectThreadRouting()` binds an app-owned active-thread signal to the Angular Router: it restores the thread id from the URL on load, stamps signal changes back into the URL, validates stale links, and treats a bare URL as "no thread" (the welcome state). **The URL is the sole source of truth — nothing is written to localStorage**, so links remain shareable without any extra plumbing. -> Call `injectThreadRouting()` from an injection context (a component constructor or field initializer), and declare the active-thread signal at module scope so your `provideAgent({ threadId })` provider can reference it. + + Call `injectThreadRouting()` from an injection context (a component constructor or field initializer), and declare the active-thread signal at module scope so your `provideAgent({ threadId })` provider can reference it. + ## What it does