100 Commits
Author SHA1 Message Date
zhulinsen 84ba462b06 docs: prepare v3.29.0 release 2026-08-02 21:41:41 +08:00
ZhuLinsen 905c339d80 docs: add v3.28.0 release changelog 2026-07-26 22:04:45 +08:00
ZhuLinsen 49f46954b3 docs: release v3.26.0 2026-07-12 16:26:44 +08:00
zhulinsen 77911efbc5 docs: prepare v3.25.0 changelog 2026-07-03 21:05:03 +08:00
ZhuLinsen a62fc56a74 fix: restore installable longbridge constraints 2026-06-28 21:29:18 +08:00
ZhuLinsen dbfd8c1fb8 chore: prepare v3.24.0 release 2026-06-28 21:08:26 +08:00
zhulinsen 16b511bccf docs: prepare v3.23.0 changelog 2026-06-20 19:19:03 +08:00
ZhuLinsen 02ca95efd1 ci: simplify release notes generation 2026-06-13 19:27:14 +08:00
ZhuLinsen 7afbc33e0c docs: prepare v3.22.0 changelog 2026-06-13 19:01:57 +08:00
zhulinsen 40c5c75b2e chore: prepare v3.21.0 release 2026-06-07 22:41:33 +08:00
ZhuLinsen d22ff1c42d chore: prepare v3.20.0 release 2026-06-03 22:47:14 +08:00
zhulinsen c45eccdf61 test: allow categorized release changelog entries 2026-05-29 23:36:09 +08:00
zhulinsen 6415ac2927 docs: prepare v3.19.0 release 2026-05-29 23:25:13 +08:00
zhulinsen 35c1086507 docs: simplify v3.18.0 release notes 2026-05-21 23:17:13 +08:00
zhulinsen f4f9de84ea test: relax release changelog assertion 2026-05-21 22:57:16 +08:00
zhulinsen d117533511 chore: release v3.18.0 2026-05-21 22:46:06 +08:00
zhulinsen 71501d6873 fix: disable desktop auto publish during release builds 2026-05-16 15:45:51 +08:00
zhulinsen fdbfc90b48 chore: release v3.17.0 2026-05-16 15:34:20 +08:00
zhulinsen 29d3e0b1ec chore: release v3.16.0 2026-05-10 15:20:49 +08:00
zhulinsen 631cd9d210 docs: keep README badges inline 2026-05-10 10:01:40 +08:00
zhulinsen 69ef561956 chore: release v3.15.0 2026-05-05 22:07:13 +08:00
zhulinsen 020fbf8ea7 chore: release v3.14.2 2026-04-30 23:07:40 +08:00
zhulinsen e5b5a641ca test: align market recap prompt assertion 2026-04-26 22:02:18 +08:00
zhulinsen c3d07ceb87 release: prepare v3.14.0 2026-04-26 21:57:09 +08:00
zhulinsen dbdf30d170 fix(ci): avoid secrets in docker publish step conditions 2026-04-22 23:15:23 +08:00
zhulinsen a58556585f chore(release): consolidate docker publish workflows and fix desktop log encoding
- Docker release workflow now pushes to both GHCR and Docker Hub (gated on DOCKERHUB_TOKEN and DOCKERHUB_USERNAME secrets), and builds linux/amd64 + linux/arm64.
- Manual publish workflow renamed, gains concurrency guard, input validation, pre-publish smoke, and a safer default tag (v1.0.0 instead of latest).
- Windows desktop backend log lines are decoded as streaming UTF-8 with a GBK fallback when replacement chars appear; PYTHONIOENCODING=utf-8 and python -X utf8 are injected to match.
- Docs: publish official image registries, direct docker run usage, and .env/volume mapping guidance; EN compose example synced with the real docker/docker-compose.yml layout.
- CHANGELOG updated under [Unreleased] in flat format.
2026-04-22 23:05:57 +08:00
zhulinsen 7cf3a88c30 docs: update CHANGELOG for v3.13.0 release 2026-04-21 20:40:03 +08:00
ZhuLinsen b3c5e2458e docs: prepare changelog for v3.12.0
- Remove duplicate [3.11.0] section that had flat-format entries mixed into structured format
- Remove duplicate Docker WebUI entry from [Unreleased]
- Move misplaced entries (SerpAPI, A股中文资讯, 回测次日验证, LiteLLM简化, Docker配置) into new v3.12.0
- Add missing entry for concurrent shared state locking fix
- Organize all entries since v3.11.0 into proper v3.12.0 release section with structured categories
2026-04-01 18:50:33 +08:00
zhulinsen f5262b2a6b chore: use union merge strategy for CHANGELOG to avoid conflicts on concurrent PR updates 2026-03-29 23:49:14 +08:00
zhulinsen 28915e43d7 docs: prepare changelog for v3.11.0 2026-03-27 22:36:03 +08:00
zhulinsen 067ee38eb4 docs: update README donation section to Xiaohongshu QR codes 2026-03-25 23:07:22 +08:00
zhulinsen 520c651e66 fix: restore windows desktop release build 2026-03-24 22:43:26 +08:00
zhulinsen d23e53f0c2 release: prepare v3.10.0 2026-03-24 22:16:23 +08:00
zhulinsen 07239db718 docs(changelog): prepare v3.9.0 release notes 2026-03-20 12:02:33 +08:00
zhulinsen c53c6bdab3 docs: release v3.8.0 changelog 2026-03-17 23:28:19 +08:00
zhulinsen 84836ff010 docs: remove duplicated portfolio milestone notes from README 2026-03-15 22:31:49 +08:00
zhulinsen 9cd8dbc6c0 chore: release v3.7.0 changelog 2026-03-15 21:06:22 +08:00
zhulinsen 76fe472f17 chore: release v3.6.0 changelog 2026-03-14 21:51:34 +08:00
zhulinsen f3f8efe417 docs: refine AGENTS workflow and simplify config principles 2026-03-13 18:07:48 +08:00
zhulinsen 1c475fd49b chore: release v3.5.0 — changelog, code cleanup #minor 2026-03-12 22:41:22 +08:00
zhulinsen 4098e10e39 docs: add email 2026-03-08 22:27:43 +08:00
zhulinsen 9445dcc8f9 docs(agents): add tag/release notes conventions to section 4 2026-03-07 21:27:28 +08:00
zhulinsen e3b8ebe287 ci: add create-release workflow to publish GitHub Release from tag annotation 2026-03-07 21:24:36 +08:00
zhulinsen d05f24be16 ci(docker): validate annotated tag message instead of CHANGELOG entry
Replace the CHANGELOG grep gate with a check that the release tag is an
annotated tag with a non-empty message. This means:
- No need to update CHANGELOG before every tag push
- Tag annotation itself serves as the release notes source
- Lightweight tags (no -m message) still fail fast with a clear error
2026-03-07 21:21:37 +08:00
zhulinsen 75bc1afd59 docs: add v3.4.10 CHANGELOG entry 2026-03-07 21:18:40 +08:00
zhulinsen 43dc266d46 fix(etf+tiktoken): use stock API for ETF OHLCV data, pin tiktoken <0.12 #patch
- EfinanceFetcher: switch ETF from ef.fund.get_quote_history (NAV only)
  to ef.stock.get_quote_history (full OHLCV) so ETFs get proper
  open/high/low/close/volume/amount data instead of zeros
