From b38842ff38856a89c0c37e3aad4f3a713043f6b6 Mon Sep 17 00:00:00 2001 From: Adam Higgins Date: Wed, 21 Oct 2026 14:45:35 +0100 Subject: [PATCH] fix(web): attached Linear issues and other contexts no longer show as unavailable in the composer The upstream sync (#415) dropped the issue, thread-tab, repository and checkout records from the composer's chip lookup, so every chip backed by those stores rendered as "no longer available" right after it was attached. Co-Authored-By: Claude Opus 5.5 --- apps/web/src/components/chat/ChatComposer.tsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/apps/web/src/components/chat/ChatComposer.tsx b/apps/web/src/components/chat/ChatComposer.tsx index 6a5dddfb67cf1..e47e33d5f7bc6 100644 --- a/apps/web/src/components/chat/ChatComposer.tsx +++ b/apps/web/src/components/chat/ChatComposer.tsx @@ -298,7 +298,10 @@ import { ComposerModelFilters } from "./ComposerModelFilters"; import { deriveComposerModelItems } from "./composerModelItems"; import { attachModelToChat } from "./modelReferences"; import { useEnvironmentModelPreferences } from "~/hooks/useSettings"; -import { useIssueContextStore } from "~/issueContextStore"; +import { useCheckoutContextRecords } from "~/checkoutContextStore"; +import { useIssueContextRecords, useIssueContextStore } from "~/issueContextStore"; +import { useRepositoryContextRecords } from "~/repositoryContextStore"; +import { useThreadTabContextRecords } from "~/threadTabContextStore"; import { providerModelKey } from "~/modelOrdering"; import { ComposerPrimaryActions, type ComposerSendSurface } from "./ComposerPrimaryActions"; import { useComposerCheckoutItems } from "./useComposerCheckoutItems"; @@ -1942,10 +1945,18 @@ export const ChatComposer = memo(function ChatComposer(props: ChatComposerProps) updateModelChip: (record: ModelContextRecord) => useIssueContextStore.getState().upsert(routeThreadRef.threadId, record), }; + const composerThreadTabContexts = useThreadTabContextRecords(routeThreadRef.threadId); + const composerIssueContexts = useIssueContextRecords(routeThreadRef.threadId); + const composerRepositoryContexts = useRepositoryContextRecords(routeThreadRef.threadId); + const composerCheckoutContexts = useCheckoutContextRecords(routeThreadRef.threadId); const composerContextRecords = composerContextRecordsFromDraft({ terminalContexts: composerTerminalContexts, reviewComments: composerReviewComments, previewAnnotations: composerPreviewAnnotations, + threadTabs: composerThreadTabContexts, + issues: composerIssueContexts, + repositories: composerRepositoryContexts, + checkouts: composerCheckoutContexts, threadContexts: composerThreadContexts, images: composerImages, files: composerFiles,