refactor: tech debt Wave 1+2 (except Exception 收尾 + core/experts Any 治理) #10
Loading…
Reference in New Issue
No description provided.
Delete Branch "refactor/tech-debt-wave-1-2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Tech Debt Cleanup Wave 1+2: except Exception 收尾 + core/experts Any 治理
Summary
承接 PR #9 的 follow-up 工作,本 PR 完成 Wave 1(
except Exception收尾)和 Wave 2(core/+experts/Any治理),共治理 329 处,覆盖 49 个文件。Commits
38b9602—refactor: classify except Exception in Wave 1 files (144 sites)— 30 文件b3f7159—refactor: remove Any from core/ + experts/ type signatures (185 sites)— 19 文件Wave 1: except Exception 收尾(144 处 / 30 文件)
治理范围
server/app.pycli/chat.pybus/redis_bus.py+memory_bus.pyevolution/memory/adapters/memory/其他skills/loader.pyquality/+session/+chat/异常分类策略
(ConnectionError, OSError, asyncio.TimeoutError, ValueError, KeyError, RuntimeError)或(DBAPIError, ...)(httpx.HTTPError, ValueError, KeyError, TypeError)(ConnectionError, RuntimeError, asyncio.TimeoutError, ValueError)(json.JSONDecodeError, ValueError, TypeError)(aiosqlite.Error, ValueError, KeyError, TypeError, RuntimeError)except Exception+asyncio.CancelledError: raise守卫 +# noqa: BLE001设计意图保留
health_check/list_sources/文档解析器方法保留except Exception,因为其设计意图是"任何异常都回退到默认值/文本"。每处均加asyncio.CancelledError: raise守卫。Wave 2: core/ + experts/ Any 治理(185 处 / 19 文件)
治理范围
core/react.py(34),rewoo.py(30),config_driven.py(14)experts/plan.py(15),_phase_executor.py(11),orchestrator.py(11)治理策略
object(主要):dict[str, Any]→dict[str, object],list[Any]→list[object],**kwargs: Any→**kwargs: object,-> Any→-> objectCallable[..., Awaitable[object]]:替换Callable[..., Awaitable[Any]]CompressionStrategy/MiddlewareChain/MemoryRetriever)dict[str, object]Testing Notes
core/+experts/+evolution/+memory/+bitable/+pipelinememory/test_adapters.py+memory/test_document_loader.py回归修复
Wave 1B subagent 初版窄化了
memory/adapters/的 health_check 和memory/document_loader.py的解析器,导致 7 个测试失败(测试用side_effect=Exception(...)模拟异常,窄化后不再捕获)。修复方案:health_check/list_sources/authenticate:恢复except Exception+asyncio.CancelledError: raise守卫(设计意图:任何异常返回 False/默认值)document_loader解析器:恢复except Exception+ 守卫(设计意图:任何解析失败回退到文本)ruff: 20 errors(全部为预先存在,0 新增)
Post-Deploy Monitoring & Validation
No additional operational monitoring required — 本 PR 是纯类型注解 + 异常分类重构,不改变运行时行为:
except Exception窄化后,原本被吞掉的异常现在会向上传播;health_check/list_sources/解析器保留宽泛捕获(设计意图)evolution/和memory/相关端点的 500 错误率,若上升需回查 except 元组except Exception并补充遗漏的异常类型Known Residuals
无。本 PR 完成了 Wave 1 + Wave 2 全部计划工作。剩余技术债务:
except Exception残留 ~150 处(主要是框架边界 + 设计意图保留,属合理残留)Any残留 ~370 处(分布在tools//skills//cli//calendar//rag_platform//channels/等,留待 Wave 3+4)