Commit Graph
100 Commits
Author SHA1 Message Date
gongzhiyongandClaude Opus 4.6 53f6b99467 fix(ui): 删除默认页输入框下方的快捷按钮
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
用户反馈输入框下方的工具快捷按钮(搜索知识库/查看最新工单等)很丑,直接移除。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 01:30:35 +08:00
gongzhiyongandClaude Sonnet 4.6 b59f672033 feat(ui): replace collapsible config summary bar with always-visible tool chips
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 46s
Remove the "Auto · 云费用 1" summary toggle button that occupied a
dedicated line below the textarea. Model mode and tool group chips are
now displayed inline and always visible, eliminating the redundant
status row while keeping all selection controls accessible.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 01:29:31 +08:00
gongzhiyongandClaude Sonnet 4.6 3d723e5705 feat(ui): remove redundant tool status hint line below input
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 19s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 39s
The "可分析工单、查知识库" / "已启用 X 个工具" hint paragraph
below the textarea was redundant — ConfigPanel already shows the
active tool count in its summary button. Removed the <p> block and
the now-unused activeTools destructuring in ChatInput.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 01:25:03 +08:00
gongzhiyongandClaude Sonnet 4.6 0908e983fb fix(ui): P0 线程切换时调用 switchThread 彻底清除 error 状态
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 38s
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 45s
useStream 的 error 跨线程持久化,切换 threadId 时不自动重置。
useEffect 监听 currentThreadId 变化,调用 thread.switchThread()
清除 error、messages 等所有旧状态,从根本上解决切换线程后
红色错误横幅残留问题。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 01:18:16 +08:00
gongzhiyongandClaude Sonnet 4.6 dc7d443b19 fix(ui): ConfigPanel 展开时隐藏快捷按钮,消除视觉重复
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 43s
工具面板(ConfigPanel)和快捷按钮(QUICK_PROMPTS)功能高度重叠,
同时展示造成"重复"感。ConfigPanel 展开时将 showQuickPrompts 设为 false,
收起时恢复显示,两套入口不再同时出现。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 01:08:53 +08:00
gongzhiyongandClaude Sonnet 4.6 671e708bb5 fix(ui): P0 切换空线程不显示错误横幅
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 35s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 37s
thread.error 在 useStream 切换 threadId 时不会自动清除,
导致切换到空新对话时残留旧线程的 error 触发红色错误横幅。
修复:activeMessages.length === 0 时抑制错误横幅,
空线程不可能有工具执行异常,无需展示该提示。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 01:05:14 +08:00
gongzhiyongandClaude Sonnet 4.6 ac1eaf63c3 fix(ui): P1-1 彻底修复线程切换竞态 — 抑制 useStream 旧数据
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 57s
useStream 在 threadId 变更后仍有一个渲染周期保留旧线程的 messages。
新增 threadJustSwitched 标记,切换时忽略 thread.messages,强制走
historicalMessages(新线程为空),保证欢迎页必然显示。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 00:59:38 +08:00
gongzhiyongandClaude Sonnet 4.6 c610e23931 fix(ui): P1-1 线程切换残留内容 + P2-5 列表项来源标注渲染
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 15s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 46s
- main.tsx: 切换 threadId 时清空 lastMessagesRef,避免空对话显示上一条对话内容
- MessageBubble.tsx: li 元素增加 renderWithSourceBadges,[工单][知识库] 等标注在列表项中也渲染为彩色 badge

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 00:55:02 +08:00
gongzhiyongandClaude Sonnet 4.6 31bddf4fcd fix(ui): 优化首屏欢迎区域和快捷按钮布局
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 24s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 50s
- ChatMessages: 空状态增加品牌图标+大标题,视觉层次更清晰
- ChatInput: 快捷按钮去除 max-w-sm 限制,改为全宽 2列布局,圆角统一为 rounded-xl

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 00:49:10 +08:00
gongzhiyongandClaude Sonnet 4.6 c4323cad1c feat: 前端添加 CloudCost 工具选择和工具状态映射
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 39s
- TOOL_GROUPS 添加云费用工具组(DollarSign 图标)
- TOOL_TO_UI 添加 cloudcost_* → cost-result 映射
- QUICK_PROMPTS 添加查询云费用快捷入口
- ToolCallStatus UI_NAME_MAP 添加 cloudcost 工具映射

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 03:39:24 +08:00
gongzhiyongandClaude Sonnet 4.6 a6ae0ef5eb feat: 集成 CloudCost 云管系统作为运营大脑数据源
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 26s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 42s
- 新增 cloudcost-client.ts:5 个 API 函数(dashboard/metering/detail/alerts/accounts)
- config.ts 添加 cloudcost.apiBase(默认 orange-wave-09002e800.7.azurestaticapps.net)
- toolConfig.ts 添加 cloudcost_* 超时/重试配置
- CLAUDE.md 更新架构图和 env var 文档

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 03:35:25 +08:00
gongzhiyongandClaude Sonnet 4.6 d93bb5966c feat(enterprise): add CloudCost cloud cost management tools (5 tools)
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 cloudcost_dashboard, cloudcost_metering, cloudcost_detail, cloudcost_alerts,
and cloudcost_accounts tools to the enterprise agent with full Gen-UI card support.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 03:29:47 +08:00
gongzhiyongandClaude Sonnet 4.6 5c3e6f18e2 feat: add CostResult Gen-UI card component with 5 display modes
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 13s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 47s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 03:19:30 +08:00
gongzhiyong ad4f832524 chore: add .omc to .gitignore and update deploy command in CLAUDE.md
Trigger auto deployment for soc-langgraph / build-and-deploy (push) Failing after 12s
2026-04-14 02:47:07 +08:00
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 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 e3147231a6 chore: remove manual deploy workflow, use Azure native CD
Azure Container App auto-deploy workflow replaces our manual
deploy-langgraph.yml. CD is now managed via Azure Portal.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 00:00:14 +08:00
gongzhiyongandClaude Opus 4.6 ac16f38821 docs: update all agent md files with latest architecture
- Container App URLs (not Web App)
- ACR in AuthData resource group
- 5 sub-agents (enterprise/searcher/coder/writer/generalInput)
- New components (web-read-progress, force-summary)
- Logs unified to AuthData/LoGSOC + SOC

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 23:49:16 +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 2b614ddef2 fix(ci): ACR resource group is AuthData not Operation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 23:36:20 +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 Sonnet 4.6 3ef9624385 chore: migrate backend from Azure Web App to Container App
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 37s
- Replace soc-langgraph Web App with Azure Container App (soc-cae environment)
- New URL: soc-langgraph.victorioussand-69befc84.southeastasia.azurecontainerapps.io
- Update deploy-langgraph.yml: Web App restart -> az containerapp update --image
- Update deploy-langgraph-ui.yml: VITE_LANGGRAPH_URL to Container App URL
- Container App: min 1 replica, max 3, CPU 1.0, Memory 2Gi, port 8080
- Update CLAUDE.md architecture and deployment docs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 22:58:44 +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
gongzhiyong 66eaf7680d fix: sanitize thread titles — reject UUID/hash/empty values, fallback to 新对话
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 37s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 47s
2026-04-12 15:01:29 +08:00
gongzhiyong b93f08f206 feat: soc-client timeout via toolConfig, 24 unit tests, fix abort early-check and placeholder regex
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 24s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 39s
2026-04-12 14:57:06 +08:00
gongzhiyongandClaude Opus 4.6 38395226e5 feat: fix filterTools modelMode, tool call limit, temperature default, preValidate routing rules
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 15s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 47s
- filterTools now actually filters by modelMode (flash excludes search tools)
- Hard limit of 3 tool calls per turn in preValidateToolCall
- Temperature default changed from 0.5 to 0.2 to match MODEL_PRESETS.auto
- ticket_list blocked when message contains specific ticket ID (TK-xxxx)
- google_search/web_search_deep blocked for internal knowledge queries

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 14:49:35 +08:00
gongzhiyong 23e228b0f9 docs: fix CLAUDE.md — Supervisor uses AzureOpenAI not Gemini 2026-04-12 14:48:26 +08:00
gongzhiyongandClaude Sonnet 4.6 7167109414 feat: collapse model/tool config into expandable summary bar
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 43s
Replace flat tool toggles + model selector bar with a default-collapsed
summary chip (e.g. "Auto · 已开启 3 个工具 ▾") that expands upward into
a compact panel. Panel auto-closes on outside mousedown click. Options
changes keep the panel open.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 14:40:18 +08:00
gongzhiyongandClaude Sonnet 4.6 d86da0e48b feat: abort/cancel support in tool-executor and retry
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 20s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 38s
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 14:33:47 +08:00
gongzhiyongandClaude Sonnet 4.6 f375220eb6 feat: concurrent input dialog, unlock textarea during loading, fix TS errors
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 12s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 45s
- Add showConcurrentDialog modal when submitting while AI is loading
- Offer interrupt (stop + submit) or queue (poll until done) options
- Remove disabled={thread.isLoading} from textarea and FileUploadButton
- Fix TS2352: cast BaseMessage to unknown first before Record
- Fix TS6133: rename unused toolName param to _toolName
- Fix TS2769: chart_type typed as union literal, not string
- Fix TS2322: separate cmdMap lookup from const declaration in soc-client

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 14:31:29 +08:00
gongzhiyongandClaude Sonnet 4.6 e8a29e1f89 feat: toolConfig.ts, expanded preValidate rules, envelope unification, fallbackFrom, temperature pass-through
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 24s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 39s
- New src/agent/utils/toolConfig.ts: centralized per-tool timeout/retry config
- preValidateToolCall: kb_search min query length + duplicate guard, ticket_list page range, ticket_detail placeholder ID detection
- ExecutionLogEntry: added fallbackFrom and retryCount fields
- retry.ts: added onAttempt callback for retry counting
- tool-executor.ts: all 7 tool content returns unified to {ok, tool, summary, resultCount, data, error, fallback} envelope
- supervisor/types.ts: temperature slider config field
- enterprise/agent.ts: temperature pass-through to createLlm()

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 14:16:19 +08:00
gongzhiyongandClaude Sonnet 4.6 fc56503e22 feat: ToolCallStatus partial_success/fallback_success visual states
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 41s
- Add CornerDownRight, AlertCircle icons for fallback/partial states
- New isPartial/isFallback props on ToolCallRow with hint banners
- Read execution_log from thread.values in main.tsx, pass to ToolCallStatus
- Match by tc.name === entry.tool to determine partial/fallback per row

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 14:13:14 +08:00
gongzhiyongandClaude Sonnet 4.6 2f201bf1f0 feat: expand preValidateToolCall rules, add traceId+batch summary, extend log protocol to all agents
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 37s
- Add validation for web_search/google_search (query length), sandbox_run/code_execute (empty code + dangerous commands), doc_create/report_generate/reply_draft (title/topic required)
- Add traceId field to ExecutionLogEntry, generate per-request traceId in enterprise tool-executor with batch summary log
- Add structured console.log tool_exec events to searcher, coder, writer tool-executors (no state changes)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 13:55:19 +08:00
gongzhiyongandClaude Sonnet 4.6 b22d13415a fix: make GOOGLE_API_KEY and DATABASE_URL optional in dev environment
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 12s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 43s
GOOGLE_API_KEY is not used at startup (no code calls config.google.apiKey).
DATABASE_URL is only needed for production checkpointer. Both are now
warned-but-not-fatal in dev (NODE_ENV != production) to allow local
development without these credentials.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 13:06:13 +08:00
gongzhiyongandClaude Sonnet 4.6 9c96913b4d feat: enterprise product sprint — log protocol, tool rules, UX polish
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 49s
Backend:
- config.ts: unified startup env validation (throw on missing critical vars)
- tool-executor: structured logToolCall() JSON, ToolStatus enum (success/partial_success/fallback_success/error), preValidateToolCall() hardcoded guards for ticket_detail/chart_generate, durationMs/inputSummary/resultCount on all execution log entries
- agent.ts: tool selection decision tree, chart-as-default-path prompt rules, source labels [知识库][工单][网络][推断]
- tool-defs.ts: applicable/not-applicable guidance on all 4 tools
- soc-client.ts: sandbox hardening (10k char limit, 15s timeout, output truncation, error classification), config.* accessors
- router.ts: preCheckRoute() rules — TK-xxx/工单/知识库 → enterprise direct; greetings → generalInput
- supervisor/types.ts: removed dead config fields (model/temperature/maxTokens/systemPrompt)
- Remove chat-agent (legacy entry point)

