Releases: ssamssae/claude-telegram-bridge
Release list
v0.8.1
v0.8.1
New
- The setup wizard can now start the Claude tmux session for you. Interactive
tmuxsetup promptsStart the Claude tmux session now? [Y/n](default yes) when the target session is missing; non-interactive setup opts in with--create-session. - Existing sessions are never touched, failures fall back to the manual start guidance without failing setup, and a ready session prints its attach command.
v0.8.0
v0.8.0
New
- Native Windows ConPTY host modules are now published:
claude_repl_host_windows.pyandcodex_repl_host_windows.py. The experimental opt-in transport (setup --transport conpty) no longer requires a local wheel build.
Fixed
/modelinjection reliability: repeated Escape presses could open Claude Code's Rewind panel and silently swallow the command while the bridge still reported success. Model switches are now staged, capture-verified in the composer before Enter, and confirmed against real session state (settings/session evidence) before a success notice is sent.- The
Switch model?confirmation dialog that appears on large-context sessions is now detected and confirmed automatically. - Honest failure notices: when a model switch cannot be verified, the bridge reports the current session model instead of claiming success.
Docs
- Windows: added a PowerShell tip to watch the WSL bridge session (
WSL.exe -- tmux -L default attach -t claude). - Install: added a PEP 668 (
externally-managed-environment) note for barepip installon Debian/Ubuntu;pipxremains the recommended path.
Internal
- Setup wizard and watchdog refinements.
v0.7.1 — native Windows setup friction fixes
v0.7.1 — native Windows setup friction fixes
Windows users running setup or doctor outside WSL no longer hit confusing failures:
- Hook registration detection now normalizes Windows paths, so backslash vs slash and drive-letter case differences no longer cause a false "hook not registered".
- Starting the daemon on native Windows prints a clear message (the bridge needs tmux and POSIX file locking — run it inside WSL) instead of a
ModuleNotFoundError: fcntltraceback. setupanddoctorprint apy -m bridge_setupfallback when the console script is not on PATH, and the README states that native Windows bridging is unsupported (use WSL).
No behavior changes on macOS/Linux.
v0.7.0 — setup wizard, doctor, uninstall
v0.7.0 — guided setup wizard, doctor, uninstall
New claude-telegram-bridge setup runs a six-step guided install: hidden BotFather token validation, /start chat-id detection, token.json / token-registry.json write, SessionStart hook download and registration, Claude settings backup with a preserving merge, service/watchdog install, and a final test message.
Also new:
claude-telegram-bridge doctor— checks token, chat id, tmux session, hook registration, transcript sidecar, and service/watchdog health.claude-telegram-bridge uninstall(and--purge) — removes only what setup installed and keeps unrelated Claude settings intact.- README onboarding fixes for first-time users: explicit hook registration JSON with the exact settings file location, pipx bootstrap steps, and a plain-language explanation of the
--dangerously-skip-permissionstradeoff with the safer alternative.
Existing installations keep working without the wizard; all commands are additive.
v0.6.0 — natural private-chat replies
What's Changed
- Private 1:1 chats: replies no longer start with a bot/sender prefix line or leading decorative emoji — messages read naturally.
- Group chats unchanged: the sender prefix is kept so multiple bridges stay distinguishable.
- Emoji-only replies (e.g. a single-emoji health-check response) are preserved instead of being stripped to an empty message.
- Reply threading and message wording are untouched.
Full Changelog: v0.5.1...v0.6.0
v0.5.1
claude-telegram-bridge v0.5.1
Small reliability release plus a beginner-friendly README.
Fixed
- Media prompts (photos and documents) no longer get stuck in the pending
queue while Claude is busy with another turn. Media now participates in the
same busy-injection path as text, and a delivered answer is recognized by a
fresh body hash instead of failing the turn. - Busy detection works again for foreground tool runs that render without a
spinner glyph. Previously the bridge could treat a working session as idle
and inject a second prompt too early.
Documentation
- New Quick Start section at the top of the README, written for first-time
bot users: creating a bot with BotFather, finding your chat id with
getUpdates, installing from PyPI, and a first run that needs only three
environment variables.
Changed
- Default paths for optional runtime files (envelope sidecar flag and log,
composer lock, rate-limit and usage caches) moved from an internal
directory to the standard config and state directories
(~/.config/claude-telegram-bridge/,~/.local/state/claude-telegram-bridge/).
Each path is still overridable with its existing environment variable.
Upgrade with pipx upgrade claude-telegram-bridge or
pip install --upgrade claude-telegram-bridge.
v0.5.0
What's new in v0.5.0
- Outgoing media sends now retry on transient Telegram errors, and file downloads are hardened against truncated responses.
- Added a backoff guard for Telegram 429 rate-limit floods and for delayed-delivery queue congestion, so bursts no longer drop messages.
- Read-only info commands (
/context,/usage,/cost) are mirrored back to Telegram as a clean text view of the terminal screen. - Fixed a restart race that could double-attach the bridge after a rapid session restart.
- The bridge now self-heals a stale pane pid and a dual-session busy lockup instead of requiring a manual restart.
- README now documents installation from PyPI:
pipx install claude-telegram-bridge.
Install / upgrade
pipx install claude-telegram-bridge # or: pipx upgrade claude-telegram-bridgev0.4.2 — fix phantom typing indicator after ambient turns
Fix phantom "typing…" indicator lingering (up to 2h) after externally-triggered (ambient) turns finished. Typing now stops explicitly when an ambient turn completes, and the typing loop self-checks session liveness (~20s cadence) and exits when idle. Normal typing cadence unchanged. (F9)
v0.4.1 — bridge stability HOTFIX
Bridge stability HOTFIX + latest main.
- Guard stale active-turn completion: a late old-turn send no longer clears a replaced active turn (was swallowing follow-up user turns).
- Fix SessionIdentity reload storm: transcript growth is no longer misjudged as a session change, preventing reasoning-mirror loss / state corruption.
- Session-level AskUserQuestion guard: bridge-owned sessions block terminal UI tools regardless of turn envelope shape.
- Latest main: slash command / card improvements, docs.
v0.4.0
- Fail-fast startup validation: the bridge now exits with a clear error when
CLB_CHAT_IDis missing or not a numeric chat id (previously it started silently and matched nothing). - Fixed a race where the reasoning mirror message could be dropped when a turn finished during busy-state polling.
- Slash-command escaping parity fix and Korean card-title fix.
- Docs: previously undocumented environment keys (incl. self-update and tuning knobs) are now covered in README and config.example.env.
- Hardened public export: stripped internal-only layers are now guaranteed inert no-op stubs, enforced by an automated audit gate and a regression test.