Release 0.2.2.1 #87

Merged
NiXTheDev merged 39 commits from 0.2.2.1 into release 2026-08-05 05:35:19 +03:00
Owner

What's New

  • Single-source version system: src/version.ts with 4-tier resolution (git → raw .git → env vars → fallback defaults) — no external tools needed in any context
  • Docker version passthrough: Build args VERSION, COMMIT, RELEASED_AT, CHANGES flow through Dockerfile ARG→ENV to runtime
  • CI version pipeline: Workflows compute version info and pass as Docker build-args before container build
  • isBotReady() health check: Configurable startup pattern matching with timeout and process monitoring
  • Rich Messages for /version: The /version command uses Telegram's Rich Messages API with formatted display
  • Bot version in logs: Version info displayed upon startup

What's Fixed

  • MarkdownV2 dangerous pattern warning: Escaped text prevents Telegram 400 parse errors when warning about risky regex patterns
  • History storage: Uses Telegram-returned sentMsg.text instead of messageText to prevent trailing space disconnect
  • Sed output trimming: .trimEnd() applied to result text at source
  • CI empty VERSION guard: Heredoc syntax for multiline CHANGES output prevents GITHUB_OUTPUT parser failures
  • Docker optimization: Single COPY . . + single RUN layer (install, chown, cleanup) — no git binary in final image
  • Dockerfile location: Fixed relative to context of the compose file

Maintenance

  • Renamed escapeForMarkdownV2AndBackslashesescapeMarkdownV2
  • Deleted scripts/generate-version.ts — logic fully ported to src/version.ts
  • Removed deprecated WORKER_POOL_SIZE and WORKER_POOL_V2_ENABLED from .env.example
  • Excluded scripts/ from ESLint TypeScript project parsing
  • Removed .git from .dockerignore (no longer needed)
  • Added tests for version generation and isBotReady() utility
