Commit Graph
105 Commits
Author SHA1 Message Date
gongzhiyong 29e77c2b6a fix: resolve TypeScript errors in main.tsx and MessageBubble
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 21s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 40s
2026-04-14 02:43:55 +08:00
gongzhiyongandClaude Haiku 4.5 aec776e60c refactor: extract utility modules from main.tsx
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 22s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 11m20s
- Split 1504-line monolithic main.tsx into 5 utility modules:
  - src/utils/tool-maps.ts (TOOL_GROUPS, TOOL_TO_UI, MODEL_OPTIONS, QUICK_PROMPTS)
  - src/utils/input-handling.ts (keyboard shortcuts, textarea, event listeners)
  - src/utils/thread-management.ts (deduplication, thread helpers)
  - src/utils/message-rendering.ts (tool call extraction, UI matching)
  - src/utils/api-client.ts (LangGraph API client operations)
- Add missing deps: unist-util-visit, hast
- Update agent model configs (opus for backend, haiku for tester)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-14 02:18:28 +08:00
gongzhiyongandClaude Opus 4.6 179aab55f0 fix: show full AI reply by default instead of collapsed summary
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 18s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 47s
- Change summaryExpanded default from false to true
- Long replies (>800 chars) now display full text immediately
- Users can still collapse with "收起" button if needed

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 01:31:02 +08:00
gongzhiyongandClaude Opus 4.6 eb200cbdfd fix: feedback buttons always visible, thread title update for untitled threads
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 30s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 34s
- Remove opacity-0 group-hover from ThumbsUp/ThumbsDown buttons — always visible
- Fix thread title: update title whenever currentTitle is empty, not just first message

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 01:29:27 +08:00
gongzhiyongandClaude Opus 4.6 d53655c180 fix: card occlusion by input bar, thread title update for existing threads
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 17s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 43s
- Add h-32 spacer before bottomRef to prevent last card from being hidden behind input bar
- Fix thread title not updating: check existing title instead of only first message

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 01:11:47 +08:00
gongzhiyongandClaude Opus 4.6 182f6e358c feat: interaction upgrades — feedback buttons, export, shortcuts, input unlock
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 34s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 36s
- Add ThumbsUp/ThumbsDown feedback buttons on AI messages (hover reveal)
- Add ExportButton to export conversation as Markdown file
- Add global keyboard shortcuts: Ctrl+Shift+O (new thread), Ctrl+Shift+S (sidebar), / (focus input), Esc (stop)
- Unlock textarea during AI generation (remove disabled={thread.isLoading})
- Smart title truncation at word/punctuation boundary (30 chars)
- Show tool inputSummary in ToolCallStatus execution log

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 01:07:43 +08:00
gongzhiyongandClaude Opus 4.6 244a6d4a1f feat: next-gen COT system — streaming reasoning, structured thinking, timeline UI
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 20s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 39s
- Expand COT prompts from 30-char to 80-200 char structured reasoning (all 4 agents)
- Add source/meta fields to thinking blocks (inject-thinking.ts)
- Add invokeWithReasoningStream() for Pro mode streaming reasoning (create-llm.ts)
- Add writer agent injectThinking + stripThinkingBlocks support
- Frontend: Brain pulse animation, real-time timer, tool summary on collapse
- Frontend: Markdown rendering for reasoning source, plain text for prompt source
- Frontend: Timeline layout with connector dots for multi-tool calls (ToolCallStatus)
- Fix main.tsx isStreaming passthrough for thinking messages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 00:20:20 +08:00
gongzhiyongandClaude Sonnet 4.6 157a3c6a83 feat: add frontend remote log uploader for Docker visibility
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 14s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 49s
- POST /api/client-log endpoint in http.ts (Hono, no auth, 204 response)
  prints batched log entries to stdout so `docker compose logs` shows them
- New src/utils/remote-log.ts: remoteLog/remoteWarn batch to backend every 500ms
- Replace all bracket-tagged diagnostic console.log/warn calls in main.tsx and
  ToolCallStatus.tsx with remoteLog/remoteWarn (tags: thread-ui, ui-debug,
  render-msg, orphan-match, orphan-name-match, orphan-result, streaming-orphan,
  tool-ui-match)
- Add /api/client-log proxy entry to vite.config.ts so dev server forwards
  the request to the LangGraph backend (port 2024)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 17:33:43 +08:00
