Skip to content

v0.36.0

@epappas epappas tagged this 21 Apr 22:15
The bot is not an agent; alexandria is not an agent. The bot is a thin
adapter that spawns `claude -p` as the agent, which already has the
alexandria MCP tools registered at user scope.

* alexandria/bot/agent.py — asyncio `claude -p` subprocess wrapper with
  an alexandria-aware system prompt appended, configurable model,
  timeout, and reply truncation
* alexandria/bot/prompt.py — system prompt that tells the agent the
  tool navigation recipe and citation discipline
* alexandria/bot/telegram.py — python-telegram-bot long-polling loop,
  allowlist gate, typing indicator, polite voice-message refusal
* alexandria/cli/bot_cmd.py — `alxia bot start` / `bot status` commands
  with token resolution from env var or secret vault
* config.BotConfig — token ref, allowlist, workspace, model, limits
* config: _format_toml_value now handles lists so list-typed config
  values (allowlist) round-trip through save_config/load_config
* pyproject [project.optional-dependencies] bot extra: python-telegram-bot
* docs/guides/telegram_bot.md — setup walkthrough (bot registration,
  user ID, token storage, systemd unit), architecture, caveats,
  extension patterns
* README quick-start gains the bot install + start lines
* Tests: 11 new covering agent subprocess stub, timeout, truncation,
  missing-binary handling, prompt content, CLI status + refusal paths
* Bump version to 0.36.0
Assets 2
Loading