Merged
Conversation
Each connector is now a proper class that `implements Connector`: - McpAskConnector: no-op pull-based connector - TelegramConnector: photo + chunked text delivery via grammY Bot API - WebConnector: SSE broadcast + session persistence with sendStream Plugins instantiate their connector class instead of building anonymous closures. splitMessage/MAX_MESSAGE_LENGTH moved to telegram-connector.ts and re-exported for the plugin's own sendReply methods. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Without pnpm-workspace.yaml, `pnpm install` at the root did not install dependencies for the linked opentypebb package (e.g. yahoo-finance2), causing ERR_MODULE_NOT_FOUND on fresh clones. Closes #43 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ort) Two test suites verifying the streaming path from provider to SSE client: - chat-streaming: 7 tests for the in-memory pipeline (FakeProvider → AgentCenter → StreamableResult → SSE client) - sse-transport: 3 tests with a real Hono HTTP server verifying writeSSE delivers events to raw HTTP clients in real-time Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…support Remove derivative-specific columns (Side, Leverage) from the positions table. Replace with a rich Symbol cell that shows secType-aware badges (spot/swap/fut/opt), contextual side tags, and leverage indicators only when meaningful. Margin and liquidation info shown as secondary text within the row. Stocks now display cleanly without spurious "long 1x". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Chat events (tool_use, tool_result, text) now travel on the same HTTP connection as the request — no longer dependent on a separate SSE connection that can drop and lose events. Server: POST handler uses streamSSE() to push events directly, plus best-effort push to other SSE clients for multi-tab sync. Frontend: handleSend() uses fetch + ReadableStream to consume the streaming POST response. Removes streamToolsRef/streamTextRef bridge pattern. useSSE now only handles push notifications. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Covers the new architecture where POST /api/chat returns an SSE stream: - POST returns text/event-stream with stream events + done event - Incremental delivery (ReadableStream parsing, same as frontend) - Multi-tab: POST SSE stream + separate SSE clients both receive events Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace flat streamText/streamTools state with interleaved StreamSegment[] that preserves arrival order. Text blocks now render before tool calls (边想边做 pattern), and thinking dots persist while tools are running. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…(17 tests) Extract chat logic from ChatPage into useChat hook: - reduceStreamEvent: pure function for interleaved segment building - finalizeMessages: preserves segment order in final display items (fixes intermediate text blocks being lost on stream end) - ChatPage simplified to consume hook Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- toChatHistory: emit text before tool_calls (matches streaming order) - Streaming: use ToolCallGroup for done tools (same as history), StreamingToolGroup only while running. Proper isGrouped logic so avatar/label matches history rendering. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/api/chatnow returns SSE stream; UI rendering unified for history and streamingTest plan
pnpm installon fresh clone installs all deps including opentypebb's yahoo-finance2pnpm devstartup🤖 Generated with Claude Code