The root CA alone wasn't sufficient — both smartspeech.sber.ru and
ngw.devices.sberbank.ru use a 3-level chain (Root CA → Sub CA → Server).
Bundle includes both the Russian Trusted Root CA and Sub CA.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
MP4/webm/m4a files are now auto-converted to WAV (PCM_S16LE) via ffmpeg
before uploading to SaluteSpeech API. Follows the same pattern as Google
Speech's _convert_local_to_ogg.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove contradictory tasks/artifacts.py (artifacts go to owning modules)
- Distinguish simple (5) vs complex (3) actors for _run_actor() pattern
- Make apply_partial_update sync (no I/O)
- Remove soft_delete helper (one-liner, confusing with dual patterns)
- Fix false dead code claim about media/service.py json import
- Add all project_pct → progress_pct reference locations
- Add broker import order risk and worker command change
- Add _run_async() and _parse_frame_rate() placement
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Covers decomposition of tasks/service.py, shared CRUD/auth helpers
in common/, permission fixes, error handling, naming, and layering
consistency across all backend modules.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>