Release v0.2.1.1 #73

Merged
NiXTheDev merged 18 commits from 0.2.1.1 into release 2026-05-23 19:45:29 +03:00
Owner

Migration from GitHub Actions to Forgejo Actions
All CI/CD workflows have been migrated from GitHub Actions to the self-hosted Forgejo instance at hangar.nixthedev.ru:

  • Push checks (lint, format, typecheck, test, build & push Docker) — fully operational
  • PR checks — Docker image build validation on PRs
  • Release workflow — automated release creation with compiled binaries
  • Security audit — weekly dependency vulnerability scanning
  • Secret scanning — Gitleaks integration
    Docker Image Tagging Updates
  • Branch-based tag strategy: release branch gets latest, release, and version chain tags (0.2.1.1, 0.2.1, 0.2, 0)
  • Non-release branches now get progressive dev version tags (0.2.1.1-dev, 0.2.1-dev, 0.2-dev, 0-dev) in addition to dev and latest
  • Images pushed to three registries: Forgejo Container Registry (hangar.nixthedev.ru), Docker Hub, and GHCR
  • Docker CLI installed via static binary (no Docker-in-Docker dependency)
    Dependabot → Renovate Migration
    Replaced Dependabot with Renovate for automated dependency management:
  • renovate.json — self-hosted Forgejo config with 4 package rules (bun prod, bun dev, Docker, GitHub Actions), all restricted to minor/patch auto-merge
  • CI workflow — runs weekly Monday 10:00 UTC+3 via docker://ghcr.io/renovatebot/renovate:39
  • Package rules preserve existing Dependabot behavior (same groups, labels, schedule) plus adds GitHub Actions dependency management
  • Native Forgejo auto-merge via platformAutomerge: true
    Bug Fixes
  • i18n crash — resolved @grammyjs/i18n crash on Windows caused by path separator mismatch (\ vs /) in src/i18n.ts
    Test Improvements
  • Flaky test timeouts replaced with proper polling (waitForAssertion)
  • Tests now retry up to 5 times, show only failures, run in parallel
  • Improved shutdown.test.ts reliability
    Other
  • Added FEATURE_TIPS and FEATURE_WARNINGS environment variables for toggling regex tips and ReDoS warnings
  • Updated Bun version in Dockerfile to 1.3.14
  • Commented out cache-to/cache-from in Docker builds (incompatible with Forgejo runners)
