Commit Graph

773 Commits

Author SHA1 Message Date
mumu
3b5ef16144 feat: harden AlphaSift data source routing (#1680)
* feat: harden alphasift data source routing

* fix(review-feedback-1680): Keep the sample AlphaSift pin in sync and Avoid circuit-breaking

* fix(review-feedback-1680): Defer half-open health checks until a source is attempted and Treat

* fix(review-feedback-1680): fix only bypasses this branch for fetchers that opt into allow empty

* fix(review-feedback-1680): Avoid accepting truncated Tencent histories

* fix(review-feedback-1680): 修正 .env.example 的 AlphaSift 快照源默认说明,并避免在 docs/CHANGELOG.md

* fix(review-feedback-1680): src/config.py、src/services/alphasift service.py

* fix(review-feedback-1680): requirements.txt、src/config.py、.env.example、src/services/alphasift

* fix(review-feedback-1680): 修复 TencentFetcher 对显式历史窗口的处理问题

* fix(review-feedback-1680): Check the cap was hit before rejecting Tencent history

* fix(review-feedback-1680): Use Tencent's hyphenated date format and Convert Tencent daily volume

* fix(review-feedback-1680): Accept the executor timeout argument and preserve capped windows with

* fix: limit empty daily data opt-in behavior

* docs: restore AlphaSift 3.22 changelog entry
2026-06-14 18:47:41 +08:00
Alfred
6d4c93d2b7 feat: extract decision signals from analysis reports (#1686) 2026-06-14 18:26:30 +08:00
LouisHong
145ee6b5a5 fix: [issue #1652] stabilize run-flow live states and layout polish (#1682)
* fix: polish run-flow topology layout and i18n

* fix: prevent task panel layout squeeze

* test: update run flow frontend coverage

* fix: isolate market context run flow

* fix: handle completed task flow refresh

* feat: show running run-flow nodes

* fix: show chip provider runs in flow

* fix: stabilize stock run flow live updates

* fix: refine run-flow history lookup and spacing

* fix: update run-flow edge states and layout gaps

* fix: polish run-flow task panel text
2026-06-14 17:57:16 +08:00
mumu
b9f5989a21 fix(issue-1683): [bug]-发布说明生成在作者查询失败时缺少诊断日志 (#1684) 2026-06-14 17:55:52 +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 v3.22.0 2026-06-13 19:01:57 +08:00
mumu
a81dc3b4af fix: optimize alphasift hotspot details (#1677) 2026-06-13 18:57:43 +08:00
mumu
89fab774f6 fix: 过滤低质量股票新闻结果 (#1674)
* fix: filter low-quality stock news results

* fix: filter adult spam news results

* fix(review-feedback-1674): Require content evidence before dropping URL-only hits and Match

* fix(review-feedback-1674): Move admission filtering before dimension limiting

* fix(review-feedback-1674): Match app/download terms as tokens before filtering

* fix(review-feedback-1674): Recognize Chinese numeric ratings in app-page filter

* fix(review-feedback-1674): 收敛后再合入

* fix(review-feedback-1674): 收敛后再合入

* fix: tighten stock news admission signals

* fix: narrow noisy news admission heuristics

* fix: handle app metric news admission

* fix: require context for app listing spam

* fix: preserve app metric news results

* fix: require strong app spam evidence

* fix: honor official source labels

* fix: preserve official labels and app metrics

* fix: detect separated adult contact ids

* fix: preserve app metrics and service news

* fix: match alphanumeric adult contacts

* fix: require adult spam solicitation signals

* fix: preserve neutral mobile app metrics

* fix: reduce app and adult false positives
2026-06-13 15:19:44 +08:00
mumu
3902670f02 docs: add README tutorial links (#1676) 2026-06-13 15:19:04 +08:00
mumu
ecc370e50b feat: adapt AlphaSift hotspot contract (#1675)
* feat: adapt alphasift hotspot contract

* fix(review-feedback-1675): update sample install spec with new allowed pin

* fix(review-feedback-1675): 补充 “revert 本 PR / 恢复旧 AlphaSift pin” 级别的回滚说明,并明确无关联 issue 或补充 Refs

* fix: harden alphasift hotspot metadata migration

* fix(review-feedback-1675): preserve hotspot route events in the new detail path

* fix(review-feedback-1675): 修正旧 AlphaSift pin 回滚/重装路径说明,避免运维按文档操作时被 install allow-list 拒绝

* fix(review-feedback-1675): src/services/alphasift service.py:当 AlphaSift v2 detail payload

* fix(review-feedback-1675): 补对应回归测试
2026-06-13 14:46:18 +08:00
mumu
a82ae51ca8 feat: enable daily market context by default (#1673) 2026-06-13 10:58:18 +08:00
mumu
716128d1d2 fix: avoid live AlphaSift hotspot import on cache miss (#1671) 2026-06-13 10:34:07 +08:00
LouisHong
65d698b970 feat: [issue #1652] improve run-flow topology drilldown (#1657)
* feat: improve run-flow topology model and drilldown

* fix: tighten run-flow topology review handling

* fix: prevent live run-flow reverse provider edges
2026-06-13 10:33:40 +08:00
mumu
0db0c78da8 feat: 个股分析接入当日大盘上下文 (#1623)
* feat: add daily market context for stock analysis

* fix(review-feedback-1623): Share the market context service across worker threads and Use the

* fix(review-feedback-1623): Avoid overwriting per-region context reports and Expand history lookup

* fix(review-feedback-1623): add position even though the guardrail supposedly softened the

* fix(review-feedback-1623): Avoid generating the CLI market review twice

* fix(review-feedback-1623): 修正

* fix(review-feedback-1623): 修复普通 CLI/调度运行中大盘复盘被上下文预热摘要替代的问题,并收敛 PR 描述与当前实现范围

* fix(review-feedback-1623): 修正保守护栏的误判风险,并同步收敛 PR 描述范围

* fix(review-feedback-1623): 处理并发生成大盘上下文的锁语义风险,并澄清/补充外部模型或运行时配置风险检测的依据

* fix(review-feedback-1623): 收敛大盘上下文预热对用户可见大盘复盘的行为影响,并补齐外部模型/API 与运行时配置检测风险的澄清或验证证据

* fix(review-feedback-1623): Do not skip multi-market reviews after one cached context and Do not

* fix(review-feedback-1623): Prime context with the effective trading date

* fix(review-feedback-1623): 收敛 PR 描述与实际 diff 的范围不一致,并澄清结构化检测提示的 provider/model/base

* fix(review-feedback-1623): 补一句“本 PR 不修改 LLM provider/model/base url、默认模型、配置清理或迁移逻辑”,避免后续审查继续误判

* fix(review-feedback-1623): 收敛 PR 描述与实际 diff 的范围矛盾

* fix(review-feedback-1623): 补齐这些承诺的实现

* fix(review-feedback-1623): 收敛 PR 描述与实际 diff 范围,避免以未实现能力作为验收项

* fix(review-feedback-1623): 收敛 PR 描述与实际范围,并澄清外部模型/API 与运行时配置检测风险

* fix(review-feedback-1623): Match freshly saved reviews to the target trade date

* fix(review-feedback-1623): preserve structured market-light risk signals

* fix(review-feedback-1623): Escape market-summary sentinels before prompting

* fix(review-feedback-1623): 修复同日缓存复用时把低敏摘要当完整大盘复盘输出的行为风险,并收敛 PR 描述与实际 diff

* fix(review-feedback-1623): 收敛

* fix(review-feedback-1623): 收敛 PR 描述与实际 scope

* fix(review-feedback-1623): 修正大盘复盘复用语义,并让 PR 描述与实际 scope 对齐

* fix(review-feedback-1623): 修正同日大盘上下文缓存复用语义,并让 PR 描述与实际 scope 对齐

* fix(review-feedback-1623): Disable cached market context when skipping market review

* fix(review-feedback-1623): 收敛 PR 描述与实际 scope,并补充外部模型/API 与运行时配置语义未变化的可核验证据

* fix(review-feedback-1623): 修正 PR 描述与实际 scope 的实质性不一致,并补齐或澄清 LLM/provider/model/base URL

* fix(review-feedback-1623): 修正 operation advice 契约漂移,并让 PR 描述/验收范围与当前实际 diff 对齐

* fix(review-feedback-1623): 收敛 main.py 中大盘复盘复用导致的通知/执行语义变化,并补对应回归测试

* fix(review-feedback-1623): 修复生成型大盘上下文未绑定当前 query id 的行为风险,并收敛 PR body 与实际 diff 范围

* fix(review-feedback-1623): 修复缓存语言匹配问题,并收敛 PR 描述与实际 diff/验收范围的一致性

* fix(review-feedback-1623): 收敛当前实现与描述/文档中的验收边界,并澄清 schedule/CLI 首次运行无历史大盘复盘时是否应生成并注入上下文

* fix(review-feedback-1623): 收敛 PR 描述与 docs/CHANGELOG.md 中关于验收边界的表述,避免与实际 diff 实质性矛盾

* fix(review-feedback-1623): 修正 PR 描述与实际 diff 的范围漂移

* fix(review-feedback-1623): Reuse the cached runtime market context on fallback

* fix(review-feedback-1623): PR 描述:当前完整改动文件列表没有 api/ 、apps/dsa-web/ 、日报状态表或四阶段日报持久化相关实现,但 PR

* fix(review-feedback-1623): 收敛描述范围

* fix(review-feedback-1623): 收敛并发生成复用路径的正确性风险,并修正 PR 描述的实际范围与验收项

* fix(review-feedback-1623): 收敛描述和验收范围

* fix(review-feedback-1623): PR 描述的 Background / Acceptance Criteria 仍包含独立 API、Web

* fix(review-feedback-1623): 收敛 PR 描述与实际实现边界,并补齐 LLM/provider/base url 相关兼容性说明或验证证据

* fix(review-feedback-1623): PR 描述与实际 diff 范围不一致:描述和验收项仍写有独立 API、Web

* fix(review-feedback-1623): Wait long enough for in-flight market reviews

* fix(review-feedback-1623): 修复共享 market review lock 释放后仍不生成匹配上下文的行为风险,并同步收敛 PR description 的实际范围

* fix(review-feedback-1623): 修复锁竞争 fallback 下丢失运行时服务的问题,并同步收敛 PR description 与实际 diff 范围

* fix(review-feedback-1623): 收敛 PR description 与实际改动范围

* fix(review-feedback-1623): PR 描述与实际 diff 存在实质性矛盾:描述声称提供独立 API、Web

* fix(review-feedback-1623): reuse runtime market context and handle English negations

* fix: honor daily market context config

* docs: remove unrelated changelog entries

* fix(review-feedback-1623): preserve the skipped market-review artifact

* fix(review-feedback-1623): add low position cap and are not in CONSERVATIVE TEXT MARKERS , so an
2026-06-13 10:33:04 +08:00
mumu
4b3f679b2d feat: adapt AlphaSift hotspot topics (#1635)
* feat: adapt AlphaSift hotspot topics

* fix(review-feedback-1635): preserve cached hotspots when refresh returns no rows and Avoid

* fix(review-feedback-1635): Reload detail when refreshing the selected hotspot and Fall back when

* fix(review-feedback-1635): update by the requested topic or a request token

* fix(review-feedback-1635): preserve analysis when optional serve startup fails and Fall back when

* fix(review-feedback-1635): 当前 CI 状态为 failure,且 backend-gate 为 cancelled、docker-build 为 skipped

* fix(review-feedback-1635): 让 backend-gate / docker-build 在当前 head 上完成并通过,或给出可接受的维护者级豁免说明

* fix(review-feedback-1635): 当前 CI 仍未闭环:结构化事实显示 backend-gate 被取消、docker-build skipped

* fix(review-feedback-1635): 修复 hotspot detail 的上游 schema 容错问题,并让当前 head 的阻断 CI 重新跑通

* fix(review-feedback-1635): docs/CHANGELOG.md:当前 diff 不是在 [Unreleased] 扁平格式下追加本 PR

* fix(review-feedback-1635): CI 闭环未完成:结构化事实显示当前 CI 状态为 failure,backend-gate cancelled、docker-build

* fix(review-feedback-1635): 让当前 head 的阻断型 CI 完整通过,并修正文档中的 AlphaSift commit hash 不一致

* fix(review-feedback-1635): CI 仍未在当前 head 完整通过:结构化事实显示

* fix(review-feedback-1635): 修复 docs/CHANGELOG.md 对主线既有 [Unreleased] 条目的删除,并补齐 AlphaSift

* fix(review-feedback-1635): Accept slash-containing hotspot topics

* fix(review-feedback-1635): Try industry constituents for industry hotspots

* fix(review-feedback-1635): Clear old hotspot details when loading a new topic and preserve the

* test: isolate main schedule environment

* chore: clean AlphaSift PR scope

* fix: respect AlphaSift hotspot fallbacks
2026-06-12 22:38:42 +08:00
LouisHong
efa41e0ada feat: [issue #1652] add live run-flow diagnostics (#1656)
* feat: add live run-flow updates and diagnostics

* feat: update task status filter to include 'cancel_requested'

* feat: enhance run-flow diagnostics and task management with cancel-requested status handling

* fix: stabilize run flow live updates

* fix: align live run-flow review contracts

* fix: sanitize live run-flow events
2026-06-12 20:58:58 +08:00
Alfred
4082c0d012 改进: 补充 #1390 P1 DecisionSignal 前端契约与隔离测试 (#1666)
* feat: add decision signal web contract wrapper

* fix: reject unsupported decision signal latest paths

* fix: tighten decision signal list response contract
2026-06-11 22:13:24 +08:00
LouisHong
f7ac00bda9 feat:[issue #1652] add web run-flow viewer (#1654)
* feat: add web run-flow viewer

* docs: document run-flow web viewer contracts

* fix: add market review run flow entry
2026-06-11 22:08:55 +08:00
LouisHong
fa9d9b0084 feat: [issue #1652] add run-flow snapshot contract and APIs (#1653)
* feat: add run-flow snapshot contract and APIs

* fix: address run-flow contract review notes

---------

Co-authored-by: mumu <42829555+ZhuLinsen@users.noreply.github.com>
2026-06-10 22:50:35 +08:00
volcanoAlbert
f587459ed1 feat: add portfolio account archive action 持仓管理页面添加账户删除功能 (#1647)
* feat: add portfolio account archive action

* fix: exclude archived accounts from risk snapshots
2026-06-10 22:48:08 +08:00
Alfred
ad15ebcec5 feat: 新增 DecisionSignal 持久化 API(#1390 P1) (#1645)
* feat: add decision signal persistence api

Refs #1390

* fix: handle HK decision signal filters without market
2026-06-10 22:46:33 +08:00
Alfred
da274f7061 fix: 锁定问股追问的当前标的上下文 P2 (#1619)
* fix: keep ask-stock follow-ups scoped

* fix: normalize watchlist stock comparisons

* docs: document watchlist stock code equivalence

* fix: tighten ask-stock tool scope guard

* fix: close ask-stock review gaps

* fix: close ask-stock review gaps
2026-06-10 22:45:58 +08:00
LouisHong
4f536026f8 fix: clarify runtime logging context (#1643)
* fix: clarify market review logging context

* docs: update changelog for logging context
2026-06-09 01:08:55 +08:00
Alfred
ff6494b5d7 feat: 新增建议动作 taxonomy 字段边界 P0 (#1631)
* feat: add decision action taxonomy fields

* fix: tighten decision action fallback handling

* fix: align legacy decision action guard fallback

* fix: tighten legacy decision action word boundaries

* fix: align decision action compound parsing

* fix: clean decision action residue

* fix: align web action label contract

* fix: classify avoided sell actions as hold
v3.21.1
2026-06-08 07:24:07 +08:00
mumu
e2fe6e3056 fix: verify packaged AlphaSift adapter at runtime (#1637)
* fix: verify packaged AlphaSift adapter at runtime

* fix(review-feedback-1637): Wait for the windowed probe process

* fix(review-feedback-1637): 收敛 docs/CHANGELOG.md 的范围漂移/描述不一致问题

* fix(review-feedback-1637): 收敛 docs/CHANGELOG.md 的无关历史改动,只保留本 PR 对 [Unreleased] 的新增修复条目
2026-06-08 07:21:59 +08:00
zhulinsen
40c5c75b2e chore: prepare v3.21.0 release v3.21.0 2026-06-07 22:41:33 +08:00
mumu
12a7e6d3c7 fix: make AlphaSift screening recoverable (#1628)
* fix: make AlphaSift screening recoverable

* fix(review-feedback-1628): Keep polling state across transient status errors
2026-06-07 16:22:36 +08:00
mumu
513271bd5f fix(issue-1626): [bug]-web-英文界面仍残留中文文案 (#1632) 2026-06-07 16:08:43 +08:00
mumu
8909168a64 fix: run manual market review on non-trading days (#1627) 2026-06-07 09:39:00 +08:00
mumu
649f7757ae chore: remove one-off PR screenshot assets (#1625)
* chore: remove one-off PR screenshots

* chore: remove one-off issue screenshots
2026-06-06 22:54:41 +08:00
mumu
d704fe377d feat: add Web UI language switch (#1621)
* feat: add Web UI language switch

* fix(review-feedback-1621): 补充 zh/en 切换后的登录页、首页、设置页和侧边导航截图或可访问构建预览证据

* fix(review-feedback-1621): 补对应回归测试

* fix(review-feedback-1621): Pin the smoke test's initial language

* fix(review-feedback-1621): Web UI 改动缺少截图或等价可视证据

* fix(review-feedback-1621): 补一个 storage accessor 抛错时 fallback 到 zh 或 navigator 语言的回归测试

* fix(review-feedback-1621): 修复前端 lint/build 失败并补齐 Web 验证证据

* fix(review-feedback-1621): apps/dsa-web/ :本 PR 新增语言切换入口并改动

* fix(review-feedback-1621): 解决冲突

* fix(review-feedback-1621): 解决冲突,并补齐 Web UI 变更的可视证据与 Web 侧验证说明

* fix(review-feedback-1621): 解决冲突并重新确认 diff 与 CI 结果

* fix(review-feedback-1621): 解决冲突

* fix(review-feedback-1621): add a file-level test

* fix: complete Web UI language switch evidence

* fix(review-feedback-1621): 确认设置页英文字段 label 语义回归、Playwright smoke locale 稳定性,以及结构化检测命中的外部模型/API

* fix(review-feedback-1621): 修正 PR 描述与实际实现不一致,并补齐 Playwright smoke 验证结果或明确未执行原因

* fix: complete web language behavior

* fix(review-feedback-1621): src/services/task queue.py / src/services/analysis service.py /

* fix: honor market review request language

* fix(review-feedback-1621): Keep UI language from overriding report language and Use localized

* fix(review-feedback-1621): docs/full-guide.md / docs/full-guide EN.md 把 PR 评审证据、执行命令、沙箱

* fix(review-feedback-1621): 修正 PR 描述与当前实现不一致的问题,并补齐运行时模型配置相关的兼容性/迁移证据

* fix(review-feedback-1621): 收敛后再合入
2026-06-06 21:45:20 +08:00
mumu
617b11d62d fix: restore market review in stock bar (#1620)
* fix: restore market review in stock bar

* fix(review-feedback-1620): Refresh market history non-silently after deleting MARKET
2026-06-06 10:03:17 +08:00
mumu
1e94490953 fix: widen analytical intel search lookback (#1615)
* fix: widen analytical intel search lookback

* fix(review-feedback-1615): 澄清或修正分析类 180 天目标窗口在 provider 粗粒度映射下可能实际扩大到 1 年的问题
2026-06-06 06:49:38 +08:00
mumu
2f26042b05 fix: 报告页运行诊断与输入数据块状态口径不一致 (#1602) (#1603)
* fix(issue-1602): [bug]-报告页运行诊断与输入数据块状态口径不一致

* fix: clarify report diagnostics evidence scope

* fix(review-feedback-1603): 更新 PR body,使范围、验证、兼容性风险和回滚说明与当前 head 一致
2026-06-05 23:19:52 +08:00
mumu
3153c764a4 fix: 收敛多股通知摘要的市场状态展示 (#1612)
* fix: compact aggregate report market status

* fix(review-feedback-1612): preserve input order when selecting market status

* chore: rerun review after clarifying PR scope
2026-06-05 22:47:39 +08:00
mumu
8a77960bcb docs: require screenshots for visual PR changes (#1613) 2026-06-05 22:04:50 +08:00
fzxiong
39f24df60b 代码健康修复:稳定测试、健康检查、错误响应与 schema 版本记录 (#1607)
* fix(api): return json from root health endpoint

* test(web): stabilize vitest runtime setup

* chore(security): warn on public web exposure without auth

* refactor(api): centralize error response helpers

* chore(db): record baseline schema version

* refactor(web): extract portfolio formatting helpers

* fix(db): make schema baseline initialization idempotent

* docs: document health check and schema baseline changes
2026-06-05 21:26:06 +08:00
Delicious233
3471afbd98 feat: add Feishu App Bot notification sender with P2P and group support (#1553)
* feat: add Feishu App Bot notification sender with P2P and group support

The existing FeishuSender only supports custom robot Webhook mode.
This commit extends it to support App Bot (lark-oapi SDK) mode, auto-routing
between webhook (priority) and App Bot when FEISHU_APP_ID + FEISHU_APP_SECRET
+ FEISHU_CHAT_ID are configured.

Design:
- send_to_feishu() routes: webhook if URL set, else App Bot
- DCLP lazy client init with thread-safe sentinel guard
- Retry (3 attempts, exponential backoff) with fixed UUID for idempotency
- Card-first / text-fallback content strategy
- Chunking for long messages
- Runtime enum validation for FEISHU_RECEIVE_ID_TYPE and FEISHU_DOMAIN
- Safe SDK defaults (FEISHU_DOMAIN/LARK_DOMAIN) before import try-block
  so Webhook path never depends on lark-oapi SDK presence
- Config, diagnostics, setup check, notification test, and CI workflow
  all consistent with the new App Bot channel semantics
- lark-oapi>=1.0.0 already in requirements.txt (line 23)

Verification:
- 20/20 unit tests pass (help metadata + FeishuSender)
- E2E: real Feishu API — SDK import, token, client init, P2P text+card send all PASS
- Webhook regression: verified no SDK dependency for existing Webhook path

* fix: add missing Feishu App Bot locale entries and env table keys, harden sender error handling

CI fix 1 (test_registry_help_keys_exist_in_locales):
- Add zh-CN and en-US locale entries for FEISHU_CHAT_ID,
  FEISHU_RECEIVE_ID_TYPE, FEISHU_DOMAIN in settingsHelp.ts

CI fix 2 (test_notification_actions_env_table_matches_generated_output):
- Add FEISHU_RECEIVE_ID_TYPE, FEISHU_DOMAIN to feishu advanced_keys
  in CHANNEL_SPECS so they appear in KEY_SPECS
- Regenerate managed env table in docs/notifications.md

feishu_sender.py hardening:
- Catch network exceptions in webhook _post_payload so card-to-text
  fallback actually executes on transient failures
- Guard response.json() and isinstance(result, dict) against
  non-JSON / non-dict HTTP 200 responses
- Extract shared _build_card_body() to de-duplicate card payload
  construction between webhook and App Bot paths
- Rename module-level lark -> _lark to avoid shadowing
- Guard resp.get_log_id() with try/except
- Add None guard on send_to_feishu content parameter

e2e script improvements:
- Support FEISHU_OPEN_ID for P2P test, FEISHU_DOMAIN for Lark
- Add FEISHU_TEST_SEND_TEXT=1 for plain-text-only path testing
- Clarify docstring: setup validation + smoke test, not full e2e

* fix: consolidate Feishu App Bot notification contract

* fix: align Feishu domain help scope

---------

Co-authored-by: mumu <42829555+ZhuLinsen@users.noreply.github.com>
2026-06-05 08:56:42 +08:00
mumu
0ca4e07b0e feat: integrate AlphaSift with DSA runtime enrichment (#1577)
* feat: integrate AlphaSift with DSA runtime enrichment

* feat: pin AlphaSift DSA provider context

* fix: clean up AlphaSift warning display

* fix(review-feedback-1577): pass the headers through a path AlphaSift actually uses, such as a

* fix(review-feedback-1577): 补齐 LLM 运行时桥接兼容性的关键证据

* fix: keep AlphaSift screening lightweight

* fix(review-feedback-1577): Populate DSA news when reusing context

* fix(review-feedback-1577): 补齐外部 LLM/LiteLLM 兼容依据,并修正 docs/CHANGELOG.md 的格式/重复条目问题

* fix(review-feedback-1577): 补齐外部模型/API 兼容依据或在 PR 正文中明确指向已更新文档中的官方来源与迁移/回退边界

* fix(review-feedback-1577): scripts/build-backend.ps1 已随本 PR 调整 AlphaSift 打包/收集逻辑,但完整改动文件列表未包含

* fix(review-feedback-1577): 处理 AlphaSift LLM bridge 对全局 LiteLLM 状态的并发污染风险

* fix: reuse DSA daily history for AlphaSift

* fix(review-feedback-1577): 补齐 --collect-all alphasift 或等价 hidden imports,并增加打包产物级导入验证

* fix(review-feedback-1577): fix the macOS AlphaSift package verifier

* fix(review-feedback-1577): scripts/build-backend-macos.sh 和 scripts/build-backend.ps1

* fix(review-feedback-1577): 处理运行时阻塞风险、CHANGELOG 删除既有条目,以及补齐外部模型/API 兼容证据

* fix(review-feedback-1577): scripts/build-backend-macos.sh:当前“Verifying packaged AlphaSift

* fix(review-feedback-1577): 收敛下面的可用性判断和外部 API/模型兼容证据缺口

* fix(review-feedback-1577): src/config.py、src/core/config registry.py、src/services/alphasift

* fix(review-feedback-1577): scripts/build-backend-macos.sh:新增的 packaged AlphaSift importability

* fix(review-feedback-1577): make the archive fallback require a dsa adapter entry or exercise the

* fix(review-feedback-1577): 处理无关测试改动,并补齐桌面打包文档/验证边界
2026-06-05 08:53:55 +08:00
Alfred
813b5d6cf0 fix: prevent stock card phase label overlap (#1605)
Co-authored-by: mumu <42829555+ZhuLinsen@users.noreply.github.com>
2026-06-05 08:52:18 +08:00
Alfred
71055c449c fix: 问股自由文本金融缩写不再误识别为股票代码 (#1604)
* fix: prevent finance abbreviations from becoming chat tickers

* fix: filter uppercase filler words in chat ticker extraction
2026-06-05 08:51:12 +08:00
mumu
8df69fe036 feat: 完善大盘复盘历史聚合、查看与删除能力 (#1580) (#1598)
* feat(issue-1580): feat:-完善大盘复盘历史聚合、查看与删除能力

* fix(review-feedback-1598): resetting the paged window or deduping the merged list before storing it

* fix(review-feedback-1598): 补齐 AGENTS.md 要求的用户可见能力文档同步
2026-06-04 22:29:20 +08:00
Alfred
e6302a0b9c docs: add #1386 P7 market-phase guide (#1597) 2026-06-04 20:30:38 +08:00
mumu
649413cf1a fix: pass SearXNG Actions variables to daily workflow (#1567) 2026-06-04 19:50:33 +08:00
mumu
d6234cd7f0 fix: clarify Docker env runtime config (#1586)
* fix: clarify Docker env runtime config

* fix(review-feedback-1586): 确认并修复启动环境变量兜底对 switch 类型配置的展示正确性,否则 Docker 用户仍可能在关键布尔配置上看到错误状态

* fix(review-feedback-1586): 修正 docs/CHANGELOG.md 的范围漂移和重复内容

* fix(review-feedback-1586): 补充说明这些值仅作为已有配置键的展示 fallback,不新增默认 provider/model/Base URL,也不会静默迁移或清空用户配置

* fix(review-feedback-1586): 确认并修复运行时注入的 LLM channel 支持键在 Settings 保存/校验路径中的一致性问题

* fix(review-feedback-1586): 修复下述运行时配置静默持久化风险

* fix(review-feedback-1586): 修复 runtime-only LLM support key 过滤逻辑对“同一 channel 部分字段来自

* fix(review-feedback-1586): apps/dsa-web/src/components/settings/LLMChannelEditor.tsx、src/services/s

* fix(review-feedback-1586): Avoid migrating runtime-only secrets on rename

* fix(review-feedback-1586): 补充该说明

* fix(review-feedback-1586): docs/CHANGELOG.md 新增说明直接引用 litellm =1.80.10,!=1.82.7,!=1.82.8,<2.0.0

* fix(review-feedback-1586): 补齐“持久化 API KEY + runtime-only API KEYS

* fix(review-feedback-1586): 收敛
2026-06-04 19:17:36 +08:00
mumu
c6221ba50e fix: avoid quoting desktop updater install directory (#1587) 2026-06-04 13:42:13 +08:00
mumu
b612fb23e4 fix: 结构化大盘复盘报告展示 (#1576)
* feat: add dedicated market review report view

* fix(review-feedback-1576): Use localized labels for English market reviews

* fix: structure market review payload rendering

* fix(review-feedback-1576): preserve market labels when rendering combined reviews and Use the

* fix(review-feedback-1576): Render structured data for every combined market and Localize

* fix: dedupe market review rendering

* test: align market review language prompt expectation

* fix(review-feedback-1576): 澄清并补足 LLM/运行时配置相关检测命中的兼容性证据

* fix(review-feedback-1576): 解决冲突并重新确认 CI

* fix(review-feedback-1576): docs/CHANGELOG.md:[Unreleased] 新增内容中除 1555 大盘复盘展示外,还包含 Agent

* fix(review-feedback-1576): 修复

* fix(review-feedback-1576): 修复美股中文大盘复盘仍混入英文策略/市场标签的问题,并补齐对应回归测试
2026-06-04 13:40:42 +08:00
Alfred
3281d96788 docs: close analysis context pack P6 (#1592) 2026-06-04 12:37:48 +08:00
Alfred
6784409183 docs: harden PR quality guardrails (#1593) 2026-06-04 09:43:30 +08:00
Alfred
9b76f8d240 feat: #1386 P6 联动告警、持仓和历史阶段摘要 (#1589)
* feat: link phase summaries across P6 surfaces

* fix: align portfolio analysis response status

* fix: stabilize backtest phase filtering

* fix: normalize portfolio analysis symbols
2026-06-04 09:17:39 +08:00