Frontend:
- MessageBubble: source badge rendering [知识库][工单][网络][推断], CitationChip [1][2] → clickable chips
- ThreadSidebar: auto-title from first message, collapsible search, long title truncation
- ToolCallStatus: tool-specific loading labels, collapse-all toggle for multi-tool
- main.tsx: conclusion-first layout (AI text above artifacts), draft persistence, IME fix, auto chip, multi-tool AnalysisBlock container, sort_key ordering, retry via soc:retry-tool
- chart-result: empty guard, chart/table toggle, multi-chart format support
- ticket-summary/knowledge-result: work-card quick actions (prefill with context)
- ActionBar: structured payload {text, taskType, sourceCardId}, source label UI
- index.css: card-enter slide animation, dot-bounce loading

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 13:01:02 +08:00
gongzhiyongandClaude Sonnet 4.6 183794dc42 fix: sandbox friendly error card + ticket_list empty guard + search auto-supplement
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 34s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 38s
- coder/tool-executor: push sandbox-result card with friendly message on
  failure instead of raw error, guide user to local execution or retry
- enterprise/tool-executor: skip ticket-summary card when ticket_list
  returns empty, only return hint in tool message to avoid blank UI
- searcher/tool-executor: auto-supplement web_search_deep with
  google_search when results < 3, matching existing google_search behavior
- ticket_detail UUID: already correctly uses find() match (no change needed)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 22:35:52 +08:00
gongzhiyongandClaude Sonnet 4.6 19cb2e42bc fix(ui): fix ToolCallStatus duplicate label + add fade-in to standalone cards
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 15s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 44s
- Fix ToolCallStatus label duplication: label span was shown twice when
  failed/done; consolidate into a single span with correct copy
- Add animate-in fade-in duration-300 wrapper to standalone Gen-UI cards
  and streaming orphan cards in main.tsx (already present in ToolCallStatus
  expanded view)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 22:34:59 +08:00
gongzhiyongandClaude Sonnet 4.6 3b1ce32bc4 feat(R3): deduplicate UI cards by card_id (loading → complete merge)
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 46s
Cards with the same card_id in props are deduplicated to show only the
last (complete) version, replacing any earlier loading skeleton cards.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 22:33:45 +08:00
gongzhiyongandClaude Sonnet 4.6 c4c5c9916e feat(R3): chart-result + reply-draft + next-actions + citations
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Has been cancelled
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Has been cancelled
- enterprise tool-executor: push chart-result card after ticket_list with
  status/priority distribution pie+bar charts
- enterprise tool-executor: push next-actions card after successful tool
  executions with contextual suggested actions
- enterprise tool-executor: add citations array to kb_search results
- searcher tool-executor: add citations array to google_search and
  web_search_deep results