gongzhiyongandClaude Opus 4.6 2218bbcfef feat: integrate Azure OpenAI Responses API for Pro mode COT reasoning
When modelMode is "pro", searcher/enterprise/coder agents now call the
Responses API directly via fetch to obtain reasoning summary blocks.
The reasoning text is injected as a { type: "thinking" } content block
in the AIMessage, while flash/auto modes remain unchanged using the
existing Chat Completions path through AzureChatOpenAI.

Key changes:
- create-llm.ts: add invokeWithReasoning() with inline zod-to-JSON-Schema
  converter and Responses API output parser (reasoning/message/function_call)
- All three agent nodes: Pro branch converts LangChain messages to
  Responses API format (developer role, function_call_output for tool
  results, function_call for AI tool invocations)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 17:07:22 +08:00
gongzhiyongandClaude Opus 4.6 2422ea39c6 fix: prevent duplicate card rendering during streaming
Streaming orphan UI cards section was rendering all cards with message_id=NONE
as orphans, even when they were already claimed by the message-level orphan
matching logic via card_id. Added card_id+tool_call_id check to prevent
double rendering.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:38:00 +08:00
gongzhiyongandClaude Sonnet 4.6 bfcf22d4f8 fix: 修复 AI 消息渲染顺序错乱和搜索结果卡片重复问题
有 tool_calls 的中间 AI 消息不再渲染独立 MessageBubble 正文气泡,
thinking 内容移至 ToolCallStatus 上方作为步骤说明,
最终 AI 消息(无 tool_calls)才渲染 MessageBubble,确保工具步骤在前、正文回答在后。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 15:44:36 +08:00
gongzhiyongandClaude Opus 4.6 7d035b21b7 fix: COT rendering, react-markdown crash, checkpoint pollution, subgraph ui.push
- MessageBubble: add thinking block rendering (collapsible COT panel with Brain icon)
- MessageBubble: add rehypeSanitizeLinks plugin to fix react-markdown v10 href crash
- MessageBubble: add MarkdownErrorBoundary for graceful fallback
- general-input: add cleanPollutedToolCalls to prevent checkpoint pollution
- force-summary: add cleanPollutedToolCalls for searcher MAX_ITERATIONS path
- searcher/coder/writer tool-executor: remove { message } binding from ui.push (fixes msg_id=NONE)
- docker-compose: fix VITE_LANGGRAPH_URL to localhost:2024 for local dev

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:39:57 +08:00
gongzhiyongandClaude Sonnet 4.6 e9808cc44f fix: deduplicate messages and UI cards when streamSubgraphs is true
With streamSubgraphs:true, subgraph values events push messages that
the parent Supervisor later merges, causing the same message.id to
appear multiple times in thread.messages. Similarly, the same card_id
can appear in both subgraph and parent values snapshots.

- Add deduplicateMessages() at module level: keeps the last (most
  up-to-date) copy per message.id, eliminating duplicate AI messages
  caused by subgraph-then-parent merge events.
- Apply deduplicateUiItems() to the full allUi array before per-message
  card matching, so loading→done card pairs pushed by subgraphs and
  parent are collapsed globally before orphan attribution runs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 15:36:40 +08:00
gongzhiyongandClaude Sonnet 4.6 09a0021007 feat: upgrade langgraph-sdk to 1.8.8 and enable streamSubgraphs
- Upgrade @langchain/langgraph-sdk from 0.0.73 to 1.8.8
- Add streamSubgraphs: true to both thread.submit() calls (doSubmit + handleRegenerate)
- Enables real-time Gen-UI card streaming from subgraphs (searcher/coder/writer)
- Verified: values|searcher:* SSE events now appear in stream output

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 15:29:10 +08:00
gongzhiyongandClaude Sonnet 4.6 d0ea8ab8b6 fix: add messages streamMode to eliminate 18s blank during subgraph tool execution
Both thread.submit() calls now use streamMode: ["values", "messages"] so the
frontend receives real-time LLM token stream from subgraphs (searcher/coder/writer)
during the tool execution phase, eliminating the skeleton-only blank period.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 15:21:48 +08:00
gongzhiyongandClaude Sonnet 4.6 a55c264cc0 fix: 禁用并发消息发送,改为串行模式
AI 回复流式输出期间禁用输入框和 Enter 提交,防止并发请求导致状态混乱。
移除并发对话弹窗和消息排队逻辑,简化为直接 disabled。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 14:01:07 +08:00
gongzhiyongandClaude Sonnet 4.6 bb013af19f debug: add console logs to diagnose search-result card rendering issue
Add [thread-ui], [ui-debug], [tool-ui-match] console logs to trace
why searcher search-result cards show only skeleton after search completes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 13:15:32 +08:00
gongzhiyongandClaude Opus 4.6 ffdb88677b fix: prevent checkpoint pollution + add reset thread button
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 28s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 36s
- Add checkpoint guard in all 4 tool-executors ensuring every
  tool_call_id gets a ToolMessage response
