mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
refactor(task): 引入 MutableRequestBodyState 替代 request_body_ref 字典容器
将请求体可变状态从 {"body": dict} 字典容器重构为独立的
MutableRequestBodyState 类,统一管理 original_body / current_body /
build_attempt_body / rectify 等语义,消除各层通过 ref["body"] 间接
读写的隐式约定。
- 新增 src/services/task/request_state.py 定义 Protocol 与实现
- handler/executor/mixin 层改用 request_state 参数传递
- error_handler/state_transition 通过 request_state 判断整流状态
- 新增 request_state 单元测试与 chat/cli 请求体隔离测试
This commit is contained in:
@@ -10,8 +10,8 @@ from src.services.candidate.schema import CandidateKey
|
||||
from src.services.candidate.submit import SubmitOutcome
|
||||
from src.services.task.core.context import TaskMode
|
||||
from src.services.task.core.protocol import AttemptKind
|
||||
from src.services.task.service import pool_on_error
|
||||
from src.services.task.service import TaskService
|
||||
from src.services.task.request_state import MutableRequestBodyState
|
||||
from src.services.task.service import TaskService, pool_on_error
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@@ -87,7 +87,7 @@ async def test_task_service_execute_sync_passes_request_headers_and_body() -> No
|
||||
|
||||
request_headers = {"authorization": "Bearer test", "x-trace-id": "abc123"}
|
||||
request_body = {"model": "gpt-4o-mini", "messages": [{"role": "user", "content": "hi"}]}
|
||||
request_body_ref = {"body": request_body}
|
||||
request_body_state = MutableRequestBodyState(request_body)
|
||||
|
||||
result = await svc.execute(
|
||||
task_type="chat",
|
||||
@@ -100,7 +100,7 @@ async def test_task_service_execute_sync_passes_request_headers_and_body() -> No
|
||||
is_stream=True,
|
||||
request_headers=request_headers,
|
||||
request_body=request_body,
|
||||
request_body_ref=request_body_ref,
|
||||
request_body_state=request_body_state,
|
||||
)
|
||||
|
||||
assert result is sentinel_result
|
||||
@@ -108,7 +108,7 @@ async def test_task_service_execute_sync_passes_request_headers_and_body() -> No
|
||||
kwargs = svc._sync_ops.execute_sync_unified.await_args.kwargs # type: ignore[attr-defined, union-attr]
|
||||
assert kwargs["request_headers"] == request_headers
|
||||
assert kwargs["request_body"] == request_body
|
||||
assert kwargs["request_body_ref"] == request_body_ref
|
||||
assert kwargs["request_body_state"] is request_body_state
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
||||
Reference in New Issue
Block a user