Releases: DmacMcgreg/psibot
Releases · DmacMcgreg/psibot
v0.3.0 — Inline Keyboards & Mini App
What's New
Telegram Inline Keyboards
Transform the bot from command-driven to tap-to-act. Every response and listing now includes interactive buttons:
- Agent responses —
[Regenerate][Continue][Switch Model]buttons on every reply - Session management —
[Resume][Fork]buttons per session in/sessions - Job management —
[Run][Pause][Enable/Disable][Delete]buttons per job in/jobs - Model picker — Tap
Switch Modelfor[Opus][Sonnet][Haiku]quick selection - Delete confirmation —
[Yes, delete][Cancel]safety prompt before removing jobs - 12 callback actions with compact
action:payloadencoding (fits Telegram's 64-byte limit) - Shared
ChatStateclass between commands and callback handler for consistent state
Telegram Mini App Dashboard
Embedded mobile dashboard accessible via the "Dashboard" menu button in Telegram:
- Chat — Full agent chat with SSE-streamed responses, themed message bubbles
- Jobs — View, trigger, pause, toggle, and delete scheduled jobs
- Memory — Browse and search agent memory entries
- Sessions — Combined mini-app and Telegram session history with tap-to-resume
- Native Telegram theming via
--tg-theme-*CSS variables (auto light/dark) - HMAC-SHA256
initDataauthentication for API routes per Telegram spec - Mounted at
/tma, exempted from IP allowlist, secured by Telegram auth
Agent Reliability
- Agent now always provides a final response when hitting turn or budget limits instead of silently stopping
- Stop reason tracking (
end_turn,max_turns,budget_exceeded,stale_timeout) shown in run metadata
Files Changed
19 files changed, 1,352 insertions, 51 deletions
Full Changelog: v0.2.0...v0.3.0
v0.2.0 - Job Pausing, Model Selection & YouTube Improvements
What's New
Job Pause/Resume
- Pause until a date/time — job stays scheduled but executor skips runs until the datetime passes, then auto-clears
- Skip N runs — job skips the next N scheduled executions, decrementing each tick, then auto-resumes
- Both modes can be combined; manual triggers (
job_trigger) always bypass pause conditions - New
job_pauseandjob_resumeMCP tools for Telegram control - Web UI: inline pause form, amber status badges, and resume button
Per-Job Model Selection
- Jobs can now specify a Claude model (e.g.
claude-sonnet-4-5-20250929) instead of always using the default - Supported across MCP tools (
job_create,job_update,job_get), web UI, and executor - YouTube Watchlist Processor job seeded with explicit Sonnet model
YouTube Pipeline Improvements
- Real-time progress notifications via Telegram during playlist processing
- Per-video status details (
[NEW],[SKIP],[MOVE],[FAIL]) in processing results - Model passthrough for transcript analysis (configurable via
YOUTUBE_ANALYSIS_MODEL) - Reduced retry limit to prevent re-processing stuck videos
- New
scripts/audit-playlists.tsfor database synchronization audits
Agent Infrastructure
modeloverride support inAgentRunOptions— queries can now specify a model per-run- Keep-alive callback resets the stale timer during long-running tool calls (e.g. YouTube processing)
Files Changed
17 files changed, 411 insertions, 36 deletions
Full Changelog: v0.1.0...v0.2.0
v0.1.0 - Initial Release
psibot v0.1.0
Personal AI assistant: Telegram bot + web dashboard, powered by Claude Agent SDK.
Core
- Telegram bot with grammy - command handlers, voice messages, photo handling, auth middleware
- Web dashboard with Hono + HTMX - SSE-based agent chat streaming, job/memory/log viewers
- Claude Agent SDK integration with MCP servers and subagent spawning
- SQLite database with WAL mode, FTS search, and session tracking
Agent Capabilities
- MCP tool servers: memory, knowledge, browser automation, job scheduling, Telegram media, git worktrees
- Media tools: Gemini image generation/editing, Edge TTS (text-to-speech), mlx-audio STT (speech-to-text)
- Subagents: image-generator, audio-processor, coder, researcher - each with specialized models
- YouTube processing: video transcript extraction, structured analysis, vector embeddings for semantic search, playlist batch processing via OAuth
Infrastructure
- macOS daemon via LaunchAgent with CLI management (
psibot install/start/stop/restart/status/logs) - Heartbeat system: periodic maintenance cron with quiet hours and budget limits
- Job scheduler: croner-based cron and one-off scheduled tasks with budget controls
- Webhook mode: Telegram webhooks via Tailscale Funnel
- Session management: resume/fork sessions, session hashing for message stats
User Experience
- Setup/uninstall scripts (
scripts/setup.sh,scripts/uninstall.sh) for automated first-time installation from a fresh clone