agentson
4a59d7e66d
feat: /notify command for runtime notification filter control ( #161 )
...
CI / test (pull_request) Has been cancelled
Add /notify Telegram command for adjusting notification filters at runtime
without restarting the service:
/notify → show current filter state
/notify scenario off → disable scenario match alerts
/notify market off → disable market open/close alerts
/notify all off → disable all (circuit_breaker always on)
/notify trades on → re-enable trade execution alerts
Changes:
- NotificationFilter: add KEYS class var, set_flag(), as_dict()
- TelegramClient: add set_notification(), filter_status()
- TelegramCommandHandler: add register_command_with_args() + args dispatch
- main.py: handle_notify() handler + register /notify command + /help update
- Tests: 12 new tests (set_flag, set_notification, register_command_with_args)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-20 02:33:03 +09:00
agentson
8dd625bfd1
feat: granular Telegram notification filters via .env ( #161 )
...
CI / test (pull_request) Has been cancelled
Add NotificationFilter dataclass to TelegramClient allowing per-type
on/off control via .env variables. circuit_breaker always sends regardless.
New .env options (all default true):
- TELEGRAM_NOTIFY_TRADES
- TELEGRAM_NOTIFY_MARKET_OPEN_CLOSE
- TELEGRAM_NOTIFY_FAT_FINGER
- TELEGRAM_NOTIFY_SYSTEM_EVENTS
- TELEGRAM_NOTIFY_PLAYBOOK
- TELEGRAM_NOTIFY_SCENARIO_MATCH (most frequent — set false to reduce noise)
- TELEGRAM_NOTIFY_ERRORS
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-20 02:26:28 +09:00
agentson
e8634b93c3
feat: add Telegram playbook notifications (issue #81 )
...
CI / test (pull_request) Has been cancelled
- notify_playbook_generated(): market, stock/scenario count, token usage (MEDIUM)
- notify_scenario_matched(): stock, action, condition, confidence (HIGH)
- notify_playbook_failed(): market, reason with 200-char truncation (HIGH)
- 6 new tests: 3 format + 3 priority validations
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-08 21:25:16 +09:00
agentson
259f9d2e24
feat: add generic send_message method to TelegramClient (issue #59 )
...
CI / test (pull_request) Has been cancelled
Add send_message(text, parse_mode) method that can be used for both
notifications and command responses. Refactor _send_notification to
use the new method.
Changes:
- Add send_message() method with return value for success/failure
- Refactor _send_notification() to call send_message()
- Add comprehensive tests for send_message()
- Coverage: 93% for telegram_client.py
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-05 13:39:09 +09:00
agentson
ed26915562
test: add comprehensive TelegramClient tests (issue #32 )
...
CI / test (pull_request) Has been cancelled
Add 15 tests across 5 test classes:
- TestTelegramClientInit (4 tests): disabled scenarios, enabled with credentials
- TestNotificationSending (6 tests): disabled mode, message format, API errors, timeouts, session management
- TestRateLimiting (1 test): rate limiter enforcement
- TestMessagePriorities (2 tests): priority emoji verification
- TestClientCleanup (2 tests): session cleanup
Uses pytest.mark.asyncio for async tests.
Mocks aiohttp responses with AsyncMock.
Follows test patterns from test_broker.py.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-04 21:32:24 +09:00