- Add cleanPollutedToolCalls utility to heal corrupted message history
- Add error banner with "重置此对话" button in frontend

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 01:16:11 +08:00
gongzhiyongandClaude Opus 4.6 bd7f227b11 fix: add Jina X-Timeout header + ensure webRead always throws Error instances
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 28s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 36s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 00:49:58 +08:00
gongzhiyongandClaude Sonnet 4.6 51bf279ac6 fix: sequential tool calls + standalone search-result cards
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 23s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 40s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 00:34:49 +08:00
gongzhiyongandClaude Sonnet 4.6 5f9d05135d fix(searcher): remove card_id from search-result ui.push props
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 28s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 38s
SearchResultProps does not declare a card_id field, so passing it caused
TS2769 type errors. search-result cards do not need loading→done dedup
(each google_search/web_search_deep call produces a complete result in one
push), so the card_id and associated local variables are unnecessary.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 00:28:04 +08:00
gongzhiyongandClaude Sonnet 4.6 2830024cb9 fix: add card_id to google_search and web_search_deep ui.push for precise matching
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 20s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 40s
Each search result card now carries a unique card_id containing the tool call id
(e.g. google-search-<tc.id>), enabling the ToolCallStatus exact-match logic to
correctly bind cards to their originating tool call without index-based offset errors.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 00:26:49 +08:00
gongzhiyongandClaude Sonnet 4.6 869d3d54f9 fix(searcher): disable parallel tool calls and remove stale card_id from search-result props
- Add parallel_tool_calls: false to searcher agentNode bindTools call so the
  LLM is forced to execute search tools one at a time (google_search first,
  then web_read in a separate turn); prompt-level "strict禁止" alone cannot
  override model-side parallel tool calling behaviour
- Remove card_id field from google_search and web_search_deep ui.push props;
  SearchResultProps does not declare card_id so the field caused TS2769
  overload errors; these cards do not need deduplication (each search is a
  distinct query), while the card_id variables were introduced by a previous
  commit and are now unused
- Clean up unused googleCardId and deepCardId local variables

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 00:26:24 +08:00
gongzhiyongandClaude Sonnet 4.6 87d1a5f937 fix: resolve web-read-progress skeleton screen and search-result card disappearing
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 28s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 38s
- Add web_read -> web-read-progress mapping to standaloneUiItems filter in main.tsx
  so web-read-progress cards are no longer mistakenly treated as standalone
- Add web-read-progress to CARD_TYPE_PRIORITY (550) to ensure stable sort order
  and prevent search-result cards (500) from being reordered relative to web-read cards
- Add unique card_id (containing tc.id) to google_search and web_search_deep ui.push
  calls so each search result card can be precisely identified
- Improve uiItem matching in ToolCallStatus to first try exact match via card_id
  containing tc.id, falling back to index-based matching only when necessary;
  this prevents index offset bugs when multiple same-type tools run concurrently

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 00:24:50 +08:00
gongzhiyongandClaude Opus 4.6 9cf6293198 fix: use Promise.allSettled to prevent missing ToolMessage responses
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 39s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 47s
When LLM sends multiple parallel tool_calls but one throws unexpectedly,
Promise.all loses all results causing 400 error from OpenAI.
Promise.allSettled ensures every tool_call_id gets a response.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 00:20:57 +08:00
gongzhiyongandClaude Opus 4.6 257a4412aa fix: increase web_read timeout from 8s to 30s with retry
Deploy LangGraph Server to Azure Container App / build-and-deploy (push) Failing after 27s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 42s
8s timeout caused Jina Reader failures on slower sites like news.cn.
Increased to 30s with 2 retries and 1s backoff.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 23:38:36 +08:00
gongzhiyongandClaude Opus 4.6 d8b989f681 fix: add ErrorBoundary around Gen-UI cards to prevent black screen
Deploy LangGraph Server to Azure Container App / build-and-deploy (push) Failing after 14s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 52s
Wraps all LoadExternalComponent usages with CardErrorBoundary so
card rendering errors show an inline error message instead of
crashing the entire app.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 23:34:08 +08:00
gongzhiyongandClaude Opus 4.6 4267d0a62a feat(ui): default expand tool call results and execution log
Deploy LangGraph Server to Azure Container App / build-and-deploy (push) Failing after 22s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 51s
Tool call status cards and execution log panel now expand by default
so users can see CoT process and results without clicking.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 23:29:08 +08:00
gongzhiyongandClaude Opus 4.6 48c9e0c854 fix: revert to langgraphjs dev mode to restore Azure service
server.ts production mode crashes on startup (exit code 1).
Revert to langgraphjs dev until startServer() compatibility is resolved.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 22:51:02 +08:00
gongzhiyongandClaude Sonnet 4.6 0dd9216720 fix: add @langchain/langgraph-api as direct dependency for production mode
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 27s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 40s
server.ts uses createRequire to resolve @langchain/langgraph-api at startup.
With pnpm, indirect dependencies are not hoisted to node_modules/@langchain/,
causing "Cannot find module" error and container exit code 1 on Azure.

