999 Commits

Author SHA1 Message Date
zhulinsen
b36c721415 fix(web): 明确报告输入诊断与资讯数据范围 (#1983)
* fix: clarify report input context details

* fix(review-feedback-1983): 代码结论 :不可。重新基线评审完整 diff 后,确认 2 个当前 blocker。旧 correctness finding

* fix(web): clarify report input diagnostics

* docs: trim unreleased changelog entries
v3.27.0
2026-07-19 21:46:13 +08:00
ObVious55
5af5550718 refactor(agent): 增加决策后 runtime facts (#2030)
* refactor: collect internal agent runtime facts

* fix(agent): preserve loop result compatibility

* fix(agent): canonicalize parsed dashboard content

* fix(agent): align post-risk finalization and timeout facts

* docs: document agent runtime facts boundary

* fix(agent): align risk-adjusted core conclusion

* test: update dashboard finalization calls

---------

Co-authored-by: zhulinsen <42829555+ZhuLinsen@users.noreply.github.com>
Co-authored-by: zhulinsen <zhuls97@163.com>
2026-07-19 19:46:14 +08:00
zhulinsen
5aee85679e fix: handle MiniMax string reasoning wrappers (#2039) 2026-07-19 18:56:08 +08:00
xushengasd
5d98d6d787 feat(phase1): converge multi-strategy evidence contract (#2031)
Introduce the StrategyEngine facade and centralize deterministic opinion partitioning, aggregation, synthesis, and signal normalization.

Keep invalid opinions in diagnostics, protect synthesis ownership across fallback paths, and add localized strategy rendering for notification, history, Markdown, and WeChat outputs.

Harden legacy and malformed strategy_synthesis payload handling through shared renderer helpers, with public-entry regression coverage and an updated Phase 1 contract.

Co-authored-by: zhulinsen <42829555+ZhuLinsen@users.noreply.github.com>
2026-07-19 18:55:42 +08:00
oguz
748dba5074 fix(yfinance): populate pe_ratio/pb_ratio for US realtime quotes (#2023)
get_realtime_quote hardcoded pe_ratio and pb_ratio to None for US stocks,
so the valuation block was always empty and every US quote reported
data_quality="partial" with pe_ratio/pb_ratio in missing_fields.

yfinance already returns both via Ticker.info (trailingPE / priceToBook),
and info is fetched a few lines above for the stock name, so this reads
them from the existing dict with no extra request.

The US index path (_get_us_index_realtime_quote) is intentionally left
alone: indices have no PE/PB.

Verified: AAPL now returns pe_ratio=39.67, pb_ratio=45.08 and
missing_fields shrinks from ['amount','pe_ratio','pb_ratio'] to ['amount'].
2026-07-19 18:01:22 +08:00
oguz
9b1b4bb871 fix(tools): describe get_stock_info as multi-market, not A-share only (#2022)
The stock_code parameter was described to the model as "A-share stock
code, e.g., '600519'". The agent reads that schema literally and does not
call get_stock_info for US/HK tickers, so any skill relying on
fundamentals silently degrades to a price/news-only answer there.

The handler already supports these markets: for AAPL it returns
market="us", status="ok" with valuation, growth (revenue_yoy,
net_profit_yoy, roe, gross_margin) and earnings (revenue,
net_profit_parent, operating_cash_flow) populated via the yfinance
fundamental adapter. Only the description was misleading.

Verified with the growth_quality skill on AAPL: before, the agent called
get_daily_history/analyze_trend/get_chip_distribution/search_stock_news
and never get_stock_info, producing a purely technical summary. After, it
calls get_stock_info and the report cites ROE 141.5% and net profit
+19.4% YoY.
2026-07-19 17:54:20 +08:00
zhulinsen
529f6f2061 fix(issue-2013): [bug]-填写的是minimax-api,分析结果报错 (#2018) 2026-07-19 17:30:29 +08:00
Tom
52e787a736 Update Anspire info (#2033)
* update anspire info

* update anspire for web link

* Update anspire info

---------

Co-authored-by: xiaowei <4775987@qq.com>
2026-07-19 16:32:55 +08:00
Alfred
628c5b6ef7 feat: add Codex App Server agent prototype (#2004) 2026-07-19 16:31:54 +08:00
Alfred
487e49e565 feat: 支持保存决策风格重评估结果 (#2014)
* feat: persist decision profile reassessment signals

* fix: align reassess persistence outcomes and lifecycle
2026-07-16 19:22:14 +08:00
zhulinsen
55946536a9 fix(issue-1996): [bug] (#1998) 2026-07-13 21:54:34 +08:00
zhulinsen
e8a9ca7742 fix: harden release packages and report market context (#1994)
* fix: bundle orjson in release packages

* fix: remove duplicate decision signal excerpts

* feat: add TickFlow sector ranking fallback
v3.26.1
2026-07-12 18:56:21 +08:00
ZhuLinsen
49f46954b3 docs: release v3.26.0 v3.26.0 2026-07-12 16:26:44 +08:00
zhulinsen
5a0552f1f5 fix: 修复通知理由字段被截断 (#1989)
* fix: preserve complete decision signal reasons

* fix(review-feedback-1989): 评审结论 . - 必要性 :通过。PR 针对 1969 中 DecisionSignal 理由被静默截断的问题提供了直接且有用户价值的修复

* fix(review-feedback-1989): 评审结论 - 是否可直接合入 :不可
2026-07-12 16:07:01 +08:00
Kushida
44371c2961 fix: delete all history records by stock code (#1987)
* fix: delete all history records by stock code

* fix: reject blank history stock codes

---------

Co-authored-by: zhulinsen <42829555+ZhuLinsen@users.noreply.github.com>
2026-07-12 15:02:54 +08:00
zhulinsen
6fda28b4be fix: bundle AkShare calendar data in desktop builds (#1990) 2026-07-12 14:38:49 +08:00
zhulinsen
85c02edca9 fix: reuse empty concept rankings within pipeline run (#1988) 2026-07-12 13:09:25 +08:00
zhulinsen
6da1360a0b feat: 重建市场结构上下文 (#1981)
* feat: rebuild market structure context

* fix(review-feedback-1981): apps/dsa-web/src/components/report/MarketStructureCard.tsx 新增用户可见界面,但

* fix(review-feedback-1981): apps/dsa-web/src/components/report/MarketStructureCard.tsx 新增用户可见界面,但

* fix(review-feedback-1981): Scope in-flight ranking keys to each fetcher manager

* fix(review-feedback-1981): 修正无证据情况下的个股层级判定,并按仓库规范补充可访问的 Web 页面截图、更新 PR 描述事实

* fix(review-feedback-1981): apps/dsa-web/src/components/report/MarketStructureCard.tsx 新增用户可见界面,但

* fix(review-feedback-1981): 按 AGENTS.md 为新增市场结构卡片补充可直接查看的截图,并同步 PR 描述中的 diff 与 CI 事实

* fix(review-feedback-1981): apps/dsa-web/src/components/report/MarketStructureCard.tsx 新增用户可见界面,但

* fix(review-feedback-1981): 按仓库规范补充可直接审查的市场结构卡片截图,并同步 PR 描述中的 diff 与 CI 事实

* fix(review-feedback-1981): apps/dsa-web/e2e/market-structure-card-visual.spec.ts:276 在

* fix(review-feedback-1981): apps/dsa-web/e2e/market-structure-card-visual.spec.ts 将本 PR

* fix(review-feedback-1981): 同步当前 Head 的 diff/CI 结论,并按仓库规范在 PR 描述或评论中附可访问的市场结构卡片截图

* fix(review-feedback-1981): apps/dsa-web/e2e/market-structure-card-visual.spec.ts:261 新增 async 空对象解构

* fix(review-feedback-1981): 按仓库规范在 PR 描述或评论中附市场结构卡片的可访问截图,并同步当前 diff 统计和 CI 结果

* fix(review-feedback-1981): 消除当前运行结果对历史持久化成功的依赖,补充对应回归测试,并补齐可访问的 UI 截图及更新失真的 PR 描述

* fix(review-feedback-1981): src/utils/data processing.py 提取榜单时丢弃了上游 boards / concept boards 的

* fix(review-feedback-1981): 修正 PR 描述并补齐可访问的视觉证据

* fix(review-feedback-1981): 关闭市场结构前置数据获取可能阻塞主分析的问题,并同步修正 PR 描述、范围清单和视觉证据

* fix(review-feedback-1981): 将 PR 描述、完整范围、当前 CI 证据、视觉证据及回滚表述同步到最新 Head

* fix(review-feedback-1981): PR 描述与最新 Head 不一致:完整 diff 包含 38 个文件及 src/services/analysis

* fix(review-feedback-1981): 按最新 Head 同步 PR 描述,并补充可访问的市场结构卡片截图证据

* fix(review-feedback-1981): 统一即时响应与历史响应的 details.raw result 契约并补最终 API 回归测试,同时更新 PR 描述和可访问的视觉证据

* fix(review-feedback-1981): 将 PR 描述、完整范围、CI 结果及可访问的 UI 截图同步到最新 Head,消除描述与实际改动的实质性不一致

* fix(review-feedback-1981): 同步 PR 描述与最新 Head,并补充可访问的 Web 页面截图

* fix(review-feedback-1981): 同步 PR 描述并按仓库规范附上可访问的 Web 页面截图

* fix(review-feedback-1981): 代码结论 :不可。已按 origin/main...76b5b596fdff 的完整 38 文件 diff 重新建立基线。上次 6 个

* fix(review-feedback-1981): 代码结论 :不可。最新修复已正确收窄无成分股、无龙头证据的原生榜单路径:该路径现在返回 edge/partial,不再直接输出
2026-07-12 11:30:59 +08:00
zhulinsen
01ebf70a10 feat: add reliable home watchlist workspace (#1984)
* feat: add reliable home watchlist workspace

* fix(review-feedback-1984): Don't trust stale stock-bar rows after refresh failures

* fix(review-feedback-1984): apps/dsa-web/src/stores/stockPoolStore.ts 的 refreshStockBar

* fix(review-feedback-1984): Clear loading when refresh supersedes initial stock-bar load

* fix(review-feedback-1984): Type stock-bar test fixtures as StockBarItem and 跟进结论 - 结论 :不接受;最新

* fix(review-feedback-1984): tying the Today fetch to the same refresh path while this tab is
2026-07-11 21:45:04 +08:00
zhulinsen
093057a11b fix: 统一报告动作展示口径 (#1982)
* fix: unify report action display

* fix(review-feedback-1982): add Korean action labels or fall back before returning display action

* fix(review-feedback-1982): Derive signal metadata from resolved actions

* fix(review-feedback-1982): Derive history signal metadata from resolved actions

* fix(review-feedback-1982): Derive renderer emojis from resolved actions

* fix(review-feedback-1982): src/notification.py:2838:build stock summary 先得到 display

* fix(review-feedback-1982): 将 PR 正文同步到最新 head,确保范围、验证结果与实际 diff 一致

* fix(review-feedback-1982): 将 GitHub PR 正文同步到当前 head,并修正 docs/CHANGELOG.md 中不准确的审查过程记录
2026-07-11 14:04:34 +08:00
ObVious55
d08374898c feat(agent): 在决策合成前增加低敏多 Agent 分歧摘要 (#1973)
* feat(agent): add low-sensitive disagreement summary

* fix(agent): avoid treating risk-clear signals as bullish

* fix(agent): align disagreement summary with runtime contracts
2026-07-10 22:22:35 +08:00
Alfred
7c17a242f0 feat: field decision signal profiles (#1967) 2026-07-10 22:05:10 +08:00
Alfred
aa513135d6 feat: add internal DSA tool surface (#1943) 2026-07-08 22:12:24 +08:00
Gach-Coder
16ff3e743f feat: 子Agent 独立超时配置(#1929) (#1961)
* feat: 子Agent 独立超时配置(#1929)

* fix: 子Agent超时钳位在无Pipeline预算时独立生效(#1929)

* test: 新增子Agent超时钳位回归测试(#1929)
2026-07-08 21:52:48 +08:00
Tom
bfdee03241 update anspire for web link (#1955)
* update anspire info

* update anspire for web link

---------

Co-authored-by: xiaowei <4775987@qq.com>
2026-07-07 21:34:31 +08:00
Sam Smith
a3c039ac13 feat: add feishu file upload support for report delivery (#1932)
* feat: add feishu file upload support for report delivery

- Add FEISHU_SEND_AS_FILE config option to switch from text to file delivery
- Implement FeishuSender.send_feishu_file() with App Bot SDK upload + webhook fallback
- Integrate file upload path into pipeline dashboard notification loop
- Integrate file upload path into NotificationService.send_report()
- Add save_and_send_feishu_file() convenience wrapper
- Add .env.example entry and CHANGELOG.md record

* fix: restrict feishu file mode to report routes and wire into workflow

- Limit FEISHU_SEND_AS_FILE to route_type=None or 'report' in
  _send_to_static_channel, preventing alert/event paths from
  unexpectedly saving alerts as files (Codex review P2).
- Add FEISHU_SEND_AS_FILE env var to .github/workflows/00-daily-analysis.yml
  so the setting is available in scheduled runs (Codex review P2).
- Add 13 tests: 7 FeishuSender unit tests (send_feishu_file webhook/App Bot
  paths), 6 NotificationService integration tests (route_type filtering)

* fix: address round-2 review blockers

Correctness:
- Remove route_type=None file-mode fallback; only explicit
  route_type='report' triggers Feishu file delivery
  (api/v1/endpoints/agent.py calls send() without route_type)

Compatibility:
- Isolate CreateFileRequest/CreateFileRequestBody imports from
  CreateMessageRequest; add FEISHU_FILE_SDK_AVAILABLE flag
  so old lark-oapi without file-upload classes won't break
  existing App Bot text messaging

Test fix:
- Fix webhook test assertion: # Test Report -> **Test Report**
  (format_feishu_markdown converts markdown headings to bold)

Documentation:
- Add FEISHU_SEND_AS_FILE to docs/notifications.md config table
- Add file-send section to docs/bot/feishu-bot-config.md
  (permissions, deps, webhook fallback, route scope, CI mapping)
- Add FEISHU_SEND_AS_FILE to docs/full-guide.md and
  docs/full-guide_EN.md config tables
- Add Feishu file create OpenAPI link to docs/notifications.md

* docs: fix feishu_sender drift and document config entry boundary

- Fix outdated '本轮未改动 feishu_sender.py' line in docs/notifications.md
  (we added send_feishu_file to feishu_sender.py)
- Document FEISHU_SEND_AS_FILE as .env/Actions-only in
  docs/bot/feishu-bot-config.md (not exposed in Web/Desktop settings)

* feat: add FEISHU_SEND_AS_FILE to system_config_service env mapping

- Add FEISHU_SEND_AS_FILE -> feishu_send_as_file (bool) mapping
  alongside FEISHU_MAX_BYTES in the notification env key mapping
- Update docs/bot/feishu-bot-config.md to reflect standard config paths

* test: add non-mock SDK import smoke test for file upload classes
2026-07-06 21:26:19 +08:00
zhulinsen
267c2139ae docs: clarify data source configuration (#1935) 2026-07-05 20:57:42 +08:00
Alfred
36f03c06e2 feat: add decision signal stock context (#1925)
Co-authored-by: zhulinsen <42829555+ZhuLinsen@users.noreply.github.com>
2026-07-05 19:22:23 +08:00
zhulinsen
01addc6318 refactor: simplify settings page layout (#1923)
* refactor: simplify settings page layout

* refactor: refine settings responsive layout

* fix(review-feedback-1923): docs/CHANGELOG.md 未更新
2026-07-05 19:20:13 +08:00
zhulinsen
523c7b00de fix: keep WebUI bind options consistent (#1922)
* fix: keep WebUI CLI bind options authoritative

* fix(review-feedback-1922): apps/dsa-web/src/locales/settingsHelp.ts 未随本次 CLI/WebUI 绑定语义更新
2026-07-05 19:19:10 +08:00
Gach-Coder
a43daa4331 Merge pull request #1889 from Gach-Coder/docs/add-data-source-guide
docs: 在 README 快速开始中添加行情数据源配置说明 (get259#1775)
2026-07-05 19:17:13 +08:00
Shlok Goyal
34f02af617 Ci/dingtalk GitHub actions (#1918)
* ci: map DingTalk secrets to daily analysis workflow

* docs: sync github actions documentation table for DingTalk

* docs: add changelog entry for DingTalk GitHub Actions mapping
2026-07-04 21:46:28 +08:00
zhulinsen
c1a324d208 feat: add opt-in intelligence auto fetch (#1913)
* feat: add opt-in intelligence auto fetch

* fix(review-feedback-1913): waiting for or sharing the in-flight refresh result instead of

* fix(review-feedback-1913): 补齐 workflow 显式映射,或在文档/PR scope 中明确该开关暂不适用于仓库自带默认 workflow

* docs: clarify intelligence auto fetch workflow scope

* fix(review-feedback-1913): 修复自动刷新读取全局配置而非当前分析配置的问题
2026-07-04 15:03:05 +08:00
Tom
2585f8ab92 update anspire info (#1915)
Co-authored-by: xiaowei <4775987@qq.com>
2026-07-04 14:42:25 +08:00
zhulinsen
8ff8124990 fix: speed up portfolio snapshot loading (#1914) 2026-07-04 12:10:41 +08:00
zhulinsen
a3e1b9e3ba fix: normalize watchlist separators (#1912) 2026-07-04 11:57:43 +08:00
zhulinsen
1ed0d34496 fix: normalize desktop wildcard bind hosts (#1901)
* fix: normalize desktop wildcard bind hosts

* fix(review-feedback-1901): 修正 docs/CHANGELOG.md 中与本 PR 无关/疑似已发布条目的范围漂移

* fix: address PR 1901 review feedback

* fix: remove stale changelog entries from PR 1901
2026-07-04 10:49:55 +08:00
zhulinsen
35e16b0c6f fix: handle incomplete Agent streams (#1899)
* fix: handle incomplete agent streams

* docs: trim changelog for agent stream fix
2026-07-04 09:45:21 +08:00
zhulinsen
282efa18e1 fix: preserve zero sentiment score alignment (#1900)
* fix: preserve zero sentiment score alignment

* fix(review-feedback-1900): 修正 docs/CHANGELOG.md 中与本 PR 无关的条目,避免把未包含在当前 diff 的功能/修复写入本 PR and
2026-07-04 09:23:18 +08:00
zhulinsen
77911efbc5 docs: prepare v3.25.0 changelog v3.25.0 2026-07-03 21:05:03 +08:00
zhulinsen
afbab3e717 fix: honor WEBUI_HOST for desktop backend binding (#1897)
* fix desktop WebUI host binding

* fix desktop dotenv host parsing
2026-07-03 21:01:22 +08:00
zhulinsen
a52c8502d7 fix: harden AlphaSift timeout handling (#1898) 2026-07-03 21:00:12 +08:00
zhulinsen
83b8154d0a fix: 评分建议过度归为持有,需收敛 hold/watch/buy/sell… (#1885) (#1887)
* fix(issue-1885): [bug]-评分建议过度归为持有,需收敛-hold/watch/buy/sell

* fix(review-feedback-1887): 澄清/修正评分与 action 的契约一致性问题,并补齐高风险路径的验证说明

* fix(review-feedback-1887): 补一句排除说明,避免和 AGENTS 对外部依赖/运行时配置变更需说明兼容、迁移与回退路径的要求产生歧义

* fix(review-feedback-1887): CI 当前未通过:结构化事实显示 backend-gate:failure,PR 描述中的本地验证也写明 test:TIMEOUT
2026-07-03 20:24:13 +08:00
zhulinsen
1a06568e4e fix: add jp kr closing auction phase windows (#1875) 2026-07-03 20:14:17 +08:00
zhulinsen
d70af7eafb fix(issue-1894): [bug]-回测时获取数据异常 (#1895) 2026-07-03 19:53:31 +08:00
Shlok Goyal
5a6c08b5f1 feat: 添加钉钉机器人支持 (Add DingTalk Notification Support) (#1878)
* feat: 添加钉钉机器人支持

* fix: chunk DingTalk payloads over the webhook limit

* docs: fix changelog format and update full-guide for DingTalk

* fix: reserve 1KB budget for DingTalk JSON payload overhead and add chunking unit tests

* test: add strict json payload byte assertion for DingTalk limits and truncate titles

---------

Co-authored-by: zhulinsen <42829555+ZhuLinsen@users.noreply.github.com>
2026-07-03 19:47:07 +08:00
sh1water
116d09e727 feat(agent): standardize stream progress events (#1871)
* feat(agent): standardize stream progress events

* docs(agent): document stream progress events

* docs: sync changelog with upstream main

* fix(web): render failed agent stages as non-success

* fix(agent): align stream stage lifecycle

* test(agent): stabilize timeout stream event clock

* fix(agent): split budget skip stream event

* docs(agent): document budget skip stream event

---------

Co-authored-by: Hzf <huangzhenfan666@163.com>
2026-07-03 19:37:51 +08:00
Alfred
7b39b73b9d feat: add generation backend status diagnostics (#1883) 2026-07-03 19:34:43 +08:00
zhulinsen
a47952047f [autocode] fix: format market review metrics (#1880)
* fix: format market review metrics

* fix(review-feedback-1880): 收敛 changelog 的无关变更,并补齐受影响页面/测试入口的一致性验证

* fix: format market review metrics consistently

* fix(review-feedback-1880): 澄清外部模型/API 兼容风险提示来源,或补齐对应官方依据、运行时兼容验证、迁移/回退路径
2026-07-03 19:34:10 +08:00
zhulinsen
52afa95103 docs: 更新台股支持文档入口 (#1884)
* docs: update Taiwan stock support docs

* docs: simplify README market coverage
2026-07-02 22:50:02 +08:00