Skip to content

Releases

AcpGram v1.19.3

Choose a tag to compare

@github-actions github-actions released this 14 Nov 13:19

AcpGram 1.19.3

AcpGram v1.19.2

Choose a tag to compare

@github-actions github-actions released this 13 Nov 14:38

AcpGram 1.19.2: one agent session lives in one dialog

  • Fixed: in dialogs mode the same agent session could run in two dialogs at once — for example, resumed with /sessions in a topic while it was still open in General — so two agent processes wrote to one history. Now, before a session is resumed (with /sessions or automatically when you come back to a topic), it is closed in every other dialog of the user: where it was running, the agent process stops and a short message says the session was continued elsewhere; where it was only waiting to be resumed, it is forgotten.
  • If the session is answering a request in the other dialog right now, it is left alone and the user is asked to wait for the answer or /stop it there first.

AcpGram v1.19.1

Choose a tag to compare

@github-actions github-actions released this 13 Nov 13:55

AcpGram 1.19.1: dialogs in chat topics, files right inside the answer, and a sturdier connection to Telegram

Dialogs mode (chat topics)

  • If topics in private chats are turned on for the bot in @Botfather, each topic of the chat becomes a separate dialog with the agent, with its own project, engine, agent session and history. You can work in several topics at once. Come back to a topic later and the agent continues the same session; it resumes by itself, without /sessions. General works as a regular dialog.
  • /new creates a new topic. The agent names it after the first answer, with a short project name in front ("sales_reports · Monthly report"). Topics the user named are never renamed.
  • /project in General switches General to the chosen project and lists that project's dialogs as buttons that open the topic, 10 per page, plus "New dialog in this project" and "Remove extra" to clean up the list. A topic stays in its own project: /project inside a topic shows the dialogs of the chosen project instead of moving the topic.
  • Everyone picks the mode with /topics (or the button on /start): "Dialogs" or "One chat" (one dialog for the whole chat, as without topics). Without topics on the bot nothing changes.
  • New limits: MAX_AGENTS_PER_USER (2) and ADMIN_MAX_AGENTS (4) concurrent agents per person. When there is no room, the user's own oldest idle agent is unloaded, and that dialog continues when the user comes back to it.
  • Topic links open the topic directly in Telegram Desktop; Telegram for Android currently lands on the "topic created" message in the All view, one more tap opens the topic.

Answers and files

  • Files and images the agent sends now appear right inside the answer, where the agent put the marker (Bot API 10.3 rich messages with media): JPEG and PNG as images, everything else as documents. If Telegram rejects such a message, the files follow as separate messages, as before.
  • A file marker inside code (backticks or a code block) is no longer treated as a command, so explaining the mechanism no longer produces "could not send the file" messages.
  • Tables placed right under a line of text or a list item are no longer shown as plain text (Telegram needs an empty line before a table; the bot adds it). A long answer split in the middle of a table repeats the table header.
  • Permission requests: colored buttons; after the answer the request text stays and the options are replaced by one disabled button with the result.
  • After pressing stop, the partial answer stays on screen until the final message (keep_on_stop). Drafts are sent strictly one at a time.

Reliability and security

  • Telegram requests have timeouts (30 s, long polling 45 s, files 120 s), and "too many requests" (429) is retried after retry_after instead of losing the answer.
  • An agent that does not start within AGENT_START_TIMEOUT seconds (120) is stopped with a clear message instead of leaving the user in "agent is busy".
  • The agent can no longer send key and credential files from the project folder: .Renviron, .npmrc, .netrc, SSH keys, *.pem, .key, client_secret.json, and anything inside .ssh, .aws, .claude, .gemini, .codex and similar folders.

Performance

  • data/debug.log is written only with ACPGRAM_DEBUG=1, asynchronously, rotated at 5 MB.
  • Archives are unpacked in a worker thread, and agent processes on Windows are stopped without blocking the bot.
  • The model list is not re-queried on every start while it is less than a day old and the engine version is the same; it refreshes daily. SQLite uses synchronous=NORMAL and new indexes.
  • The service log no longer shows the "AttachConsole failed" trace that Gemini CLI prints after every shell command when running as a service.

This release also includes 1.16.0, 1.17.0, 1.18.0 and 1.19.0, which were not published separately (the v1.19.0 tag stopped at tests on macOS, Windows and Node 22 and was never released; 1.19.1 fixes those tests, the bot code is the same).

AcpGram v1.15.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 09:42

AcpGram 1.15.0: files and images in both directions, albums and archives, and languages that follow the user

Files and images

  • Send the bot a photo or a file (text, PDF, spreadsheet, and so on, up to 20 MB). The caption becomes the request. The file is saved on the server and the agent gets its path; images are also passed as an image block when the agent supports it.
  • The agent can create a file or a chart and send it to the chat with a [[send:path]] marker. Only files from the user's outbox folder and the project folder are sent, never secrets (.env, the bot's database and logs, .git). Files are kept for 7 days (FILES_KEEP_DAYS); FILES_DIR sets the folder.
  • An album of several photos or files is handled as one request.
  • .zip, .tar, .tar.gz and .tgz archives are unpacked next to the file, without external programs or dependencies: unsafe paths, links and encrypted entries are skipped, at most 500 files and 100 MB after unpacking. The agent gets the list of files.

