Skip to content

Releases: ssamssae/claude-telegram-bridge

v0.8.1

Choose a tag to compare

@ssamssae ssamssae released this 12 Jul 05:11
29dd3af

v0.8.1

New

  • The setup wizard can now start the Claude tmux session for you. Interactive tmux setup prompts Start 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

Choose a tag to compare

@ssamssae ssamssae released this 12 Jul 05:01
0df6d46

v0.8.0

New

  • Native Windows ConPTY host modules are now published: claude_repl_host_windows.py and codex_repl_host_windows.py. The experimental opt-in transport (setup --transport conpty) no longer requires a local wheel build.

Fixed

  • /model injection 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 bare pip install on Debian/Ubuntu; pipx remains the recommended path.

Internal

  • Setup wizard and watchdog refinements.

v0.7.1 — native Windows setup friction fixes

Choose a tag to compare

@ssamssae ssamssae released this 11 Jul 12:55
c080aad

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: fcntl traceback.
  • setup and doctor print a py -m bridge_setup fallback 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

Choose a tag to compare

@ssamssae ssamssae released this 11 Jul 11:32
c081509

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-permissions tradeoff with the safer alternative.

Existing installations keep working without the wizard; all commands are additive.

v0.6.0 — natural private-chat replies

Choose a tag to compare

@ssamssae ssamssae released this 11 Jul 00:50
023b30d

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

Choose a tag to compare

@ssamssae ssamssae released this 10 Jul 08:42
e36d66c

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

Choose a tag to compare

@ssamssae ssamssae released this 09 Jul 06:43
1be7067

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-bridge

v0.4.2 — fix phantom typing indicator after ambient turns

Choose a tag to compare

@ssamssae ssamssae released this 04 Jul 17:33
03d78f1

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

Choose a tag to compare

@ssamssae ssamssae released this 04 Jul 14:10
0a6b23f

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

Choose a tag to compare

@ssamssae ssamssae released this 02 Jul 14:30
5b5cc8e
  • Fail-fast startup validation: the bridge now exits with a clear error when CLB_CHAT_ID is 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.