## What's New - **Single-source version system**: `src/version.ts` with 4-tier resolution (git → raw .git → env vars → fallback defaults) — no external tools needed in any context - **Docker version passthrough**: Build args `VERSION`, `COMMIT`, `RELEASED_AT`, `CHANGES` flow through Dockerfile ARG→ENV to runtime - **CI version pipeline**: Workflows compute version info and pass as Docker build-args before container build - **isBotReady() health check**: Configurable startup pattern matching with timeout and process monitoring - **Rich Messages for /version**: The `/version` command uses Telegram's Rich Messages API with formatted display - **Bot version in logs**: Version info displayed upon startup ## What's Fixed - **MarkdownV2 dangerous pattern warning**: Escaped text prevents Telegram 400 parse errors when warning about risky regex patterns - **History storage**: Uses Telegram-returned `sentMsg.text` instead of `messageText` to prevent trailing space disconnect - **Sed output trimming**: `.trimEnd()` applied to result text at source - **CI empty VERSION guard**: Heredoc syntax for multiline CHANGES output prevents GITHUB_OUTPUT parser failures - **Docker optimization**: Single `COPY . .` + single `RUN` layer (install, chown, cleanup) — no git binary in final image - **Dockerfile location**: Fixed relative to context of the compose file ## Maintenance - Renamed `escapeForMarkdownV2AndBackslashes` → `escapeMarkdownV2` - Deleted `scripts/generate-version.ts` — logic fully ported to `src/version.ts` - Removed deprecated `WORKER_POOL_SIZE` and `WORKER_POOL_V2_ENABLED` from `.env.example` - Excluded `scripts/` from ESLint TypeScript project parsing - Removed `.git` from `.dockerignore` (no longer needed) - Added tests for version generation and `isBotReady()` utility
feat(log): Display version of the bot in the log upon startup
Some checks failed
Push Checks / Format Check (push) Successful in 20s
Push Checks / Type Check (push) Successful in 39s
Push Checks / Lint (push) Successful in 30s
PR Checks / Format Check (pull_request) Successful in 17s
PR Checks / Lint (pull_request) Successful in 22s
PR Checks / Type Check (pull_request) Successful in 30s
Secret Scanning / Scan for Secrets (pull_request) Successful in 38s
Push Checks / Tests (push) Failing after 2m14s
Push Checks / Build and Push Docker Image (push) Has been skipped
PR Checks / Tests (pull_request) Failing after 2m14s
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
6001ab6327
file
- Add scripts/generate-version.ts to read git info and write src/version.ts
- Add src/tests/version.test.ts with 15 tests for version generation
- Update .gitignore to exclude auto-generated src/version.ts
- Add generate, predev, premain scripts to package.json
fix: use commit body (%b) instead of subject (%s) for CHANGES
Some checks failed
PR Checks / Format Check (pull_request) Successful in 46s
Push Checks / Type Check (push) Successful in 54s
PR Checks / Type Check (pull_request) Successful in 54s
PR Checks / Lint (pull_request) Successful in 53s
Push Checks / Format Check (push) Successful in 1m7s
Secret Scanning / Scan for Secrets (pull_request) Successful in 2m43s
PR Checks / Tests (pull_request) Failing after 2m27s
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Push Checks / Tests (push) Failing after 2m14s
Push Checks / Build and Push Docker Image (push) Has been skipped
Push Checks / Lint (push) Successful in 41s
7e8e6f024b
fix: update shutdown test to match new startup log message
All checks were successful
Push Checks / Format Check (push) Successful in 43s
PR Checks / Lint (pull_request) Successful in 48s
Push Checks / Type Check (push) Successful in 50s
Push Checks / Lint (push) Successful in 53s
PR Checks / Format Check (pull_request) Successful in 25s
PR Checks / Type Check (pull_request) Successful in 29s
Push Checks / Tests (push) Successful in 31s
PR Checks / Tests (pull_request) Successful in 21s
Secret Scanning / Scan for Secrets (pull_request) Successful in 31s
Push Checks / Build and Push Docker Image (push) Successful in 23m4s
PR Checks / Build Docker Image (Validation) (pull_request) Successful in 23m18s
a957a2fc39
refactor: make version.ts self-generating, remove generate script
Some checks failed
PR Checks / Lint (pull_request) Failing after 35s
Push Checks / Format Check (push) Successful in 42s
Push Checks / Type Check (push) Successful in 51s
PR Checks / Type Check (pull_request) Successful in 1m29s
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Push Checks / Lint (push) Failing after 53s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
PR Checks / Format Check (pull_request) Successful in 1m30s
PR Checks / Tests (pull_request) Has been skipped
Secret Scanning / Scan for Secrets (pull_request) Successful in 2m59s
977322d0bb
- version.ts now runs git commands at import time with fallbacks
- Added git to Docker image (apk add --no-cache git)
- Updated .dockerignore to include .git directory
- Removed scripts/generate-version.ts (no longer needed)
- Removed predev/premain hooks from package.json
- Removed CI generate step from release.yml
- Updated version tests for self-generating module
perf: generate version.ts at build time, remove git from Docker image
Some checks failed
Push Checks / Format Check (push) Failing after 44s
Push Checks / Type Check (push) Successful in 44s
Push Checks / Tests (push) Has been skipped
Secret Scanning / Scan for Secrets (pull_request) Successful in 44s
PR Checks / Lint (pull_request) Failing after 52s
PR Checks / Type Check (pull_request) Successful in 53s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Push Checks / Lint (push) Failing after 44s
Push Checks / Build and Push Docker Image (push) Has been skipped
PR Checks / Format Check (pull_request) Failing after 46s
f9ff60ac8b
- scripts/generate-version.ts creates static version.ts with baked-in values
- Dockerfile: install git, generate, remove git in one RUN layer
- No git binary in final image (~40MB savings)
- Local dev still uses self-generating version.ts at runtime
- Reads .git/HEAD, .git/refs/, .git/objects/ directly via node:zlib
- No git binary, no apk install, no apk del — pure Bun + Node APIs
- Handles both regular repos and worktrees (commondir resolution)
- Dockerfile simplified: single 'bun run generate' RUN step
- Added 'generate' script to package.json
chore: restore self-generating version.ts for local dev
Some checks failed
Push Checks / Lint (push) Failing after 30s
Push Checks / Format Check (push) Failing after 56s
Push Checks / Type Check (push) Successful in 31s
Push Checks / Build and Push Docker Image (push) Has been skipped
Push Checks / Tests (push) Has been skipped
PR Checks / Lint (pull_request) Failing after 28s
PR Checks / Format Check (pull_request) Failing after 28s
PR Checks / Type Check (pull_request) Successful in 51s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Secret Scanning / Scan for Secrets (pull_request) Successful in 3m57s
288c5b86f9
NiXTheDev force-pushed 0.2.2.1 from 288c5b86f9
Some checks failed
Push Checks / Lint (push) Failing after 30s
Push Checks / Format Check (push) Failing after 56s
Push Checks / Type Check (push) Successful in 31s
Push Checks / Build and Push Docker Image (push) Has been skipped
Push Checks / Tests (push) Has been skipped
PR Checks / Lint (pull_request) Failing after 28s
PR Checks / Format Check (pull_request) Failing after 28s
PR Checks / Type Check (pull_request) Successful in 51s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Secret Scanning / Scan for Secrets (pull_request) Successful in 3m57s
to 14d4ae6f3d
Some checks failed
Push Checks / Lint (push) Failing after 36s
Push Checks / Format Check (push) Failing after 24s
Push Checks / Type Check (push) Successful in 32s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
PR Checks / Lint (pull_request) Failing after 26s
PR Checks / Format Check (pull_request) Failing after 25s
PR Checks / Type Check (pull_request) Successful in 26s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Secret Scanning / Scan for Secrets (pull_request) Successful in 3m16s
2026-07-24 10:40:03 +03:00
Compare
NiXTheDev force-pushed 0.2.2.1 from 14d4ae6f3d
Some checks failed
Push Checks / Lint (push) Failing after 36s
Push Checks / Format Check (push) Failing after 24s
Push Checks / Type Check (push) Successful in 32s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
PR Checks / Lint (pull_request) Failing after 26s
PR Checks / Format Check (pull_request) Failing after 25s
PR Checks / Type Check (pull_request) Successful in 26s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Secret Scanning / Scan for Secrets (pull_request) Successful in 3m16s
to e6db5d72a4
Some checks failed
PR Checks / Lint (pull_request) Failing after 1m4s
PR Checks / Type Check (pull_request) Successful in 28s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Push Checks / Lint (push) Failing after 32s
Push Checks / Format Check (push) Failing after 27s
Push Checks / Type Check (push) Successful in 28s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
Secret Scanning / Scan for Secrets (pull_request) Successful in 48s
PR Checks / Format Check (pull_request) Failing after 51s
2026-07-24 10:53:27 +03:00
Compare
fix: remove unused ChildProcess import from shutdown test
Some checks failed
Push Checks / Format Check (push) Successful in 59s
Push Checks / Type Check (push) Successful in 1m5s
PR Checks / Lint (pull_request) Successful in 1m6s
PR Checks / Format Check (pull_request) Successful in 1m3s
PR Checks / Type Check (pull_request) Successful in 1m3s
Secret Scanning / Scan for Secrets (pull_request) Successful in 1m0s
Push Checks / Tests (push) Failing after 1m21s
Push Checks / Build and Push Docker Image (push) Has been skipped
PR Checks / Tests (pull_request) Failing after 1m22s
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Push Checks / Lint (push) Successful in 1m23s
2342008957
fix: use Bun.spawnSync instead of top-level await in version.ts
All checks were successful
Push Checks / Format Check (push) Successful in 1m11s
Push Checks / Lint (push) Successful in 1m24s
Push Checks / Type Check (push) Successful in 49s
PR Checks / Lint (pull_request) Successful in 48s
PR Checks / Format Check (pull_request) Successful in 1m35s
PR Checks / Type Check (pull_request) Successful in 1m21s
Push Checks / Tests (push) Successful in 38s
Secret Scanning / Scan for Secrets (pull_request) Successful in 46s
PR Checks / Tests (pull_request) Successful in 40s
PR Checks / Build Docker Image (Validation) (pull_request) Successful in 22m26s
Push Checks / Build and Push Docker Image (push) Successful in 24m53s
90e7cfc59c
Top-level await caused TDZ errors in CI where module exports
(RELEASED_AT, CHANGES) were accessed before initialization.
spawnSync is synchronous — no module evaluation delay.
fix: use Telegram-returned text for history storage
Some checks failed
Push Checks / Build and Push Docker Image (push) Has been cancelled
Push Checks / Format Check (push) Successful in 57s
Push Checks / Type Check (push) Successful in 35s
Secret Scanning / Scan for Secrets (pull_request) Successful in 42s
PR Checks / Build Docker Image (Validation) (pull_request) Has been cancelled
PR Checks / Tests (pull_request) Successful in 47s
PR Checks / Lint (pull_request) Successful in 37s
PR Checks / Type Check (pull_request) Successful in 46s
Push Checks / Tests (push) Successful in 45s
PR Checks / Format Check (pull_request) Successful in 1m29s
Push Checks / Lint (push) Successful in 51s
a9ffe60102
- Send path: use sentMsg.text instead of messageText
- Source: trimEnd() on resultText in sed.ts before escaping
- Prevents trailing space disconnect between sent and stored text
feat: add configurable regex roast system
Some checks failed
Secret Scanning / Scan for Secrets (pull_request) Has been cancelled
Push Checks / Lint (push) Has been cancelled
Push Checks / Format Check (push) Has been cancelled
Push Checks / Type Check (push) Has been cancelled
Push Checks / Tests (push) Has been cancelled
Push Checks / Build and Push Docker Image (push) Has been cancelled
PR Checks / Lint (pull_request) Has been cancelled
PR Checks / Format Check (pull_request) Has been cancelled
PR Checks / Type Check (pull_request) Has been cancelled
PR Checks / Tests (pull_request) Has been cancelled
PR Checks / Build Docker Image (Validation) (pull_request) Has been cancelled
4fbfa6a023
- ROAST_CHANCE (default 0.02) and FEATURE_ROAST env vars
- April Fools' (100% chance, themed messages)
- Friday 13th (100% chance, spooky themed)
- Pattern-specific and generic roasts
- Disabled via FEATURE_ROAST=false
NiXTheDev force-pushed 0.2.2.1 from 4fbfa6a023
Some checks failed
Secret Scanning / Scan for Secrets (pull_request) Has been cancelled
Push Checks / Lint (push) Has been cancelled
Push Checks / Format Check (push) Has been cancelled
Push Checks / Type Check (push) Has been cancelled
Push Checks / Tests (push) Has been cancelled
Push Checks / Build and Push Docker Image (push) Has been cancelled
PR Checks / Lint (pull_request) Has been cancelled
PR Checks / Format Check (pull_request) Has been cancelled
PR Checks / Type Check (pull_request) Has been cancelled
PR Checks / Tests (pull_request) Has been cancelled
PR Checks / Build Docker Image (Validation) (pull_request) Has been cancelled
to d1dfaa1aa8
All checks were successful
Push Checks / Format Check (push) Successful in 44s
PR Checks / Lint (pull_request) Successful in 52s
PR Checks / Type Check (pull_request) Successful in 1m2s
Push Checks / Lint (push) Successful in 55s
Push Checks / Type Check (push) Successful in 1m4s
PR Checks / Format Check (pull_request) Successful in 44s
Secret Scanning / Scan for Secrets (pull_request) Successful in 30s
Push Checks / Tests (push) Successful in 35s
PR Checks / Tests (pull_request) Successful in 41s
Push Checks / Build and Push Docker Image (push) Successful in 24m38s
PR Checks / Build Docker Image (Validation) (pull_request) Successful in 23m14s
2026-07-24 20:43:23 +03:00
Compare
chore: lower default roast chance to 1/5000
Some checks failed
Push Checks / Lint (push) Successful in 54s
Push Checks / Format Check (push) Successful in 46s
Push Checks / Type Check (push) Successful in 1m1s
PR Checks / Lint (pull_request) Successful in 49s
PR Checks / Format Check (pull_request) Successful in 45s
PR Checks / Type Check (pull_request) Successful in 1m1s
Secret Scanning / Scan for Secrets (pull_request) Successful in 30s
Push Checks / Tests (push) Successful in 36s
PR Checks / Tests (pull_request) Successful in 35s
Push Checks / Build and Push Docker Image (push) Successful in 24m31s
PR Checks / Build Docker Image (Validation) (pull_request) Failing after 36m7s
a35f262906
fix: move version generation out of Docker build into CI
All checks were successful
Push Checks / Lint (push) Successful in 41s
Push Checks / Format Check (push) Successful in 36s
Push Checks / Type Check (push) Successful in 37s
PR Checks / Lint (pull_request) Successful in 33s
PR Checks / Format Check (pull_request) Successful in 30s
PR Checks / Type Check (pull_request) Successful in 28s
Secret Scanning / Scan for Secrets (pull_request) Successful in 1m56s
Push Checks / Tests (push) Successful in 43s
PR Checks / Tests (pull_request) Successful in 29s
Push Checks / Build and Push Docker Image (push) Successful in 32m5s
PR Checks / Build Docker Image (Validation) (pull_request) Successful in 39m1s
0cf84145af
Generate version.ts on the host before docker build instead of
inside the container. Fixes QEMU SIGILL crash on linux/amd64.
Added generate step to push-checks, pr-checks, and release workflows.
Removed .git from dockerignore since it's no longer needed.
fix: remove Markdown backticks from dangerous pattern warning
Some checks failed
Push Checks / Lint (push) Failing after 0s
Push Checks / Format Check (push) Failing after 1s
Push Checks / Type Check (push) Failing after 1s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
PR Checks / Lint (pull_request) Failing after 1s
PR Checks / Format Check (pull_request) Failing after 1s
PR Checks / Type Check (pull_request) Failing after 1s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Secret Scanning / Scan for Secrets (pull_request) Failing after 1s
b284901f38
Telegram Markdown parser chokes on regex patterns with parentheses
inside backtick code spans, causing 400 parse entity errors.
Display pattern as plain text instead.

Also added scripts/ to eslint ignores (was missing).
NiXTheDev force-pushed 0.2.2.1 from b284901f38
Some checks failed
Push Checks / Lint (push) Failing after 0s
Push Checks / Format Check (push) Failing after 1s
Push Checks / Type Check (push) Failing after 1s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
PR Checks / Lint (pull_request) Failing after 1s
PR Checks / Format Check (pull_request) Failing after 1s
PR Checks / Type Check (pull_request) Failing after 1s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Secret Scanning / Scan for Secrets (pull_request) Failing after 1s
to c521cdf5d4
Some checks failed
Push Checks / Lint (push) Failing after 1s
Push Checks / Type Check (push) Failing after 2s
Push Checks / Format Check (push) Failing after 2s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
PR Checks / Lint (pull_request) Failing after 0s
PR Checks / Format Check (pull_request) Failing after 0s
PR Checks / Type Check (pull_request) Failing after 1s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Secret Scanning / Scan for Secrets (pull_request) Failing after 2s
2026-07-25 15:43:12 +03:00
Compare
refactor: rename escapeForMarkdownV2AndBackslashes to escapeMarkdownV2
All checks were successful
Push Checks / Format Check (push) Successful in 24s
Push Checks / Lint (push) Successful in 1m7s
PR Checks / Lint (pull_request) Successful in 29s
PR Checks / Format Check (pull_request) Successful in 20s
PR Checks / Type Check (pull_request) Successful in 32s
Push Checks / Type Check (push) Successful in 40s
Push Checks / Tests (push) Successful in 24s
PR Checks / Tests (pull_request) Successful in 38s
Push Checks / Build and Push Docker Image (push) Successful in 21m48s
PR Checks / Build Docker Image (Validation) (pull_request) Successful in 21m55s
Secret Scanning / Scan for Secrets (pull_request) Successful in 21s
9fef13d436
refactor(version): single-source version.ts with 4-tier resolution
Some checks failed
Push Checks / Type Check (push) Successful in 21s
PR Checks / Type Check (pull_request) Successful in 21s
Secret Scanning / Scan for Secrets (pull_request) Successful in 17s
PR Checks / Lint (pull_request) Failing after 37s
PR Checks / Format Check (pull_request) Failing after 19s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Push Checks / Lint (push) Failing after 14s
Push Checks / Format Check (push) Failing after 11s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
4ea18ad3df
Rewrite version.ts as the single source of truth for all version info:
- Tier 1: git commands (works in dev with git)
- Tier 2: raw .git file reading (works without git binary)
- Tier 3: environment variables (Docker build args via ENV)
- Tier 4: fallback (commit=0000000, version from package.json)