- writer tool-defs: add replyDraftSchema and reply_draft tool definition
- writer tool-executor: add reply_draft case with LLM-generated drafts
  in customer/internal modes, push reply-draft Gen-UI card

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 22:33:35 +08:00
gongzhiyongandClaude Sonnet 4.6 e408ca9977 feat(R3): reply-draft + next-actions cards + citations in knowledge/search results
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 15s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 46s
- Add reply-draft card (customer/internal mode, inline edit, copy)
- Add next-actions card (suggested action buttons with soc:prefill-input dispatch)
- Register reply-draft and next-actions in agent-uis ComponentMap
- Add citations[] prop to knowledge-result and search-result cards

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 22:32:25 +08:00
gongzhiyongandClaude Sonnet 4.6 f3cf9d027f feat(R3): reply-draft/next-actions/chart prompt quality
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 44s
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 22:31:13 +08:00
gongzhiyongandClaude Sonnet 4.6 397c2c1124 feat: Gen-UI卡片error态 + ToolCallStatus失败状态 + 骨架屏loading
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 40s
- 4个Gen-UI卡片增加errorMessage prop,错误时显示红色提示块,空结果时边框变红
- ToolCallStatus新增failedToolIds prop,失败时显示XCircle红色图标+失败文案
- main.tsx从tool messages status===error派生failedToolIds并传入ToolCallStatus
- ToolCallRow展开无uiItem时显示animate-pulse骨架屏占位
- LoadExternalComponent外包animate-in fade-in过渡动画

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 21:59:12 +08:00
gongzhiyongandClaude Sonnet 4.6 2430fd2174 fix(P1): ticket UUID mapping + sandbox/ticket/search fallback improvements
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 42s
- Fix ticket_detail UUID resolution: use find() to match ticketNumber instead of tickets[0]
- Add sandbox fallback hint in coder tool-executor catch block
- Add ticket_list empty result friendly hint with suggestions
- Add google_search auto-supplement with Jina when results < 3
- Enhance enterprise tool-executor general catch with fallback_hint

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 21:57:56 +08:00
gongzhiyongandClaude Sonnet 4.6 979e900a17 feat(prompt): 4个Agent system prompt追加工具失败处理规范
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
在 enterprise/coder/searcher/writer 的 agent.ts 中,
为 SYSTEM_PROMPT 追加"工具失败处理规范"段落,
指导 LLM 在工具调用失败时给出中文友好提示和替代建议,
不暴露技术报错细节。

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 21:57:42 +08:00
gongzhiyongandClaude Sonnet 4.6 4ad169e891 fix(P0): Daytona sandbox use process/execute endpoint + add sourceType to writer doc_edit/translate
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 51s
- Fix Daytona code execution endpoint from process/code-run (404) to process/execute
- Fix request body format to {command} with language-aware shell wrapping
- Add missing sourceType/confidence props to writer doc_edit and doc_translate ui.push

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 20:01:33 +08:00
gongzhiyongandClaude Sonnet 4.6 0e92444112 feat: prompt optimization — intent routing, source annotation, enterprise output template
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) Has been cancelled
- supervisor router: intent-based routing (no longer keyword-dependent)
- enterprise/searcher/writer/coder agents: source annotation [内部知识][工单数据][网络搜索][模型推断]
- enterprise agent: enterprise output template (结论→依据→建议→下一步)
- enterprise agent: cross-source synthesis prompt for multi-tool results
- writer agent: proactive enterprise closure actions (report generation hints)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 20:00:21 +08:00
gongzhiyongandClaude Sonnet 4.6 8c5890d66a feat: Task#2 ActionBar+SourceBadge+状态语言统一+长消息分层
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 19s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 43s
- 新增 ActionBar 组件:快速操作按钮,通过 soc:prefill-input 事件填充输入框
- 新增 SourceBadge 组件:数据来源标注(内部知识库/工单系统/外部搜索/代码执行)
- 4个 Gen-UI 卡片集成 ActionBar 和 SourceBadge
- main.tsx 添加 soc:prefill-input 事件监听
- ToolCallStatus 状态文案统一为中文(正在xxx.../已完成·xxx)
- MessageBubble 长消息(>800字)显示摘要+展开全文按钮

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 19:59:24 +08:00
gongzhiyongandClaude Sonnet 4.6 e16b4ce92e fix: P0/P1/P2 + sourceType/confidence + kb fallback + report_generate
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Has been cancelled
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Has been cancelled
- Daytona: fix /workspace→/sandbox + toolbox proxy exec endpoint
- KB Agent: timeout 15s→45s, exponential retry (3x, 1s/2s/4s)
- ticket_detail: auto-resolve TK-xxxx ticketNumber to UUID
- retry.ts: add exponential backoff support
- All ui.push(): add sourceType + confidence fields
- kb_search: fallback to google_search on failure with error card
- writer: add report_generate tool with structured Markdown template

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 19:59:13 +08:00
gongzhiyongandClaude Opus 4.6 b8fcc50d73 feat: optimize prompts — intent-based routing, source annotation, enterprise output format
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 44s
- Supervisor router: rewrite to intent-based routing instead of tool-name matching
- Enterprise agent: add structured source annotation ([内部知识]/[工单数据]/[网络搜索]/[模型推断])
- Enterprise agent: add enterprise-style output format (结论/依据/建议) for responses >200 chars
- Enterprise agent: add multi-source synthesis guidelines for cross-tool analysis
- Writer agent: add enterprise document closure prompts (auto-suggest reports after queries)
- Supervisor index: update ALL_TOOL_DESCRIPTIONS to match intent-based approach

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 19:57:55 +08:00
gongzhiyongandClaude Opus 4.6 ba59259458 docs: 产品 Agent MD 写入 8 项优化方案评审结果
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 19:14:33 +08:00
gongzhiyongandClaude Opus 4.6 d6946be6c0 docs: 产品验收测试报告 — 97.2% 通过率,评分 8.0/10
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 14:45:02 +08:00
gongzhiyongandClaude Opus 4.6 a41f2fbf44 feat: P1 滚动到底部浮动按钮
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 14:44:14 +08:00
gongzhiyongandClaude Opus 4.6 dd70cadcc1 feat: P0 前端交互完善 + 测试报告更新
- ToolCallStatus 组件增强
- main.tsx P0 交互改进(textarea/光标/编辑消息)
- 更新测试报告:9/12 通过,3 个外部服务问题

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 14:42:56 +08:00
gongzhiyongandClaude Opus 4.6 86cfa317b6 feat: ChatGPT Enterprise 对标优化 — Prompt 重构 + 前端 P0 交互 + 错误处理
- 重构所有 Agent System Prompt,参考 ChatGPT 风格:自然对话、匹配用户沟通风格、避免翻译腔
- Router 路由规则结构化,新增 Decision Rules 和分组示例,提升路由准确率
- 前端 P0:textarea 多行输入 + Shift+Enter 换行、流式打字光标动画、编辑已发送消息
- 新增 ToolCallStatus 组件、process-attachment 文件处理节点、retry 重试工具
- 工具调用错误响应友好化(formatToolError 中文提示)
- Enterprise tool descriptions 增加使用场景说明
- 上下文截断提示改为中文
- 新增 soc-product-agent 产品经理 Agent 定义

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 14:35:45 +08:00
gongzhiyong 6400d85027 fix: use direct host IP http://192.168.30.30:2024 for LangGraph API
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 28s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 37s
2026-04-11 13:36:37 +08:00
gongzhiyong 216650837a fix: use window.location.origin as fallback URL for Vite proxy in Docker
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 12s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 51s
2026-04-11 12:49:26 +08:00
gongzhiyongandClaude Sonnet 4.6 a505e441ad feat: file upload + context compression + fix maxTokens
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 49s
- Add file-service.ts: Azure Blob upload + PDF/Excel/image parsing
- Add truncate-messages.ts: context compression for long conversations
- Fix maxTokens: flash 500→2000, auto 2048→4096, pro 4096→8192
- Integrate truncateMessages in general-input and router nodes
- Add @azure/storage-blob, pdf-parse, xlsx dependencies

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 12:31:55 +08:00
gongzhiyong 9b5b98f675 feat: add FileUploadButton and FileAttachmentPreview components
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 20s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Has been cancelled
2026-04-11 12:31:24 +08:00
gongzhiyong d878135443 fix: Vite proxy for Docker — frontend routes API through same-origin proxy to langgraph-dev:2024
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 12s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 1m7s
2026-04-11 12:28:52 +08:00
gongzhiyongandClaude Opus 4.6 3eb70fec59 fix: coder agent must always call code_execute, never return plain text code
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 20s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 39s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:03:50 +08:00
gongzhiyongandClaude Opus 4.6 e4760ca66e fix: CanvasPanel returns null when no doc, no longer occupies space
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 44s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 02:24:11 +08:00
gongzhiyongandClaude Opus 4.6 8a5d1c0ea9 fix: router coder/writer distinction + writer must use doc_create tool
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 26s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 42s
- Router prompt now clearly distinguishes "写代码" (execute code → coder)
  from "写文档" (create document → writer)
- Writer prompt strengthened to always use doc_create, never plain text

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 02:20:22 +08:00
gongzhiyongandClaude Opus 4.6 77e64d945e feat: Phase 2 - Deep Search, Code Interpreter, Writer agents + CanvasPanel
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 43s
- Add searcher agent with Jina deep search + KB search tools
- Add coder agent with Daytona sandbox code execution
- Add writer agent with canvas document creation/editing tools
- Integrate all sub-agents into supervisor router
- Add CanvasPanel drawer UI component for document rendering
- Refactor enterprise tools into shared soc-client module

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 01:52:10 +08:00
gongzhiyongandClaude Sonnet 4.6 08add81409 feat: Phase 2 - CanvasPanel drawer + sidebar search & date groups
- Add CanvasPanel.tsx: right-side 480px drawer, renders markdown via
  MessageBubble or code via SyntaxHighlighter, with Copy/Download/Close
  header; listens to window 'open-canvas' CustomEvent dispatched by Gen-UI cards
- Update ThreadSidebar.tsx: add search input below new-chat button with
  live filtering; group filtered threads by date (今天/昨天/本周/更早)
  with section headings; internal state only, Props interface unchanged
- Update main.tsx: import CanvasPanel, add canvasDoc state, register
  open-canvas event listener on mount, render CanvasPanel alongside
  the main chat column inside a flex-row wrapper

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 01:48:25 +08:00
gongzhiyongandClaude Opus 4.6 251c6586f4 feat: Phase 1 — ReAct loop + Markdown rendering + Docker deployment
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 26s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 1m52s
Backend:
- Enterprise Agent refactored from single-round to ReAct multi-turn loop
- New agent.ts (LLM decision node) + tool-executor.ts (tool execution + Gen-UI)
- tool-defs.ts extracted for shared tool schemas
- MAX_ITERATIONS=6 safeguard against infinite loops

Frontend:
- MessageBubble: Markdown + code highlighting + LaTeX + tables
- ThemeToggle: light/dark/system theme cycling
- chart-result Gen-UI card: recharts bar/line/pie/area charts

Infrastructure:
- Docker Compose (lightweight): only LangGraph + Frontend, Azure cloud for PG/Redis/Blob
- Dockerfiles for dev (hot reload) and prod
- Makefile with dev/prod/down/logs commands
- Updated CLAUDE.md and agent definitions for LangGraph.js architecture

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 01:29:56 +08:00