- Remove obsolete NAV column mappings from _normalize_data
- Pin tiktoken>=0.8.0,<0.12.0 to avoid 'Unknown encoding cl100k_base'
  plugin registration issue in tiktoken 0.12.0

Fixes #541
Fixes #527
Fixes #537
2026-03-07 21:06:50 +08:00
zhulinsen 3bcf2d127b docs: add v3.4.9 CHANGELOG entry for CI gate 2026-03-06 22:21:03 +08:00
zhulinsen 244b7f8797 fix: hot-reload STOCK_LIST on scheduled runs and fix SPA MIME types (#529, #520)
- Refresh config.stock_list from .env before each scheduled analysis
  so that runtime changes to STOCK_LIST take effect without restart.
- Resolve MIME type explicitly in serve_spa to prevent browsers from
  rejecting JS module scripts served as text/plain.

  fixes #529
  fixes #520
2026-03-06 22:05:08 +08:00
zhulinsen fc16e99738 docs: add v3.4.8 changelog entry 2026-03-02 22:18:06 +08:00
zhulinsen 175c1ad112 ci: cache Electron binaries on macOS to fix EOF download failure
Cache ~/Library/Caches/electron on macOS runners keyed by
package-lock.json hash, so electron-builder does not re-download
the Electron zip from GitHub on every run.
2026-03-02 21:54:20 +08:00
zhulinsen bd0716aa91 fix: bundle litellm data files in PyInstaller build #patch
Add  to both Windows and macOS build scripts so
PyInstaller includes litellm's JSON data files (e.g.
model_prices_and_context_window_backup.json) in the packaged executable.

