Skip to content

Superseded: Fix market review web flow - #1240

Closed
ZhuLinsen wants to merge 1 commit into
mainfrom
fix/issues-1216-1016-1126
Closed

Superseded: Fix market review web flow#1240
ZhuLinsen wants to merge 1 commit into
mainfrom
fix/issues-1216-1016-1126

Conversation

@ZhuLinsen

@ZhuLinsen ZhuLinsen commented May 9, 2026

Copy link
Copy Markdown
Owner

Superseded by split ready-for-review PRs per issue, as requested.

Original combined scope is being split into:

#1029 is already resolved in the current codebase; #956 remains separate.

@github-actions github-actions Bot added ai configuration documentation Improvements or additions to documentation size/XL testing labels May 9, 2026
@github-actions

github-actions Bot commented May 9, 2026

Copy link
Copy Markdown

🤖 自动审查报告

项目 结果
📊 变更文件 15 个
➕ 新增行数 499 行
➖ 删除行数 25 行
🔍 静态检查 ✅ 通过
🧠 AI 审查 ✅ 已完成

📁 修改的文件

  • 📝 api/v1/endpoints/analysis.py (+63/-1)
  • 📝 api/v1/schemas/analysis.py (+17/-0)
  • 📝 apps/dsa-web/src/api/__tests__/systemConfig.test.ts (+32/-1)
  • 📝 apps/dsa-web/src/api/analysis.ts (+27/-0)
  • 📝 apps/dsa-web/src/api/systemConfig.ts (+6/-0)
  • 📝 apps/dsa-web/src/pages/HomePage.tsx (+120/-0)
  • 📝 apps/dsa-web/src/pages/__tests__/HomePage.test.tsx (+86/-0)
  • 📝 apps/dsa-web/src/types/analysis.ts (+10/-0)
  • 📝 apps/dsa-web/src/types/systemConfig.ts (+18/-0)
  • 📝 docs/CHANGELOG.md (+3/-0)
  • 📝 docs/full-guide.md (+3/-1)
  • 📝 docs/full-guide_EN.md (+3/-1)
  • 📝 src/market_analyzer.py (+50/-21)
  • 📝 tests/test_analysis_api_contract.py (+35/-0)
  • 📝 tests/test_market_analyzer_generate_text.py (+26/-0)

🧠 AI 代码审查意见

结论:Ready to Merge

结构化审查结果

  • 必要性: 通过

  • 关联性: 通过

  • 类型: 建议类型为 featfix 的混合。

    • 理由: 标题 [codex] Fix market review web flow 侧重于修复,但 PR 实际包含了大量新功能(例如,添加 POST /api/v1/analysis/market-review 接口、Web 首页的“大盘复盘”按钮、首次运行设置状态提示)。一个更准确的标题可能是 feat: Add market review trigger and setup status hint to web; fix market review rendering。这不影响合入,仅为表述建议。
  • 描述完整性: 完整

    • 缺失项: 无。PR 描述非常详细和完整,包含了 Summary, Root Cause, Changes, Validation (明确列出了测试命令和结果,包括 ./scripts/ci_gate.sh 的执行情况), Risks, Rollback Plan。对齐了所有强制描述要求。
  • 风险级别:

    • 关键风险:
      1. 后台任务并发控制(多进程部署): 后端 POST /api/v1/analysis/market-review 接口使用了全局变量 _market_review_lock_market_review_running 来进行重复提交保护。在单进程的 Uvicorn 部署模式下,这种机制可以正常工作。然而,如果部署在多进程环境下(例如,使用 Gunicorn 启动多个 Uvicorn worker),每个 worker 进程将拥有自己独立的全局变量和锁。这将导致跨进程的重复提交保护失效,即一个 worker 进程正在执行大盘复盘时,另一个 worker 进程仍然可能启动新的大盘复盘任务。虽然 PR 描述中提到了风险点(任务失败不回传 UI),但未明确指出此多进程并发问题。对于 MVP 或简单部署场景可能可接受,但对于生产环境的健壮性需要考虑。
      2. PR 描述中已提及的风险点:“新的大盘复盘接口启动后台任务,仅报告提交状态;任务失败只会在服务端记录日志,尚未流式传输回 Web UI。” 这意味着用户无法实时看到任务进度或失败原因,需要通过日志或后续的报告查看结果。这是可接受的 MVP 限制。

必改项(无)

基于当前代码变更、PR 描述和 CI 检查状态,没有发现阻碍合入的致命问题(例如,代码正确性问题、安全性问题、CI 未通过或回滚方案缺失)。

建议项(共 1 条)

  1. 后端并发控制增强(针对多进程部署)
    • 文件: api/v1/endpoints/analysis.py
    • 建议: 当前 _market_review_lock_market_review_running 全局变量在多进程部署下可能导致重复提交保护失效。
      • 如果预计会有多进程部署: 考虑引入一个共享状态层(如 Redis、数据库记录),或者使用一个更成熟的任务队列系统(如 Celery)来管理后台任务,以确保任务的全局唯一性。
      • 如果目前仅考虑单进程部署: 可以保持现状,但在未来的扩展性规划中,需要将此项纳入考虑。
    • 影响: 中等。在单进程部署下无影响,但在多进程部署下可能导致非预期的重复任务执行。

💡 提示: 请确保代码已通过本地测试,并遵循项目代码规范。

@ZhuLinsen
ZhuLinsen force-pushed the fix/issues-1216-1016-1126 branch from d329809 to 60a7f61 Compare May 9, 2026 14:23
@ZhuLinsen ZhuLinsen changed the title [codex] Fix market review web flow Superseded: Fix market review web flow May 9, 2026
@ZhuLinsen ZhuLinsen closed this May 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai configuration documentation Improvements or additions to documentation size/XL testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant