add streaming responses, file transfer, remote deploy

- Streaming: use claude --output-format stream-json, edit TG message
  every 5s with progress, show tool use status during execution,
  ◎ cursor indicator while processing
- File transfer: download user uploads to ~/incoming/, scan
  ~/outgoing/{sid}/ for new files after claude completes
- Error handling: wrap post-auth logic in handle_inner, all errors
  reply to user instead of silently failing
- Remote deploy: make deploy-hera via SSH, generate service from
  template with dynamic PATH/REPO
- Service: binary installed to ~/bin/noc, WorkingDirectory=%h
- Invoke claude directly instead of ms wrapper
- Session state persisted to disk across restarts
This commit is contained in:
Fam Zheng
2026-04-05 08:20:32 +01:00
parent db8ff94f7c
commit 4d88e80f1c
5 changed files with 402 additions and 44 deletions

View File

@@ -1,8 +1,10 @@
# TODO
- [ ] Streaming responses — edit message as `ms` output arrives instead of waiting for full completion
- [ ] Markdown formatting — parse `ms` output and send with TG MarkdownV2
- [ ] Timeout handling — kill `ms` if it hangs beyond a threshold
- [ ] Streaming responses — edit message as claude output arrives instead of waiting for full completion
- [ ] Markdown formatting — parse claude output and send with TG MarkdownV2
- [ ] Timeout handling — kill claude if it hangs beyond a threshold
- [ ] Graceful shutdown on SIGTERM
- [ ] `/reset` command to force new session without waiting for 5am
- [ ] Rate limiting per chat
- [ ] Voice message support — STT (whisper.cpp) → text → claude
- [ ] Video/audio file transcription