Repository navigation
Releases: aebrer/carcin
Releases · aebrer/carcin
Release list
v0.3.0: Context Compaction Notification
What's New
PreCompact Hook — When Claude's context window fills up and auto-compacts, there's a long unexplained pause on Telegram. Carcin now includes a PreCompact hook (hooks/notify-compact.py) that sends a Telegram notification when compaction starts, so you know why the stream went quiet.
- Stdlib only (
urllib.request) — no extra dependencies - Inherits bot credentials automatically through the subprocess chain
- See README for setup instructions
Single-user note — README now explicitly states Carcin is designed for single-user operation.
Docs — CLAUDE.md updated with message queue, file batching, and hook architecture notes.
v0.2.0 — Message queue and file batching
What's New
Message Queue
Messages arriving while Claude is busy are now queued and processed sequentially. Only one Claude subprocess runs at a time per user, eliminating conversation forks entirely.
- "Queued..." vs "Thinking..." status indicators so you know what's happening
- Queue-aware
/stopcommand: interrupts the current task AND clears pending items - DONE marker only sent when the queue drains normally (suppressed after
/stop)
File Batching
Files sent in rapid succession are collected into a single batch before processing:
- Media groups (photos/videos sent as album): batched via Telegram's
media_group_id - Sequential documents: batched via 3s per-user debounce timer
- Downloads start immediately but the prompt is built only after all files arrive
- Partial download failures are reported to the user
Robustness
- Exception handling in queue processor with user notification
- Unique file naming (
{message_id}_{filename}) prevents disk overwrites - Extracted
_build_claude_cmd()and_is_claude_busy()helpers /stopcleans up dangling "Queued..." status messages