mirror of
https://github.com/ZhuLinsen/daily_stock_analysis
synced 2026-09-20 10:53:33 +08:00
* feat: add feishu file upload support for report delivery - Add FEISHU_SEND_AS_FILE config option to switch from text to file delivery - Implement FeishuSender.send_feishu_file() with App Bot SDK upload + webhook fallback - Integrate file upload path into pipeline dashboard notification loop - Integrate file upload path into NotificationService.send_report() - Add save_and_send_feishu_file() convenience wrapper - Add .env.example entry and CHANGELOG.md record * fix: restrict feishu file mode to report routes and wire into workflow - Limit FEISHU_SEND_AS_FILE to route_type=None or 'report' in _send_to_static_channel, preventing alert/event paths from unexpectedly saving alerts as files (Codex review P2). - Add FEISHU_SEND_AS_FILE env var to .github/workflows/00-daily-analysis.yml so the setting is available in scheduled runs (Codex review P2). - Add 13 tests: 7 FeishuSender unit tests (send_feishu_file webhook/App Bot paths), 6 NotificationService integration tests (route_type filtering) * fix: address round-2 review blockers Correctness: - Remove route_type=None file-mode fallback; only explicit route_type='report' triggers Feishu file delivery (api/v1/endpoints/agent.py calls send() without route_type) Compatibility: - Isolate CreateFileRequest/CreateFileRequestBody imports from CreateMessageRequest; add FEISHU_FILE_SDK_AVAILABLE flag so old lark-oapi without file-upload classes won't break existing App Bot text messaging Test fix: - Fix webhook test assertion: # Test Report -> **Test Report** (format_feishu_markdown converts markdown headings to bold) Documentation: - Add FEISHU_SEND_AS_FILE to docs/notifications.md config table - Add file-send section to docs/bot/feishu-bot-config.md (permissions, deps, webhook fallback, route scope, CI mapping) - Add FEISHU_SEND_AS_FILE to docs/full-guide.md and docs/full-guide_EN.md config tables - Add Feishu file create OpenAPI link to docs/notifications.md * docs: fix feishu_sender drift and document config entry boundary - Fix outdated '本轮未改动 feishu_sender.py' line in docs/notifications.md (we added send_feishu_file to feishu_sender.py) - Document FEISHU_SEND_AS_FILE as .env/Actions-only in docs/bot/feishu-bot-config.md (not exposed in Web/Desktop settings) * feat: add FEISHU_SEND_AS_FILE to system_config_service env mapping - Add FEISHU_SEND_AS_FILE -> feishu_send_as_file (bool) mapping alongside FEISHU_MAX_BYTES in the notification env key mapping - Update docs/bot/feishu-bot-config.md to reflect standard config paths * test: add non-mock SDK import smoke test for file upload classes