Without this, litellm raises FileNotFoundError at startup when it tries
to load the model cost map via pathlib.Path.read_text().

Affected files:
- scripts/build-backend.ps1
- scripts/build-backend-macos.sh
2026-03-02 21:43:50 +08:00
zhulinsen bc5b682b47 ci(desktop): fix macOS DMG hdiutil Resource busy and enrich release notes
- Disable Spotlight indexing (sudo mdutil -a -i off) before Electron DMG
  build to prevent hdiutil detach race condition on GitHub Actions runners
- Extract current version section from CHANGELOG.md as Release body
- Keep generate_release_notes: true to supplement with auto PR list
2026-02-28 21:25:41 +08:00
zhulinsen 24d55204d9 fix: bug fixes, CHANGELOG restructure, and CI/release improvements
- Fix Telegram _convert_to_telegram_markdown escaping [text](url) links
- Fix duplicate discord_bot_status field silently shadowing Config.discord_bot_status
- Remove unused shutil/subprocess imports from main.py
- Restructure CHANGELOG.md into versioned sections; rename v3.5.0 -> v3.4.7
- Add .github/release.yml for auto-categorized GitHub Release notes by PR label
- Switch auto-tag.yml from opt-out (#skip) to opt-in (#patch/#minor/#major)
- Add FAQ Q17 and full-guide section for non-trading day manual run (fixes #461 docs)
- Update AGENTS.md delivery checklist
2026-02-28 21:04:51 +08:00
zhulinsen 115811e319 fix: resolve LLM NoneType crash, history API 422 error, and sniper points extraction
- Guard against None/empty response.choices in LLMToolAdapter._call_api()
      before accessing choices[0]; raise descriptive ValueError instead of
      cryptic TypeError (Fixes #390)

    - Change history detail/news endpoint record_id type from int to str;
      add _resolve_record() that tries integer PK first then falls back to
      query_id lookup; add get_latest_analysis_by_query_id() in storage layer
      (Fixes #432)

    - Enhance _extract_sniper_points() with multi-level dashboard traversal
      (standard path → dashboard dict → raw_response); add _find_sniper_in_dashboard()
      recursive search; improve _parse_sniper_value() edge case handling for zero
      values, full-width commas, and placeholder strings (Fixes #436)

    #patch
2026-02-27 20:23:22 +08:00
zhulinsen 2349ac90c7 feat: auto-build frontend assets on WebUI startup and show guide page when not built
- Add prepare_webui_frontend_assets() to main.py: auto-runs npm install && npm
      run build in apps/dsa-web before starting FastAPI server
    - New env var WEBUI_AUTO_BUILD (default: true) to control auto-build behavior
    - Replace bare JSON root response with styled HTML guide page when frontend
      static files are not present (api/app.py)
    - Remove unused RootResponse import from api/app.py
    - Update README.md startup instructions and .env.example documentation
    - Add changelog entry in docs/CHANGELOG.md

    #patch
2026-02-27 20:13:22 +08:00
zhulinsen 893540b626 fix: add AIHUBMIX_KEY and ANTHROPIC_API_KEY to daily_analysis.yml (Fixes #385)
Both keys were supported in src/config.py but missing from the workflow
env section, causing them to be silently ignored in GitHub Actions.

- Add AIHUBMIX_KEY (auto-sets base_url to aihubmix.com/v1)
- Add ANTHROPIC_API_KEY + ANTHROPIC_MODEL
- Update config check echo block to show all four AI providers

#patch
2026-02-25 22:36:43 +08:00
zhulinsen c7a670a31c chore: add APP-Code 2026-02-23 21:56:26 +08:00
zhulinsen 39848b80a1 chore: add aihubmix 2026-02-23 21:05:00 +08:00
zhulinsen e780f840a3 feat: add RUN_IMMEDIATELY config, fix web UI centering and settings 500 error 2026-02-22 22:24:09 +08:00
zhulinsen c79f90bfe3 docs: update readme 2026-02-01 22:11:00 +08:00
zhulinsen ccdbd64fb7 feat(analyzer): add explicit decision_type field for reliable report statistics
- analyzer: Added `decision_type` field (buy/hold/sell) to the AI output schema and system prompt.
- analyzer: Updated `AnalysisResult` dataclass and parsing logic to extract and store the decision type, adding an inference fallback.
- notification: Refactored statistics counting in all report generation methods to use the explicit `decision_type` field instead of fuzzy keyword matching.
- Fixed the discrepancy between individual stock recommendations and- the summary counts in the dashboard.
2026-02-01 13:01:13 +08:00
zhulinsen 1e63e65ce0 fix(#155): resolve missing volume ratio and improve real-time data sources
- akshare_fetcher: Parse volume_ratio (49), PE (39), PB (46), and market cap (44/45) from Tencent API.
- efinance_fetcher: Add parsing for volume_ratio, PE, and market capitalization.
- base.py: Integrated Tushare Pro as an optional real-time quote source.
- config: Reordered default priority to prioritize Tencent (tencent > akshare_sina > efinance > akshare_em).
- documentation: Updated .env.example and GitHub Actions workflow with real-time source priority instructions.

This fix ensures critical indicators like volume ratio (量比) and turnover rate are correctly fetched and displayed across different data sources.

Closes #155
2026-02-01 12:36:46 +08:00
zhulinsen e952f90a52 fix: make MAX_WORKERS configurable in GitHub Actions (fixes #182) 2026-02-01 12:10:42 +08:00
zhulinsen 231eccdc9c feat: enhance US stock support with multi-source fetchers #minor
- Implement US stock history fetching in AkshareFetcher
  - Implement US stock realtime quotes in YfinanceFetcher
  - Add US stock filter to unsupported fetchers (Baostock, Tushare, etc.) to trigger fallback
  - Optimize realtime quote fallback strategy to prioritize Yfinance for US stocks
  fixes #153
  # minor
2026-02-01 11:52:27 +08:00
zhulinsen 286f73275e updated requirements.txt to include lxml_html_clean 2026-01-31 23:07:08 +08:00
zhulinsen c6fc79d9a0 feat: multi-source fallback strategy and data fetching fixes
- Add triple-source fallback for A-share data (EM → Sina → Tencent)
  - Add multi-source fallback for chip distribution (Akshare → Tushare → Efinance)
  - Fix efinance ETF API parameter errors and OHLC data completion
  - Fix tushare index realtime quote code format (sh/sz prefix)
  - Fix stock name display issue showing code instead of name
  - Upgrade SerpAPI to Google search with Knowledge Graph support

  Fixes #206, #171, #139
  Related #207

  #minor
2026-01-31 22:25:11 +08:00
zhulinsen 97b08a8909 docs: update README and refine auto-tag rules 2026-01-31 18:47:01 +08:00
zhulinsen 6c6eaf8c6a fix: Tushare priority and realtime quote support (fixed #185)
- Upgrade Tushare priority to -1 when token configured
  - Implement realtime quote with Pro/legacy API fallback
  - Load .env earlier for proper proxy setup
  - Remove unreliable north-bound capital from market analyzer
  - Add ETF test scenario, extend stale issue timer (3d -> 7d)
2026-01-31 16:10:41 +08:00
zhulinsen 9a60f94df1 fix: proxy config and case sensitivity issues
- Refactor proxy config: controlled by USE_PROXY env var, disabled by default
  - Fix WeChat message type case sensitivity (store as lowercase)
  - Fix HK stock code format hint in error messages (hk -> HK)
2026-01-30 22:06:59 +08:00
zhulinsen ea3ce3c803 docs: update README and CHANGELOG for v2.1.6
- Add Pytdx (通达信) to data sources list
  - Add multi-source stock name resolution feature
  - Add enhanced search fallback feature
  - Update roadmap with Pytdx data source
2026-01-29 22:44:14 +08:00
zhulinsen 5bf23c2827 feat: add pytdx data source and multi-source stock name resolution 2026-01-29 22:32:41 +08:00
zhulinsen afcb9d1470 docs: update sponsor 2026-01-29 22:09:13 +08:00
zhulinsen b13ca62972 docs: refactor README layout and add Traditional Chinese translation 2026-01-28 22:07:40 +08:00
zhulinsen 77671cc6a2 fix: 修复个股分析推送失败和报告路径问题 (fixes #166)
1. 修复 pipeline.py 中遗漏的通知渠道处理:
     - 添加 PUSHPLUS 渠道支持
     - 添加 DISCORD 渠道支持
     - 添加 PUSHOVER 渠道支持

  2. 修复 notification.py 中报告保存路径:
     - 将 src/reports/ 改为项目根目录 reports/
     - 与 GitHub Actions 工作流路径保持一致
2026-01-27 22:46:43 +08:00
zhulinsen 6e0f7ef1b9 chore: add GitHub Actions auto-tag workflow 2026-01-26 20:58:09 +08:00
zhulinsen 0e935133c1 feat: 添加 yfinance 兜底数据源及数据缺失警告 2026-01-26 20:40:52 +08:00
zhulinsen d44fab23b2 fix: correct docker-compose paths and documentation commands 2026-01-26 18:02:08 +08:00
zhulinsen bc1c00d5a8 fix: correct docker workflow syntax and optimize triggers 2026-01-25 20:25:10 +08:00
zhulinsen 07e1a4bfaa docs: update documentation for v2.1.0 features
- Add Discord notification channel to README, full-guide, and README_EN
  - Add MACD/RSI technical indicators to trading philosophy section
  - Simplify README config table, move advanced options to full-guide
  - Rewrite CHANGELOG v2.1.0 with complete feature list:
    - US stock support
    - MACD/RSI indicators
    - Discord push support
    - DingTalk bot command interaction
    - Data source failover mechanism
  - Add Discord configuration guide (Webhook + Bot API)
  - Add push behavior settings (SINGLE_STOCK_NOTIFY, REPORT_TYPE, ANALYSIS_DELAY)
2026-01-25 18:05:02 +08:00
zhulinsen 35526a2183 fix(notification): fix incomplete market review push issue
- Add support for ## headings and ** bold text in message chunking logic
  - Increase batch send interval to 2.5s to avoid rate limiting
2026-01-25 17:15:26 +08:00
zhulinsen 0541c6f408 fix: update CI paths and bump version to v2.1.0
- 🐛 CI: Fix python-m py_compile paths in workflow and test.sh
- 📝 Docs: Update Roadmap order in READMEs
- 🔖 Version: Update CHANGELOG to v2.1.0
2026-01-25 16:45:25 +08:00
zhulinsen 9f0871a774 refactor: project structure optimization and network stability (v1.7.0)
- 📦 Structure: Move core modules to src/, docs to docs/, docker configs to docker/
- 🔧 Config: Fix .env loading path and remove hardcoded proxy settings
- 🌐 Network: Implement smart proxy routing (auto NO_PROXY for domestic apis)
- 🛡️ Stability: Enhance EfinanceFetcher with robust retry logic for ProtocolErrors
- 📝 Docs: Update relative links in READMEs and update CHANGELOG to v1.7.0
2026-01-25 16:35:32 +08:00
zhulinsen c9272c55ea fix(notification): 修复邮件中表格不渲染及排版松散问题 (fixes #134)
- 引入 markdown2 库替代简单的正则替换,支持 Markdown 表格渲染
  - 重构邮件 HTML 生成逻辑,添加完整的 CSS 样式支持
  - 优化邮件排版,调整间距使内容更加紧凑易读
  - 增加表格边框、隔行变色等样式,提升数据展示效果
2026-01-25 11:44:47 +08:00
zhulinsen 6788b05eab refactor(data_provider): 优化实时行情代码结构与缓存机制
- 提取 safe_float/safe_int 到 realtime_types.py 统一维护
  - 删除 akshare_fetcher.py 和 efinance_fetcher.py 中 7 处重复定义
  - 添加缓存命中/刷新日志,便于调试
  - 在 bulk_sources 列表添加 TODO 注释说明扩展规则
  - 引入 DataFetcherManager 实现多源(Akshare/Efinance/Sina/Tencent)自动切换与熔断

  Closes #132, #109, #108
2026-01-24 23:14:58 +08:00
zhulinsen 94552ba6f3 docs: 更新 README 文档适配美股功能 2026-01-24 18:46:25 +08:00
zhulinsen 7a7695d88a feat: 新增美股分析支持
- 支持 1-5 个大写字母的美股代码(如 AAPL, TSLA, GOOGL)
  - 支持特殊股票类别(如 BRK.B)
  - YfinanceFetcher 实现美股数据获取
  - AkshareFetcher 跳过不支持的美股接口调用
  - WebUI、Bot命令、API接口全面适配美股验证
  - 报告标题从A股改为股票以适配多市场

  close #18
2026-01-24 18:32:45 +08:00
zhulinsen 80f2da0ff9 fix: 修复 analysis_delay 未定义错误
- 在 run() 方法中添加 analysis_delay 变量定义
- 从配置读取 analysis_delay 值
- 修复静态检查 F821 错误
2026-01-24 14:53:55 +08:00
zhulinsen 5bc95c9088 feat: 实现4个用户反馈issue并修复延迟逻辑 (#112, #128, #38, #119)
新增功能:
- feat(notification): 通知开头添加评分摘要 (#112)
  - 在决策仪表盘开头显示所有股票的评分、操作建议、趋势预测
  - 便于用户快速查看整体分析结果

- feat(main): 支持分析间隔配置 (#128)
  - 新增 ANALYSIS_DELAY 环境变量(秒)
  - 在个股之间添加延迟(避免并发触发API限流)
  - 在个股分析和大盘分析之间添加延迟
  - 完全解决 Gemini API 429错误问题

- feat(notification): 新增PushPlus推送支持 (#38)
  - 支持国内PushPlus推送服务
  - 新增 PUSHPLUS_TOKEN 环境变量
  - 支持 Markdown 格式推送到微信

Bug修复:
- fix(main): 修复Docker环境下单股推送不完整问题 (#119)
  - 新增 REPORT_TYPE 环境变量(simple/full)
  - 从配置读取报告类型并传递给单股推送
  - Docker用户可设置 REPORT_TYPE=full 获取完整报告

文档更新:
- docs: 更新 README.md 配置说明
- docs: 更新 .env.example 配置模板
- docs: 更新 CHANGELOG.md 版本记录

相关Issue:
- Closes #112
- Closes #128
- Closes #38
- Closes #119
2026-01-24 14:50:47 +08:00
zhulinsen 187b37fb39 fix(docker): force WebUI bind to 0.0.0.0 in compose; fixed #118 2026-01-22 21:30:16 +08:00
zhulinsen 73fc0920d1 docs: 更新 changelog至 v1.6.0 2026-01-19 22:05:45 +08:00
zhulinsen 97935e99e7 feat(workflow): 支持从 Repository Variables 读取非敏感配置 (fixes #79) 2026-01-19 21:30:35 +08:00
zhulinsen 823798ee45 fix: 修复推送配置缺失及报告截断问题 (Issue #73, #80) 2026-01-19 21:14:51 +08:00
zhulinsen e8518e9450 docs: update README 2026-01-18 19:39:37 +08:00
zhulinsen 17e37a69f6 docs: add missing CUSTOM_WEBHOOK_BEARER_TOKEN 2026-01-18 13:18:26 +08:00
zhulinsen eb5f30edac feat: add local WebUI to edit STOCK_LIST 2026-01-18 13:08:27 +08:00
zhulinsen bccce9a58c update readme 2026-01-17 20:34:32 +08:00
zhulinsen f0cf7f86b2 fix: solve foxmail smtp connection refused issue #64 2026-01-17 20:10:49 +08:00
zhulinsen 91facfe23f feat: 单股推送模式 & 自定义Webhook Bearer认证 (#51, #55)
新增功能:
- 单股推送模式:每分析完一只股票立即推送,而不是等全部分析完再汇总
  - 命令行:python main.py --single-notify
  - 配置项:SINGLE_STOCK_NOTIFY=true
- 自定义 Webhook Bearer Token 认证:支持需要 Authorization 头的 Webhook
  - 配置项:CUSTOM_WEBHOOK_BEARER_TOKEN

修改文件:
- config.py: 新增 single_stock_notify, custom_webhook_bearer_token 配置
- notification.py: 添加 Bearer Token 支持,新增 generate_single_stock_report()
- main.py: 新增 --single-notify 参数,process_single_stock 支持即时推送

Closes #51, Closes #55
2026-01-17 18:19:37 +08:00
zhulinsen e88d2248fe docs: 精简 README,新增完整配置指南
feat: 修复 HK 股票代码识别 & 增强稳定性

- README 精简至 236 行,高级配置移至 docs/full-guide.md
- 修复 HK 股票代码识别(支持 hk1810 等 1-5 位格式)
- AkShare API 调用添加重试机制和失败缓存 (#62)
- 钉钉 Webhook 支持 20KB 限制分块发送 (#61)

Closes #61, #62
2026-01-17 17:36:08 +08:00
zhulinsen 48ca4ee742 chore: block env files and require version check in bug reports
- Expand .gitignore to block all *.env files (prevents accidental credential leaks like #57)
- Update bug_report.md template to require version confirmation before submitting issues
2026-01-16 22:09:29 +08:00