Restore visible WebUI progress contract#3015
Conversation
SummaryReading Code referenceThe new prompt body in The carve-out for short/direct answers is preserved on the last line of the prompt, so this shouldn't introduce browser-only chatter for simple turns. The chain-of-thought / raw-log prohibition is still there too. The Sprint 42 regression test in DiagnosisThe change is well-scoped — one prompt block, one test update, one changelog entry. CI is green across 3.11/3.12/3.13. The interaction with One minor caveat worth being explicit about, and #3015's body already notes this: prompt instructions are advisory. Providers that ignore the channel-of-output instruction will still surface progress only in reasoning. The frontend-side mitigation (surfacing reasoning when no visible text exists) is a separate axis not addressed here, and probably correct to keep separate. Test planBeyond the existing static test, a useful manual dogfood once merged:
LGTM from a code-reading pass. |
0666202 to
fc86e27
Compare
|
Closing this draft because the core visible-progress prompt contract has been absorbed into #3401. #3401 now includes the prompt-side change from this PR: long tool-running WebUI turns should not appear silent, visible progress should be normal assistant content rather than only reasoning/tool output, and regression coverage rejects the old optional This keeps the running-session assistant reply redesign in one review unit while avoiding a duplicate prompt-only PR. |
Thinking Path
What Changed
_WEBUI_PROGRESS_PROMPTso long tool-running WebUI turns should not appear silent.you may providephrasing.Why It Matters
Frontend replay can preserve visible progress only after the model emits it. Without this prompt contract, some models/providers keep intermediate work in reasoning or tool channels, making the WebUI look silent or making Activity groups appear disconnected from the text.
Contract Routing
Runtime / streaming behavior. This updates the WebUI ephemeral progress instruction only. It does not change SSE reconnect, run-journal replay, persisted session schema, Activity placement, or reasoning echo suppression; those belong to #3005.
Contract Change
The prompt contract for long tool-running WebUI turns is strengthened from optional guidance to explicit visible-progress guidance. Direct answers and very short tasks remain exempt, and hidden reasoning / raw tool logs remain prohibited.
Verification
node --check static/ui.js static/messages.js static/sessions.jspytest -q tests/test_sprint42.py::TestRuntimeRouteInjection::test_runtime_provider_forwards_interim_assistant_callback— local clean head: 1 passed.test (3.11),test (3.12), andtest (3.13)pass on commitfc86e278.Risks / Follow-ups
Model Used
OpenAI GPT-5 Codex. AI assistance was used to inspect the failure mode, split PR scope, implement the prompt/test change, and verify the clean branch.