Migration from GitHub Actions to Forgejo Actions All CI/CD workflows have been migrated from GitHub Actions to the self-hosted Forgejo instance at hangar.nixthedev.ru: - Push checks (lint, format, typecheck, test, build & push Docker) — fully operational - PR checks — Docker image build validation on PRs - Release workflow — automated release creation with compiled binaries - Security audit — weekly dependency vulnerability scanning - Secret scanning — Gitleaks integration Docker Image Tagging Updates - Branch-based tag strategy: release branch gets latest, release, and version chain tags (0.2.1.1, 0.2.1, 0.2, 0) - Non-release branches now get progressive dev version tags (0.2.1.1-dev, 0.2.1-dev, 0.2-dev, 0-dev) in addition to dev and latest - Images pushed to three registries: Forgejo Container Registry (hangar.nixthedev.ru), Docker Hub, and GHCR - Docker CLI installed via static binary (no Docker-in-Docker dependency) Dependabot → Renovate Migration Replaced Dependabot with Renovate for automated dependency management: - renovate.json — self-hosted Forgejo config with 4 package rules (bun prod, bun dev, Docker, GitHub Actions), all restricted to minor/patch auto-merge - CI workflow — runs weekly Monday 10:00 UTC+3 via docker://ghcr.io/renovatebot/renovate:39 - Package rules preserve existing Dependabot behavior (same groups, labels, schedule) plus adds GitHub Actions dependency management - Native Forgejo auto-merge via platformAutomerge: true Bug Fixes - i18n crash — resolved @grammyjs/i18n crash on Windows caused by path separator mismatch (\ vs /) in src/i18n.ts Test Improvements - Flaky test timeouts replaced with proper polling (waitForAssertion) - Tests now retry up to 5 times, show only failures, run in parallel - Improved shutdown.test.ts reliability Other - Added FEATURE_TIPS and FEATURE_WARNINGS environment variables for toggling regex tips and ReDoS warnings - Updated Bun version in Dockerfile to 1.3.14 - Commented out cache-to/cache-from in Docker builds (incompatible with Forgejo runners)
Release 0.2.1 (#72)
Some checks failed
Push Checks / Lint (push) Failing after 2m32s
Push Checks / Type Check (push) Failing after 2m32s
Push Checks / Format Check (push) Failing after 2m32s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
47ec0c610f
* chore(package): Bump version to 0.2.1 for new release

* fix(locales): move files under src/ for proper categorization, less
copying into docker image

* chore(ci): bump bun version across the CI workflows and in the docker
image

also update .dockerignore for the least amount of files copied

* feat(diff): implement /diff command with hide button (#69)

- Add sed_command column to bot_replies table
- Create diff.ts with computeDiff function
- Register /diff command with reply detection
- Add InlineKeyboard with Hide diff button
- Implement callback handler for diff:hide
- Add error handling for incorrect usage
- Add unit tests for computeDiff
- Update CHANGELOG.md with 0.1.10 and 0.2.0 entries
- Fix editMessageReplyMarkup TypeScript error
- Fix ESLint unused variable warnings

* feat(diff): add multi-format support to computeDiff (plain, true, image)

* feat(hooks): finally remove `x` from `-euxo pipefail` so that it doesn't
echo the commands executed

* feat(diff): add generateDiffImage function for SVG diff visualization

* feat(diff): add format argument support to /diff command

* fix(diff): add type assertions for invalid format tests

* docs: update CHANGELOG.md for /diff command argument support

* fix(changelog): strip "open" from past verisons' `<details>` tag, as
only one of them is supposed to be open at a time

* fix(ci): correct Docker tag generation for semver branches

- Fix cut command: use -f 4 to extract version from package.json
- Treat semver branches (e.g., 0.2.1) as dev branches with -dev suffix
- Generate tags: latest, dev, 0-dev, 0.2-dev, 0.2.1-dev for semver branches
- Release branch logic unchanged
- Dev branch logic unchanged

* test(ci): check tag generation logic

* chore: bump bun 1.3.13, update packages, version.ts for 0.2.1

* chore: fix version in package.json
feat: add feature toggles for regex tips and warnings via FEATURE_TIPS and FEATURE_WARNINGS env vars
Some checks failed
Push Checks / Format Check (push) Failing after 8s
Push Checks / Type Check (push) Failing after 9s
Push Checks / Lint (push) Failing after 9s
Push Checks / Tests (push) Has been skipped
Push Checks / Build and Push Docker Image (push) Has been skipped
38e1c6f52b
- Renamed .github to .forgejo for Forgejo compatibility
- Replaced oven-sh/setup-bun@v1 with container: oven/bun:1.3.13
- Replaced GitHub-specific actions (github-script, gh-release, etc.) with Forgejo API via curl
- Replaced dependabot-automerge with native Forgejo auto-merge polling
- Replaced gitleaks-action with Docker-based gitleaks
- Updated container registry from ghcr.io to hangar.nixthedev.ru
- Removed GitHub-specific permissions blocks
- Updated GITLEAKS_CONFIG path from .github to .forgejo
- Updated documentation references from .github to .forgejo
- Added Docker Hub and GHCR login steps
- Refactored tag generation to build suffix list first, then apply to all 3 registries
- Lowercase repo name for Docker Hub compatibility
- Added HGPR_TOKEN for Forgejo registry auth
- Use repository_owner for registry logins
ci: always push :latest tag regardless of branch
Some checks failed
Push Checks / Format Check (push) Successful in 35s
Push Checks / Lint (push) Successful in 52s
Push Checks / Type Check (push) Successful in 52s
Push Checks / Tests (push) Successful in 39s
Push Checks / Build and Push Docker Image (push) Failing after 4m54s
9546a1f8ff
ci: auto-trigger release on PR merge with release label
Some checks failed
Push Checks / Type Check (push) Successful in 31s
Push Checks / Format Check (push) Successful in 40s
Push Checks / Lint (push) Successful in 54s
Push Checks / Tests (push) Successful in 45s
Push Checks / Build and Push Docker Image (push) Failing after 1m26s
31f88d2ba8
ci: remove sudo from docker install step
Some checks failed
Push Checks / Format Check (push) Successful in 1m25s
Push Checks / Type Check (push) Successful in 1m27s
Push Checks / Lint (push) Successful in 1m28s
Push Checks / Tests (push) Successful in 52s
Push Checks / Build and Push Docker Image (push) Failing after 1m17s
7d0dbe6866
ci: Docker install via static binary
Some checks failed
Push Checks / Lint (push) Successful in 45s
Push Checks / Format Check (push) Successful in 46s
Push Checks / Type Check (push) Successful in 56s
Push Checks / Tests (push) Successful in 40s
Push Checks / Build and Push Docker Image (push) Has been cancelled
9d0f447445
ci: Forgejo lowercase repo
Some checks failed
Push Checks / Lint (push) Successful in 51s
Push Checks / Type Check (push) Successful in 51s
Push Checks / Format Check (push) Successful in 1m2s
Push Checks / Tests (push) Failing after 25s
Push Checks / Build and Push Docker Image (push) Has been skipped
4f2d9e33fa
fix: resolve @grammyjs/i18n Windows path separator crash in i18n config
Some checks failed
Push Checks / Lint (push) Successful in 35s
Push Checks / Type Check (push) Successful in 47s
Push Checks / Format Check (push) Successful in 57s
Push Checks / Tests (push) Failing after 46s
Push Checks / Build and Push Docker Image (push) Has been skipped
73be66cfa3
ci(tests): retry failed tests up to 5 times, show only failed ones, run
Some checks failed
Push Checks / Type Check (push) Successful in 48s
Push Checks / Format Check (push) Successful in 1m0s
Push Checks / Lint (push) Successful in 1m17s
Push Checks / Tests (push) Successful in 43s
Push Checks / Build and Push Docker Image (push) Has been cancelled
6f813fbfbf
in parallel
ci: fix docker tags(again) & bump bun evrsion on pr checks
Some checks failed
Push Checks / Format Check (push) Successful in 48s
Push Checks / Type Check (push) Successful in 49s
Push Checks / Lint (push) Successful in 1m1s
Push Checks / Tests (push) Successful in 36s
Push Checks / Build and Push Docker Image (push) Has been cancelled
c8f43a24e3
ci: comment out cache-to/from as it is incompatible with forgejo
All checks were successful
Push Checks / Format Check (push) Successful in 1m21s
Push Checks / Lint (push) Successful in 1m30s
Push Checks / Type Check (push) Successful in 1m47s
Push Checks / Tests (push) Successful in 33s
Push Checks / Build and Push Docker Image (push) Successful in 27m31s
26429fcba8
ci: return the dev version tags
All checks were successful
Push Checks / Lint (push) Successful in 1m11s
Push Checks / Format Check (push) Successful in 1m23s
Push Checks / Type Check (push) Successful in 1m34s
Push Checks / Tests (push) Successful in 31s
Push Checks / Build and Push Docker Image (push) Successful in 26m34s
48a7e35132
ci: migrate to CI/CD renovate
Some checks failed
Push Checks / Format Check (push) Successful in 45s
Push Checks / Type Check (push) Successful in 45s
Push Checks / Lint (push) Successful in 57s
Push Checks / Tests (push) Successful in 29s
PR Checks / Format Check (pull_request) Successful in 39s
Secret Scanning / Scan for Secrets (pull_request) Successful in 45s
PR Checks / Type Check (pull_request) Successful in 1m5s
PR Checks / Lint (pull_request) Successful in 1m6s
PR Checks / Tests (pull_request) Successful in 33s
Push Checks / Build and Push Docker Image (push) Successful in 26m17s
PR Checks / Build Docker Image (Validation) (pull_request) Has been cancelled
b440b2aa0b
NiXTheDev force-pushed 0.2.1.1 from b440b2aa0b
Some checks failed
Push Checks / Format Check (push) Successful in 45s
Push Checks / Type Check (push) Successful in 45s
Push Checks / Lint (push) Successful in 57s
Push Checks / Tests (push) Successful in 29s
PR Checks / Format Check (pull_request) Successful in 39s
Secret Scanning / Scan for Secrets (pull_request) Successful in 45s
PR Checks / Type Check (pull_request) Successful in 1m5s
PR Checks / Lint (pull_request) Successful in 1m6s
PR Checks / Tests (pull_request) Successful in 33s
Push Checks / Build and Push Docker Image (push) Successful in 26m17s
PR Checks / Build Docker Image (Validation) (pull_request) Has been cancelled
to 13ea359595
Some checks failed
Push Checks / Format Check (push) Successful in 1m7s
PR Checks / Lint (pull_request) Successful in 1m8s
Push Checks / Lint (push) Successful in 1m9s
Push Checks / Type Check (push) Successful in 1m10s
Push Checks / Tests (push) Successful in 41s
PR Checks / Type Check (pull_request) Successful in 48s
Secret Scanning / Scan for Secrets (pull_request) Successful in 51s
PR Checks / Format Check (pull_request) Successful in 1m11s
PR Checks / Tests (pull_request) Successful in 36s
PR Checks / Build Docker Image (Validation) (pull_request) Successful in 24m57s
Push Checks / Build and Push Docker Image (push) Successful in 27m53s
Create Release / create-release (pull_request) Failing after 58s
Create Release / build-binaries (ubuntu-latest, regexybot-linux-x64, linux-x64) (pull_request) Has been skipped
Create Release / build-binaries (windows-latest, regexybot-windows-x64, windows-x64) (pull_request) Has been skipped
2026-05-23 19:04:09 +03:00
Compare
NiXTheDev merged commit c03afd988a into release 2026-05-23 19:45:29 +03:00
NiXTheDev deleted branch 0.2.1.1 2026-05-23 19:45:29 +03:00
NiXTheDev referenced this pull request from a commit 2026-05-23 19:45:29 +03:00
Sign in to join this conversation.
No description provided.