ollim-bot has been in active development since February 9, 2026 with 324 commits across 17 days.
Feb 26, 2026
Timezone, CI, and code quality- Timezone configuration — new
OLLIM_TIMEZONEenvironment variable with automatic system local detection fallback; replaces hardcodedAmerica/Los_Angelesacross all timestamp-producing modules - GitHub Actions CI — lint (
ruff check,ruff format --check,ty check) and test (pytest) jobs across Python 3.11, 3.12, and 3.13 - Pre-commit hooks —
ruff --fix,ruff format, andty checkrun on every commit - All 25
tytype checker diagnostics resolved .env.exampletemplate added for onboarding
Feb 25, 2026
Hardening and cleanup- Extended thinking parameter passed to forked background clients —
background forks now inherit the
thinkingsetting from their parent - Stale migration code removed
- Code-only state files moved to
~/.ollim-bot/state/— separates infrastructure files from the agent’s working directory - Owner identity guard on all bot entry points
- DM-only operation enforced in
bot.py - Bot presence set to “Watching your DMs” (always offline)
- 1-ping-per-session limit enforced for background forks via contextvar
allow_ping: falsenow hides ping tools from the SDK tool list entirely- Google API errors surfaced in button handlers instead of silently failing
Feb 24, 2026
Context quality and fork thinking- Extended thinking enabled in interactive forks
- Context quality gate added to system prompt — agent evaluates whether context is sufficient before responding
- Anti-slop guidelines added to design philosophy
Feb 23, 2026
Webhook endpoints and ping budget refill- Webhook HTTP endpoints — external services trigger background forks via authenticated HTTP requests with Haiku screening, payload validation, and content fencing
- Ping budget refill-on-read bucket — replaced flat daily counter
with a token bucket that refills over time (
capacity: 5,refill_rate: 90minutes per token) - Forward schedule injected into background fork preambles so the agent sees upcoming jobs
- Per-job tool restrictions (
disallowed_tools) for background routines and reminders - Permission approval flow fixed with anyio primitives to prevent hangs
Feb 22, 2026
Background fork configuration and quiet-when-busy- BgForkConfig — new
update_main_session(modes:always,on_ping,freely,blocked) andallow_pingfields for routines and reminders - Stop hook respects
update_main_sessionmode, controlling whether background forks can write pending updates - Quiet-when-busy — background forks soft-block non-critical pings when the user is in an active conversation
- 30-minute timeout for background forks to prevent runaway sessions
- Relative timestamps added to background update context
- Concurrent
append_updaterace condition fixed
Feb 21, 2026
Interactive fork resume and model overrides- Background fork resume — buttons on background fork embeds open an interactive fork that continues the background session’s context
/thinkingslash command to toggle extended thinking mid-conversationmodelandisolatedfields added to routines, reminders, and chain context — per-job model and isolation overrides- Fork message tracking (
track_message) wired into streamer and MCP tools - Subagent prompts (gmail-reader, history-reviewer, responsiveness-reviewer) rewritten for clarity
Feb 20, 2026
Session events and ping budget- Session event logging —
SessionEventdataclass tracks session lifecycle (created, compacted, swapped, cleared, bg_fork) /interruptcommand and agent interruption on fork entry tool calls- Ping budget — daily limit on background fork pings with
/ping-budgetslash command; budget status injected into background fork preambles - Reply-to-fork — replying to a background fork message opens an interactive fork with that session
Feb 19, 2026
Permissions and configurable names- Permission management —
dontAskmode (default),/permissionsslash command, reaction-based approval flow, session-allowed tool set - Configurable
OLLIM_USER_NAMEandOLLIM_BOT_NAMEenvironment variables — no hardcoded names in prompts - Source indicators on embeds —
[bg]prefix for background fork messages, source footer for fork sessions - Context variables for fork-scoped channel, chain context, and
in_forkstate
Feb 18, 2026
Interactive forksFork system
Fork system
enter_forkandexit_forkMCP tools with dual-mode save/report/forkcommand to start an interactive fork from Discord- Fork-aware
stream_chatrouting — messages route to the active fork when one exists - Fork idle timeout checker runs in the scheduler
- Fork exit embeds with save/report/discard button actions
Background fork improvements
Background fork improvements
save_contextblocked in background forks (interactive-only)- Background fork lock removed — background forks run concurrently with the main session
- Pending updates prepended to forked agent interactions
Feb 17, 2026
Architecture refactor and background sessions- Package reorganization —
google/andscheduling/sub-packages replace 20 top-level modules - Forked background sessions —
save_contextandreport_updatesMCP tools for background forks to communicate results back to the main session - Pending updates system with atomic file writes
- Structured dataclasses at module boundaries replacing raw dicts
- Type annotations (Literal types, TypedDicts) added across the codebase
Feb 16, 2026
Routines and reminders split- Wakeup system split into routines (cron-based recurring) and reminders (one-shot with follow-up chains)
- Individual markdown files with YAML frontmatter replace JSONL storage
- Chain state machine for reminder follow-up sequences
- Test suite added for routines, reminders, chains, and CLI
- Cron day-of-week conversion fixed for APScheduler compatibility
Feb 15, 2026
Image support and timestamps- Image attachments forwarded from Discord to Claude via streaming content blocks
- Timestamps prepended to all user messages and prompt paths for time-aware responses
- DM helpers extracted from scheduler to streamer module
Feb 11-12, 2026
Subagents and background wakeups- History-reviewer subagent for morning briefings
- Responsiveness-reviewer subagent for weekly reminder analysis
- Background wakeups with
ping_userMCP tool - Persistent button followup prompts across bot restarts
- Agent working directory pinned to
~/.ollim-bot
Feb 10-11, 2026
Streaming, integrations, and slash commandsStreaming
Streaming
- Real-time response streaming from Claude to Discord
- Typing indicators during tool execution
- Tool usage shown inline during streaming
- Session persistence — conversations resume across bot restarts
- 2000-character overflow handling
Google integrations
Google integrations
- Google Tasks integration with CLI commands
- Google Calendar integration with event details
- Gmail reader subagent for automated inbox triage
Discord UI
Discord UI
- Rich embeds with action buttons
/clear,/compact,/cost,/modelslash commands- Slash command tree synced on startup
- Principle of least privilege applied to agent tools
Feb 9, 2026
Initial release- Discord bot scaffold with Claude Agent SDK
- Self-scheduling reminder system with persistence
- Single-user DM-based conversation model