Languages

  • The bot talks to each user in their Telegram language (Russian, Ukrainian or English; anything else falls back to DEFAULT_LANG). /language still takes priority, and the first /start no longer asks to choose a language.
  • The acpgram terminal commands (help, setup wizard, service, update) speak the system language: Russian, Ukrainian, otherwise English. On Windows the system UI language is used, not the regional format. ACPGRAM_LANG overrides it for Docker and CI.

Service

  • New command: acpgram service stop stops the service without removing it.

This release also includes 1.13.0 and 1.14.0, which were not published separately.

AcpGram v1.12.4

Choose a tag to compare

@github-actions github-actions released this 12 Nov 15:20

AcpGram 1.12.4: /model replaces its menu with the result, like /engine

Changed

  • /model: after you pick a model or a reasoning level, the menu is replaced with a short result without buttons, like /engine: "Engine selected", "Model selected" and, for engines with reasoning levels, "Reasoning". If the menu message cannot be edited, the result is sent as a new message. To change both the model and the reasoning level, open /model twice. Texts in English, Russian and Ukrainian.

AcpGram v1.12.3

Choose a tag to compare

@github-actions github-actions released this 12 Nov 15:03

AcpGram 1.12.3: project logo

Added

  • Project logo in logo/: acpgram-logo-dark.svg (for light backgrounds) and acpgram-logo-light.svg (for dark backgrounds), plus ready-made PNGs: acpgram-social-preview.png (1280x640, GitHub social preview) and acpgram-avatar.png (640x640, bot avatar).
  • The logo is shown at the top of both READMEs (GitHub and the npm package page) and switches between light and dark themes.

AcpGram v1.12.2

Choose a tag to compare

@github-actions github-actions released this 12 Nov 14:42

AcpGram 1.12.2: fix saving settings on npm install, import from install.ps1 / install.sh

Fixed

  • acpgram setup on an npm install failed to save settings (ENOENT ... ~/.acpgram/.env): the data directory is now always created.

Added

  • Import from a previous install (install.ps1 / install.sh): if %LOCALAPPDATA%\acpgram (Windows) or ~/.local/share/acpgram (Linux, macOS) contains a .env and the new data directory has none, the setup wizard offers to import the settings and the data/bot.db database. Old files are not deleted.

Changed

  • The Conflict error while waiting for the first message to the bot now explains that the token is already polled by another running bot (for example the old service) and what to do.

AcpGram v1.12.1

Choose a tag to compare

@github-actions github-actions released this 12 Nov 14:20

AcpGram 1.12.1: npm package, publishing via GitHub Actions with OIDC Trusted Publishing

This release also brings 1.12.0 to GitHub: multilingual interface (English by default, Russian, Ukrainian), switch with /language.

Added

  • Published to npm as acpgram. Install globally with npm install -g acpgram.
  • Automatic npm release from a version tag via GitHub Actions (publish.yml), using OIDC Trusted Publishing and provenance, without a long-lived npm token.
  • The CLI entry point supports global npm installs (shebang #!/usr/bin/env node).
  • When installed via npm, user data (.env, data/bot.db, logs) lives in ~/.acpgram (or ACPGRAM_HOME), so package updates keep settings and the database.
  • acpgram update on an npm install prints the update hint (npm install -g acpgram@latest) instead of running the shell installer.
  • README: npm badges, and a section on resolving PATH conflicts when migrating from install.ps1.

AcpGram v1.11.3

Choose a tag to compare

@github-actions github-actions released this 12 Nov 10:11

AcpGram 1.11.3: Docker image with all engines; "login needed" mark in /engine

  • Docker: the image now ships all four engines - Gemini CLI, Claude Code (claude-agent-acp bridge), OpenAI Codex (codex + codex-acp bridge) and Antigravity CLI (official installer). Choose what to build with the ENGINES build arg / .env variable (default: gemini claude codex agy); npm package versions can be pinned (GEMINI_CLI_VERSION, CLAUDE_ACP_VERSION, CODEX_CLI_VERSION, CODEX_ACP_VERSION).
  • docker-compose: new volumes claude-home and codex-home, engine command variables. Gemini, Claude Code and Codex authenticate with API keys from .env; Antigravity has no API keys - log in once with docker compose exec -it bot agy acp --login (stored in the gemini-home volume).
  • /engine: an engine that starts but is not authenticated (missing login or API key) is now marked "login needed" in the menu and warns on selection instead of silently failing. The selection is not blocked; the mark clears once the model catalog loads successfully.
  • Build fails if Antigravity CLI cannot be installed or lacks the acp subcommand, so the engine never silently disappears.

AcpGram v1.11.1

Choose a tag to compare

@github-actions github-actions released this 12 Nov 07:58

AcpGram 1.11.1: fix engine detection on Windows

  • npm run setup on Windows now finds engines whose default command already has an extension (codex-acp.cmd, gemini.cmd). Previously the PATH lookup appended extensions to the name (codex-acp.cmd.exe, .cmd.cmd), so OpenAI Codex was reported as not found on a clean machine.
  • Default commands for Gemini and Codex no longer depend on the OS (gemini, codex-acp), same as for Claude.