10 Commits
Author SHA1 Message Date
shy3130 5d6ac5c736 fix(logs): 日志归拢 data/logs/ 并为桌面版 desktop.log 增加大小切割
- 新增 app/logfile.py attach_rotating_log: 统一 data/logs/ 子目录 + RotatingFileHandler + 旧位置日志一次性迁移 (目标已存在/被占用则跳过, 失败仅 warning 不阻断启动)
- desktop.py: desktop.log 由无限追加 FileHandler 改为 10MB×5 切割 (长期挂机不再无限增长); 失败页与错误提示的用户可见路径同步 data\logs\desktop.log
- main.py: backend.log 改用共享函数, 参数不变 (10MB×3), 目录随迁
- README/dev.ps1 排障路径同步; 新增 test_logging_setup.py 4 例 (迁移/冷启动/不覆盖/不可写容错)
2026-10-23 22:00:51 +08:00
shy3130 529dc8bf20 fix(dev): 启动器输出改文件重定向, 修复长时间运行内存叠加
dev.ps1 用 Start-Job + 每 150ms Receive-Job 中转子进程输出。Start-Job 会把
每行原生输出包装成带 job/runspace 元数据的 PSObject 存进 job 输出集合,
生产快于消费 (窗口最小化/RDP 断开/日志量突增) 时持续堆积且不及时释放 ——
实测开盘跑到中午, 启动器单个 powershell.exe 可占十几 GB。

- dev.ps1: 改用 Start-Process + 重定向到 data/logs/*.log, PowerShell 只持
  PID; 控制台改为有界 StreamReader tail, 内存占用与日志总量无关
- dev.ps1: 新增单实例守卫 (默认拒绝启动, -Force 才结束) 与 -NoReload;
  退出时 taskkill /T 结束整棵树, 覆盖 reloader 父进程与 server 子进程
- dev.sh: free_port 只杀监听者会让 reloader 父进程重生子进程 —— 改为先按
  仓库 venv 路径结束同端口整组后端; cleanup 改递归 kill_tree, 不再留孤儿
- dev.sh: 只处理同端口实例, 换端口调试的实例只提示不误杀

验证: dev.sh bash -n 通过; kill_repo_backends / kill_tree 用真实进程做了
隔离测试 (8888/9999 端口不误杀、三级进程树无孤儿); dev.ps1 花括号平衡与
无残留 Start-Job 调用, 本机无 PowerShell 未做实际运行验证。
2026-10-20 16:15:20 +08:00
shy3130 6e317a5a43 feat(v0.2): 完善量化研究与二次开发能力 2026-08-13 20:16:02 +08:00
Arepeater c45c5f2226 fix(config): 修复 .env 加载与密码初始化
- 统一开发脚本、Vite 代理与 Docker Compose 的 HOST/PORT 配置
- 首次启动按字面值读取 AUTH_PASSWORD,避免 ${VAR} 被环境变量插值
- 已有 auth.json 时继续以 Web 端密码为准,不受 .env 覆盖
2026-08-05 17:56:27 +08:00
shy3130 59becef6c1 fix(dev): dev.ps1 Start-Job 子进程强制 UTF-8, 修后端中文日志乱码
Start-Job 开的是全新 powershell.exe 子进程, 不继承主进程第 25-28 行
设的 UTF-8, 默认用系统 ANSI (中文 Windows = GBK/cp936) 解码后端的
UTF-8 输出 → 中文变 '瀹氫箟缂哄皯' 式乱码 (UTF-8 被当 GBK 解)。

第 25 行注释 'so child process logs aren't garbled' 的意图因 Start-Job
开新进程而落空。在 backend/frontend 两个 scriptBlock 开头各设 UTF-8,
与 app/__init__.py 的 stdout/stderr 编码对齐。

PowerShell 语法校验通过。
2026-07-13 20:51:23 +08:00
shy3130 75cf2b19c2 fix(packaging): support legacy Polars CPUs 2026-07-12 14:08:24 +08:00
shy3130 9c2bcc5f60 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 3e747c9a08 chore: 项目更名 tickflow-stock-panel + 菜单logo两行显示 2026-06-19 21:33:11 +08:00
shy3130 a4c330e3c7 chore: 项目名称规范化调整 2026-06-19 21:31:35 +08:00
shy3130 d93dc0cbf4 Initial release v0.1.19 2026-06-18 17:18:23 +08:00