- Added activeWorkspaceIdAtom as a reference to activeSearchSpaceIdAtom.
- Refactored the UserTextPart component in user-message.tsx to simplify icon determination and tooltip logic, enhancing code clarity and maintainability.
MCP consolidation:
- Route all MCP-capable connectors (Slack, Jira, Linear, ClickUp, Airtable,
Notion, Confluence, interim Gmail/Calendar, custom MCP) through a single
`mcp_discovery` subagent. Drive/OneDrive/Dropbox stay native to enrich the KB.
- Deprecate Discord/Teams/Luma: no viable official MCP server.
Google-only web search:
- Remove the main-agent `web_search` tool and the SearXNG platform service;
all public web search now flows through the `google_search` subagent via task().
- Deprecate the Tavily/SearXNG/Linkup/Baidu search connectors (HTTP 410 on
create, "Deprecated" badge); guide heavy users to the custom MCP connector.
- Remove web search from anonymous chat (pure Q&A).
- Tear SearXNG out of docker compose + install scripts; drop tavily-python
and linkup-sdk deps and their config/env vars.
Fix:
- metrics._package_version() now swallows any metadata lookup failure. A
malformed editable-install distribution with no `Version` field raised
KeyError deep in importlib.metadata, and since it runs on every
record_subagent_invoke_duration call it was crashing every task()
delegation. Verified end-to-end against live GPT-5.4.
Co-authored-by: Cursor <cursoragent@cursor.com>
The chat composers submit on Enter without checking whether an IME
composition is active. For Japanese/Chinese/Korean input, pressing Enter
to confirm a conversion fires the submit handler and sends a half-typed
message. Guard the Enter handlers with e.nativeEvent.isComposing in the
main chat editor, the anonymous free composer, and the mention/prompt
picker key navigation.
The composer cleared the live mention atom synchronously on send (via the
editor reset), which raced the async onNew handler that read it — dropping
every @-mention (docs, folders, connectors, and the new chat references)
from the request.
handleSubmit now snapshots the chips before clearing, and onNew consumes
that snapshot (falling back to the live atom for the send-button path),
derives the payload via deriveMentionedPayload, and sends mentioned_thread_ids.
Add a Chats tab to the mention picker (excluding the current chat), carry
the "thread" kind through the inline editor's chip nodes, and render thread
chips on user messages with navigation to the referenced conversation.
- Updated the layout of the ComposerAction and ChatHeader components to improve mobile compatibility.
- Added a new prop to ImageModelSelector for mobile-specific rendering.
- Adjusted ModelSelector to conditionally render elements based on mobile view, enhancing user experience on smaller screens.
- Updated the MarkdownTextPrimitive component to enable smooth rendering by default.
- Adjusted the props to streamline the rendering process for improved user experience.
- Added a new backend URL import to the route file for better configuration.
- Updated the Composer component to use a relative positioning class for improved layout.
- Refactored the ChatExamplePrompts component to enhance the display of active categories and prompts, including a close button for better user interaction.
- Adjusted the structure of the ThreadWelcome component to enhance layout consistency across different screen sizes.
- Updated CSS classes to ensure proper alignment and spacing for the welcome message and composer, improving overall user experience.
- Revised the pricing page title and description to reflect new features including AI workspace, automations, and agents.
- Enhanced the FAQ section with detailed information about AI automations and agents, including scheduling and event-triggered workflows.
- Updated demo plans to include features related to AI automations and agents, ensuring clarity on capabilities and costs.
- Added a new automation illustration to the homepage features grid, emphasizing the automation capabilities of SurfSense.