- Create MessageBatcher class for debounce-based message batching
- Update make_callbacks() to include on_tool_use with progress notifications
- Add typing indicator support with stop_event control
- Implement smart message splitting with MarkdownV2 escaping
- Update handle_message() to use typing and batching
- Update handle_photo() and handle_document() to save to session directories
- Add auto-analysis for photos and file upload notifications
- Update session switching and archiving to handle typing and batchers
Instruments the full message pipeline with [TIMING] log entries:
- Message age (Telegram delivery delay)
- Subprocess state (cold-start vs reused)
- Process spawn, first stdout, first assistant text
- Telegram send latency, total wall time
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Archives session directory with tar+pigz to sessions_archive/,
terminates any running subprocess first, clears active session if needed.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The telegram/ directory's __init__.py shadowed the python-telegram-bot pip
package. Remove __init__.py and use direct sibling imports instead.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add /new and /session commands to create and switch sessions
- Route plain text messages to active session's Claude subprocess
- Auto-spawn subprocess when switching to session with no process
- Update help text with session commands
- Handle async callbacks in ClaudeSubprocess (inspect.iscoroutinefunction)
- Preserve all existing bot commands (/status, /pbs, etc.)
- Use block=False for non-blocking message handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Telegram bot (@georgsen_homelab_bot) for two-way communication
- Commands: /status, /pbs, /backups, /beszel, /kuma, /ping
- Photos and files saved to inbox for Claude to read
- Runs as systemd user service
- Shared storage via ZFS bind mounts
- rpool/shared/mikkel on PVE host
- Mounted to ~/stuff in mgmt, dev, general containers
- SMB access via \\mgmt\stuff (Tailscale MagicDNS)
- Updated helper scripts list in CLAUDE.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>