Generation logic lives in version.ts itself — 'bun run generate'
now runs 'bun run src/version.ts' which writes .version.json
for binary builds (--define).

Generation logic marked for review — may be refined further.
chore(build): Dockerfile ARG→ENV passthrough, CI build-args, delete old generate script
Some checks failed
Push Checks / Lint (push) Successful in 18s
Push Checks / Format Check (push) Successful in 9s
Push Checks / Type Check (push) Successful in 12s
PR Checks / Lint (pull_request) Successful in 11s
PR Checks / Format Check (pull_request) Successful in 8s
PR Checks / Type Check (pull_request) Successful in 8s
Secret Scanning / Scan for Secrets (pull_request) Successful in 7s
Push Checks / Tests (push) Successful in 11s
PR Checks / Tests (pull_request) Successful in 12s
Push Checks / Build and Push Docker Image (push) Failing after 1m7s
PR Checks / Build Docker Image (Validation) (pull_request) Successful in 1m28s
56afac79ab
- Dockerfile: Add ARG VERSION/COMMIT/RELEASED_AT/CHANGES + ENV passthrough
- push-checks.yml: Compute commit/released_at/changes and pass as build-args
- pr-checks.yml: Add build-args for validation Docker builds
- Delete scripts/generate-version.ts (logic ported to src/version.ts)
- Fix version.ts empty catch lint error
- Fix src/index.ts formatting
fix(ci): escape multiline CHANGES in GITHUB_OUTPUT and guard against empty VERSION
All checks were successful
Push Checks / Lint (push) Successful in 17s
Push Checks / Format Check (push) Successful in 13s
Push Checks / Type Check (push) Successful in 13s
PR Checks / Lint (pull_request) Successful in 14s
PR Checks / Format Check (pull_request) Successful in 15s
PR Checks / Type Check (pull_request) Successful in 15s
Secret Scanning / Scan for Secrets (pull_request) Successful in 12s
Push Checks / Tests (push) Successful in 17s
PR Checks / Tests (pull_request) Successful in 24s
Push Checks / Build and Push Docker Image (push) Successful in 3m3s
PR Checks / Build Docker Image (Validation) (pull_request) Successful in 1m58s
342f01b5ff
- Use heredoc syntax for CHANGES output to prevent multiline commit
  body from breaking \ key=value parser
