shy3130
|
6a74fa9963
|
fix(desktop): 修复 console=False 下 exe 打不开
PyInstaller windowed 启动器 (runw.exe, console=False) 不分配控制台,
sys.stdout/stderr 为 None。desktop.py / main.py 的 logging.basicConfig
默认建 StreamHandler(sys.stderr), stderr 为 None 时首次写日志调用
None.write() 抛 AttributeError, 崩在导入早期, 进程被 OS 直接终止,
try/except 都拦不住 → 用户看到「双击一闪退出、查无日志」。
修复:
1. _guard_streams() - 启动最早期把缺失的 stdout/stderr 换成丢弃写入的
_NullStream, 让 logging/reconfigure/print 全部安全落地 (windowed 标准修法)
2. _setup_logging() - 追加 FileHandler 到 data/desktop.log, console=False
下不再吞日志, 事后可查
3. _run_uvmicorn() - except Exception 捕获后端导入/运行崩溃并写 traceback,
不再静默死亡 (主线程只报「超时」却查无原因)
4. main() - except Exception 顶层兜底: 崩溃时 logger.exception + 弹原生
MessageBox 显示完整堆栈, 让用户能截图反馈
验证: console=False 包本地能正常打开 (修复前打不开)
|
2026-07-03 22:02:13 +08:00 |
|
shy3130
|
085d50a744
|
Merge fix/strategy-delete-bugs: 自定义策略删除相关 bug 修复
|
2026-07-02 22:28:16 +08:00 |
|
shy3130
|
c7ad860dba
|
fix: 修复自定义策略删除导致策略池清空及删除失败静默问题
- bug2(删除后策略全没): prune 仅在拉取成功且非空时执行,加载中/失败/空列表不碰池
根因: 删除触发 engine.reload() 重扫所有文件,任一文件 import 失败被静默跳过,
前端拿到残缺列表后 prune 把池中有效 ID 永久清除并写 localStorage
- bug1(自定义策略删不掉): handleDelete 不再静默吞错误,失败时显式提示并保持弹窗打开
- ai_save 守卫回归: 放宽前缀允许 ai_/custom_,保留 path traversal 字符白名单(安全核心未动)
修复「AI 修改 custom 策略」因 strategy_id 非 ai_ 前缀被 400 拒绝
- 引擎加载失败可见化: _load_all 收集 load_errors,/api/screener/strategies 返回,
前端 toast 提示具体失败文件,不再静默消失
- 同步补全 ai_generator _SYSTEM_PREFIX 三条铁律(与 bbc92c4 docs 一致)
|
2026-07-02 22:19:46 +08:00 |
|
shy3130
|
bbc92c45de
|
docs: 优化策略提示词,新增文件与范围铁律约束
- step1/step2/guide 均补充不可触碰项目源码、不得放入内置策略目录的铁律
- 明确 AI 生成策略只属于 data/strategies/ai/,文件名/ID 用 ai_ 前缀
- 防止 AI 生成多文件、跨文件 import 或染指 backend/app/strategy/builtin/
|
2026-07-02 21:31:50 +08:00 |
|
shy3130
|
e7615fb9e6
|
fix: 扩展数据拉取修复与连板梯队queryKey修复
|
2026-07-01 23:02:37 +08:00 |
|
shy3130
|
14070c24b3
|
fix: 切页时 onboarding 守卫整屏 logo 闪烁
后台重取 (isFetching) 期间本地已有 stale 缓存可展示, 无需整屏占位。
仅首次加载 (isLoading) 才显示占位, 消除切页 logo 闪烁。
|
2026-06-30 22:36:07 +08:00 |
|
shy3130
|
e4f0a95ca2
|
fix: 升级 Expert Key 后财务页「全部同步」无反应
启动时无 FINANCIAL 能力导致调度器 _capset 为 None, 后续在设置页更新 Key
时 app.state.capabilities 已刷新但调度器未同步, trigger() 仍报
no FINANCIAL capability 而拒绝同步。新增 update_capabilities 并在设置 API
刷新能力时同步推给调度器; 前端对 started:false 一律给出提示, 不再静默。
|
2026-06-30 22:30:52 +08:00 |
|
shy3130
|
b315e531df
|
feat: 回测页加预热期说明徽标与滑点配置
- 回测区间旁加「预热≥120天」徽标,点击弹泡说明开头无交易原因
- 佣金旁新增滑点(万分之)输入,持久化并接入回测请求
- Auth 设密码页加访问密码部署文档链接
|
2026-06-29 22:45:16 +08:00 |
|
shy3130
|
b923352ea4
|
|
2026-06-28 22:15:53 +08:00 |
|
shy3130
|
8a4690f1f2
|
fix(auth): 登录页标题改为项目名称 TickFlow Stock Panel
|
2026-06-28 21:08:55 +08:00 |
|
shy3130
|
d123fa723e
|
chore: bump version to 0.1.64
|
2026-06-28 20:11:35 +08:00 |
|
shy3130
|
69cd7af8d9
|
feat: 新增访问密码认证(首次本机设密码 + 公网防护)
- 后端: PBKDF2 密码哈希 + 会话 token(auth.json 存储, 零数据库)
- 中间件: 未设密码时本机可设/公网拒绝(防裸奔+防抢占), 已设密码后 401 拦截
- 5个 API: status/setup/login/logout/change-password, 含本机限制+登录限流
- 前端: 登录页/设密码页 + 全局 401/403 拦截跳转
- 安全: HttpOnly cookie + 5次失败锁5分钟 + 改密码清会话
|
2026-06-28 20:02:00 +08:00 |
|
shy3130
|
5585f445fc
|
chore: bump version to 0.1.63
|
2026-06-28 18:20:57 +08:00 |
|
shy3130
|
8a8cd746dc
|
feat: — 数据目录/实时监控/定时复盘/老CPU兼容
1. 桌面客户端体验优化,Polars 兼容内核 (老 CPU 兼容)
2. 自选页实时监控优化
3. 个股监控逻辑优化
4. 新增定时复盘
6. 其他: 修复 settings.py 中 HTTPException 未 import 的既有 bug
|
2026-06-28 18:08:52 +08:00 |
|
shy3130
|
b79fe60a56
|
ci(docker): 优化镜像构建工作流 + 清理未启用的版本自增脚本
在 #22 (Docker 镜像构建工作流) 基础上的三点优化:
1. CI 关闭国内镜像源(USE_CN_MIRROR=0): GitHub runner 在海外,
让构建直连官方 npm/PyPI 反而更快更稳; 本地/国内手动 docker build
仍走 Dockerfile 默认的 CN 镜像。
2. 新增 .dockerignore: 排除 .git/data/node_modules/docs/screenshots 等
非构建必需文件, 减小上下文体积、加速传输。
3. 叠加 tag 触发 + build-push-action v5→v6: 打 v* tag 时额外产出
带版本号镜像(如 :v0.1.62), 便于固定回溯。
清理:
- 删除 scripts/bump_version.py (prepare-commit-msg hook 从未实际安装,
属于死代码; 发版版本号改为手动维护, 与方案 B 一致)。
- 同步修正 backend/app/api/data.py 中对该脚本的过时引用注释。
|
2026-06-28 16:18:46 +08:00 |
|
shy3130
|
014ff15766
|
chore: 更新 uv.lock 依赖锁
|
2026-06-28 16:01:54 +08:00 |
|
shy3130
|
10ac3b393f
|
docs: README 增加「更新代码」说明, 提醒勿用破坏性 git 命令
说明整个 data/ 不纳入 git, 概念/行业改为首次启动远程拉取;
警告切勿使用 git clean -fdx / git reset --hard (会删本地数据)。
|
2026-06-28 16:01:54 +08:00 |
|
shy3130
|
94e871a48b
|
feat: 概念/行业分析页数据缺失时显示「获取数据」按钮
数据缺失时引导用户手动触发拉取, 而非静默无数据。
前端:
- analysis-shared.tsx: 新增 PresetFetchState 共享组件 (图标+提示+按钮+错误展示)
- api.ts: 新增 extDataPresetFetch(id) 封装
- ConceptAnalysis/IndustryAnalysis: 两个空状态接入 PresetFetchState,
新增 fetchMutation + needsXxxFetch 判断 (内置预设存在但无数据时显示按钮)
|
2026-06-28 16:01:46 +08:00 |
|
shy3130
|
76431b588e
|
feat: 概念/行业数据改为用户手动获取
将内置概念(ext_gn_ths)/行业(ext_hy_ths)数据源从「自动拉取」改为
「用户在页面手动点获取」, 避免启动时网络请求阻塞, 也符合用户自主控制预期。
后端:
- ext_presets.py (新增): 内置预设配方 + 结构转换 (接口 concepts/industries
数组 → 拼接成字符串) + ensure_builtin_presets(只建config不拉数据) +
fetch_preset(手动拉取, 供 API 调用)
- ext_data.py: 新增 POST /api/ext-data/presets/{config_id}/fetch 专用接口
(放在动态路由前避免被当 config_id); 走结构转换保证 schema 一致
- main.py: lifespan 改为只 ensure_builtin_presets 创建 config, 不自动拉取
安全保证: 已存在则完全跳过, 绝不覆盖用户已有数据; 行业表去掉无用的
thscode/time 列。
|
2026-06-28 16:01:39 +08:00 |
|
shy3130
|
2d4befb8a2
|
fix: data 目录脱离 git 跟踪, 修正桌面版数据落位
解决「更新后数据丢失」问题的根因: ext_data 种子文件被 git 跟踪,
push/pull 时会覆盖用户本地数据。
变更:
- .gitignore: 整个 data/ 纳入忽略, 移除 ext_data 放行规则
- git rm --cached: 移除 ext_gn_ths/ext_hy_ths 4 个种子文件跟踪 (本地保留)
- config.py: 桌面版数据目录改为 exe 同级 TickFlowStockPanel_Data/
(在 {app} 外, 覆盖安装/卸载都碰不到; 不在 C 盘, 用户可见)
- tickflow.iss: 卸载询问逻辑指向新数据目录 {app}\..\TickFlowStockPanel_Data
种子数据改由首次启动从远程接口拉取 (见后续 commit)。
|
2026-06-28 16:01:29 +08:00 |
|
shy3130
|
119c1e0f8a
|
README 添加项目定位
|
2026-06-28 14:17:14 +08:00 |
|
shy3130
|
6666e355e0
|
添加个股分析、个股分析报告、复盘截图
|
2026-06-28 13:59:13 +08:00 |
|
shy3130
|
eaaf923d7b
|
修复看板显示bug
|
2026-06-28 13:49:18 +08:00 |
|
shy3130
|
33f10c2847
|
重新设计复盘页面并优化页面
|
2026-06-28 13:49:05 +08:00 |
|
shy3130
|
5d887cd383
|
chore: 移除无意义的发布说明文件
|
2026-06-27 23:44:25 +08:00 |
|
shy3130
|
cd7a08c1ce
|
docs(release): 添加 v0.1.60 发布说明
✨ 新增
- 实时行情分档:None 仅历史日K / Free 监控自选前 5 / Starter+ 全市场
- 自选股移到顶部,调整监控优先级
- 复盘页(Beta)
- 盘后管道数据范围页面化配置
🛠 优化
- Free 自选股实时卡片高亮 + 显示代码名称
- 档位说明弹层补充权益包含关系,更新各档描述
- 实时行情入口图标改设置齿轮,None 档补注册链接
- README 同步档位边界与数据通道说明
🐛 修复
- 盘后管道 _prefs 变量作用域崩溃
- 轮询间隔滑动条请求风暴(2 秒防抖)
- 自选股实时卡片只显示代码不显示名称
|
2026-06-27 23:41:41 +08:00 |
|
shy3130
|
53ec23e5d5
|
docs: add CHANGELOG for v0.1.60
|
2026-06-27 23:35:31 +08:00 |
|
shy3130
|
320304ab62
|
Merge remote-tracking branch 'origin/main' into release/v0.1.60
# Conflicts:
# README.md
|
2026-06-27 23:33:25 +08:00 |
|
shy3130
|
8d07e99ab2
|
docs: update README for v0.1.60
|
2026-06-27 23:27:20 +08:00 |
|
shy3130
|
2acaa38a2b
|
feat: release v0.1.60
|
2026-06-27 23:23:34 +08:00 |
|
shy3130
|
a832836938
|
docs(readme): 添加 GitHub star 徽章
|
2026-06-26 23:55:12 +08:00 |
|
shy3130
|
6bfb2a218f
|
chore: bump version
|
2026-06-26 23:37:56 +08:00 |
|
shy3130
|
56bf1ff1b2
|
Merge branch 'feat/stock-analysis-levels-refactor': 个股分析价位体系重构
|
2026-06-26 23:37:42 +08:00 |
|
shy3130
|
0a24e1e601
|
chore: bump version to 0.1.51
|
2026-06-26 23:37:04 +08:00 |
|
shy3130
|
00d856191b
|
refactor(stock-analysis): 价位体系重构 — 价量支撑 + 通道拆分 + 右侧标签带
压力支撑语义归位:从 BOLL 波动通道改为 Volume Profile 成交密集区
(价+量驱动,真正的市场结构支撑/压力),原 profile 组并入 sr 组。
通道拆分:原合并的「波动通道」拆为 4 个独立开关 —— 布林带(含中轨
MA20)+ Keltner 短/中/长三档,各自显隐。
图表布局:
- 价位文字改用 line series + endLabel 显示在右侧 grid.right 预留带,
不再压在蜡烛上;预留带加宽至 144px 保证标签完整
- 标题栏改两端布局,当前价右置并加大加粗、带涨跌色
- 价位统计面板恢复至图表下方
默认开启:压力支撑 + 枢轴点 + Keltner短期。
|
2026-06-26 23:34:54 +08:00 |
|
shy3130
|
11a972a980
|
feat(financials): AI 财务分析 — 流式生成 + 全局胶囊 + 历史报告持久化
后端:
- 新增 financial_analyzer 服务(CFA 级九维分析提示词 + LLM 流式调用)
- 新增 ai_reports 持久化存储(保留前 20 条)
- 新增 /analyze 流式接口 + 报告 CRUD 接口
- 同步时间持久化到 preferences.json,重启不丢失
前端:
- 全局 AI 分析对话框(store 驱动,支持最小化/历史模式)
- 全局可拖拽任务胶囊(玻璃拟态,三态配色,60fps 拖拽)
- 历史报告列表面板(财务页底部)
- 轻量 Markdown 渲染器(表格折行/列表/引用)
- 同标的历史二次确认 + 财务菜单改名「财务分析」
同步版本号至 v0.1.45
|
2026-06-25 22:39:34 +08:00 |
|
shy3130
|
02be6dede8
|
fix(ci): PyInstaller 产物输出到 backend/dist, 与 tickflow.iss Source 路径一致
修复 Inno Setup 找不到打包产物的错误:
No files found matching ..\backend\dist\TickFlowStockPanel\*
原因: workflow 用 --distpath ../dist 输出到项目根 dist/, 但 .iss 引用的是 backend/dist/
修复: PyInstaller 用默认输出 (backend/dist), DMG/Linux 步骤路径同步调整
|
2026-06-25 00:35:13 +08:00 |
|
shy3130
|
2f02f69668
|
chore: 同步 VERSION 至 v0.1.43
|
2026-06-25 00:28:56 +08:00 |
|
shy3130
|
2d574c17e7
|
Merge feat/financials-sync-progress-and-ai-btn: 财务同步进度三态可视化 + AI分析占位按钮
|
2026-06-25 00:17:42 +08:00 |
|
shy3130
|
48946267f2
|
chore: 同步版本号
|
2026-06-25 00:17:31 +08:00 |
|
shy3130
|
388a929d0a
|
feat(financials): 同步进度三态可视化 + 点击即时反馈 + AI分析占位按钮
后端 (financial_sync.py):
- run_now 全量同步改为逐表执行, 每张完成立即更新 last_sync
(原一次性更新, 前端轮询看不到中间进度; 现在前端能逐步看到 N/4)
- 修复 sync_all 函数缩进被破坏导致的 NameError (上版引入的 bug)
前端 Financials.tsx:
- 点击同步即时反馈: useFinancialSync 加 onMutate 立即刷新 status
+ syncMut.isPending 兜底, 消除请求阻塞期间 UI 无变化
- 同步进度按本次同步算 (记录 syncStartedAt), 不再用 rows>0 判断
(修复已有数据时一开始就显示 4/4)
- 卡片三态可视化:
· 全量同步: 4 张卡片依次 等待(沙漏)→同步中(转圈)→完成(绿勾)
· 单表同步: 只有目标卡片变化, 其他卡片不受影响
- 顶部进度: 全量显示 N/4, 单表显示表名
- 每张卡片底部加最后同步时间
- 完成态用绿色对勾 (不用红色 bull), 卡片保持中性配色
StockFinancialDetail.tsx:
- 头部加 AI 财务分析占位按钮 (紫色 Sparkles), 点击提示开发中
|
2026-06-25 00:17:10 +08:00 |
|
shy3130
|
70cb75c6e6
|
Merge feat/data-clear-and-ui-fixes: 清除数据缓存修复 + UI 优化 + 权限门控 + 同步状态指示
本次合并内容:
- fix(backend): 清除数据彻底清空三层内存缓存 + 监控触发记录 + 版本号统一 + Windows GBK 编码修复
- feat(ui): 看板无数据提示优化 + 数据页无 Key 引导 + 设置页文案
- fix: 权限门控避免 free/starter 报错 + 概念分析数据源失效容错
- feat(sidebar): 数据菜单项同步状态指示器 (转圈/完成闪烁)
|
2026-06-24 23:32:52 +08:00 |
|
shy3130
|
3d74abb1ed
|
chore: 同步版本号至 0.1.42 (VERSION/__init__/pyproject/package.json)
|
2026-06-24 23:25:22 +08:00 |
|
shy3130
|
5e1e1a7529
|
feat(sidebar): 数据菜单项同步状态指示器 (转圈/完成闪烁)
- 轮询 pipelineJobs: 有活跃 job 每 2s, 无活跃每 15s
- 同步中: 数据菜单项右侧显示蓝色转圈 Loader2
- 同步完成: 切换为绿色对勾 CheckCircle2 + pulse 闪烁, 3 秒后消失
(用 ref 检测 isDataSyncing true→false 跳变触发)
|
2026-06-24 23:24:51 +08:00 |
|
shy3130
|
6c0a1bd5e6
|
fix: 权限门控避免 free/starter 报错 + 概念分析数据源失效容错
StockPanel:
- 财务指标请求增加 FINANCIAL 能力判断, 无能力时不请求
(修复 free/starter 点个股弹 'capability not available: financial' 报错)
Indices:
- 指数分时区无 kline.minute.batch (Pro+) 能力时显示锁提示, 不请求接口
ConceptAnalysis:
- 配置的 configId 失效 (扩展数据被删) 时自动回退 pickBestConfig, 避免报错
- 空状态也显示配置按钮, 让用户能重新选择数据源
ExtDimensionAnalysis:
- 顶部数据源/分组字段配置区始终显示 (去掉 !menu 条件)
|
2026-06-24 23:24:38 +08:00 |
|
shy3130
|
00a30597bd
|
feat(ui): 看板无数据提示优化 + 数据页无 Key 引导 + 设置页文案
Dashboard:
- hasNoData 改用 trading_days 判断 (后端 status rows 恒为 0 导致提示无法消除)
- 无数据提示改 warning 黄色风格 + AlertTriangle 图标
- 无数据/无 Key 两提示互斥: 无 Key 优先, 有 Key 无数据才显示同步提示
- API Key 横幅: 邀请码加复制按钮, 文案调整
Data:
- 无 Key 时立即同步按钮置灰禁用 + 显示未配置提示
- 指数数据卡片设置按钮与其它卡片一致 (有数据才显示)
System:
- '清理浏览器缓存' 改名 '刷新前端缓存', 避免误导为清数据
|
2026-06-24 23:24:25 +08:00 |
|
shy3130
|
37f4d61e3a
|
fix(backend): 清除数据彻底清空三层内存缓存 + 监控触发记录 + 修复版本号
修复清除数据后看板/监控仍显示旧数据的根因:
数据缓存清理 (repository/screener/overview):
- repository.py: 新增 clear_cache() 无条件清空全部 Polars 内存缓存;
修复 _refresh_enriched() 磁盘无数据时不清内存导致旧数据残留的 bug
- screener.py: 新增 clear_history_cache() 清进程级 _history_cache (TTL 缓存)
- overview.py: 新增 invalidate_overview_cache() 清看板聚合结果 5s TTL 缓存
清除数据完整性 (data.py):
- clear_data 删除 parquet 后统一调用三层缓存清理
- 新增清除监控运行数据: alert_store.clear() 清 alerts.jsonl + _pending_alerts 内存队列
(原 clear_data 漏删 user_data/alerts.jsonl, 导致触发记录清不掉)
版本号统一:
- /api/data/version 改为优先读 app.__version__ (与 /health 同源),
原 pyproject.toml 路径解析有误读不到, 回退到陈旧的 VERSION 文件
- Windows GBK 编码修复: __init__.py 强制 stdout/stderr UTF-8,
避免 TickFlow SDK 输出含 emoji 的指数名称时崩溃 (gbk codec can't encode)
|
2026-06-24 23:24:04 +08:00 |
|
shy3130
|
18be47abe8
|
feat: 桌面客户端完善 — 安装包/图标/系统通知/版本对齐
|
2026-06-24 00:18:46 +08:00 |
|
shy3130
|
5fd92b8377
|
feat: Release 说明加下载按钮 (markdown 链接直连附件)
- release.yml body 模板: 下载表格每行加「⬇️ 立即下载」按钮
· 用 $github.repository + 版本号变量拼稳定下载 URL
· CI 自动填充, 无需手动改链接
- v0.1.35 Release 已同步更新 (本地 gh release edit)
- 新增 generate_icon_designs.py (图标设计方案生成, 选定方案后产出最终 ico)
|
2026-06-23 22:33:05 +08:00 |
|
shy3130
|
5721f1fe93
|
feat: Windows 打包改为 Inno Setup 安装包 (Setup.exe)
- 新增 packaging/tickflow.iss: Inno Setup 脚本
· 用户目录安装 (不弹 UAC), 桌面+开始菜单快捷方式
· 卸载时询问是否删除用户数据
· 内置简中语言包 (ChineseSimplified.isl, 官方仓库获取)
- 新增 packaging/generate_icon.py + icon.ico: 应用图标
· 与 favicon.svg/Logo.tsx 一致 (紫色方括号 + K线)
· 用 Pillow 绘制, 多尺寸 (16/32/48/64/128/256)
- spec 加 icon: exe 图标 = 安装包图标 = 快捷方式图标
- release.yml: Windows 步骤改为 choco install innosetup + ISCC 编译
- 本地验证通过: 安装→快捷方式→启动→health 0.1.35 全 OK
|
2026-06-23 22:26:31 +08:00 |
|
shy3130
|
263092a71c
|
fix: bump_version 同步 app/__init__.py 版本号 (health 接口对齐)
bump 脚本之前只更新 pyproject + package.json, 漏改 app/__init__.py,
导致 /health 报的版本号停留在 0.1.31。现在三处版本号源统一更新。
|
2026-06-23 21:52:48 +08:00 |
|
shy3130
|
8854acad2c
|
chore: uv.lock 同步 desktop 依赖
|
2026-06-23 21:50:41 +08:00 |
|
shy3130
|
14631087bf
|
chore: 同步版本号至 0.1.35 (打包对齐 tag)
|
2026-06-23 21:49:48 +08:00 |
|
shy3130
|
9197ad9f8e
|
chore: 同步版本号至 0.1.34
|
2026-06-23 21:48:29 +08:00 |
|
shy3130
|
41be5096dc
|
feat: 桌面客户端打包 (pywebview + PyInstaller) + 系统通知
- 桌面入口: desktop.py (单实例锁 + 端口探测 + uvicorn + pywebview 窗口)
- 配置层: config.py 加 sys.frozen 检测, frozen 下 data_dir 指向用户目录
- 系统通知: notify_adapter.py 三平台 (Win winotify / mac osascript / Linux notify-send)
接入 quote_service 告警出口, preferences 开关控制, 前端监控设置加 toggle
- 前端: 监控设置加系统通知开关, 系统设置加检查更新入口
- 打包: packaging/tickflow.spec (onedir, collect-all 原生库, 排除 vectorbt)
- CI: .github/workflows/release.yml 手动触发 + 平台可选 (windows/macos/linux)
- 依赖: platformdirs/winotify/plyer 入主依赖, pywebview 入 desktop extras
- README 加桌面客户端下载章节
- bump 版本号到 0.1.33
|
2026-06-23 21:47:29 +08:00 |
|
shy3130
|
61ababd544
|
chore: bump version
|
2026-06-21 22:31:24 +08:00 |
|
shy3130
|
04bdb40b69
|
chore: bump version to 0.1.29
|
2026-06-21 22:31:10 +08:00 |
|
shy3130
|
b5780b5e30
|
feat: 统一监控引擎 + AlertToast通知 + 声音/角标/看板/Dev页 + 股票名称批量查询
监控引擎 (backend):
- MonitorRuleEngine 统一规则引擎,支持策略/信号/价格/行情四种类型
- JSONL 追加存储 (alert_store.py),支持分页 + 清理
- alert/monitor_rules CRUD API + seed 演示数据
- POST /api/kline/instruments/names 批量股票名称查询
- SSE strategy_alert 事件触发前端通知
前端通知体系:
- AlertToast 自定义弹窗 (Framer Motion + AnimatePresence)
- Web Audio API 合成音效 (12种预设,无需音频文件)
- 侧边栏角标 (monitorBadge.ts) localStorage 持久化未读数
- pendingSeen 机制解决 markSeen/setCurrentTotal 竞态
- 系统设置页: 通知开关 + 最大条数 + 音效选择
- 菜单设置页: 角标数字开关
监控中心 (Monitor.tsx):
- 双栏布局: 左侧实时告警列表 + 右侧规则管理
- RulesList 股票代码后显示中文名称
- RuleEditor 完整规则编辑器组件
- 告警支持查看详情 (StockPreviewDialog)
Dashboard:
- MonitorWidget: Top 10 实时告警卡片
Dev 页面:
- 一键填充演示告警 + 规则 + 分钟探测
- 可视化 SSE 事件流查看
其他:
- v0.1.19 → v0.1.28 (VERSION 从 pyproject.toml 读取)
- dev.ps1/dev.sh 添加 --host 0.0.0.0 (局域网访问)
- 修复 Screener.tsx presets.length 可选链
- README 截图表格更新 (6张) + 监控章节重写
- 删除 MinuteDataProbe 页面 (合并至 Dev)
|
2026-06-21 14:18:08 +08:00 |
|
shy3130
|
9e7ce2b5d6
|
feat: 策略买卖触发器改为可编辑并持久化
- 选股页策略设置弹窗: 买入/卖出由只读文本改为可点选信号控件, 保存写入策略配置
- 回测页: 复用共享 SignalPicker 组件, 消除重复的 SIGNAL_LABELS/toggleSignal 内联实现
- 新建 lib/signals.ts 作为信号映射权威来源(对齐后端 _build_signal_mask)
- 新建 components/screener/SignalPicker.tsx 共享组件(entry蓝/exit橙主题)
- 弹窗增加说明: 买卖触发器对回测和监控生效, 选股扫描仍按策略筛选规则
- README 标题更名为 A股智能量化工作台
后端无需改动(overrides dict 透传自动持久化 entry/exit_signals)
|
2026-06-20 14:47:53 +08:00 |
|
shy3130
|
358c04e916
|
feat: 个股日K信息条支持自定义指标(扩展数据/财务/单独显示)
- 信息条(StockInfoBar)行末加配置齿轮,复用自选列表抽屉自定义显示项
- 新增指标: 成交量/振幅/开高低 + 扩展数据(ext) + 财务(EPS/BPS/ROE/PE/PB等)
- 后端 klineDaily 新增 ext_columns 参数,按 symbol JOIN 扩展数据
- 财务数据前端直拉 useFinancialMetrics, PE/PB 用现价现算
- 每列可设单独显示(standalone),独占一行渲染
- ext 标签支持 maxTags 截断 + 点击 +N 同页展开/收起
- 修复重开弹窗信息条消失(symbol 重置与子组件 onDataChange 竞态)
- 修复 ext 勾选不显示(query key 未含 extColumns 导致缓存命中)
- 配置按钮左侧加监控通知图标占位(BellRing)
- ListColumnCustomizer 新增 showExtColumns/showStandaloneToggle prop
|
2026-06-20 14:42:54 +08:00 |
|
shy3130
|
f82b02121e
|
chore: 项目更名 tickflow-stock-panel + 菜单logo两行显示
|
2026-06-19 21:33:11 +08:00 |
|
shy3130
|
0ad93ede15
|
docs: 添加连板梯队截图 + README截图改为一行两个
|
2026-06-19 21:31:43 +08:00 |
|
shy3130
|
39164383a7
|
style: favicon深紫透明+加粗 + 菜单logo单行显示
|
2026-06-19 21:31:39 +08:00 |
|
shy3130
|
d1cb13f607
|
chore: 项目名称规范化调整
|
2026-06-19 21:31:35 +08:00 |
|
shy3130
|
a7c7543c1d
|
feat: 默认扩展数据表结构(概念/行业/新股) + gitignore放行ext_data config
|
2026-06-19 20:21:21 +08:00 |
|
shy3130
|
ef6801ef8e
|
feat: 首次使用引导页增强
|
2026-06-19 20:11:03 +08:00 |
|
shy3130
|
d89b9068a7
|
feat: 五档盘口真假涨停修正 + 连板梯队涨跌停切换 + 自动版本管理
连板梯队:
- 新增涨停/跌停方向切换(胶囊式, 涨停红/跌停绿)
- 跌停侧三状态: 跌停/翘板/止跌(对称涨停侧)
- 涨跌停双计数 + 真假板修正/降级标识(问号弹窗)
五档盘口 sealed(真假涨停):
- depth_service 独立旁路线(只读enriched, 不动计算逻辑)
- 涨跌停一体(一次depth.batch双向覆盖)
- 假涨停归炸板/假跌停归翘板, 真封板显示封单量
- 三层防护节流(套餐clamp+限速clamp+接管通知)
- Pro/Expert盘中轮询 + 盘后定版job + 启动补跑
- 收盘job可配置(15:01~18:00, 默认15:02)
- 设置页'连板梯队降级修正'卡片(开关+配置+立即修正)
- 看板页同步应用sealed修正+降级标识
配置/SDK:
- tiers.yaml拆分depth5/depth5.batch, 补全quote.batch
- tickflow SDK升级0.1.21→0.1.23(depth.batch可用)
- 实时行情轮询间隔下限调整(pro 2s/expert 1s)
- capabilities缓存schema版本化(v3)
其他:
- 档位配色抽共享组件TierTag/tierStyle
- Keys页档位问号弹窗(4档位tag+检测说明)
- git hooks自动版本号+0.0.1+打tag
|
2026-06-19 20:09:09 +08:00 |
|
shy3130
|
a5a04b4dd8
|
fix: 端点套餐门控/探测重试/分钟K月单位 + 财务页新功能 + localStorage 残留自愈
## Bug 修复
- 端点测速:Expert+ 用户现可选用专线端点(premium),非 Expert 仍锁定(EndpointTestDialog)
- 能力探测:try_call 对瞬时错误(429/5xx/超时)重试,避免抖动误丢 capability(导致"需 Free"误导徽章)
- 数据画像 CapBadge:tierReq='Free' 时不显示无意义的"需 Free"徽章
- 财务同步:用服务端 is_syncing 标志驱动 UI,刷新后仍正确显示"同步中",防重复点击 + 进度提示
## 新功能
- 财务页重设计:中间模糊搜索框(代码/名称),选股后展示 4 标签页详情
(核心指标/利润表/资负表/现金流),字段格式化(百分点/金额转亿/每股)
- 分钟K向前扩展:Expert+ 新增「月」单位(1~6 月,180 天),Pro 仍只「天」(15 天)
## localStorage 残留自愈(拉新代码后不再显示本地开发残留)
- 策略池:加载后自动清除失效的自定义策略 ID
- 回测页:校验 selectedStrategy 是否存在,失效则重置;result 不跨会话恢复
## 重构
- 提取共享 tier 工具到 capability-labels.ts(TIER_RANK/isExpertOrAbove)
|
2026-06-19 00:10:01 +08:00 |
|