Skip to content

feat: add Bale messenger platform plugin - #1

Merged
m4tinbeigi-official merged 1 commit into
mainfrom
feature/bale-messenger
Jun 26, 2026
Merged

m4tinbeigi-official merged 1 commit into
mainfrom
feature/bale-messenger

Conversation

@m4tinbeigi-official

Copy link
Copy Markdown
Owner

This PR adds support for Bale (بله) messenger by subclassing the Telegram adapter and overriding the API base URL.

@github-actions

github-actions Bot commented Jun 26, 2026 •

Copy link
Copy Markdown

🔎 Lint report: feature/bale-messenger vs origin/main

ruff

Total: 88 on HEAD, 88 on base (➖ 0)

🆕 New issues (56):

Rule Count
unknown 56
First entries
plugins/platforms/eitaa/__init__.py:1: [unknown] Simple statements must be separated by newlines or semicolons
plugins/platforms/gap/adapter.py:49: [unknown] Expected an indented block after `try` statement
plugins/platforms/kavenegar/adapter.py:64: [unknown] Expected a statement
plugins/platforms/melipayamak/adapter.py:49: [unknown] Expected an indented block after `try` statement
plugins/platforms/gap/__init__.py:1: [unknown] Expected a newline after line continuation character
plugins/platforms/kavenegar/adapter.py:59: [unknown] Unexpected indentation
plugins/platforms/eitaa/__init__.py:1: [unknown] Expected a newline after line continuation character
plugins/platforms/ghasedak/__init__.py:1: [unknown] Expected a newline after line continuation character
plugins/platforms/gap/adapter.py:57: [unknown] Expected an expression
plugins/platforms/ghasedak/adapter.py:49: [unknown] Expected an indented block after `try` statement
plugins/platforms/melipayamak/adapter.py:57: [unknown] Expected an expression
plugins/platforms/pushe/adapter.py:49: [unknown] Expected an indented block after `try` statement
plugins/platforms/paket/adapter.py:63: [unknown] Expected a statement
plugins/platforms/gap/__init__.py:1: [unknown] Expected `,`, found `=`
plugins/platforms/najva/adapter.py:63: [unknown] Expected a statement
plugins/platforms/paket/adapter.py:58: [unknown] Unexpected indentation
plugins/platforms/najva/adapter.py:58: [unknown] Unexpected indentation
plugins/platforms/ghasedak/adapter.py:59: [unknown] Expected an expression
plugins/platforms/eitaa/__init__.py:1: [unknown] Expected `,`, found `=`
plugins/platforms/ghasedak/__init__.py:1: [unknown] Expected `,`, found `=`
plugins/platforms/paket/__init__.py:1: [unknown] Simple statements must be separated by newlines or semicolons
plugins/platforms/pushe/adapter.py:57: [unknown] Expected an expression
plugins/platforms/eitaa/adapter.py:62: [unknown] Expected a statement
plugins/platforms/eitaa/adapter.py:57: [unknown] Unexpected indentation
plugins/platforms/pushe/__init__.py:1: [unknown] Simple statements must be separated by newlines or semicolons
... and 31 more

✅ Fixed issues (56):

