v3.20.0
版本发布时间: 2026-06-03 22:48:26
ZhuLinsen/daily_stock_analysis最新发布版本:v3.21.1(2026-06-08 07:46:50)
发布亮点
- feat: 新增 AlphaSift 选股入口、自动安装与稳定适配层,支持 Web 策略执行、LLM 重排展示和默认关闭的可控启用。
- feat: 完善个股历史、自选队列、市场阶段与 AnalysisContextPack 可见性,增强 Web 报告和 API 的结构化上下文能力。
- feat: MiniMax 默认模型升级到
MiniMax-M3,并补齐相关价格、预设和测试覆盖。 - fix: 修复健康检查、Windows 桌面更新与首次运行编码、ETF 日线 secid、LLM base_url 校验和 Agent 日线上下文误判等稳定性问题。
新功能
- 新增默认关闭的 AlphaSift 选股页签,通过
ALPHASIFT_ENABLED开启后经由稳定适配层读取策略并执行选股。 - Web 首页左侧栏改为个股栏,按股票去重展示,大盘复盘置顶,点击个股加载最新报告,支持按代码变体(.SZ/.SH/.SS)归一化去重合并。保留全选、批量删除和删除确认入口;新增按股票代码批量删除 API
DELETE /api/v1/history/by-code/{stock_code}。 - 报告详情右侧栏新增自选操作入口,支持查看当前股票是否在自选队列、一键加入或移除;大盘复盘报告不显示该操作。
- 问股页面输入区上方新增自选操作按钮,用户发送包含股票代码的消息后自动显示加入自选/从自选删除入口。
- Web 报告页新增同股历史趋势抽屉入口,历史列表摘要补充趋势、摘要、模型和分析时行情字段,支持按当前股票查看历史分析并加载更多。
- AnalysisContextPack P4 低敏 overview 接入历史详情、同步分析响应、completed 任务状态和 Web 报告页,展示数据块状态、来源、缺失原因与降级摘要。
- #1386 P5 为个股分析报告新增
dashboard.phase_decision盘中决策护栏,并在保存历史前按市场阶段与数据质量限制高置信盘中买卖结论。 - #1386 P4a 新增
analysis_phase=auto|premarket|intraday|postmarketAPI 参数,并在异步任务 accepted、内存 status、list、SSE 与分析 pipeline 中透传请求阶段。 - #1386 P4b Web 报告页新增最终市场阶段标签,任务面板展示请求阶段,并复用 AnalysisContextPack 低敏数据质量摘要。
- MiniMax 渠道模型列表升级:新增
MiniMax-M3并作为默认,按官方 OpenAI-compatible 文档支持 1M 输入上下文(项目保守注册为<=512K价格档:context_window 512K、max_tokens128K,对应 $0.6/M 输入、$2.4/M 输出,>512K 输入价格档未建模),保留MiniMax-M2.7与MiniMax-M2.7-highspeed,并保留MiniMax-M2.5legacy 价格条目以兼容现有用户配置的成本估算。Web 设置页 MiniMax 预设模型与价格按 M3 刷新。 - 新增 AnalysisContextPack P1 内部契约与脱敏序列化测试。
- 市场阶段低敏摘要接入历史详情、同步分析响应和 completed 任务状态的 report metadata。
改进
- 首次运行配置校验补充缺失 AI Key、空 STOCK_LIST、Telegram/邮件成对字段和 Webhook URL 前缀诊断。
- AlphaSift 选股入口在 Web 侧边栏中移动到“问股”下方,贴近 Agent/研究辅助工作流。
- Docker 镜像构建阶段预置默认 AlphaSift 适配层,与桌面发布包一样避免运行期额外安装。
- AlphaSift 选股改为依赖
alphasift.dsa_adapter的稳定接口,Web 策略列表由 AlphaSift 动态提供,不再在前端硬编码。 - AlphaSift 选股页补充 Run ID、快照数、过滤后数量、因子和风险详情,展开候选时展示真实明细,并暂时仅开放当前支持的 A 股市场。
- Web 设置页新增 AlphaSift 选股开关卡片,可直接开启或关闭选股页签。
- 开启 AlphaSift 选股时先切换
ALPHASIFT_ENABLED并检查适配层可用性,缺失时自动调用受控安装接口,不再要求用户额外点击安装。 - AlphaSift 已开启但适配层缺失时,策略列表和选股接口会串行化自动安装锁定来源,并强制重装以覆盖旧版
alphasift包。 - AlphaSift 选股页合并重复的快照源 fallback 提示,并保留 AlphaSift 自身的 Tushare 优先快照源逻辑。
- AlphaSift 选股页在 LLM 重排降级时展示 warning/source error/parse error,并避免把本地因子评分误显示为 LLM 判断。
- Web 设置页不再把
ALPHASIFT_ENABLED作为普通数据源配置项重复展示,该值仅作为“开启选股”按钮背后的持久化状态。 - AlphaSift 关闭时隐藏 Web 左侧“选股”导航入口,避免误导未开启用户。
- 补充 AlphaSift 选股自定义策略显示逻辑,避免未匹配预设项时误显示“均衡多因子”。
- 新增 GET /api/v1/history/stocks 端点按 code 分组返回不重复个股列表;新增 GET /api/v1/stocks/watchlist、POST /api/v1/stocks/watchlist/add、POST /api/v1/stocks/watchlist/remove 端点支持自选队列增删查。STOCK_LIST 读写保持原样,不做自动归一化;add/remove 时归一化比较判断等价代码变体。
- 新增 useWatchlist hook 统一管理自选队列前端状态,复用 SystemConfigService 的 STOCK_LIST 配置项实现持久化。
- AnalysisContextPack P5 增加数据质量评分、
fetch_failed状态、Prompt 数据限制区块和 Web 低敏质量展示。 - #1386 P2-full 在 AnalysisContextPack Prompt 数据限制中追加市场阶段与降级数据的交叉约束,并修正中文分析 Prompt 的阶段化行情标签。
- 通知报告默认发送路径恢复既有渠道兼容转换与分片逻辑,新增 renderer 能力仅保留为未来扩展基础。
- 关联板块缺少类型数据时改为单行展示板块名称,避免生成整列
N/A的板块表格。 - 优化 Web 报告详情页信息层级,将输入数据块和运行诊断下移为主体内容后的折叠辅助信息。
- 盘中分析补齐实时行情获取时间、provider 时间、stale、fallback 与 partial/estimated 标记,供 AnalysisContextPack 映射输入数据限制。
修复
- Agent 分析路径生成 AnalysisContextPack overview 前复用已落库日线分析上下文,避免日线已抓取成功仍显示
daily_bars_missing。 - 注册 /api/v1/health 路由并加入认证豁免,修复该路径返回 404 以及开启 ADMIN_AUTH_ENABLED 后健康探针收到 401 的问题。
- Windows 本地首次运行环境检查兼容非 UTF-8 控制台输出,并将
requirements.txt注释改为 ASCII 以降低默认代码页下的依赖安装失败概率。 - AlphaSift DSA 适配层默认开启 LLM 重排,后端显式请求
use_llm=True,选股页展示 LLM 分数、判断、覆盖率和关注项。 - AlphaSift 嵌入 DSA 时复用 DSA 已解析的 LLM 模型、渠道和密钥配置,避免 Web 已配置 LLM 但选股 LLM 重排仍因缺少 provider key 降级。
- AlphaSift 选股复用 DSA LLM 路由时过滤未声明的托管 provider 备选模型,并把已声明渠道模型补入回退链,避免残留 Gemini fallback 覆盖可用的 DSA 渠道。
- AlphaSift 默认安装来源改为锁定 commit 的受信任 GitHub 地址;桌面模式自动安装不要求管理员会话,非桌面部署要求管理员认证会话,并继续限制安装来源。
- 修复 Web 开启 AlphaSift 时先安装后写配置导致默认关闭状态无法开启的问题。
- AlphaSift 状态与安装接口不再返回
install_spec明文,仅返回install_spec_is_default等非敏感状态字段。 - AlphaSift 状态探测区分可选依赖缺失与非预期异常,异常场景记录 warning 并返回非敏感诊断信息。
- 调整 AlphaSift 筛选调用兼容:
screen以max_results为主并支持历史max_output关键词,同时允许策略透传以对齐前端手动策略参数。 - AlphaSift Web 选股请求使用独立长超时,避免开启 LLM 重排后被通用 30 秒 API 超时提前中断。
- 桌面端打包阶段预置 AlphaSift 并收集适配层,避免发布包运行时再要求管理员自动安装。
- AlphaSift 自动安装仅在
status诊断为missing_module时触发(仅模块缺失场景);适配层可导入但运行时异常不再自动pip install,而是返回424并保留诊断,避免把真实运行时故障掩盖为重装。 - 收口 Web 中文界面残留英文文案与设置页 help 缺口,回测页改为中文展示,并让 Web 设置页仅展示已注册且带说明的配置项。
- Windows 桌面端自动更新静默安装时显式复用当前安装目录,避免自定义安装目录场景下卸载旧版本文件失败。
- Windows 安装器重试旧卸载器时对
_?=安装目录参数加引号,修复旧版本安装在带空格路径时返回 2 导致自动更新失败。 - Windows 桌面端自动更新传给 NSIS 的
/D=目录参数在包含空格时自动加引号,避免安装位置注册表被截断。 - 加固 LLM channel base_url 校验,避免解析差异导致 SSRF 绕过。
- 修正 efinance ETF 日线 Eastmoney secid 路由,避免沪市 ETF 被按深市 quote id 查询导致日线为空。
文档
- 明确 AlphaSift 与 LiteLLM 兼容边界:仅桥接 DSA 已声明 provider/model/base URL 为调用期注入,不对
.env做 provider/model 路由迁移;回退方式为关闭 AlphaSift 并恢复原有LITELLM_*/LLM_*配置。 - 明确 AlphaSift 仅复用 DSA 现有 LLM/LiteLLM 配置语义,不新增
LITELLM_MODEL、OPENAI_MODEL、OPENAI_BASE_URL、LLM_TIMEOUT_SEC等模型语义迁移;失败提示与回退路径统一沿用既有系统配置链路,仅影响 AlphaSift 选股能力本身。 - 明确 AlphaSift 自动安装来源锁定、
missing_module与运行时异常行为边界,以及 LLM/provider/base URL 与自定义通道回退路径,便于问题溯源与回滚到原有 LLM 配置。 - 明确同股历史趋势新增模型字段为历史快照展示元数据,不影响运行时 LLM Provider/Model/Base URL 路由与配置迁移清理;回退方式为按常规发布回滚本变更。
- 明确 #1311 的兼容性边界:渲染层仅消费分析结果
model_used展示字段,未改动wechat/slack/feishu/telegramsender 发送链路,不触发 provider/model/base_url 兼容迁移。 - 明确 AlphaSift 锁定 commit 的
alphasift.dsa_adapter契约依据,以及当前 DSA API/Web 调用结构的兼容边界。 - 明确 Settings 页面对 LLM 配置仅做展示分组与字段归并,不改写或触发 LLM 迁移/回退路径;兼容现有
LLM配置保存与回退语义。 - 新增 AnalysisContextPack P0 上下文盘点。
- 补齐告警中心 P8 文档与配置收口说明,明确 legacy JSON、高级规则、Web/API、Docker、GitHub Actions 与 Desktop 边界。
测试
- 同步更新
llmProviderTemplates、LiteLLM fallback pricing 与 MiniMax 预设相关单测,断言新默认模型。 - 补充 ETF 日线数据源路由、输入变体、fallback 与 MA 字段回归覆盖。
chore
- 新增通知报告渠道能力画像、PreparedMessage 与结构感知 Markdown 分片基础设施,为 #1311 全渠道渲染适配打底。
- 预置企业微信、飞书、Telegram、钉钉、Slack 平台 renderer 元数据,暂不改变默认推送报告入口和可见版式。
What's Changed
🤖 AI & Analysis
- fix: 修复 Windows 桌面端自动更新安装路径 by @ZhuLinsen in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1519
- fix: 修正 efinance ETF 日线 secid 路由 by @massif-01 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1535
- feat: 补充 #1386 P2-full 阶段与数据质量 Prompt 约束 by @massif-01 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1546
- feat: 盘中决策护栏与 phase_decision 质量校验 P5 by @massif-01 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1563
📡 Data Sources
- feat: 补齐盘中实时行情质量元数据 by @massif-01 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1538
🔔 Notifications
- fix: improve notification report rendering by @ZhuLinsen in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1531
⚙️ Configuration
- fix: 收口 Web 中文界面与设置页 help 链路 by @massif-01 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1514
- fix: SSRF bypass in daily_stock_analysis (#1500) by @ZhuLinsen in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1511
- feat: add lightweight AlphaSift screening integration by @ZhuLinsen in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1443
- feat: 新增个股栏与自选队列操作 by @zbl-96 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1540
- feat: improve first-run configuration validation by @123kaze in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1558
- feat: upgrade MiniMax default model to M3 by @octo-patch in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1574
🧪 Testing
- feat: 暴露 AnalysisContextPack P4 低敏 overview (Refs #1389) by @massif-01 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1515
- test: mock market light alert notifier by @ZhuLinsen in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1527
- feat: add same-stock history trend drawer by @ZhuLinsen in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1524
- feat: 接入市场阶段低敏 summary 到 report metadata P1b by @massif-01 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1532
- feat: 优化 Web 报告页信息层级 by @massif-01 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1533
- feat: 完成 #1389 AnalysisContextPack P5 数据质量评分 by @massif-01 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1539
- fix: AlphaSift 可用性检测不应静默吞掉非预期异常 (#1543) by @ZhuLinsen in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1544
- feat: 新增 analysis_phase API 入口透传 P4a by @massif-01 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1573
- fix: register health router in v1 API so /api/v1/health returns 200 by @knight0940 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1572
- fix: 自动安装 AlphaSift 并收敛选股开关 by @ZhuLinsen in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1557
- fix: 修复 Agent 日线状态误报缺失 by @ZhuLinsen in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1578
- fix: improve Windows first-run encoding compatibility by @ZhuLinsen in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1583
- feat: Web 展示市场阶段标签(#1386 P4b) by @massif-01 in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1582
New Contributors
- @123kaze made their first contribution in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1558
- @knight0940 made their first contribution in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1572
- @octo-patch made their first contribution in https://github.com/ZhuLinsen/daily_stock_analysis/pull/1574
Full Changelog: https://github.com/ZhuLinsen/daily_stock_analysis/compare/v3.19.0...v3.20.0
1、 daily-stock-analysis-macos-arm64-v3.20.0.dmg 207.97MB
2、 daily-stock-analysis-macos-x64-v3.20.0.dmg 218.56MB
3、 daily-stock-analysis-windows-installer-v3.20.0.exe 181.19MB
4、 daily-stock-analysis-windows-installer-v3.20.0.exe.blockmap 193.03KB
5、 daily-stock-analysis-windows-noinstall-v3.20.0.zip 233.52MB
6、 latest.yml 398B