所有重要更改都会记录在此文件中。
格式基于 Keep a Changelog, 版本号遵循 Semantic Versioning。
- 📅 交易日判断(Issue #373)
- 默认非交易日不执行分析,按 A 股 / 港股 / 美股各自交易日历区分
- 混合持仓时,每只股票只在其市场开市日分析,休市股票当日跳过
- 全部相关市场休市时,整体跳过执行(不启动 pipeline、不发推送)
- 依赖
exchange-calendars(A 股 XSHG、港股 XHKG、美股 XNYS) - 配置项:
TRADING_DAY_CHECK_ENABLED(默认true) - 覆盖方式:
--force-run或TRADING_DAY_CHECK_ENABLED=false
- 🤖 Agent 策略问股(全链路,#367)
- API:新增
/api/v1/agent/strategies(获取策略列表)与/api/v1/agent/chat/stream(SSE 流式对话) - 核心:
src/agent/(AgentExecutor ReAct 循环、LLMToolAdapter 多厂商适配、ConversationManager 会话持久化、ToolRegistry 工具注册) - 内置策略:11 种 YAML 策略(多头趋势、均线金叉、量价突破、缩量回踩、缠论、波浪理论、情绪周期、箱体震荡、龙头策略、一阳三阴、底部放量)
- Web:
/chat页面支持策略选择、流式进度反馈、多轮追问、从历史报告跳转追问 - Bot:
/ask <code> [strategy]命令触发策略分析,/chat命令进入多轮对话 - 流水线接入:
AGENT_MODE=true时 pipeline 自动路由至 Agent 分析分支,向下兼容 - 配置项:
AGENT_MODE、AGENT_MAX_STEPS、AGENT_STRATEGY_DIR - 兼容性:
AGENT_MODE默认 false,不影响现有非 Agent 模式;回滚只需将AGENT_MODE设为 false
- API:新增
- ⚙️ Agent 工具链能力增强
- 扩展
analysis_tools与data_tools,优化策略问股的工具调用链路与分析覆盖
- 扩展
- 🐛 修复 HTTP 非安全上下文下 /chat 页面黑屏(Issue #377)
crypto.randomUUID()仅在 HTTPS/localhost 安全上下文中可用,通过http://IP:port访问时页面崩溃黑屏- 新增
apps/dsa-web/src/utils/uuid.ts,提供带 fallback 的generateUUID()工具函数 ChatPage.tsx中的 session ID 生成改为调用generateUUID(),兼容 HTTP 访问场景
- 🐛 Docker 网络/DNS 解析失败 (Issue #372)
docker-compose.yml增加 host 模式下--port与端口映射关系的注释说明- FAQ 新增 Q14.1:Docker 中 DNS 解析失败时的排查步骤(显式 DNS 配置、host 网络模式兜底)
- 🐛 Agent 对话 Bug 修复(#367 review follow-up)
- 修复
bot/commands/ask.py中list_strategies()方法不存在导致策略名称回显失败,改为list_skills()正确属性访问 - 修复
session_id缺省值为"default_session"导致多用户/多标签页会话串用,改为每次生成 UUID - 修复 LLM 失败时对话消息不落库,下一轮上下文断层;现在成功/失败均写入历史
asyncio.get_event_loop()改为 Python 3.10+ 推荐的get_running_loop()storage.py中session.query()改为 SQLAlchemy 2.x 风格session.execute(select(...))ChatPage.tsx消除所有@typescript-eslint/no-explicit-any报错,引入FollowUpContext、ChatStreamPayload接口- Agent 进度提示从「第 N 步:AI 正在思考...」改为具体动作描述(如「行情获取」已完成,继续深入分析...)
- 修复
- 🐛 Agent 对话会话存储与默认策略修复
- 修复
DatabaseManager缺失session_scope导致/api/v1/agent/chat返回 500 的问题 - 修复会话历史读取的数据结构不一致问题,避免多轮对话中断
- 新增内置默认多头策略
bull_trend,并将默认策略收敛为更适合常规个股分析的组合 - Web 端对话页文案调整为“策略对话”,并默认勾选多头相关策略,降低使用门槛
- 修复
- 🐛 Dashboard 嵌套映射与测试硬编码修复
- 修复 Dashboard 端策略结果映射中的嵌套结构解析问题,避免展示异常
- 修复测试中的硬编码数据,减少因固定值导致的回归误报
- ✅ Agent 相关测试更新
- 更新策略数量断言(
6 -> 11),并同步test_agent_pipeline、test_agent_registry的断言逻辑
- 更新策略数量断言(
- 📝 Agent 文档补充
- 更新
README.md、docs/README_EN.md、docs/README_CHT.md与 changelog,补充策略问股使用说明与测试说明
- 更新
- 🐛 StockTrendAnalyzer 从未执行 (Issue #357)
- 根因:
get_analysis_context仅返回 2 天数据且无raw_data,pipeline 中raw_data in context始终为 False - 修复:Step 3 直接调用
get_data_range获取 90 日历天(约 60 交易日)历史数据用于趋势分析 - 改善:趋势分析失败时用
logger.warning(..., exc_info=True)记录完整 traceback
- 根因:
- ⚙️ 支持
RUN_IMMEDIATELY配置项,设为true时定时任务触发后立即执行一次分析,无需等待首个定时点
- 🐛 修复 Web UI 页面居中问题
- 🐛 修复 Settings 返回 500 错误
- 🐛 ETF 分析仅关注指数走势(Issue #274)
- 美股/港股 ETF(如 VOO、QQQ)与 A 股 ETF 不再纳入基金公司层面风险(诉讼、声誉等)
- 搜索维度:ETF/指数专用 risk_check、earnings、industry 查询,避免命中基金管理人新闻
- AI 提示:指数型标的分析约束,
risk_alerts不得出现基金管理人公司经营风险
- 🐛 BOT 与 WEB UI 股票代码大小写统一(Issue #355)
- BOT
/analyze与 WEB UI 触发分析的股票代码统一为大写(如aapl→AAPL) - 新增
canonical_stock_code(),在 BOT、API、Config、CLI、task_queue 入口处规范化 - 历史记录与任务去重逻辑可正确识别同一股票(大小写不再影响)
- BOT
- 🔐 Web 页面密码验证(Issue #320, #349)
- 支持
ADMIN_AUTH_ENABLED=true启用 Web 登录保护 - 首次访问在网页设置初始密码;支持「系统设置 > 修改密码」和 CLI
python -m src.auth reset_password重置
- 支持
- 🎨 首页输入栏与 Market Sentiment 布局对齐优化
- 股票代码输入框左缘与历史记录 glass-card 框左对齐
- 分析按钮右缘与 Market Sentiment 外框右对齐
- Market Sentiment 卡片向下拉伸填满格子,消除与 STRATEGY POINTS 之间的空隙
- 窄屏时输入栏填满宽度,响应式对齐保持一致
- 🌍 大盘复盘可选区域(Issue #299)
- 支持
MARKET_REVIEW_REGION环境变量:cn(A股)、us(美股)、both(两者) - us 模式使用 SPX/纳斯达克/道指/VIX 等指数;both 模式可同时复盘 A 股与美股
- 默认
cn,保持向后兼容
- 支持
- 🐛 统一美股数据源为 YFinance(Issue #311)
- akshare 美股复权数据异常,统一美股历史数据源为 YFinance
- 修复 ADBE 等美股股票技术指标矛盾问题
- 🐛 标普500实时数据缺失(Issue #273)
- 修复 SPX、DJI、IXIC、NDX、VIX、RUT 等美股指数无法获取实时行情的问题
- 新增
us_index_mapping模块,将用户输入(如 SPX)映射为 Yahoo Finance 符号(如^GSPC) - 美股指数与美股股票日线数据直接路由至 YfinanceFetcher,避免遍历不支持的数据源
- 📊 PE 指标支持(Issue #296)
- AI System Prompt 增加 PE 估值关注
- 📰 新闻时效性筛查(Issue #296)
NEWS_MAX_AGE_DAYS:新闻最大时效(天),默认 3,避免使用过时信息
- 📈 强势趋势股乖离率放宽(Issue #296)
BIAS_THRESHOLD:乖离率阈值(%),默认 5.0,可配置- 强势趋势股(多头排列且趋势强度 ≥70)自动放宽乖离率到 1.5 倍
- 🔧 东财接口补丁可配置开关
- 支持
EFINANCE_PATCH_ENABLED环境变量开关东财接口补丁(默认true) - 补丁不可用时可降级关闭,避免影响主流程
- 支持
- 🔒 CI 门禁统一(P0)
- 新增
scripts/ci_gate.sh作为后端门禁单一入口 - 主 CI 改为
backend-gate、docker-build、web-gate三段式 - CI 触发改为所有 PR,避免 Required Checks 因路径过滤缺失而卡住合并
web-gate支持前端路径变更按需触发- 新增
network-smoke工作流承载非阻断网络场景回归
- 新增
- 📦 发布链路收敛(P0)
docker-publish调整为 tag 主触发,并增加发布前门禁校验- 手动发布增加
release_tag输入与 semver/changelog 强校验 - 发布前新增 Docker smoke(关键模块导入)
- 📝 PR 模板升级(P0)
- 增加背景、范围、验证命令与结果、回滚方案、Issue 关联等必填项
- 🤖 AI 审查覆盖增强(P0)
pr-review纳入.github/workflows/**范围- 新增
AI_REVIEW_STRICT开关,可选将 AI 审查失败升级为阻断
- 📊 仅分析结果摘要(Issue #262)
- 支持
REPORT_SUMMARY_ONLY环境变量,设为true时只推送汇总,不含个股详情 - 默认
false,多股时适合快速浏览
- 支持
- 📧 个股与大盘复盘合并推送(Issue #190)
- 支持
MERGE_EMAIL_NOTIFICATION环境变量,设为true时将个股分析与大盘复盘合并为一次推送 - 默认
false,减少邮件数量、降低被识别为垃圾邮件的风险
- 支持
- 🤖 Anthropic Claude API 支持(Issue #257)
- 支持
ANTHROPIC_API_KEY、ANTHROPIC_MODEL、ANTHROPIC_TEMPERATURE、ANTHROPIC_MAX_TOKENS - AI 分析优先级:Gemini > Anthropic > OpenAI
- 支持
- 📷 从图片识别股票代码(Issue #257)
- 上传自选股截图,通过 Vision LLM 自动提取股票代码
- API:
POST /api/v1/stocks/extract-from-image;支持 JPEG/PNG/WebP/GIF,最大 5MB - 支持
OPENAI_VISION_MODEL单独配置图片识别模型
- ⚙️ 通达信数据源手动配置(Issue #257)
- 支持
PYTDX_HOST、PYTDX_PORT或PYTDX_SERVERS配置自建通达信服务器
- 支持
- ⚙️ 立即运行配置(Issue #332)
- 支持
RUN_IMMEDIATELY环境变量,true时定时任务启动后立即执行一次
- 支持
- 🐛 修复 Docker 构建问题
- 🔌 东财接口补丁机制
- 新增
patch/eastmoney_patch.py修复 efinance 上游接口变更 - 不影响其他数据源的正常运行
- 新增
- 🔐 Webhook 证书校验开关(Issue #265)
- 支持
WEBHOOK_VERIFY_SSL环境变量,可关闭 HTTPS 证书校验以支持自签名证书 - 默认保持校验,关闭存在 MITM 风险,仅建议在可信内网使用
- 支持
- 🐛 修复包导入错误(package import error)
- 🐛 修复
news_intel中query_id不一致问题
- 📷 Markdown 转图片通知(Issue #289)
- 支持
MARKDOWN_TO_IMAGE_CHANNELS配置,对 Telegram、企业微信、自定义 Webhook(Discord)、邮件发送图片格式报告 - 邮件为内联附件,增强对不支持 HTML 客户端的兼容性
- 需安装
wkhtmltopdf和imgkit
- 支持
- 📧 股票分组发往不同邮箱(Issue #268)
- 支持
STOCK_GROUP_N+EMAIL_GROUP_N配置,不同股票组报告发送到对应邮箱 - 大盘复盘发往所有配置的邮箱
- 支持
- 🐛 修复 Docker 内运行时通过页面修改配置报错
[Errno 16] Device or resource busy的问题
- 🐛 修复 Docker 一致性问题,解决关键批次处理与通知 Bug
- ♻️
API_HOST→WEBUI_HOST:Docker Compose 配置项统一
- 📊 ETF 支持增强与代码规范化
- 统一各数据源 ETF 代码处理逻辑
- 新增
canonical_stock_code()统一代码格式,确保数据源路由正确
- 🐛 修复信号 emoji 与建议不一致的问题(复合建议如"卖出/观望"未正确映射)
- 🐛 修复
*ST股票名在微信/Dashboard 中 markdown 转义问题 - 🐛 修复
idx.amount为 None 时大盘复盘 TypeError - 🐛 修复分析 API 返回
report=None及 ReportStrategy 类型不一致问题 - 🐛 修复 Tushare 返回类型错误(dict → UnifiedRealtimeQuote)及 API 端点指向
- 📊 大盘复盘报告注入结构化数据(涨跌统计、指数表格、板块排名)
- 🔍 搜索结果 TTL 缓存(500 条上限,FIFO 淘汰)
- 🔧 Tushare Token 存在时自动注入实时行情优先级
- 📰 新闻摘要截断长度 50→200 字
- ⚡ 补充行情字段请求限制为最多 1 次,减少无效请求
- 📈 回测引擎 (PR #269)
- 新增基于历史分析记录的回测系统,支持收益率、胜率、最大回撤等指标评估
- WebUI 集成回测结果展示
- 🐛 修复狙击点位数据解析错误问题 (PR #271)
- ✉️ 可配置邮件发送者名称 (PR #272)
- 🌐 外国股票支持英文关键词搜索
- 🐛 修复 ETF 实时行情获取、市场数据回退、企业微信消息分块问题
- 🔧 CI 流程简化
- 🗑️ 移除旧版 WebUI
- 删除基于
http.server.ThreadingHTTPServer的旧版 WebUI(web/包) - 旧版 WebUI 的功能已完全被 FastAPI(
api/)+ React 前端替代 --webui/--webui-only命令行参数标记为弃用,自动重定向到--serve/--serve-onlyWEBUI_ENABLED/WEBUI_HOST/WEBUI_PORT环境变量保持兼容,自动转发到 FastAPI 服务webui.py保留为兼容入口,启动时直接调用 FastAPI 后端- Docker Compose 中移除
webui服务定义,统一使用server服务
- 删除基于
- ♻️ 服务层重构
- 将
web/services.py中的异步任务服务迁移至src/services/task_service.py - Bot 分析命令(
bot/commands/analyze.py)改为使用src.services.task_service - Docker 环境变量
WEBUI_HOST/WEBUI_PORT更名为API_HOST/API_PORT(旧名仍兼容)
- 将
2.3.0 - 2026-02-01
- 🇺🇸 增强美股支持 (Issue #153)
- 实现基于 Akshare 的美股历史数据获取 (
ak.stock_us_daily()) - 实现基于 Yfinance 的美股实时行情获取(优先策略)
- 增加对不支持数据源(Tushare/Baostock/Pytdx/Efinance)的美股代码过滤和快速降级
- 实现基于 Akshare 的美股历史数据获取 (
- 🐛 修复 AMD 等美股代码被误识别为 A 股的问题 (Issue #153)
2.2.5 - 2026-02-01
- 🤖 AstrBot 消息推送 (PR #217)
- 新增 AstrBot 通知渠道,支持推送到 QQ 和微信
- 支持 HMAC SHA256 签名验证,确保通信安全
- 通过
ASTRBOT_URL和ASTRBOT_TOKEN配置
2.2.4 - 2026-02-01
- ⚙️ 可配置数据源优先级 (PR #215)
- 支持通过环境变量(如
YFINANCE_PRIORITY=0)动态调整数据源优先级 - 无需修改代码即可优先使用特定数据源(如 Yahoo Finance)
- 支持通过环境变量(如
2.2.3 - 2026-01-31
- 📦 更新 requirements.txt,增加
lxml_html_clean依赖以解决兼容性问题
2.2.2 - 2026-01-31
- 🐛 修复代理配置区分大小写问题 (fixes #211)
2.2.1 - 2026-01-31
- 🐛 YFinance 兼容性修复 (PR #210, fixes #209)
- 修复新版 yfinance 返回 MultiIndex 列名导致的数据解析错误
2.2.0 - 2026-01-31
- 🔄 多源回退策略增强
- 实现了更健壮的数据获取回退机制 (feat: multi-source fallback strategy)
- 优化了数据源故障时的自动切换逻辑
- 🐛 修复 analyzer 运行后无法通过改 .env 文件的 stock_list 内容调整跟踪的股票
2.1.14 - 2026-01-31
- 📝 更新 README 和优化 auto-tag 规则
2.1.13 - 2026-01-31
- 🐛 Tushare 优先级与实时行情 (Fixed #185)
- 修复 Tushare 数据源优先级设置问题
- 修复 Tushare 实时行情获取功能
2.1.12 - 2026-01-30
- 🌐 修复代理配置在某些情况下的区分大小写问题
- 🌐 修复本地环境禁用代理的逻辑
2.1.11 - 2026-01-30
- 🚀 飞书消息流优化 (PR #192)
- 优化飞书 Stream 模式的消息类型处理
- 修改 Stream 消息模式默认为关闭,防止配置错误运行时报错
2.1.10 - 2026-01-30
- 📦 合并 PR #154 贡献
2.1.9 - 2026-01-30
- 💬 微信文本消息支持 (PR #137)
- 新增微信推送的纯文本消息类型支持
- 添加
WECHAT_MSG_TYPE配置项
2.1.8 - 2026-01-30
- 🐛 修正日志中 API 提供商显示错误 (PR #197)
2.1.7 - 2026-01-30
- 🌐 禁用本地环境的代理设置,避免网络连接问题
2.1.6 - 2026-01-29
- 📡 Pytdx 数据源 (Priority 2)
- 新增通达信数据源,免费无需注册
- 多服务器自动切换
- 支持实时行情和历史数据
- 🏷️ 多源股票名称解析
- DataFetcherManager 新增
get_stock_name()方法 - 新增
batch_get_stock_names()批量查询 - 自动在多数据源间回退
- Tushare 和 Baostock 新增股票名称/列表方法
- DataFetcherManager 新增
- 🔍 增强搜索回退
- 新增
search_stock_price_fallback()用于数据源全部失败时 - 新增搜索维度:市场分析、行业分析
- 最大搜索次数从 3 增加到 5
- 改进搜索结果格式(每维度 4 条结果)
- 新增
- 更新搜索查询模板以提高相关性
- 增强
format_intel_report()输出结构
2.1.5 - 2026-01-29
- 📡 新增 Pytdx 数据源和多源股票名称解析功能
2.1.4 - 2026-01-29
- 📝 更新赞助商信息
2.1.3 - 2026-01-28
- 📝 重构 README 布局
- 🌐 新增繁体中文翻译 (README_CHT.md)
- 🐛 修复 WebUI 无法输入美股代码问题
- 输入框逻辑改成所有字母都转换成大写
- 支持
.的输入(如BRK.B)
2.1.2 - 2026-01-27
- 🐛 修复个股分析推送失败和报告路径问题 (fixes #166)
- 🐛 修改 CR 错误,确保微信消息最大字节配置生效
2.1.1 - 2026-01-26
- 🔧 添加 GitHub Actions auto-tag 工作流
- 📡 添加 yfinance 兜底数据源及数据缺失警告
- 🐳 修复 docker-compose 路径和文档命令
- 🐳 Dockerfile 补充 copy src 文件夹 (fixes #145)
2.1.0 - 2026-01-25
- 🇺🇸 美股分析支持
- 支持美股代码直接输入(如
AAPL,TSLA) - 使用 YFinance 作为美股数据源
- 支持美股代码直接输入(如
- 📈 MACD 和 RSI 技术指标
- MACD:趋势确认、金叉死叉信号(零轴上金叉⭐、金叉✅、死叉❌)
- RSI:超买超卖判断(超卖⭐、强势✅、超买
⚠️ ) - 指标信号纳入综合评分系统
- 🎮 Discord 推送支持 (PR #124, #125, #144)
- 支持 Discord Webhook 和 Bot API 两种方式
- 通过
DISCORD_WEBHOOK_URL或DISCORD_BOT_TOKEN+DISCORD_CHANNEL_ID配置
- 🤖 机器人命令交互
- 钉钉机器人支持
/分析 股票代码命令触发分析 - 支持 Stream 长连接模式
- 钉钉机器人支持
- 🌡️ AI 温度参数可配置 (PR #142)
- 支持自定义 AI 模型温度参数
- 🐳 Zeabur 部署支持
- 添加 Zeabur 镜像部署工作流
- 支持 commit hash 和 latest 双标签
- 🏗️ 项目结构优化
- 核心代码移至
src/目录,根目录更清爽 - 文档移至
docs/目录 - Docker 配置移至
docker/目录 - 修复所有 import 路径,保持向后兼容
- 核心代码移至
- 🔄 数据源架构升级
- 新增数据源熔断机制,单数据源连续失败自动切换
- 实时行情缓存优化,批量预取减少 API 调用
- 网络代理智能分流,国内接口自动直连
- 🤖 Discord 机器人重构为平台适配器架构
- 🌐 网络稳定性增强
- 自动检测代理配置,对国内行情接口强制直连
- 修复 EfinanceFetcher 偶发的
ProtocolError - 增加对底层网络错误的捕获和重试机制
- 📧 邮件渲染优化
- 修复邮件中表格不渲染问题 (#134)
- 优化邮件排版,更紧凑美观
- 📢 企业微信推送修复
- 修复大盘复盘推送不完整问题
- 增强消息分割逻辑,支持更多标题格式
- 增加分批发送间隔,避免限流丢失
- 👷 CI/CD 修复
- 修复 GitHub Actions 中路径引用的错误
2.0.0 - 2026-01-24
- 🇺🇸 美股分析支持
- 支持美股代码直接输入(如
AAPL,TSLA) - 使用 YFinance 作为美股数据源
- 支持美股代码直接输入(如
- 🤖 机器人命令交互 (PR #113)
- 钉钉机器人支持
/分析 股票代码命令触发分析 - 支持 Stream 长连接模式
- 支持选择精简报告或完整报告
- 钉钉机器人支持
- 🎮 Discord 推送支持 (PR #124)
- 支持 Discord Webhook 推送
- 添加 Discord 环境变量到工作流
- 🐳 修复 WebUI 在 Docker 中绑定 0.0.0.0 (fixed #118)
- 🔔 修复飞书长连接通知问题
- 🐛 修复
analysis_delay未定义错误 - 🔧 启动时 config.py 检测通知渠道,修复已配置自定义渠道情况下仍然提示未配置问题
- 🔧 优化 Tushare 优先级判断逻辑,提升封装性
- 🔧 修复 Tushare 优先级提升后仍排在 Efinance 之后的问题
- ⚙️ 配置 TUSHARE_TOKEN 时自动提升 Tushare 数据源优先级
- ⚙️ 实现 4 个用户反馈 issue (#112, #128, #38, #119)
1.6.0 - 2026-01-19
- 🖥️ WebUI 管理界面及 API 支持(PR #72)
- 全新 Web 架构:分层设计(Server/Router/Handler/Service)
- 核心 API:支持
/analysis(触发分析),/tasks(查询进度),/health(健康检查) - 交互界面:支持页面直接输入代码并触发分析,实时展示进度
- 运行模式:新增
--webui-only模式,仅启动 Web 服务 - 解决了 #70 的核心需求(提供触发分析的接口)
- ⚙️ GitHub Actions 配置灵活性增强(#79)
- 支持从 Repository Variables 读取非敏感配置(如 STOCK_LIST, GEMINI_MODEL)
- 保持对 Secrets 的向下兼容
- 🐛 修复企业微信/飞书报告截断问题(#73)
- 移除 notification.py 中不必要的长度硬截断逻辑
- 依赖底层自动分片机制处理长消息
- 🐛 修复 GitHub Workflow 环境变量缺失(#80)
- 修复
CUSTOM_WEBHOOK_BEARER_TOKEN未正确传递到 Runner 的问题
- 修复
1.5.0 - 2026-01-17
- 📲 单股推送模式(#55)
- 每分析完一只股票立即推送,不用等全部分析完
- 命令行参数:
--single-notify - 环境变量:
SINGLE_STOCK_NOTIFY=true
- 🔐 自定义 Webhook Bearer Token 认证(#51)
- 支持需要 Token 认证的 Webhook 端点
- 环境变量:
CUSTOM_WEBHOOK_BEARER_TOKEN
1.4.0 - 2026-01-17
- 📱 Pushover 推送支持(PR #26)
- 支持 iOS/Android 跨平台推送
- 通过
PUSHOVER_USER_KEY和PUSHOVER_API_TOKEN配置
- 🔍 博查搜索 API 集成(PR #27)
- 中文搜索优化,支持 AI 摘要
- 通过
BOCHA_API_KEYS配置
- 📊 Efinance 数据源支持(PR #59)
- 新增 efinance 作为数据源选项
- 🇭🇰 港股支持(PR #17)
- 支持 5 位代码或 HK 前缀(如
hk00700、hk1810)
- 支持 5 位代码或 HK 前缀(如
- 🔧 飞书 Markdown 渲染优化(PR #34)
- 使用交互卡片和格式化器修复渲染问题
- ♻️ 股票列表热重载(PR #42 修复)
- 分析前自动重载
STOCK_LIST配置
- 分析前自动重载
- 🐛 钉钉 Webhook 20KB 限制处理
- 长消息自动分块发送,避免被截断
- 🔄 AkShare API 重试机制增强
- 添加失败缓存,避免重复请求失败接口
- 📝 README 精简优化
- 高级配置移至
docs/full-guide.md
- 高级配置移至
1.3.0 - 2026-01-12
- 🔗 自定义 Webhook 支持
- 支持任意 POST JSON 的 Webhook 端点
- 自动识别钉钉、Discord、Slack、Bark 等常见服务格式
- 支持配置多个 Webhook(逗号分隔)
- 通过
CUSTOM_WEBHOOK_URLS环境变量配置
- 📝 企业微信长消息分批发送
- 解决自选股过多时内容超过 4096 字符限制导致推送失败的问题
- 智能按股票分析块分割,每批添加分页标记(如 1/3, 2/3)
- 批次间隔 1 秒,避免触发频率限制
1.2.0 - 2026-01-11
- 📢 多渠道推送支持
- 企业微信 Webhook
- 飞书 Webhook(新增)
- 邮件 SMTP(新增)
- 自动识别渠道类型,配置更简单
- 统一使用
NOTIFICATION_URL配置,兼容旧的WECHAT_WEBHOOK_URL - 邮件支持 Markdown 转 HTML 渲染
1.1.0 - 2026-01-11
- 🤖 OpenAI 兼容 API 支持
- 支持 DeepSeek、通义千问、Moonshot、智谱 GLM 等
- Gemini 和 OpenAI 格式二选一
- 自动降级重试机制
1.0.0 - 2026-01-10
- 🎯 AI 决策仪表盘分析
- 一句话核心结论
- 精确买入/止损/目标点位
- 检查清单(✅
⚠️ ❌) - 分持仓建议(空仓者 vs 持仓者)
- 📊 大盘复盘功能
- 主要指数行情
- 涨跌统计
- 板块涨跌榜
- AI 生成复盘报告
- 🔍 多数据源支持
- AkShare(主数据源,免费)
- Tushare Pro
- Baostock
- YFinance
- 📰 新闻搜索服务
- Tavily API
- SerpAPI
- 💬 企业微信机器人推送
- ⏰ 定时任务调度
- 🐳 Docker 部署支持
- 🚀 GitHub Actions 零成本部署
- Gemini AI 模型(gemini-3-flash-preview)
- 429 限流自动重试 + 模型切换
- 请求间延时防封禁
- 多 API Key 负载均衡
- SQLite 本地数据存储