Adding it as an explicit dependency ensures pnpm creates the direct symlink.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 22:41:58 +08:00
gongzhiyongandClaude Opus 4.6 0d97298b6a feat: web-read-progress Gen-UI card + production mode + security fixes
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 13s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 51s
- Add web-read-progress Gen-UI card for real-time web reading feedback
- Searcher tool-executor pushes loading→complete cards during web_read
- ToolCallStatus supports expanding during loading state
- Switch from langgraphjs dev to production mode (server.ts)
- Add Hono middleware to strip sensitive request headers
- Bundle splitting via Vite manualChunks (1.85MB → 8 chunks)
- SPA fallback via staticwebapp.config.json
- Agent model configs updated (sonnet 1M → standard sonnet)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 22:18:05 +08:00
gongzhiyongandClaude Sonnet 4.6 5503a7ca9d fix: add web_search_deep to UI_NAME_MAP in ToolCallStatus and main.tsx
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 17s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 42s
Previously web_search_deep tool calls were missing from the UI_NAME_MAP,
causing their search-result cards to render as standalone cards instead of
being embedded within the ToolCallStatus component row.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 21:54:15 +08:00
gongzhiyongandClaude Sonnet 4.6 bb1885eca1 fix(searcher): prevent silent termination when MAX_ITERATIONS reached
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 13s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 51s
When tool rounds hit MAX_ITERATIONS, the router was jumping directly to
END without giving the LLM a chance to produce a final text reply.
Added a `force-summary` node that invokes the LLM without tools,
ensuring a coherent Chinese summary is always generated after all
search results are collected.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 21:42:59 +08:00
gongzhiyongandClaude Sonnet 4.6 60735de884 fix(security): strip Azure HTTP headers from thread config to prevent IP leak
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 16s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 43s
The LangGraph API server injects all x-* request headers into
thread.config.configurable, which gets persisted and exposed via
POST /threads/search. This leaked Azure-injected headers (x-forwarded-for,
x-client-ip, x-arr-ssl, etc.) to any user.

Adds a Hono middleware (http.app) that strips sensitive infrastructure
headers at the HTTP layer before they reach the LangGraph API routes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 20:48:06 +08:00
gongzhiyongandClaude Sonnet 4.6 569e157f25 fix: SPA 404 fallback + JS bundle code splitting + pre-existing build errors
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 29s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 39s
- Add public/staticwebapp.config.json with navigationFallback for Azure SWA SPA routing
- Add manualChunks in vite.config.ts to split vendor deps (react/langgraph-sdk/assistant-ui/radix/markdown/charts/router)
- Add property-information resolve alias to fix refractor→hastscript@6 CJS/ESM conflict (pre-existing build failure)
- Exclude agent/ from tsconfig.app.json to fix hono missing type error (agent is backend-only, frontend CI uses pnpm vite build directly)

Build output chunks:
  vendor-react: 12.30 kB (gzip: 4.35 kB)
  vendor-langgraph: 32.85 kB (gzip: 9.29 kB)
  vendor-markdown: 316.65 kB (gzip: 94.19 kB)
  vendor-charts: 428.01 kB (gzip: 113.50 kB)
  vendor-assistant-ui: 740.11 kB (gzip: 260.11 kB)
  index: 379.74 kB (gzip: 110.17 kB)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 20:45:54 +08:00
