75 Commits
Author SHA1 Message Date
shy3130 7a7252a744 chore(release): 发布 v0.3.26 并同步版本号
Signed-off-by: shy3130 <shy3130@qq.com>
2026-11-02 00:27:50 +08:00
shy3130 e798c49571 chore(release): 发布 v0.3.25 并同步版本号
同步前后端版本、运行时回退版本和锁文件。版本、桌面启动、打包及升级保护 41 项测试与前端构建通过。

Signed-off-by: shy3130 <shy3130@qq.com>
2026-11-01 11:00:32 +08:00
shy3130 762e04ab88 feat(data-sources): 支持外部插件安装与版本管理
Signed-off-by: shy3130 <shy3130@qq.com>
2026-11-01 10:47:19 +08:00
shy3130 c54efda2e1 chore(release): 发布 v0.3.24 并同步前后端版本
- 前端 package.json、后端 pyproject/锁文件、VERSION 与运行时回退版本统一为 0.3.24
- 本版包含资源传输与策略池优化、日K自检精准修补、Codex 助手工具调用
- 同时包含桌面启动、Fuyao 缓存、回测成交与缓存一致性、龙虎榜空代码及旧挖掘锁修复

验证:版本/桌面启动/打包/升级保护 33 项测试通过;前端构建、uv 冻结锁文件与版本一致性校验通过。

Signed-off-by: shy3130 <shy3130@qq.com>
2026-10-30 21:31:44 +08:00
shy3130 02712af01b chore(release): v0.3.23 版本号同步
- 修复 #514 漏接 failed_out 参数导致「数据修正/自检修复」路径同步必炸 (b590e5ad)
- 迁移 skip 分支补捞 preferences.json, 防升级后引导重弹 (5ff6e159)
- 数据源偏好回退 tickflow 留痕告警 (3c0ad017)
- 回测页 busy 期统计为 null 不再误判缺数据 (9659237a)
- 数据页 busy 降级 storage=null 崩溃修复 (da4ed647)
- 模拟盘台账补品种名称 (f3ff1d5e); 回测强制重跑按钮 (939149e8)
- 消除 "获取数据" 误弹 (dd589733/e975f782 已随 0.3.21)

Signed-off-by: shy3130 <shy3130@qq.com>
2026-10-29 18:52:20 +08:00
shy3130 9cd8792c9e chore(release): v0.3.22 版本号同步
Signed-off-by: shy3130 <shy3130@qq.com>
2026-10-29 11:10:34 +08:00
shy3130 e6fc60078f chore(release): v0.3.21 版本号同步
Signed-off-by: shy3130 <shy3130@qq.com>
2026-10-29 10:39:58 +08:00
shy3130 a17742c97d chore(release): v0.3.20 版本号同步 (package.json 单源派生)
Signed-off-by: shy3130 <shy3130@qq.com>
2026-10-28 13:40:30 +08:00
shy3130 568a0d69ef chore(release): v0.3.19 版本号同步 (package.json 单源派生) 2026-10-27 18:45:27 +08:00
shy3130 b1a4dc6e38 chore: v0.3.17
Signed-off-by: shy3130 <shy3130@qq.com>
2026-10-26 09:59:09 +08:00
shy3130 e01fe96241 chore: v0.3.16
本次发布包含自动策略实验室 (feat(lab): 守护复验 + 稳健选冠/权重
精调 + 组合建议 + 闭环编排), 让挖掘发布的策略在真实新数据上被
持续验证 (健康/观察/退役), 冠军按稳健分选出并做权重精调, 健康
冠军间低相关可一键生成组合策略, 实验室战报聚合守护/挖掘/名额。

版本号同源: VERSION / frontend/package.json / backend/pyproject.toml /
backend/app/__init__.py 的 _FALLBACK_VERSION / release.yml 的 inputs
默认值; uv.lock 仅改项目自身条目。

Signed-off-by: shy3130 <shy3130@qq.com>
2026-10-25 23:43:45 +08:00
shy3130 5f70eb9ef2 chore: v0.3.15
本次发布包含三组修复:

- fix(ext-data): 资金流等当日快照接口不再被日期一致性校验误拒写;
  schema 端点恢复返回真实列类型 (DuckDB 1.5 的 DESCRIBE 列名变更);
  拉取配置的分页参数不再保存后静默丢失。
- fix(settings): 系统设置的通知弹窗/声效/语音播报/外链模板/界面缩放
  改后端持久化, 修复桌面版换端口 (origin 变化) 后配置丢失。
- fix(minute): 残缺分钟分区不再被当作无数据丢弃; 新增分钟缺口体检
  面板, 让「同步完成≠数据完整」可见。

同时引入 DCO 贡献来源声明与再许可授权条款, PR 须逐提交带
Signed-off-by (CI 由 .github/workflows/dco.yml 检查)。

版本号同源 5 处: VERSION / frontend/package.json / backend/pyproject.toml /
backend/app/__init__.py 的 _FALLBACK_VERSION / release.yml 的 inputs 默认值;
uv.lock 仅改项目自身条目 (上次升版误改 pytesseract 的问题不再复现)。

Signed-off-by: shy3130 <shy3130@qq.com>
2026-10-24 22:56:37 +08:00
shy3130 a747d1f615 chore: v0.3.14 2026-10-23 11:37:41 +08:00
shy3130 b0022a088b chore: v0.3.13 2026-10-22 22:24:11 +08:00
shy3130 463729ea5e chore: v0.3.12 2026-10-21 21:07:35 +08:00
shy3130 59e2772f51 chore: v0.3.11 2026-10-21 09:07:40 +08:00
shy3130 5d44b2af23 chore: v0.3.10 2026-10-20 16:22:39 +08:00
shy3130 a85edf21c2 chore: v0.3.9 2026-10-19 18:12:27 +08:00
shy3130 8f9251c77f chore: v0.3.8 2026-10-16 18:26:43 +08:00
shy3130 ec8307eb3b chore: v0.3.7 2026-10-14 15:11:55 +08:00
shy3130 ecb49cbaca release: v0.3.6 — 核心+扩展架构完善版
合并 0.3.6 分支全部内容 (36 提交, 详细历史见 0.3.6 分支):

■ 数据与插件
- TdxQuant 数据源: 通达信量化接入 (实时/五档/日K/复权/分钟), tdxaidata 收进默认依赖
- 扩展表两级拉取配方: 概念/行业出厂即带完整可拉配置, 可作自定义接入参考示例
- 能力门禁日志带生效源; 标的池解析只走 instruments 维表

