Commit Graph

122 Commits

Author SHA1 Message Date
DanielWalnut
7978e05dc1 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
5d6162d006 feat: use code block to display bash commands 2026-01-19 21:59:23 +08:00
Henry Li
58b5c2fcd5 feat: support NEXT_PUBLIC_LANGGRAPH_BASE_URL 2026-01-19 21:51:40 +08:00
hetaoBackend
a6fcdbf50a fix: fix proxy 2026-01-19 21:36:35 +08:00
Henry Li
24ca87d650 feat: add ToggleGroup 2026-01-19 19:41:46 +08:00
hetaoBackend
74d4a16492 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
21f35b1d3c feat: support dynamic loading models 2026-01-19 18:54:04 +08:00
hetaoBackend
ffb9ed3198 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
3a4149c437 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
f0a2381bd5 feat: implement summarization (#14) 2026-01-19 16:17:31 +08:00
Henry Li
1352b0e0ba fix: fix getBackendBaseURL() 2026-01-19 15:42:19 +08:00
Henry Li
9d18e4e12d feat: add NEXT_PUBLIC_BACKEND_BASE_URL 2026-01-19 11:23:40 +08:00
Henry Li
b431567666 feat: make new chat always on top 2026-01-19 00:00:35 +08:00
Henry Li
c321c9293a fix: decode URL 2026-01-18 20:26:01 +08:00
Henry Li
5624b0cd38 feat: support clarification tool 2026-01-18 20:17:32 +08:00
Henry Li
aa44566fef feat: re-implement message group 2026-01-18 19:56:07 +08:00
DanielWalnut
e1a8d544b6 feat: add clarification feature (#13) 2026-01-18 19:55:36 +08:00
Henry Li
ec1964c829 feat: support SSE write_file(0 2026-01-18 17:13:15 +08:00
DanielWalnut
6f97dde5d1 fix: Long thinking but with empty content (#12) 2026-01-18 14:21:40 +08:00
DanielWalnut
5f4c58aa82 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
41a22fde91 feat: add recursion_limit 2026-01-18 13:16:27 +08:00
Henry Li
71eadc942f fix: fix message grouping issues 2026-01-18 13:07:56 +08:00
DanielWalnut
5a0912d0fd fix: fix backend python execution (#10) 2026-01-18 12:41:48 +08:00
Henry Li
9605cec6d3 feat: enhance message display 2026-01-18 11:25:46 +08:00
Henry Li
f9242727c7 feat: dim the placeholder 2026-01-18 09:57:30 +08:00
Henry Li
bffe802130 Merge remote-tracking branch 'refs/remotes/origin/experimental' into experimental 2026-01-18 09:57:23 +08:00
Henry Li
449f04fc44 feat: remove model icon 2026-01-18 09:55:17 +08:00
DanielWalnut
3261273ee3 feat: fix todos (#9) 2026-01-17 23:23:12 +08:00
Henry Li
fa07e9e903 feat: change back to 60px height 2026-01-17 22:01:17 +08:00
Henry Li
d0988b3cf0 feat: use default sidebar width 2026-01-17 22:01:08 +08:00
Henry Li
88eb341115 fix: fix z index 2026-01-17 21:34:32 +08:00
Henry Li
36b7ac0ce4 feat: refine theme 2026-01-17 21:24:49 +08:00
Henry Li
00fc70536e feat: adjust dark theme 2026-01-17 21:08:05 +08:00
Henry Li
6c9b0f275b feat: the DeerFlow theme is back 2026-01-17 20:59:42 +08:00
Henry Li
79d87de523 feat: change light theme 2026-01-17 20:32:27 +08:00
Henry Li
e418eb6110 fix: remove unused imports 2026-01-17 19:47:51 +08:00
Henry Li
a6e5ebe898 feat: welcome, again 2026-01-17 19:46:02 +08:00
Henry Li
0ea448a220 feat: add reasoning check to message list item rendering 2026-01-17 18:02:19 +08:00
Henry Li
cb54b5dffa feat: pull up the input box when creating new thread 2026-01-17 18:02:01 +08:00
Henry Li
9bfa49ae07 feat:enhance focus status 2026-01-17 17:52:15 +08:00
Henry Li
62921ec96a feat: redesign step counter 2026-01-17 17:45:13 +08:00
Henry Li
63f3c9e2bb fix: remove unused imports 2026-01-17 17:37:36 +08:00
Henry Li
7b33214a05 feat: extract ThreadTitle component 2026-01-17 17:37:12 +08:00
Henry Li
9a3f72869c feat: integrated with artifacts in states 2026-01-17 17:21:37 +08:00
Henry Li
ab65ab3af2 feat: remove ring 2026-01-17 17:21:05 +08:00
Henry Li
d603771291 chore: add TODO for checking duplicate files in state.artifacts 2026-01-17 16:25:51 +08:00
Henry Li
1d3b3e8eb8 dos: update backend TODOs 2026-01-17 16:17:59 +08:00
Henry Li
1a3b70ac43 feat: merge the last thinking with the previous group 2026-01-17 16:10:58 +08:00
Henry Li
be1e016ed4 fix: do not display 'Untitled' 2026-01-17 15:48:43 +08:00
Henry Li
e2d0246827 feat: implement '/chats' 2026-01-17 15:44:49 +08:00