Skip to content

Daily Stock Analysis

v3.20.0 Security

This release includes 1 security fix for security teams reviewing exposed deployments.

Published 12h AI Coding Tools
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 1 known CVE

Topics

a-stock ai-agent aigc llm quant quantitative-finance
+1 more
quantitative-trading

Affected surfaces

auth rce_ssrf

ReleasePort's take

Moderate signal
editorial:auto 10h

This release fixes an SSRF bypass in LLM channel base URL validation and changes the MiniMax default model to `MiniMax-M3`.

Why it matters: Severity 90 security fix eliminates a critical SSRF vulnerability; severity 70 breaking change updates MiniMax's default behavior, requiring code review for dependent logic.

Summary

AI summary

Broad release touches 改进, 修复, feat, and 🧪 Testing.

Changes in this release

Security Critical

Fixes SSRF bypass in LLM channel base_url validation.

Fixes SSRF bypass in LLM channel base_url validation.

Source: llm_adapter@2026-06-03

Confidence: high

Breaking High

Changes MiniMax default model to `MiniMax-M3`.

Changes MiniMax default model to `MiniMax-M3`.

Source: llm_adapter@2026-06-03

Confidence: high

Feature Low

Adds `analysis_phase` API parameter to propagate request phase.

Adds `analysis_phase` API parameter to propagate request phase.

Source: llm_adapter@2026-06-03

Confidence: high

Feature Low

Adds AlphaSift screening integration with toggle via `ALPHASIFT_ENABLED`.

Adds AlphaSift screening integration with toggle via `ALPHASIFT_ENABLED`.

Source: llm_adapter@2026-06-03

Confidence: high

Feature Low

Introduces individual stock column and watchlist operations in Web UI.

Introduces individual stock column and watchlist operations in Web UI.

Source: llm_adapter@2026-06-03

Confidence: high

Bugfix Medium

Registers /api/v1/health route to return 200 instead of 404.

Registers /api/v1/health route to return 200 instead of 404.

Source: llm_adapter@2026-06-03

Confidence: high

Bugfix Medium

Fixes Windows desktop first‑run encoding compatibility issues.

Fixes Windows desktop first‑run encoding compatibility issues.

Source: llm_adapter@2026-06-03

Confidence: high

Bugfix Medium

Corrects efinance ETF daily line secid routing error.

Corrects efinance ETF daily line secid routing error.

Source: llm_adapter@2026-06-03

Confidence: high

Bugfix Medium

Improves first‑run configuration validation checks.

Improves first‑run configuration validation checks.

Source: llm_adapter@2026-06-03

Confidence: high

Bugfix Medium

Fixes Agent daily‑bar status misreporting as missing.

Fixes Agent daily‑bar status misreporting as missing.

Source: llm_adapter@2026-06-03

Confidence: high

Full changelog

发布亮点

  • 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|postmarket API 参数,并在异步任务 accepted、内存 status、list、SSE 与分析 pipeline 中透传请求阶段。
  • #1386 P4b Web 报告页新增最终市场阶段标签,任务面板展示请求阶段,并复用 AnalysisContextPack 低敏数据质量摘要。
  • MiniMax 渠道模型列表升级:新增 MiniMax-M3 并作为默认,按官方 OpenAI-compatible 文档支持 1M 输入上下文(项目保守注册为 <=512K 价格档:context_window 512K、max_tokens 128K,对应 $0.6/M 输入、$2.4/M 输出,>512K 输入价格档未建模),保留 MiniMax-M2.7MiniMax-M2.7-highspeed,并保留 MiniMax-M2.5 legacy 价格条目以兼容现有用户配置的成本估算。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 筛选调用兼容:screenmax_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_MODELOPENAI_MODELOPENAI_BASE_URLLLM_TIMEOUT_SEC 等模型语义迁移;失败提示与回退路径统一沿用既有系统配置链路,仅影响 AlphaSift 选股能力本身。
  • 明确 AlphaSift 自动安装来源锁定、missing_module 与运行时异常行为边界,以及 LLM/provider/base URL 与自定义通道回退路径,便于问题溯源与回滚到原有 LLM 配置。
  • 明确同股历史趋势新增模型字段为历史快照展示元数据,不影响运行时 LLM Provider/Model/Base URL 路由与配置迁移清理;回退方式为按常规发布回滚本变更。
  • 明确 #1311 的兼容性边界:渲染层仅消费分析结果 model_used 展示字段,未改动 wechat/slack/feishu/telegram sender 发送链路,不触发 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

Security Fixes

  • Fix: mitigates SSRF vulnerability in LLM channel base_url validation (#1500)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Daily Stock Analysis

Get notified when new releases ship.

Sign up free

About Daily Stock Analysis

All releases →

Beta — feedback welcome: [email protected]