Rule Count
unknown 56
First entries
../../../../../tmp/lint-base/plugins/platforms/eitaa/__init__.py:1: [unknown] Expected `,`, found `=`
../../../../../tmp/lint-base/plugins/platforms/gap/__init__.py:1: [unknown] Simple statements must be separated by newlines or semicolons
../../../../../tmp/lint-base/plugins/platforms/paket/adapter.py:49: [unknown] Expected an indented block after `try` statement
../../../../../tmp/lint-base/plugins/platforms/kavenegar/adapter.py:49: [unknown] Expected an indented block after `try` statement
../../../../../tmp/lint-base/plugins/platforms/melipayamak/adapter.py:49: [unknown] Expected an indented block after `try` statement
../../../../../tmp/lint-base/plugins/platforms/ghasedak/__init__.py:1: [unknown] Simple statements must be separated by newlines or semicolons
../../../../../tmp/lint-base/plugins/platforms/gap/adapter.py:49: [unknown] Expected an indented block after `try` statement
../../../../../tmp/lint-base/plugins/platforms/paket/__init__.py:1: [unknown] Expected a newline after line continuation character
../../../../../tmp/lint-base/plugins/platforms/paket/adapter.py:57: [unknown] Expected an expression
../../../../../tmp/lint-base/plugins/platforms/ghasedak/adapter.py:65: [unknown] Expected a statement
../../../../../tmp/lint-base/plugins/platforms/ghasedak/adapter.py:60: [unknown] Unexpected indentation
../../../../../tmp/lint-base/plugins/platforms/melipayamak/adapter.py:57: [unknown] Expected an expression
../../../../../tmp/lint-base/plugins/platforms/gap/__init__.py:1: [unknown] Expected a newline after line continuation character
../../../../../tmp/lint-base/plugins/platforms/kavenegar/adapter.py:58: [unknown] Expected an expression
../../../../../tmp/lint-base/plugins/platforms/kavenegar/__init__.py:1: [unknown] Simple statements must be separated by newlines or semicolons
../../../../../tmp/lint-base/plugins/platforms/gap/adapter.py:57: [unknown] Expected an expression
../../../../../tmp/lint-base/plugins/platforms/pushe/adapter.py:49: [unknown] Expected an indented block after `try` statement
../../../../../tmp/lint-base/plugins/platforms/ghasedak/__init__.py:1: [unknown] Expected a newline after line continuation character
../../../../../tmp/lint-base/plugins/platforms/eitaa/adapter.py:49: [unknown] Expected an indented block after `try` statement
../../../../../tmp/lint-base/plugins/platforms/paket/__init__.py:1: [unknown] Expected `,`, found `=`
../../../../../tmp/lint-base/plugins/platforms/pushe/__init__.py:1: [unknown] Simple statements must be separated by newlines or semicolons
../../../../../tmp/lint-base/plugins/platforms/najva/__init__.py:1: [unknown] Simple statements must be separated by newlines or semicolons
../../../../../tmp/lint-base/plugins/platforms/kavenegar/__init__.py:1: [unknown] Expected a newline after line continuation character
../../../../../tmp/lint-base/plugins/platforms/gap/__init__.py:1: [unknown] Expected `,`, found `=`
../../../../../tmp/lint-base/plugins/platforms/melipayamak/__init__.py:1: [unknown] Simple statements must be separated by newlines or semicolons
... and 31 more

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 11623 on HEAD, 11619 on base (🆕 +4)

🆕 New issues (4):

Rule Count
unresolved-attribute 2
unresolved-import 1
invalid-assignment 1
First entries
run_agent.py:3002: [unresolved-attribute] unresolved-attribute: Object of type `Self@get_credits_spent_micros` has no attribute `_credits_session_start_micros`
plugins/platforms/bale/adapter.py:68: [unresolved-import] unresolved-import: Cannot resolve imported module `aiohttp`
tests/run_agent/test_credits_notices_toggle.py:76: [unresolved-attribute] unresolved-attribute: Unresolved attribute `_credits_session_start_micros` on type `AIAgent`
plugins/platforms/bale/adapter.py:56: [invalid-assignment] invalid-assignment: Cannot assign to read-only property `name` on object of type `Self@__init__`: Attempted assignment to `Self@__init__.name` here

✅ Fixed issues (1):

Rule Count
invalid-assignment 1
First entries
tests/run_agent/test_credits_notices_toggle.py:76: [invalid-assignment] invalid-assignment: Object of type `None` is not assignable to attribute `_credits_session_start_micros` of type `int`

Unchanged: 6125 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

@m4tinbeigi-official

Copy link
Copy Markdown
Owner Author

Added full Persian (fa) localization for gateway resume messages, including missing placeholders. All i18n tests passed.

@m4tinbeigi-official
m4tinbeigi-official merged commit e84efe3 into main Jun 26, 2026
25 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant