mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-10-09 15:37:51 +00:00
buffer rejected search drafts and cap interactive rounds
This commit is contained in:
parent
ff4d01a55e
commit
f27070c469
2 changed files with 16 additions and 7 deletions
|
|
@ -1307,11 +1307,11 @@ def native_execution_limits(max_rounds):
|
|||
|
||||
|
||||
def interactive_execution_limit(max_rounds):
|
||||
"""Honor the WebUI agent-step setting for the compact preview loop."""
|
||||
"""Bound interactive turns independently of long-running native jobs."""
|
||||
if max_rounds is None:
|
||||
return INTERACTIVE_ROUND_LIMIT
|
||||
try:
|
||||
return max(1, min(int(max_rounds), 200))
|
||||
return max(1, min(int(max_rounds), INTERACTIVE_ROUND_LIMIT))
|
||||
except (TypeError, ValueError):
|
||||
return INTERACTIVE_ROUND_LIMIT
|
||||
|
||||
|
|
@ -3891,6 +3891,7 @@ async def stream_preview(*, endpoint_url, model, messages, headers, turn_contrac
|
|||
official_source_retry_attempted = False
|
||||
note_search_recovery_attempted = False
|
||||
replace_streamed_draft_on_finish = False
|
||||
buffer_completion_drafts = broad_current_web_request(direct_user_text)
|
||||
usage_in = usage_out = 0
|
||||
has_real_usage = False
|
||||
first_request_tokens = last_request_tokens = 0
|
||||
|
|
@ -4108,7 +4109,11 @@ async def stream_preview(*, endpoint_url, model, messages, headers, turn_contrac
|
|||
if text:
|
||||
first_token = first_token or time.monotonic()
|
||||
content += text
|
||||
if not prior_summary_answer and not progressive_thinking:
|
||||
if (
|
||||
not prior_summary_answer
|
||||
and not progressive_thinking
|
||||
and not buffer_completion_drafts
|
||||
):
|
||||
yield event({'delta': text})
|
||||
for fragment in delta.get('tool_calls') or []:
|
||||
call = pending.setdefault(fragment['index'], {'id': '', 'type': 'function', 'function': {'name': '', 'arguments': ''}})
|
||||
|
|
@ -4118,7 +4123,7 @@ async def stream_preview(*, endpoint_url, model, messages, headers, turn_contrac
|
|||
call['function'][key] += (fragment.get('function') or {}).get(key) or ''
|
||||
if progressive_thinking:
|
||||
content = visible_content_after_qwen_thinking(content)
|
||||
if content and not prior_summary_answer:
|
||||
if content and not prior_summary_answer and not buffer_completion_drafts:
|
||||
yield event({'delta': content})
|
||||
proposed = [pending[i] for i in sorted(pending)]
|
||||
proposed = serialize_required_email_attachment_chain(
|
||||
|
|
@ -4377,7 +4382,7 @@ async def stream_preview(*, endpoint_url, model, messages, headers, turn_contrac
|
|||
yield event({'delta': suffix})
|
||||
if not content:
|
||||
yield event({'delta': 'The test model returned no answer. No substitute answer was generated.'})
|
||||
elif replace_streamed_draft_on_finish:
|
||||
elif replace_streamed_draft_on_finish or buffer_completion_drafts:
|
||||
yield event({'type': 'final_response', 'content': content})
|
||||
break
|
||||
# Treat a model-proposed call batch atomically for preview
|
||||
|
|
|
|||
|
|
@ -312,8 +312,8 @@ def test_native_execution_limits_allow_multi_artifact_work_without_unbounded_rou
|
|||
|
||||
|
||||
def test_compact_preview_honors_configured_interactive_round_limit():
|
||||
assert interactive_execution_limit(100) == 100
|
||||
assert interactive_execution_limit(1000) == 200
|
||||
assert interactive_execution_limit(100) == 8
|
||||
assert interactive_execution_limit(1000) == 8
|
||||
assert interactive_execution_limit(0) == 1
|
||||
assert interactive_execution_limit(None) == 8
|
||||
assert interactive_execution_limit("invalid") == 8
|
||||
|
|
@ -1266,6 +1266,10 @@ async def test_stream_retries_an_obviously_truncated_broad_web_answer(monkeypatc
|
|||
and 'fuller evidence-based briefing' in event.get('content', '')
|
||||
for event in events
|
||||
)
|
||||
assert not any(
|
||||
event.get('delta') == 'Current AI news includes reports about U.'
|
||||
for event in events
|
||||
)
|
||||
|
||||
|
||||
def test_task_renderer_honors_few_and_filters_confirmed_morning_schedule():
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue