Commit Graph

130 Commits

Author SHA1 Message Date
hetaoBackend
abc6c21b11 feat: enable public skills by default 2026-01-20 20:37:51 +08:00
Henry Li
faba2784e1 feat: save locale in cookies 2026-01-20 16:00:39 +08:00
Henry Li
32a45eb043 feat: implement i18n 2026-01-20 14:06:47 +08:00
hetaoBackend
6ec023de8b fix: fix config 2026-01-20 13:58:28 +08:00
hetaoBackend
50810c8212 feat: add skills api 2026-01-20 13:57:36 +08:00
hetaoBackend
8434cf4c60 feat: add MCP API endpoint and enhance API documentation
Add new MCP configuration management endpoint and enhance API documentation
with detailed descriptions, examples, and OpenAPI support for better
developer experience.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-20 13:20:50 +08:00
hetaoBackend
d11763dcc8 fix: fix backend 2026-01-20 09:58:27 +08:00
Henry Li
a18f37779e docs: rewording 2026-01-20 09:26:29 +08:00
DanielWalnut
513332b746 feat: add nginx reversed proxy (#15)
* docs: add nginx reverse proxy documentation

Add comprehensive nginx configuration documentation to README including:
- Production deployment instructions with step-by-step setup
- Architecture diagram showing traffic routing between services
- Nginx features: unified entry point, CORS handling, SSE support
- Updated project structure with nginx.conf and service ports

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat: implement nginx

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 23:23:38 +08:00
Henry Li
b8f9678d07 feat: use code block to display bash commands 2026-01-19 21:59:23 +08:00
Henry Li
fb265f2b1f feat: support NEXT_PUBLIC_LANGGRAPH_BASE_URL 2026-01-19 21:51:40 +08:00
hetaoBackend
d6c1e5868d fix: fix proxy 2026-01-19 21:36:35 +08:00
Henry Li
d7dfffad90 feat: add ToggleGroup 2026-01-19 19:41:46 +08:00
hetaoBackend
1171598b2f feat: add MCP (Model Context Protocol) support
Add comprehensive MCP integration using langchain-mcp-adapters to enable
pluggable external tools from MCP servers.

Features:
- MCP server configuration via mcp_config.json
- Automatic lazy initialization for seamless use in both FastAPI and LangGraph Studio
- Support for multiple MCP servers (filesystem, postgres, github, brave-search, etc.)
- Environment variable resolution in configuration
- Tool caching mechanism for optimal performance
- Complete documentation and setup guide

Implementation:
- Add src/mcp module with client, tools, and cache components
- Integrate MCP config loading in AppConfig
- Update tool system to include MCP tools automatically
- Add eager initialization in FastAPI lifespan handler
- Add lazy initialization fallback for LangGraph Studio

Dependencies:
- Add langchain-mcp-adapters>=0.1.0

Documentation:
- Add MCP_SETUP.md with comprehensive setup guide
- Update CLAUDE.md with MCP system architecture
- Update config.example.yaml with MCP configuration notes
- Update README.md with MCP setup instructions

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 18:58:13 +08:00
Henry Li
541586dc66 feat: support dynamic loading models 2026-01-19 18:54:04 +08:00
hetaoBackend
1a7c853811 fix: use shared httpx client to prevent premature closure in SSE streaming
The proxy was creating a temporary httpx.AsyncClient within an async context manager.
When returning StreamingResponse for SSE endpoints, the client was being closed before
the streaming generator could use it, causing "client has been closed" errors.

This change introduces a shared httpx.AsyncClient that persists for the application
lifecycle, properly cleaned up during shutdown. This also improves performance by
reusing TCP connections across requests.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 16:52:30 +08:00
hetaoBackend
8ea530e221 fix: stop tracking .claude/settings.local.json
Remove .claude/settings.local.json from git tracking and add it to .gitignore to prevent future accidental commits of local settings.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 16:28:03 +08:00
DanielWalnut
9a3eaea54e feat: implement summarization (#14) 2026-01-19 16:17:31 +08:00
Henry Li
1ef04c94ee fix: fix getBackendBaseURL() 2026-01-19 15:42:19 +08:00
Henry Li
f3f66ee924 feat: add NEXT_PUBLIC_BACKEND_BASE_URL 2026-01-19 11:23:40 +08:00
Henry Li
d8391ca3ea feat: make new chat always on top 2026-01-19 00:00:35 +08:00
Henry Li
63fa500716 fix: decode URL 2026-01-18 20:26:01 +08:00
Henry Li
dc04042b53 feat: support clarification tool 2026-01-18 20:17:32 +08:00
Henry Li
69b225082b feat: re-implement message group 2026-01-18 19:56:07 +08:00
DanielWalnut
645923c3bc feat: add clarification feature (#13) 2026-01-18 19:55:36 +08:00
Henry Li
dd80348b76 feat: support SSE write_file(0 2026-01-18 17:13:15 +08:00
DanielWalnut
c50540e3fc fix: Long thinking but with empty content (#12) 2026-01-18 14:21:40 +08:00
DanielWalnut
1397f30f24 feat: implement lazy sandbox and thread data initialization (#11)
Defer sandbox acquisition and thread directory creation until first use to improve performance and reduce resource usage.

Changes:
- Add lazy_init parameter to SandboxMiddleware (default: true)
- Add ensure_sandbox_initialized() helper for lazy sandbox acquisition
- Update all sandbox tools to use lazy initialization
- Add lazy_init parameter to ThreadDataMiddleware (default: true)
- Create thread directories on-demand in AioSandboxProvider
- LocalSandbox already creates directories on write (no changes needed)

Benefits:
- Saves 1-2s Docker container startup for conversations without tools
- Reduces unnecessary directory creation and file system operations
- Backward compatible with lazy_init=false option

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-18 13:38:34 +08:00
Henry Li
8f0bd828d5 feat: add recursion_limit 2026-01-18 13:16:27 +08:00
Henry Li
6bf187c1c2 fix: fix message grouping issues 2026-01-18 13:07:56 +08:00
DanielWalnut
bfe8a24350 fix: fix backend python execution (#10) 2026-01-18 12:41:48 +08:00
Henry Li
23dc64fab1 feat: enhance message display 2026-01-18 11:25:46 +08:00
Henry Li
59683fc12e feat: dim the placeholder 2026-01-18 09:57:30 +08:00
Henry Li
54f58fd7eb Merge remote-tracking branch 'refs/remotes/origin/experimental' into experimental 2026-01-18 09:57:23 +08:00
Henry Li
92fc19a3aa feat: remove model icon 2026-01-18 09:55:17 +08:00
DanielWalnut
aa030410fc feat: fix todos (#9) 2026-01-17 23:23:12 +08:00
Henry Li
3f1f6af30c feat: change back to 60px height 2026-01-17 22:01:17 +08:00
Henry Li
7ea7a7864e feat: use default sidebar width 2026-01-17 22:01:08 +08:00
Henry Li
caf761be59 fix: fix z index 2026-01-17 21:34:32 +08:00
Henry Li
5cda2b90fc feat: refine theme 2026-01-17 21:24:49 +08:00
Henry Li
70cd664d3f feat: adjust dark theme 2026-01-17 21:08:05 +08:00
Henry Li
32a77cce84 feat: the DeerFlow theme is back 2026-01-17 20:59:42 +08:00
Henry Li
094553ea42 feat: change light theme 2026-01-17 20:32:27 +08:00
Henry Li
df65010e5f fix: remove unused imports 2026-01-17 19:47:51 +08:00
Henry Li
2bc5f30c4d feat: welcome, again 2026-01-17 19:46:02 +08:00
Henry Li
06068dd07b feat: add reasoning check to message list item rendering 2026-01-17 18:02:19 +08:00
Henry Li
b705a44f3c feat: pull up the input box when creating new thread 2026-01-17 18:02:01 +08:00
Henry Li
85d9baf2b1 feat:enhance focus status 2026-01-17 17:52:15 +08:00
Henry Li
a64b0d226b feat: redesign step counter 2026-01-17 17:45:13 +08:00
Henry Li
97dbcc4bd6 fix: remove unused imports 2026-01-17 17:37:36 +08:00