AochenShen99
0fb18e368c
refactor(lead-agent): make build_middlewares public to drop the last cross-module private import ( #3458 )
...
`client.py` imported the private `_build_middlewares` from `agent.py` across a
module boundary and called it as public API. Because the `_` name signals
"module-private, no external callers", any future rename or signature change
silently breaks the embedded `DeerFlowClient` path — and the test suite even
monkeypatched `deerflow.client._build_middlewares`, baking the leak in.
`DeerFlowClient` is a lead-agent variant that genuinely needs the lead agent's
full middleware composition, so make the dependency honest: promote the helper
to a documented public entry point `build_middlewares` and update every in-repo
caller. Found during #3341 review; #3341 already removed one such leak
(`_assemble_deferred` -> public `assemble_deferred_tools`) and left this one out
of scope on purpose.
- agent.py: rename def + both internal call sites; expand the docstring into a
public-entry-point contract and document the previously-undocumented
model_name / app_config / deferred_setup params
- client.py: import + call site now use the public name (removes the last
cross-module private import)
- scripts/tool-error-degradation-detection.sh: update its import + call site
- tests (5 files): update monkeypatch/patch targets and direct calls
- docs (backend/CLAUDE.md, plan_mode_usage.md, middlewares.mdx): sync the live
references that describe the symbol as current API
Pure mechanical rename, no behavior change. Historical design docs (rfc,
superpowers spec) intentionally keep the old name as point-in-time records.
Closes #3431
2026-06-09 11:56:28 +08:00
..
2026-06-08 12:21:55 +08:00
2026-06-08 17:32:41 +08:00
2026-05-26 23:30:24 +08:00
2026-05-12 23:18:54 +08:00
2026-06-08 12:35:03 +08:00
2026-04-26 15:09:25 +08:00
2026-06-01 15:50:39 +08:00
2026-05-26 23:30:24 +08:00
2026-06-08 17:32:41 +08:00
2026-06-08 12:35:03 +08:00
2026-03-27 20:03:30 +08:00
2026-04-30 11:40:28 +08:00
2026-06-02 22:55:59 +08:00
2026-05-21 14:44:34 +08:00
2026-06-02 22:55:59 +08:00
2026-05-06 10:17:55 +08:00
2026-05-15 22:15:58 +08:00
2026-05-29 23:05:59 +08:00
2026-05-16 09:24:40 +08:00
2026-04-26 11:08:11 +08:00
2026-04-26 22:20:57 +08:00
2026-04-26 11:08:11 +08:00
2026-04-28 11:34:07 +08:00
2026-05-20 16:37:36 +08:00
2026-05-02 15:19:28 +08:00
2026-06-03 15:48:19 +08:00
2026-04-14 10:29:44 +08:00
2026-04-26 11:09:55 +08:00
2026-06-09 11:56:28 +08:00
2026-04-19 22:00:58 +08:00
2026-03-30 07:41:18 +08:00
2026-04-25 19:40:06 +08:00
2026-04-07 18:21:22 +08:00
2026-06-09 11:56:28 +08:00
2026-05-21 16:49:31 +08:00
2026-03-29 21:03:58 +08:00
2026-05-04 09:56:16 +08:00
2026-06-09 11:56:28 +08:00
2026-05-02 15:04:11 +08:00
2026-03-14 22:55:52 +08:00
2026-04-26 11:05:47 +08:00
2026-03-29 15:31:18 +08:00
2026-05-07 16:15:15 +08:00
2026-05-07 16:15:15 +08:00
2026-05-09 09:27:02 +08:00
2026-05-05 23:17:42 +08:00
2026-05-29 17:46:24 +08:00
2026-06-08 07:59:50 +08:00
2026-06-05 15:21:41 +08:00
2026-06-02 22:43:22 +08:00
2026-06-05 15:21:41 +08:00
2026-06-05 15:21:41 +08:00
2026-06-08 23:17:22 +08:00
2026-06-02 22:43:22 +08:00
2026-05-26 23:30:24 +08:00
2026-05-20 10:00:17 +08:00
2026-05-10 22:28:29 +08:00
2026-06-08 22:54:23 +08:00
2026-04-30 11:25:33 +08:00
2026-04-11 17:48:04 +08:00
2026-03-31 22:19:27 +08:00
2026-04-10 17:43:39 +08:00
2026-05-09 19:39:36 +08:00
2026-04-26 11:09:56 +08:00
2026-04-08 17:13:39 +08:00
2026-04-26 11:09:55 +08:00
2026-05-31 22:43:07 +08:00
2026-04-18 22:47:42 +08:00
2026-04-10 17:43:39 +08:00
2026-05-21 21:18:10 +08:00
2026-05-11 17:38:37 +08:00
2026-05-21 21:18:10 +08:00
2026-06-07 11:24:30 +08:00
2026-06-07 11:24:30 +08:00
2026-06-08 22:54:23 +08:00
2026-06-03 15:48:19 +08:00
2026-03-23 18:07:33 +08:00
2026-03-14 22:55:52 +08:00
2026-03-26 14:20:18 +08:00
2026-05-18 22:07:01 +08:00
2026-05-26 23:19:57 +08:00
2026-05-19 22:11:46 +08:00
2026-06-08 23:25:29 +08:00
2026-05-29 09:27:53 +08:00
2026-04-28 11:34:07 +08:00
2026-06-09 11:56:28 +08:00
2026-06-07 17:47:11 +08:00
2026-06-09 11:56:28 +08:00
2026-06-07 17:47:11 +08:00
2026-04-11 16:52:10 +08:00
2026-05-08 10:13:11 +08:00
2026-05-20 10:16:31 +08:00
2026-05-17 08:26:04 +08:00
2026-05-28 15:48:32 +08:00
2026-04-30 22:27:14 +08:00
2026-05-07 16:15:15 +08:00
2026-05-21 14:36:07 +08:00
2026-06-03 18:11:38 +08:00
2026-06-08 12:21:02 +08:00
2026-04-25 09:18:13 +08:00
2026-03-14 22:55:52 +08:00
2026-06-07 21:37:30 +08:00
2026-05-19 22:11:46 +08:00
2026-04-03 11:21:58 +08:00
2026-05-15 10:26:35 +08:00
2026-05-15 10:26:35 +08:00
2026-04-26 11:13:01 +08:00
2026-04-26 15:09:25 +08:00
2026-04-17 12:00:31 +08:00
2026-04-26 11:09:55 +08:00
2026-04-26 15:09:25 +08:00
2026-05-28 07:46:44 +08:00
2026-04-14 15:01:06 +08:00
2026-05-05 23:17:42 +08:00
2026-05-15 22:30:05 +08:00
2026-03-22 20:39:26 +08:00
2026-06-08 22:04:38 +08:00
2026-05-28 08:20:52 +08:00
2026-04-26 11:09:55 +08:00
2026-04-09 16:07:16 +08:00
2026-05-28 18:24:32 +08:00
2026-06-08 22:04:38 +08:00
2026-03-26 15:07:05 +08:00
2026-06-03 15:48:19 +08:00
2026-05-09 09:49:08 +08:00
2026-05-21 16:22:09 +08:00
2026-04-26 11:13:01 +08:00
2026-04-10 20:40:30 +08:00
2026-05-17 15:23:42 +08:00
2026-03-14 22:55:52 +08:00
2026-03-14 22:55:52 +08:00
2026-06-07 21:27:14 +08:00
2026-05-21 14:44:34 +08:00
2026-06-08 17:32:41 +08:00
2026-04-26 15:09:25 +08:00
2026-05-15 10:32:09 +08:00
2026-05-22 21:42:14 +08:00
2026-05-23 22:43:34 +08:00
2026-05-21 14:48:28 +08:00
2026-05-23 00:09:06 +08:00
2026-05-31 22:42:13 +08:00
2026-06-01 15:50:39 +08:00
2026-05-28 08:20:52 +08:00
2026-05-03 23:40:59 +08:00
2026-05-22 21:20:28 +08:00
2026-05-22 21:20:28 +08:00
2026-05-22 21:20:28 +08:00
2026-04-07 17:15:24 +08:00
2026-06-03 22:02:27 +08:00
2026-05-21 14:44:34 +08:00
2026-04-09 17:21:23 +08:00
2026-04-09 17:21:23 +08:00
2026-04-18 08:46:59 +08:00
2026-05-21 20:35:46 +08:00
2026-05-17 08:59:42 +08:00
2026-03-30 16:02:23 +08:00
2026-03-26 14:20:18 +08:00
2026-05-02 16:22:35 +08:00
2026-05-12 23:18:54 +08:00
2026-05-12 23:18:54 +08:00
2026-05-09 19:43:50 +08:00
2026-06-08 22:04:38 +08:00
2026-05-01 13:23:26 +08:00
2026-05-28 15:48:32 +08:00
2026-03-25 16:28:33 +08:00
2026-04-23 14:06:14 +08:00
2026-05-28 15:48:32 +08:00
2026-05-28 15:48:32 +08:00
2026-05-03 23:40:59 +08:00
2026-06-03 21:53:52 +08:00
2026-05-07 08:34:43 +08:00
2026-03-30 16:02:23 +08:00
2026-04-06 14:51:10 +08:00
2026-06-08 23:17:22 +08:00
2026-06-08 23:17:22 +08:00
2026-05-08 10:08:53 +08:00
2026-04-23 23:59:47 +08:00
2026-05-02 06:37:49 +08:00
2026-06-07 22:49:55 +08:00
2026-04-12 16:40:21 +08:00
2026-05-10 22:47:30 +08:00
2026-06-08 15:48:00 +08:00
2026-06-07 17:55:04 +08:00
2026-05-21 07:47:19 +08:00
2026-05-21 21:18:10 +08:00
2026-03-26 17:39:16 +08:00
2026-05-12 23:21:22 +08:00
2026-06-01 15:50:39 +08:00
2026-06-02 22:43:22 +08:00
2026-05-23 23:25:38 +08:00
2026-05-22 21:42:14 +08:00
2026-06-08 23:12:25 +08:00
2026-06-08 12:21:55 +08:00
2026-03-14 22:55:52 +08:00
2026-05-21 16:49:31 +08:00
2026-05-26 23:58:08 +08:00
2026-05-10 22:00:57 +08:00
2026-05-13 23:52:19 +08:00
2026-03-26 14:20:18 +08:00
2026-05-10 23:09:03 +08:00
2026-05-19 22:11:46 +08:00
2026-06-08 23:17:22 +08:00
2026-06-07 22:49:55 +08:00
2026-06-08 12:24:48 +08:00
2026-04-06 15:09:57 +08:00
2026-06-08 23:17:22 +08:00
2026-05-21 16:49:31 +08:00
2026-05-21 16:49:31 +08:00
2026-05-21 16:49:31 +08:00
2026-05-12 23:18:54 +08:00
2026-06-04 07:10:59 +08:00
2026-05-09 18:21:54 +08:00
2026-04-26 11:13:01 +08:00
2026-06-06 15:12:17 +08:00
2026-04-26 15:09:25 +08:00
2026-05-02 15:16:16 +08:00
2026-06-08 22:04:38 +08:00
2026-04-28 11:13:17 +08:00
2026-04-06 15:18:34 +08:00
2026-05-28 07:22:39 +08:00
2026-04-10 20:49:28 +08:00
2026-05-21 16:49:31 +08:00
2026-06-07 17:47:11 +08:00