Skip to content

chore(D-12): PR #86 review 遗留 follow-ups(3 项,非阻塞) #87

Description

@mirror29

PR #86(D-12 信号多样性 + 优化循环)5 轮 CR 收敛时记下的遗留项,均非该 PR 范围、不阻塞,单独跟进。

1. _confidence_cap 改为返回值传递(消除可变实例状态)

Analyst.run() 依赖 build_user_prompt 先设置 self._confidence_cap,是隐式时序依赖。当前安全(runner.py 每次 deep_dive 新建实例、每实例一次 run()),但若未来加重试/缓存实例/装饰器绕过 build_user_prompt,cap 会变 None 或残留上次值,静默不 clamp。

  • 修法:build_user_prompt 返回 tuple[str, float | None](user_prompt, cap),run() 从返回值读 cap。
  • 影响面:analysts/base.py abstract 签名 + technical/fundamental/macro/risk/sentiment/valuation + persona base 共 ~7 处。

2. akshare 8 个财务质量字段接入 _FINANCIAL_LABELS(供应链红旗渲染)

connectors/akshare.py 已 fetch operating_cashflow / ocf_per_share / inventory_turnover / inventory_days / receivables_turnover / receivables_days / current_ratio / quick_ratio,但 analysts/utils.py:_FINANCIAL_LABELS 没这些 key → render_financial_indicators 永远不渲染 → LLM 看不到,serenity「供应链瓶颈红旗检查」形同虚设。

  • 修法:补 label;注意 current_ratio / quick_ratio 是倍数不是百分比,不进 _FINANCIAL_PCT_KEYSoperating_cashflow 金额需决定 B/M 格式化。
  • 属 serenity 供应链方法论那条线的渲染设计,需定哪些该进 prompt。

3. BacktestRequest._exactly_one_strategy_source 互斥用 is not None

PR #86 已修 SensitivityRequestbool(strategy_id)is not Nonestrategy_id="" 误判),但 schemas.pyBacktestRequest(D-9 既有)还是 bool(),同款问题。

  • 修法:一行,与 SensitivityRequest 对齐。

来源:PR #86 第 3/4/5 轮 CR;merge commit 84b8748

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions