mirror of
https://github.com/agent0ai/agent-zero.git
synced 2026-10-23 14:49:43 +00:00
Every send paid a blocking model_config_get round-trip before dispatching, because the frontend had to know whether a chat model is configured to decide between sending and rendering the setup card. Move the check behind the dispatch: a user_message_ui extension in _model_config flags unconfigured chats, the message handlers reject before logging or dispatching and return a model_not_configured payload, and the client opens the setup gate from that response. Isolated sends no longer make any configuration round-trip, the optimistic user row and draft handling stay intact through the gate flow, and the post-setup retry drops its bypass flag since the backend re-checks on dispatch. Validation: pytest tests/test_model_gate_backend_reject.py tests/test_welcome_composer_static.py tests/test_webui_chat_deletion.py tests/test_webui_send_pause_responsiveness_static.py tests/test_message_action_buttons_static.py tests/test_markdown_tilde_rendering.py tests/test_webui_message_queue_static.py (23 passed); node --check webui/index.js webui/components/chat/model-gate-store.js
17 lines
508 B
Python
17 lines
508 B
Python
from agent import AgentContext
|
|
from helpers.defer import DeferredTask
|
|
from api.message import Message
|
|
|
|
|
|
class MessageAsync(Message):
|
|
async def respond(self, task: DeferredTask, context: AgentContext):
|
|
if task is None:
|
|
return {
|
|
"message": "Model not configured.",
|
|
"model_not_configured": True,
|
|
"context": context.id,
|
|
}
|
|
return {
|
|
"message": "Message received.",
|
|
"context": context.id,
|
|
}
|