wshy
|
420e0ccd14
|
Update README.md
|
2026-07-06 09:57:30 +08:00 |
|
wshy
|
491a61a0e2
|
Merge pull request #55 from shy3130/feat/tickflow-rate-limits
feat: 自定义数据源扩展 + 限频集中化 (v0.1.80)
|
2026-07-05 22:58:21 +08:00 |
|
 wshyandshy3130
|
e524ea4893
|
perf: 指标计算移出启动关键路径, 后台异步预热 (#51)
启动时 instruments/index/ETF 同步刷新(<0.1s), enriched 的 compute_indicators
(107万行, 低配Linux 50s+) 推 daemon 线程异步完成。应用秒级 ready, 前端不再
报 ECONNREFUSED。预热期间上层走空表降级, 完成后自动替换缓存。
- repository: _enriched_warming 标志 + warmup 线程 + 懒加载守卫
- main: refresh_cache(background=True) + app.state.indicators_ready
- data API: status 端点加 indicators_ready 字段
- 前端: Data 页指标计算中提示 + 加快轮询
Closes #47
Co-authored-by: shy3130 <shy3130@users.noreply.github.com>
|
2026-07-04 21:55:03 +08:00 |
|
wshy
|
7827d480a5
|
Update README.md
|
2026-07-04 18:51:42 +08:00 |
|
wshy
|
a52f1b35f4
|
Update README.md
|
2026-07-04 18:47:14 +08:00 |
|
 wshyandshy3130
|
a23be3822a
|
chore: add cache startup diagnostics (#49)
Co-authored-by: shy3130 <shy3130@users.noreply.github.com>
|
2026-07-04 18:42:49 +08:00 |
|
 wshyandshy3130
|
57f417e6eb
|
fix(sync): 修复同步卡死在26%及启动期视图注册崩溃 (#47) (#48)
三处根因:
1. 限流逻辑失效 (kline_sync.py ×3, index_sync.py ×2)
条件 `len(chunks) > rpm` 在 free 档恒为 False (56 chunks < 60 rpm),
导致节流 sleep 永不执行, 请求密集打出触发服务端限流 → 卡死。
改为始终按 interval (60/rpm) 节流。
2. 卡死看门狗无法自愈 (pipeline_jobs.py, api/pipeline.py)
原超时检查只在再次点「同步」时触发, 等待中永不回收。
抽出 JobStore.reap_stale() (STALE_JOB_TIMEOUT_S=600), 在
/run 和 /jobs/{id} 轮询端点都调用 — 前端每秒轮询, 10分钟后
必定自动回收卡死 job, UI 不再永久停在 26%。
3. 启动期视图注册异常捕获不足 (repository.py)
_register_views 只捕获 duckdb.IOException, 跨版本/平台空目录
可能抛 CatalogException 等炸掉 lifespan。放宽到 Exception。
Co-authored-by: shy3130 <shy3130@users.noreply.github.com>
|
2026-07-04 15:53:50 +08:00 |
|
wshy
|
106ff628c6
|
Update README.md
|
2026-07-03 14:39:49 +08:00 |
|
wshy
|
f4ee8d4a9d
|
Update README.md
|
2026-07-03 14:10:51 +08:00 |
|
wshy
|
e7667fa3e9
|
Update README.md
|
2026-07-03 13:50:10 +08:00 |
|
wshy
|
114a52969c
|
Update README.md
|
2026-07-03 13:43:41 +08:00 |
|
wshy
|
38b5964987
|
Update README.md
|
2026-07-03 10:11:59 +08:00 |
|
wshy
|
a6ad8665aa
|
Update README.md
|
2026-07-02 22:29:30 +08:00 |
|
wshy
|
c6541569c9
|
Update README.md
|
2026-07-01 17:37:01 +08:00 |
|
wshy
|
e0e7b2c6a5
|
Update README.md
|
2026-07-01 15:03:45 +08:00 |
|
wshy
|
3f5f361361
|
Update README.md
|
2026-07-01 15:02:28 +08:00 |
|
wshy
|
83b96e2aeb
|
Update README.md
|
2026-07-01 14:26:50 +08:00 |
|
wshy
|
163893c5be
|
Update README.md
|
2026-07-01 14:19:08 +08:00 |
|
wshy
|
190311bfc8
|
Update README.md
|
2026-06-30 17:30:32 +08:00 |
|
wshy
|
35b20d6317
|
Merge pull request #32 from lzwaang/feature/codex-cli-ai-provider
Add Codex CLI AI provider
|
2026-06-30 10:17:06 +08:00 |
|
wshy
|
df5871f44f
|
Merge pull request #33 from shy3130/feat/backtest-warmup-slippage
feat: 回测页加预热期说明徽标与滑点配置
|
2026-06-29 22:45:46 +08:00 |
|
wshy
|
49e705ab40
|
Merge pull request #31 from shy3130/feat/v0.1.65-monitor-backtest-webhook
release: v0.1.65 监控增强 + 回测止盈 + 飞书推送
|
2026-06-29 17:23:05 +08:00 |
|
wshy
|
ec30e35991
|
Merge pull request #29 from shy3130/codex/fix-stock-analysis-ultrawide
fix: expand analysis layouts on ultrawide screens
|
2026-06-29 17:13:08 +08:00 |
|
wshy
|
a8efebbe68
|
Merge pull request #22 from ldm0206/main
feat: 添加 Docker 镜像构建和推送工作流
|
2026-06-28 16:08:08 +08:00 |
|
wshy
|
acd0a21c12
|
Merge pull request #21 from shy3130/chore/remove-release-notes
chore: 移除无意义的发布说明文件
|
2026-06-27 23:44:48 +08:00 |
|
wshy
|
a08b07faa2
|
Merge pull request #20 from shy3130/docs/release-notes-v0.1.60
docs(release): 添加 v0.1.60 发布说明
|
2026-06-27 23:42:02 +08:00 |
|
wshy
|
31140d62d0
|
Merge pull request #19 from shy3130/docs/changelog-v0.1.60
docs: add CHANGELOG for v0.1.60
|
2026-06-27 23:35:57 +08:00 |
|
wshy
|
ab9a815306
|
Merge pull request #18 from shy3130/release/v0.1.60
Release v0.1.60
|
2026-06-27 23:33:41 +08:00 |
|
wshy
|
d0c31a1def
|
Update README.md
|
2026-06-27 16:22:29 +08:00 |
|
wshy
|
15c5d02922
|
Update README.md
|
2026-06-27 16:17:57 +08:00 |
|
wshy
|
c878fd4345
|
Update README.md
|
2026-06-25 22:45:20 +08:00 |
|
wshy
|
747dd8f514
|
Merge pull request #13 from shy3130/feat/ai-financial-analysis
feat(financials): AI 财务分析 — 流式生成 + 全局胶囊 + 历史报告
|
2026-06-25 22:40:15 +08:00 |
|
wshy
|
b53c6fdbf1
|
Add files via upload
|
2026-06-25 22:37:29 +08:00 |
|
wshy
|
059ab16e98
|
Update README.md
|
2026-06-25 17:31:45 +08:00 |
|
wshy
|
76ec644f35
|
chore(ai): 炸鸡中转站预设移至末尾,优惠 tag 改为赞助 (#12)
|
2026-06-25 10:57:02 +08:00 |
|
wshy
|
3380f97b3a
|
fix(ai): 随机 UA 按钮可重复点击 (#11)
之前按钮在文本框有内容时被 disabled + onClick 拦截,导致只能生成
一次。移除禁用逻辑,每次点击都覆盖生成新的 UA,符合随机按钮语义。
|
2026-06-25 10:54:15 +08:00 |
|
wshy
|
7c81a03026
|
feat(ai): 可配置 User-Agent 绕过 Cloudflare 等 CDN 拦截 (fix #8) (#10)
问题(Issue #8): AI API 反代到 Cloudflare 后,OpenAI SDK 默认 UA
(OpenAI/Python) 被 Bot Fight Mode 拦截,报 'Your request was blocked'。
方案: 后端始终发送浏览器风格 UA,默认内置 Chrome UA(开箱即用);
AI 设置页提供开关 + 随机生成/手动粘贴的自定义 UA。
后端(config.py / settings.py / ai_generator.py / strategy.py):
- 新增 ai_user_agent 配置项,默认桌面 Chrome UA
- 两处 OpenAI client 创建均注入 default_headers={User-Agent}
(ai_generator 实际生成 + strategy 测试连通性)
- 空 UA 自动回退内置默认,保证默认状态即绕过拦截
前端(api.ts / AI.tsx):
- 自定义 UA 开关:默认关闭(用内置默认),开启才显示输入框
- 随机生成按钮: 产出近期 Chrome 桌面 UA(Win/Mac/Linux 随机)
- 已有自定义 UA 时开关默认开启
不影响直连官方 OpenAI/DeepSeek 的用户(官方不校验 UA)。
|
2026-06-25 10:49:10 +08:00 |
|
wshy
|
acd30dd728
|
fix(pipeline): free/none 档降级时误调实时行情接口 (#9)
从 expert 切换到 free 档后,本地 kline_daily 仍保留今天实时落盘的数据,
导致 run_now() 中 today_exists=True,误入实时行情覆写分支调
quotes.get_by_universes()。但 free/none 档走 free-api 服务器,无实时行情
端点,调用报错或返回空,当天日K数据可能异常。
根因:分支①只判断「今天有无数据」,未判断「当前档位有无实时行情能力」。
sync_daily_by_quotes 内部也无 capability 守卫。
修复:分支①条件增加 capset.has(Cap.QUOTE_POOL)(starter+ 才有)。
free/none 档降级到 elif latest_daily 分支,用 klines.batch(period='1d')
历史日K接口刷新当天,这是 free 档唯一可用且正确的数据源。
|
2026-06-25 10:16:34 +08:00 |
|
wshy
|
50db048140
|
Merge pull request #4 from shy3130/fix/docker-build-and-static-mount
fix(docker): 修复国内网络构建失败与前端静态文件 404
|
2026-06-24 11:24:51 +08:00 |
|
wshy
|
5c0e5959e9
|
Update README.md
|
2026-06-23 18:00:33 +08:00 |
|
wshy
|
b918f4e0a0
|
Update README.md
|
2026-06-23 17:48:09 +08:00 |
|
shy.
|
d4dbe526de
|
Update README.md
|
2026-06-21 14:21:48 +08:00 |
|