Files
2026Technology-Competition/docs/superpowers/plans/ws-task-1-report.md
T
lhl 80daadcd31 fix(websocket): 修复 app.py 不可导入并新增真实链路验证
- 将 /api/sessions/{sid}/ws 端点移入 create_app(此前置于模块级导致整模块 import NameError,回归被验证拦截)
- register_loop + subscribe 调整至 accept 之前,缩小连接已开但未订阅期间的进度丢失窗口
- 新增 tests/test_verify_ws_real_flow.py:驱动真实 HTTP 聊天流程断言 WS 收到 agent 实际发射的 parse/impact 进度
- 同步 WebSocket 计划文档 Task 3 代码片段(标注端点必须位于 create_app 内)
- 全量 pytest 实测 583 passed / 99.03% 达标
2026-08-29 14:36:12 +08:00

28 lines
1.3 KiB
Markdown

# Task 1 执行报告:ProgressHub 进度发布/订阅单例
- 状态:**DONE**
- 提交 commit 短哈希:`74d15cc`
- 分支:`feat/websocket-progress`
## 改动文件
- 新增 `src/genesis/server/hub.py`
- 新增 `tests/test_progress_hub.py`
## 测试命令
```
python -m pytest tests/test_progress_hub.py -q -o addopts=""
```
## 测试输出摘要
```
...
3 passed in 0.28s
```
TDD 流程已遵循:先写测试 → 运行失败(模块不存在)→ 写最小实现 → 运行通过(3 passed)→ 提交。
## 疑虑 / 需关注
1. **pytest-asyncio 缺失**:测试使用 `@pytest.mark.asyncio`,但项目 `pyproject.toml``dev` 依赖仅包含 `pytest``pytest-cov`,未声明 `pytest-asyncio`。本环境原本未安装该插件,已临时 `pip install pytest-asyncio` 才能运行。若要在 CI 或他人环境复现,需在 `pyproject.toml``[project.optional-dependencies]` dev 中补充 `pytest-asyncio` 依赖(及按需配置 `asyncio_mode`)。本任务严格落实 brief "仅提交两个文件" 的约束,未改动 `pyproject.toml`,特此标注。
2. 覆盖率门禁(`fail_under=99`)已按要求用 `-o addopts=""` 关闭,未改动其他文件以规避门禁。
3. `_event = Dict[str, Any]` 作为类型别名用于 `emit` 注解,在 Python 3.14 下正常工作。