Skip to content

Releases: aebrer/carcin

v0.3.0: Context Compaction Notification

Choose a tag to compare

@aebrer aebrer released this 26 Feb 21:46

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

Choose a tag to compare

@aebrer aebrer released this 26 Feb 21:12

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 /stop command: 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
  • /stop cleans up dangling "Queued..." status messages