- Add VERSION fallback to 'latest' in both Get version and Generate tags
  steps to prevent invalid Docker tags like :<empty>-dev
docs: update changelog and PR body for 0.2.2.1, add version.ts CLI subcommands
Some checks failed
Push Checks / Lint (push) Has been cancelled
Push Checks / Format Check (push) Has been cancelled
Push Checks / Type Check (push) Has been cancelled
Push Checks / Tests (push) Has been cancelled
Push Checks / Build and Push Docker Image (push) Has been cancelled
PR Checks / Lint (pull_request) Has been cancelled
PR Checks / Format Check (pull_request) Has been cancelled
PR Checks / Type Check (pull_request) Has been cancelled
PR Checks / Tests (pull_request) Has been cancelled
PR Checks / Build Docker Image (Validation) (pull_request) Has been cancelled
Secret Scanning / Scan for Secrets (pull_request) Has been cancelled
a847768ac8
- Add [0.2.2.1] section to CHANGELOG.md with full feature/fix list
- Update PR #87 body with complete release notes
- Add CLI subcommands to version.ts: version, commit, released-at, changes, generate, --help
- Add build-bin script to package.json
NiXTheDev force-pushed 0.2.2.1 from a847768ac8
Some checks failed
Push Checks / Lint (push) Has been cancelled
Push Checks / Format Check (push) Has been cancelled
Push Checks / Type Check (push) Has been cancelled
Push Checks / Tests (push) Has been cancelled
Push Checks / Build and Push Docker Image (push) Has been cancelled
PR Checks / Lint (pull_request) Has been cancelled
PR Checks / Format Check (pull_request) Has been cancelled
PR Checks / Type Check (pull_request) Has been cancelled
PR Checks / Tests (pull_request) Has been cancelled
PR Checks / Build Docker Image (Validation) (pull_request) Has been cancelled
Secret Scanning / Scan for Secrets (pull_request) Has been cancelled
to 15597479fb
Some checks failed
Push Checks / Lint (push) Has been cancelled
Push Checks / Format Check (push) Has been cancelled
Push Checks / Type Check (push) Has been cancelled
Push Checks / Tests (push) Has been cancelled
Push Checks / Build and Push Docker Image (push) Has been cancelled
PR Checks / Lint (pull_request) Has been cancelled
PR Checks / Format Check (pull_request) Has been cancelled
PR Checks / Type Check (pull_request) Has been cancelled
PR Checks / Tests (pull_request) Has been cancelled
PR Checks / Build Docker Image (Validation) (pull_request) Has been cancelled
Secret Scanning / Scan for Secrets (pull_request) Has been cancelled
2026-07-30 20:11:57 +03:00
Compare
refactor(build): split build-bin into build-win/build-linux, update release.yml to use scripts
Some checks failed
Push Checks / Lint (push) Has been cancelled
Push Checks / Format Check (push) Has been cancelled
Push Checks / Type Check (push) Has been cancelled
Push Checks / Tests (push) Has been cancelled
Push Checks / Build and Push Docker Image (push) Has been cancelled
PR Checks / Lint (pull_request) Has been cancelled
PR Checks / Format Check (pull_request) Has been cancelled
PR Checks / Type Check (pull_request) Has been cancelled
PR Checks / Tests (pull_request) Has been cancelled
PR Checks / Build Docker Image (Validation) (pull_request) Has been cancelled
Secret Scanning / Scan for Secrets (pull_request) Has been cancelled
c2883c5f1c
feat: add clear indication that the commit is happening after all checks
All checks were successful
Push Checks / Type Check (push) Successful in 14s
Push Checks / Lint (push) Successful in 53s
PR Checks / Format Check (pull_request) Successful in 11s
Push Checks / Format Check (push) Successful in 1m4s
PR Checks / Lint (pull_request) Successful in 24s
Secret Scanning / Scan for Secrets (pull_request) Successful in 7s
PR Checks / Type Check (pull_request) Successful in 28s
Push Checks / Tests (push) Successful in 16s
PR Checks / Tests (pull_request) Successful in 21s
Push Checks / Build and Push Docker Image (push) Successful in 3m18s
PR Checks / Build Docker Image (Validation) (pull_request) Successful in 20m42s
0c6b851609
pass
revert: remove broken link preview preservation (no getMessage API in grammy)
Some checks failed
Push Checks / Lint (push) Failing after 28s
Push Checks / Type Check (push) Successful in 20s
PR Checks / Lint (pull_request) Failing after 2s
PR Checks / Format Check (pull_request) Failing after 2s
Secret Scanning / Scan for Secrets (pull_request) Failing after 3s
PR Checks / Type Check (pull_request) Successful in 8s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Push Checks / Format Check (push) Successful in 53s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
273b7c1f4a
feat: store full message object in extras JSON column for future-proofing
Some checks failed
Push Checks / Lint (push) Failing after 2s
Push Checks / Format Check (push) Failing after 2s
Push Checks / Type Check (push) Failing after 2s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
PR Checks / Lint (pull_request) Failing after 2s
Secret Scanning / Scan for Secrets (pull_request) Failing after 2s
PR Checks / Type Check (pull_request) Failing after 11s
PR Checks / Format Check (pull_request) Successful in 20s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
8c70758b6c
future-proofing
fix: read nested link_preview_options.is_disabled from extras
Some checks failed
PR Checks / Type Check (pull_request) Failing after 2s
PR Checks / Format Check (pull_request) Successful in 7s
Secret Scanning / Scan for Secrets (pull_request) Failing after 2s
Push Checks / Lint (push) Failing after 2s
Push Checks / Type Check (push) Failing after 2s
PR Checks / Lint (pull_request) Failing after 2s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Push Checks / Format Check (push) Successful in 22s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
b4ed334fc9
fix: apply link_preview_options when editing bot replies too
Some checks failed
Push Checks / Lint (push) Failing after 2s
Push Checks / Type Check (push) Failing after 2s
Push Checks / Format Check (push) Successful in 11s
PR Checks / Format Check (pull_request) Failing after 2s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
PR Checks / Type Check (pull_request) Successful in 23s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
PR Checks / Lint (pull_request) Failing after 2s
Secret Scanning / Scan for Secrets (pull_request) Failing after 2s
0e00e2ef93
fix: always suppress link previews on sed replies
Some checks failed
Push Checks / Lint (push) Failing after 2s
Push Checks / Format Check (push) Failing after 2s
Push Checks / Type Check (push) Failing after 2s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
PR Checks / Lint (pull_request) Failing after 1s
PR Checks / Format Check (pull_request) Failing after 2s
PR Checks / Type Check (pull_request) Successful in 29s
PR Checks / Tests (pull_request) Has been skipped
PR Checks / Build Docker Image (Validation) (pull_request) Has been skipped
Secret Scanning / Scan for Secrets (pull_request) Successful in 2m15s
691a83ee45
Telegram Bot API does not include link_preview_options on incoming
messages unless the user explicitly changed preview settings. Since
we can never read the user's preview preference reliably, default
to always disabling link previews on bot sed replies.

