fix: register Linear tools in TOOLS_WITH_UI and make GraphQL calls async

- Add create_linear_issue, update_linear_issue, delete_linear_issue to
  TOOLS_WITH_UI so the HIL approval cards are correctly dispatched to
  the Linear tool-ui components (without this the interrupt cards were
  never rendered)
- Replace blocking requests.post with httpx.AsyncClient in
  LinearConnector.execute_graphql_query to avoid stalling the asyncio
  event loop during live streaming; remove now-unused requests import
This commit is contained in:
CREDO23 2026-02-19 15:53:59 +02:00
parent 9b838ec015
commit 2f9768b371
2 changed files with 7 additions and 2 deletions

View file

@ -10,7 +10,6 @@ from datetime import datetime
from typing import Any from typing import Any
import httpx import httpx
import requests
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.future import select from sqlalchemy.future import select
@ -274,7 +273,10 @@ class LinearConnector:
if variables: if variables:
payload["variables"] = variables payload["variables"] = variables
response = requests.post(self.api_url, headers=headers, json=payload) async with httpx.AsyncClient() as client:
response = await client.post(
self.api_url, headers=headers, json=payload, timeout=30.0
)
if response.status_code == 200: if response.status_code == 200:
return response.json() return response.json()

View file

@ -148,6 +148,9 @@ const TOOLS_WITH_UI = new Set([
"scrape_webpage", "scrape_webpage",
"create_notion_page", "create_notion_page",
"update_notion_page", "update_notion_page",
"create_linear_issue",
"update_linear_issue",
"delete_linear_issue",
// "write_todos", // Disabled for now // "write_todos", // Disabled for now
]); ]);