■ 页面扩展化
- 11 个官方页面全量迁移为单文件扩展 (custom/*/extension.tsx), 删目录即卸载
- 运行时页面包系统: 打包产物上传即挂载, 免重建宿主
- 新装用户扩展页默认隐藏, 老用户升级菜单无感

■ AI
- Responses 协议接入; 会话历史与长任务跨设备同步 (服务端注册表)
- 助手头部快捷入口 + 悬浮球拖拽 zoom 坐标系修复 + 系统设置开关

■ 界面
- 设置「关于」子菜单: 版权/更新/打赏 + 开源许可弹窗与合规声明双保险
- 侧栏两态收起、数据/AI 助手快捷行 (同步呼吸光晕)、核心/扩展 ext 标记
- 界面缩放默认 90%; 菜单设置徽标 Swiss 化; 策略池「叠加」分组
- 情绪评分口径可配置; 财务画像 5 张子表手动拉取

■ 文档与其他
- README 重构「核心+扩展」主线 + 架构图重画; 开放端点数核实为 65
- 版本号 bump 0.3.6; tdx 物化库测试夹具补 macOS dylib
2026-10-13 13:40:17 +08:00
shy3130 918c7ade7e refactor(core): 策略与信号全面去内置化, 转为用户自定义定义
- 策略: 引擎只加载 data/strategies/{custom,ai,composite} 与研究模板目录,
  原 25 个内置策略一次性迁移为用户自定义文件(ID 不变, 引用零迁移);
  研究模板移至 app/strategy/research, 打包 spec 同步; 新装环境策略库为空
- 信号: 管线不再硬编码任何信号表达式; 涨跌停判定价成为运行时列
  limit_up_price/limit_down_price(生效价∓0.005 容差), 20 个信号转为
  data/user_data/custom_signals 定义(显式 column 沿用 signal_* 原列名);
  依赖解析/注入顺序/当日路径 prev-join 全部定义驱动; 语义统一为历史路径
  口径(顺带修正当日路径 BOLL 比较符与翘板/炸板空值两处既有偏差)
- 前端: 信号库单列表(全部可编辑), SignalPicker/监控选项/信号标签全走
  定义接口; 回测页新增免责声明(模拟性质/数据源准确性不作保证/不构成
  投资建议)
- 测试: 25 个策略夹具与 20 个信号种子入库 tests/fixtures, 受影响测试
  全部自包含化(不依赖运行目录用户数据); 77 万行 MA 死叉新旧表达式对拍
  逐行一致; 回测实跑 45 笔卖点信号出场验证矩阵链路
- 同批包含工作区既有进度: 策略结果 ext 列同日投影修复(含测试)、数据源插件、fuyao/auth/api_gateway/data_integrity 调整、README 信号库
  描述与 strategy.md 导入路径补充

验证: 后端 2592 passed(空数据目录 CI 模拟 2588 passed, 4 例为模拟环境
伪影复验排除); 前端 vitest 125 passed + tsc 0 错 + vite build 通过
2026-10-10 21:10:44 +08:00
3fd1f6f95a chore(lint): ruff 忽略中文全角标点 + 启用 BLE(移植本机 f67d9ed 的 lint 配置;⛔ 不含业务代码) (#456)
问题:
  本仓 [tool.ruff.lint] 的 select 含 "RUF" 但未忽略 RUF001/002/003,而注释/文档字符串通篇中文
  ⇒ `ruff check backend/app` 实测 **1420 条**,其中 RUF001/2/3(全角标点)占 **815 条(57.4%)**;
  另有 **271 处** `# noqa: BLE001`(禁止裸 except)因 `BLE` 未启用而**全是"无效指令"**(RUF100 293 条)
  ⇒ 「禁止裸 except」这条规则**从来没有被真正强制过**。
  ⚠️ 且本仓 CI 不跑 ruff(ci.yml 只有 `uv run pytest tests -q`)⇒ 这条门禁一直没人守。

改动(仅 backend/pyproject.toml 的 [tool.ruff.lint] 一段;⛔ 无任何业务代码改动):
  - ignore 增加 RUF001/002/003 —— 理由:全角标点是中文书写的正常形态,不是笔误
  - select 增加 BLE(flake8-blind-except)⇒ 271 处既有 noqa 立即生效
  - ⚠️ 文字与理由照抄本机 f67d9ed 的原注释,但**注释里的数字一律按本仓实测重写**
    (本机数字 1442/801/642/518/291 与本仓实测 1420/815/611/594/271 **不同**,⛔ 不照抄)
  - ⛔ 不跑 `--add-noqa` 批量承认(那会改上百个业务文件,与在途改动冲突)

验证(隔离 worktree,基于 origin/main 30fcade;ruff 0.15.14):
  - **P2/P3 逐规则对账 1420 → 594(净 −826)**:
      BLE001 0→236(+236) · RUF001 189→0(−189) · RUF002 403→0(−403) · RUF003 223→0(−223)
      · RUF100 293→46(−247)
      ⭐ **出现正增量的规则只有 BLE001**,其余规则全部不变或减少(⛔ 不是"看总数下降就算过")
  - **P5 配置语义(可 FAIL 的差集断言)**:用 tomllib 解析 `origin/main` 版与本版 ⇒
      line-length/target-version 逐字不变;select 差集**恰为** {BLE}、ignore 差集**恰为**
      {RUF001,RUF002,RUF003},两侧**无任何删除**。核验脚本:
      research/oneshot/_verify_ruff_config_port_20261005.py(判别力 = 差集不等即 FAIL)
  - P4 改动面:`git diff --stat` = 1 file;`git diff --check` rc=0
  - P6 辅助:`pytest tests/test_regime_builder.py -q` ⇒ **22 passed**(配置改动不影响测试)
  - ⚠️ 本件**没有回归测试可守**(纯配置改动):靠上面的数值/差集对账,⛔ 不假装有单测

影响与取舍(⛔ 不粉饰):
  `ruff check backend/app` 从 1420 条降到 594 条 ⇒ 噪声大减、门禁**变得可执行**;
  但启用 BLE 会**显形 236 条**既有「尚未表态的 `except Exception`」(本机对应 166 条)——
  这是**暴露既有沉默违规**,不是本次新引入的错误;是否进一步 `--add-noqa` 批量承认,
  留给维护者决定(本提交不替上游表态)。
  ⛔ CI 无 ruff 步骤 ⇒ 本改动**不会打断 CI**,同样也**不会自动守住** lint。

兼容/回滚:
  纯 lint 配置,无 schema/数据/接口影响;`git revert` 即可回滚(不影响任何历史产物)。

说明:本提交在基于 origin/main(30fcade) 的隔离 worktree 内完成,本机主线工作树未被改动;
      ⛔ 未推送;⛔ 与 port/regime-isfinite-guard(_score 防护)**是两个独立分支/提交**。

Co-authored-by: JackChan83 <JackChan83@users.noreply.github.com>
2026-10-08 13:08:52 +08:00
shy3130 4ba0c9bcc0 修复部分已知Bug 2026-10-06 12:40:16 +08:00
shy3130 7f628816b9 feat(open-api): 0.3.2 开放能力版 — API Token 网关 + Tier A 契约 + 版本清单
- Token 域模块: tsp_ 前缀 + SHA-256 哈希存储 (0600), 明文仅创建时返回一次,
  吊销立即生效, last_used_at 节流落盘 (≥60s)
- Bearer 网关中间件 (与密码会话并行): 五档 scope 校验 (read:market/read:ext/
  read:analysis/run:backtest/paper:trade) + 滑动窗口限流 (默认 120/min,
  OPEN_API_RATE_LIMIT_PER_MIN 可调) + X-RateLimit 响应头; 管理接口永不对 Token 开放
- GET /api/openapi.json?tier=a 契约视图: 按网关规则表过滤 OpenAPI 规范 (58 路径),
  规则表即唯一契约源
- 设置 → 开放接口: Token 管理 UI (创建表单/scope 说明/明文一次性展示/吊销)
- 设置 → 系统设置 检查更新: 静态链接升级为真实版本对比 (GitHub API 优先,
  latest.json 清单兜底), 发现新版本给下载入口
- release.yml 新增 manifest job: Release 附 latest.json (版本/三平台下载地址/sha256),
  支持分批发布按实际资产生成
- 版本 0.3.1 → 0.3.2 (后端 __init__/pyproject + 前端 package.json)
- docs: features.md 开放接口章节; open-platform-plan.md V1/V2 标记已实现
- 测试: test_api_gateway.py 8 项 (域模块/scope 映射/E2E 401-403-200 矩阵/
  429+Retry-After/吊销即拒), 全量 2394 通过
2026-09-25 22:38:58 +08:00
shy3130 4743030425 chore: bump version to 0.3.1 2026-09-24 11:53:37 +08:00
shy3130 b05bba4237 feat(assistant): AI 对话助手 — 完全解耦扩展模块(流式对话 + 18 个只读工具)
后端 app/custom/assistant/ 与前端 src/custom/assistant/ 各自独立, 零核心文件修改,
删除目录即整体卸载(分别由扩展系统启动期自动发现 / 构建期自动挂载)。

- 流式: 模块内自建 SSE + tools 有界循环(核心 generate_ai_text_with_tools 为非流式),
  文本逐 token 推送; 工具事件经 asyncio.Queue 外推为 NDJSON 事件流, 含心跳保活与断连取消
- 工具: 14 个页面查询工具(个股行情/日线/关键价位/财务五表/自选/持仓提醒/信号库/看板总览/
  指数/板块轮动/市场环境/异动/执行策略/因子排名) + 核心 4 个(因子/策略/数据能力/回测);
  全部只读且有界, 大表先过滤再取行, 未知工具名回退核心目录
- 入口: 可拖动悬浮球(位置记忆) / 侧栏 AI 徽标旁入口(DOM 锚定, 无槽位改动) / ⌘K 全局快捷键
- 面板: 页面右缘滑入的非模态面板, 默认 720px, 左缘拖拽调宽并记忆, 会话历史本地持久化
- 合规: 每条回答固定附风险提示与数据口径提示; 无 Key 或不支持工具调用(Codex CLI)时 fail-closed
- 版本: 0.2.4 → 0.3.0(前后端 pyproject/package.json/app.__version__ + uv.lock)
- 文档: README 增补 AI 对话助手章节、扩展机制说明、架构图节点与路线图条目

验证: 受影响模块 pytest tests/test_custom_assistant.py tests/test_extensions.py 21 passed;
全量后端套件 2174 passed(1 例 mining 用例在整套并发下偶发失败, 单跑通过, 与本次改动无关);
ruff 改动文件无新增告警; pnpm build 通过; 浏览器实测逐字流式渲染、工具足迹卡、拖拽调宽与
悬浮球位置记忆、版本显示 v0.3.0
2026-09-18 17:47:49 +08:00
shy3130 89847ab860 chore(release): 版本号统一升级至 v0.2.4 2026-09-13 15:59:24 +08:00
shy3130 982d7bef88 perf(polars): 并发闸+写锁收缩+看门狗三层防死锁, 升级 polars 1.44
线上曾出现并发 LazyFrame.collect 触发 polars streaming 执行器死锁,
叠加 _write_lock 区间内做重活, 放大为全站请求冻结。本次按触发缩小、
爆炸半径收缩、自动恢复三层布防:

- polars_guard: BoundedSemaphore 并发闸 (总闸 4 + 后台车道 2, 后台
  先拿子闸再拿总闸防死锁); repository 18 处 collect 按交互/后台分级接入
- repository 写锁区间收缩: 分区合并移出锁外, 锁内 (mtime_ns,size)
  指纹校验 + 3 次乐观重试, 失败回退锁内合并; 5 处 _write_lock 重构
- watchdog: 周期探测 collect 闸与全局写锁, 连续 2 次失败退出交由
  supervisor 拉起 (可配置, 默认开)
- polars >=1.44,<1.45 (1.44.1); 附并发压测脚本
  scripts/stress_polars_concurrency.py 供复现验证

另: config 新增 polars_collect_permits / watchdog_* /
strategy_run_all_workers / strategy_run_all_first_return_s 旋钮
(后两者供后续 run_all 优化提交使用, 默认保持旧行为基准)。
2026-09-07 15:25:41 +08:00
shy3130 a4fda9ed36 feat(platform): 因子平台与因子↔策略双向联动 v0.2.3
- 因子平台: /factors 一级页(检验/因子库/编辑器/组合/挖掘), DSL 公式因子(25 算子点选、双语字段、我的因子模板、脏公式守卫), 版本与生命周期, 自动挖掘 L1 统计筛选
- 因子↔策略四条桥: 触发器 Zap 快建因子条件信号、因子一键生成排名策略、自定义信号 AI 提示词接入因子分组、策略回测因子归因(胜/败单入场信号日因子均值, 独立 tab, 双语因子名)
- 回测: 统计卡新增盈亏比(≥1 红/<1 绿), 蒙卡回撤合并为中位/95% 双值卡(自适应字号), 高级设置基础过滤与策略编辑器参数对齐(5 组区间)
- 信号库独立页 /signals(原设置 tab 迁出), 持仓提醒入导航; 挖掘并入因子页第 5 tab, /mining 旧链接重定向
- 研究线配套: 因子目录 61→77(评分/矩阵双内核), stats_v2(Newey-West/BH-FDR/DSR), enriched 管道与异动/报价服务配套调整
- 文档: README 导航与特性表、features.md 因子平台章节、操作说明书 9.2、factor-platform-plan 执行状态与 §5、二开文档桥接说明; 交流与支持节改版
- 版本 0.2.2 → 0.2.3; 后端全量 1625 passed(1 例环境性跳过), 前端 build 通过
2026-09-05 15:41:15 +08:00
shy3130 0d193e540a chore(release): 版本号统一升级至 v0.2.2 2026-08-30 19:43:52 +08:00
shy3130 c7f9f82c08 fix(ci): 移除 pyproject 指向仓库根的 readme 路径,修复 Docker 构建 2026-08-23 14:21:06 +08:00
shy3130 2c02f3125e feat: v0.2 UI 重构 + 自选分组侧边栏 + 扩展数据时间窗口 + 个股对话框优化
- 侧边栏美化:品牌改名/菜单 active 指示条/收起展开/底部精简
- 数据源+AI 状态卡:名称替换固定文字/档位 tag 条件显示
- 设置页重构:account 合入数据源 tab/数据源置顶/收起展开菜单
- 自选分组侧边栏:二级子菜单/分组跳转同步/清空分组
- 个股对话框:tab 移顶栏/分时关闭/放大全屏/操作按钮归位
- 扩展数据:定时拉取时间窗口(time_window_start/end)
- 版本号: 0.1.88 → 0.2.1
2026-08-10 17:53:14 +08:00
shy3130 1658204e21 chore: 版本号升至 0.1.88
统一升级 4 处版本号至 0.1.88:
- VERSION / backend/app/__init__.py / frontend/package.json: 0.1.87 → 0.1.88
- backend/pyproject.toml: 0.1.83 → 0.1.88 (原已滞后 4 个版本, 一并追上)

本版本包含:
- feat(search): 拼音首字母搜索 + 创业/科创/北交所徽标 (#151)
- fix(security): ext_columns DuckDB SQL 注入修复 (#152, closes #150)
2026-07-31 20:03:43 +08:00
shy3130 f767f840d9 feat(search): 标的搜索支持拼音首字母 + 创业/科创/北交所徽标
## 1. 拼音首字母搜索 (同花顺式)

后端 search_instruments 新增拼音匹配层, 输入 payh 可命中「平安银行」。
- 辅助函数 _name_pinyin_keys 用 lru_cache 缓存「名称→首字母串」, 命中后
  近似 dict 查找, 全市场遍历 < 1ms
- 多音字用 heteronym 笛卡尔积展开, 「重庆」同时匹配 cq/zq 两种读音;
  并加载 A 股高频地名词典 (重庆/长安/长春/长沙/长城/长江)
- 拼音分支仅在纯 ASCII 字母输入时触发, 中文/数字搜索零开销跳过,
  完全向后兼容
- 搜索分层: ① code/symbol 前缀 → ② 拼音首字母前缀 → ③ 包含匹配

新增依赖: pypinyin>=0.50 (纯 Python, 无 C 扩展)
新增测试: tests/test_instrument_search.py (15 用例覆盖拼音/多音字/兼容/边界)

## 2. 搜索结果显示板块徽标

自选/财务搜索/监控规则/回测选标的 四个搜索入口的结果项, 现在会显示
创业板(橙「创」)/科创板(青「科」)/北交所(紫「北」)彩色徽标。
- 复用项目既有的 boardTag (@/components/stock-table/primitives),
  与自选/策略/Dashboard 表格徽标样式完全统一
- 沪深主板不显示徽标 (信息量低, 保持简洁)

## 验证
- 后端全量测试 503 passed (含新增 15)
- 前端 tsc --noEmit 零错误
2026-07-31 19:38:36 +08:00
shy3130 29ef01a823 fix: restore strategy and data compatibility 2026-07-16 14:34:07 +08:00
lytem28 4cdd41e788 feat: complete matrix-native backtest engine
Unify strategy execution across backtest, screener, and monitoring; isolate backtest workloads in spawn workers; and add shared matrix caching plus valid-bar indicator acceleration.
2026-07-16 12:17:27 +08:00
ChenJunheng 466e065c27 feat(watchlist): 支持从券商自选截图批量导入
基于 Tesseract OCR 识别六位代码并校验证券主数据,前端提供导入确认弹窗;
修复批量添加后 enriched 缓存未刷新导致需手动刷新页面的问题。
2026-07-15 23:25:46 +08:00
shy3130 f1f79b68e7 release: v0.1.83 2026-07-10 12:00:49 +08:00
shy3130 9d30be7934 feat: 新增企业微信推送、个股分析页重构、价位算法优化及多处交互改进 (v0.1.82)
- 推送: 新增企业微信群机器人通道(与飞书并列), 监控告警/复盘报告多渠道分发
- 个股分析: 历史报告改为右侧常驻栏(展示全部股票报告), 进页面自动恢复上次选股
- 价位算法: 成交密集区改用换手率衰减模型(国内主流筹码分布); 缺口回补判定修正(必须完全穿越缺口)
- 回测: 回撤止盈改纯峰值口径(与 trailing_stop 一致); 佣金/印花税/滑点合并一行; 建仓口径加问号气泡说明
- 分时图: 自选列表迷你分时图加渐变填充(对齐个股对话框风格)
- 图表: 个股分析日K图右侧标签适配浅色主题; 价位标签与下方文字行双向 hover 高亮联动
2026-07-07 17:56:25 +08:00
shy3130 fdf9cde826 chore: bump to 0.1.81 2026-07-06 17:42:19 +08:00
shy3130 7b5d345910 feat: 自定义数据源扩展 + 限频集中化 (v0.1.80) 2026-07-05 22:57:46 +08:00
shy3130 051ef06682 chore: 版本号升至 0.1.70 2026-07-02 17:45:30 +08:00
shy3130 0f9ac5b4b2 feat: 定时复盘飞书推送 + SSE 实时进度
- 定时复盘支持推送到飞书(卡片消息, 完整报告), 渠道多选(飞书可选, 微信开发中)
- 推送开关独立常驻, 与定时/实时行情解耦; 手动/定时生成都可推送
- 定时复盘改流式生成, 通过 SSE(review_progress)实时推给前端, 开着页面可见边生成边显示
- 修复定时任务协程未 await 的 bug(lambda 包裹 async → 改传函数对象 + args)
- LLM 断流自动重试(最多2次), 后端归档 + 飞书推送, 异常兜底通知前端
- 复盘定时下限改为 15:00, 默认 15:10
- 版本号 0.1.66 → 0.1.67
2026-06-30 17:28:18 +08:00
shy3130 b1f655a12a chore: bump version to 0.1.66 2026-06-29 17:50:12 +08:00
shy3130 c089a49d33 chore: bump version to 0.1.65 2026-06-29 17:21:01 +08:00
shy3130 a1a0b13718 chore: bump version to 0.1.64 2026-06-28 20:11:35 +08:00
shy3130 1b8895dbc1 chore: bump version to 0.1.63 2026-06-28 18:20:57 +08:00
shy3130 4ad7362843 修复看板显示bug 2026-06-28 13:49:18 +08:00
shy3130 d27873bbfc 重新设计复盘页面并优化页面 2026-06-28 13:49:05 +08:00