Also fixed:
- edited messages now store extras correctly (destructure from
  ctx.editedMessage when isEdit)
- reply_to_message path now returns extras: {} to match history
  search return shape
fix: restore link preview preservation instead of blanket suppression
Some checks failed
Push Checks / Format Check (push) Successful in 37s
PR Checks / Format Check (pull_request) Successful in 13s
Push Checks / Type Check (push) Successful in 1m25s
PR Checks / Lint (pull_request) Successful in 20s
PR Checks / Type Check (pull_request) Successful in 9s
Secret Scanning / Scan for Secrets (pull_request) Successful in 21s
PR Checks / Tests (pull_request) Successful in 21s
Push Checks / Lint (push) Successful in 10s
Push Checks / Tests (push) Successful in 10s
Push Checks / Build and Push Docker Image (push) Successful in 5m38s
PR Checks / Build Docker Image (Validation) (pull_request) Successful in 24m33s
Create Release / release (pull_request) Failing after 2m6s
948c859cdb
Revert the 'always disable link previews' behavior. Now the bot
preserves the source message's link_preview_options when present:

- reply_to_message path returns the replied-to message's
  link_preview_options in extras when it exists
- handleTextMessage extracts link_preview_options.is_disabled from
  extras and passes it to handleSedCommand
- When the source message has no preview options (user left default),
  linkPreviewDisabled is undefined and sendOrEditReply omits the
  parameter, letting Telegram use default behavior
NiXTheDev merged commit 47494f2f4f into release 2026-08-05 05:35:19 +03:00
NiXTheDev deleted branch 0.2.2.1 2026-08-05 05:35:20 +03:00
NiXTheDev referenced this pull request from a commit 2026-08-05 05:35:21 +03:00
NiXTheDev referenced this pull request from a commit 2026-08-05 08:58:08 +03:00
Sign in to join this conversation.
No description provided.