9 Commits

Author SHA1 Message Date
Shu Yao
4d85134f60
Merge pull request #624 from hobostay/fix/temp-file-leak-session-download
fix: replace atexit with BackgroundTask for temp zip cleanup
2026-05-26 21:29:08 +08:00
token2everything
64bb16a884 feat: preserve workflow session on browser refresh with reconnect and message replay
- Decouple WebSocket connection from session lifecycle: workflows continue running after disconnect
- Message buffering with ring buffer (max 1000) for chat history replay on reconnect
- Session garbage collection: 24-hour TTL for terminal sessions via background asyncio task
- Multi-tab support: last tab wins, old WebSocket closed on new connection for same session
- Cancel now sends explicit WebSocket message instead of relying on disconnect detection
- Replace hardcoded API keys and BASE_URL with ${API_KEY}/${BASE_URL} placeholders in yaml configs
2026-05-26 19:12:51 +08:00
Test User
958dc05b7f
fix: replace atexit with BackgroundTask for temp zip cleanup
Using atexit to clean up temporary zip files is unreliable because
atexit handlers only run when the process exits, not after each
download. This means temp files accumulate on disk, one per download,
until the server restarts.

Replace with Starlette's BackgroundTask which runs cleanup after
the response is fully sent, ensuring temp files are deleted promptly.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 20:17:09 +08:00
NA-Wen
5099636757 add tool list routes 2026-03-11 12:11:06 +08:00
NA-Wen
d48e82f17e add tool list routes 2026-03-11 12:06:33 +08:00
NA-Wen
54ad9a57ee fix frontend error 2026-03-11 11:22:18 +08:00
NA-Wen
9381abd96f [feat] add server endpoint 2026-03-11 10:49:52 +08:00
Shu Yao
7bb72f56e6 add: batch execution API added 2026-01-10 22:35:32 +08:00
NA-Wen
f0db945ed3 initial commit of chatdev 2.0 2026-01-07 16:24:01 +08:00