gongzhiyong 00f5dc3438 fix: flash via lastMessagesRef, web_read timeout 8s, searcher no parallel google+web_read
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 16s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 45s
2026-04-12 17:29:16 +08:00
gongzhiyong 6f036abdaa feat: CoT output — agents output thinking sentence before tool calls
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 30s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 39s
2026-04-12 17:21:02 +08:00
gongzhiyong 782ef8ab95 style: redesign Stop button — border style, Loader2 spinner during stopping
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 36s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 41s
2026-04-12 17:06:37 +08:00
gongzhiyong 004f26eb94 fix: Stop button uses cancelling poll flow, shows status text during stop
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 35s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 41s
2026-04-12 16:45:36 +08:00
gongzhiyong 1034d4bbc8 fix: remove hardcoded secrets, centralize storage config, move dev deps to devDependencies 2026-04-12 16:16:11 +08:00
gongzhiyong fb23b64df2 feat: Redis tool cache, Service Bus alerts, doc-creator agent for edit/translate 2026-04-12 16:15:45 +08:00
gongzhiyong 33cd268003 fix: jina partial_success, bash base64, ticket parallel search, ExecutionLogPanel toolCallId, sanitizeTitle regex
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 27s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 38s
2026-04-12 16:06:21 +08:00
gongzhiyongandClaude Sonnet 4.6 73a7175051 feat: cancelling status, ThreadSidebar lastActive time, MessageBubble smart summary
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 23s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 53s
- 点5: cancelling 独立状态 UI,用轮询替换 300ms setTimeout,StreamStatusBar 加橙色视觉
- 点6: ThreadSidebar formatTime 支持毫秒时间戳,时间展示改用 lastActive
- 点7: MessageBubble 智能摘要(关键词优先/标题次优/跳开场白),折叠阈值提升至25行/800字,展开后可收起

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:44:58 +08:00
gongzhiyongandClaude Sonnet 4.6 1be8b2602d refactor: preValidateToolCall rules array, extract getLastHumanContent helper
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 17s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 42s
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:43:04 +08:00
gongzhiyongandClaude Sonnet 4.6 e4ba9f78b1 feat: add toolCallId to ExecutionLogEntry for precise frontend matching
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 21s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 39s
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:28:29 +08:00
gongzhiyongandClaude Sonnet 4.6 107069ea06 feat: execution_log full fields in ToolCallStatus, index matching, ExecutionLogPanel overview badges
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:28:27 +08:00
gongzhiyongandClaude Sonnet 4.6 4895ff5465 feat: message queue upgrade, full payload snapshot, StreamStatusBar queue count, config badge
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Has been cancelled
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Has been cancelled
- Replace single pendingSubmitRef with pendingQueueRef array supporting multiple queued messages
- Add SubmitPayload interface to snapshot text/file/tools/modelMode at submission time
- Rewrite handleSubmit/doSubmit to use payload snapshots instead of closures over mutable state
- Rewrite handleConcurrentQueue with polling loop that drains the queue sequentially
- Rewrite handleConcurrentInterrupt and handleConcurrentCancel for queue awareness
- StreamStatusBar queued state now shows count (N 条消息已排队) and inline cancel button
- Add key={concurrentStatus} to StreamStatusBar div for fade-in animation on status change
- Config panel summary button shows numeric badge instead of dot when tools are active

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:28:16 +08:00
gongzhiyong 964e0dd305 fix: load historical messages when switching threads via client.threads.getState
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 29s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 47s
2026-04-12 15:14:29 +08:00
gongzhiyongandClaude Sonnet 4.6 0d36c0fc0d feat: execution log panel, stream status bar, config polish, card sorting, error recovery CTA
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 22s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 41s
- Point 5: dual-layer card sort (type priority + sort_key)
- Point 3: config summary text, active button style, Escape key, open animation
- Point 2: ConcurrentStatus state machine with StreamStatusBar
- Point 1: ExecutionLogPanel component replaces text-based execution summary
- Point 4: error-result gets fallback tool suggestions and direct-answer CTA

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:10:17 +08:00
gongzhiyongandClaude Sonnet 4.6 531197fd68 feat: add originalQuery to error-result props, semantic sort_key weights for card ordering
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 14s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 46s
- All error-result ui.push() calls now include originalQuery derived from the failed tool's input args
- Added CARD_SORT_WEIGHT constant mapping card names to semantic sort priorities (error=100, chart=200, knowledge=300, ticket=400, search=500, code=600, doc=700, actions=900)
- All sort_key values now computed as CARD_SORT_WEIGHT * 1_000_000 + timestamp for stable ordering

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:09:13 +08:00