Conversation
|
@claude review. Focus on critical issues: bugs, security vulnerabilities, logical errors, data loss risks, performance problems. Do NOT nitpick style, naming conventions, minor formatting, or subjective preferences — only flag issues that could break functionality or cause real harm in production. |
|
Claude finished @axisrow's task in 4m 8s —— View job PR Review
Findings1. Connection leak in
|
| # | Severity | Location | Issue |
|---|---|---|---|
| 1 | Medium | auth.py:218 |
Connection leak — client not disconnected when needs_2fa=True |
| 2 | High | auth.py:210, account.py:79 |
2FA CLI retry likely fails — re-submits consumed phone code |
| 3 | Low | pipeline.py:406,461 |
client_pool not in finally cleanup scope |
| 4 | Low | auth.py:149,163 |
resend_code/verify_code enqueue on empty required fields |
| 5 | Low | account.py:54 |
Pre-auth session_str bypasses encryption in transit |
The JSON serialization fix and the Form("") / redirect approach are both correct. The main risk to production correctness is issue #2 — 2FA accounts will fail to authenticate via CLI unless the password is passed in the same verify-code invocation.
…SON serialization for Telethon action payloads - pipeline CLI `run` and `generate` commands now call `runtime.init_pool()` and pass `client_pool` to `ContentGenerationService` — fixes ReactHandler/ForwardHandler silently skipping with "no client_pool" when invoked outside the web worker - `Collector._get_service_action_payload`: add `default=` handler for `datetime` (`isoformat()`), `bytes` (`.hex()`), and any other unknown type (`repr()`) so that `channel collect` no longer crashes on service messages containing `MessageActionChatJoinedByRequest` or similar TL objects with non-str fields Closes #469 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The run and generate branches created local client_pool variables that weren't covered by the finally block's pool.disconnect_all() cleanup. Now assigned to the outer pool variable so connections are closed on exit. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
e90905d to
9483b35
Compare
Re: Issues 1, 2, 4, 5 — already fixed in merged PR #467This PR was based on a pre-merge commit of #467. After rebasing onto main (which now includes all #467 fixes), these issues no longer apply:
Only Issue 3 (client_pool not in finally cleanup) was unique to this PR — now fixed. |
|
@claude review. Focus on critical issues: bugs, security vulnerabilities, logical errors, data loss risks, performance problems. Do NOT nitpick style, naming conventions, minor formatting, or subjective preferences — only flag issues that could break functionality or cause real harm in production. |
|
Claude finished @axisrow's task in 1m 42s —— View job PR Review
FindingsNo critical issues found in the two changed files. Here's the breakdown:
|
Inline import triggered ruff I001. `date` added to existing top-level datetime import. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Summary
pipeline runиpipeline generateв CLI теперь инициализируютClientPoolчерезruntime.init_pool()и передают его вContentGenerationService— фиксит молчаливый пропускReactHandler/ForwardHandlerсno client_poolпри запуске вне веб-воркераCollector._get_service_action_payload: добавленdefault=обработчик дляdatetime(.isoformat()),bytes(.hex()) и любых других неизвестных типов (repr()) — фиксит крашchannel collectна сервисных сообщениях типаMessageActionChatJoinedByRequestCloses
json.dumpscrash on non-serializable Telethon typesTest plan
python -m src.main pipeline run 1— реакции ставятся, нетno client_poolwarningpython -m src.main channel collect <channel_with_join_requests>— завершается безTypeError🤖 Generated with Claude Code