Roo-Code/webview-ui/src
Hannes Rudolph 0fdbd392e8
Migrate conversation continuity to plugin-side encrypted reasoning items (Responses API) (#9203)
* Migrate conversation continuity to plugin-side encrypted reasoning items (Responses API)

Summary
We moved continuity off OpenAI servers and now maintain conversation state locally by persisting and replaying encrypted reasoning items. Requests are stateless (store=false) while retaining the performance/caching benefits of the Responses API.

Why
This aligns with how Roo manages context and simplifies our Responses API implementation while keeping all the benefits of continuity, caching, and latency improvements.

What changed
- All OpenAI models now use the Responses API; system instructions are passed via the top-level instructions field; requests include store=false and include=["reasoning.encrypted_content"].
- We persist encrypted reasoning items (type: "reasoning", encrypted_content, optional id) into API history and replay them on subsequent turns.
- Reasoning summaries default to summary: "auto" when supported; text.verbosity only when supported.
- Atomic persistence via safeWriteJson.

Removed
- previous_response_id flows, suppressPreviousResponseId/skipPrevResponseIdOnce, persistGpt5Metadata(), and GPT‑5 response ID metadata in UI messages.

Kept
- taskId and mode metadata for cross-provider features.

Result
- ZDR-friendly, stateless continuity with equal or better performance and a simpler codepath.

* fix(webview): remove unused metadata prop from ReasoningBlock render

* Responses API: retain response id for troubleshooting (not continuity)

Continuity is stateless via encrypted reasoning items that we persist and replay. We now capture the top-level response id in OpenAiNativeHandler and persist the assistant message id into api_conversation_history.json solely for debugging/correlation with provider logs; it is not used for continuity or control flow.

Also: silence request-body debug logging to avoid leaking prompts.

* remove DEPRECATED tests

* chore: remove unused Task types file to satisfy knip CI

* fix(task): properly type cleanConversationHistory and createMessage args in Task to address Dan's review
2025-11-12 19:50:24 -05:00
..
__tests__ Revert "feat: Experiment: Show a bit of stats in Cloud tab to help users discover there's more in Cloud" (#8559) 2025-10-07 21:37:10 -04:00
components Migrate conversation continuity to plugin-side encrypted reasoning items (Responses API) (#9203) 2025-11-12 19:50:24 -05:00
context fix: Gate auth-driven Roo model refresh to active provider only (#8915) 2025-10-29 16:23:39 -04:00
hooks feat: Bring back a way to temporarily and globally pause auto-approve without losing your toggle state (#8024) 2025-09-16 08:59:17 -04:00
i18n ux: Improvements to to-do lists and task headers (#9096) 2025-11-07 17:26:20 -05:00
lib Add shadcn/ui + Storybook 2025-01-30 12:50:09 -08:00
oauth Add a new @roo-code/types package and use it everywhere (#3912) 2025-05-26 12:06:45 -07:00
utils Move auto-approval from ChatView to Task (#9157) 2025-11-10 17:01:50 -08:00
vite-plugins fix: prevent empty mode names from being saved (fixes #5766) (#5767) 2025-08-04 11:03:34 -07:00
App.tsx Cloud account switcher (#8223) 2025-09-23 18:18:28 -04:00
index.css ux: Improvements to to-do lists and task headers (#9096) 2025-11-07 17:26:20 -05:00
index.tsx PNPM + Turbo monorepo + Nightly releases (#3407) 2025-05-21 21:01:20 -07:00
preflight.css Bring most of Tailwind's preflight.css back 2025-02-03 12:18:28 -08:00
types.d.ts Welcome page OAuth (#1913) 2025-03-23 10:08:16 -04:00
vite-env.d.ts Remove lucide 2025-01-30 14:47:59 -08:00