Skip to content

release the streaming flag #650

Description

@czxtm

we have a streaming option behind an experimental flag, thanks to Juanpe Bolívar (@arximboldi) for this, it's definitely an improvement so lets remove the flag and release it


Decision: remove the experimental preference entirely (no off-switch). The provider capability check and runtime fallback already cover providers that can't stream. Agreed by Cooper (this ticket, 08-08) and Juan (Slack, 08-15).

**Where: **experimentalStreamingEvolve in apps/native/src-tauri/src/shared_types/prefs.rs (GlobalPreferences, default false), read via state/ui_prefs.rs::experimental_streaming_evolve in evolve/mod.rs:947, gated by provider.supports_streaming() at :1293 / :1431, with a runtime fallback at :1366 that disables streaming for the rest of the run if the provider doesn't actually stream. The toggle lives in components/widget/settings/developer-tab.tsx. Built by Juan in #561.

Acceptance criteria

  • Streaming is on by default for every provider whose supports_streaming() returns true (currently OpenAI-compatible and Ollama; CLI provider stays non-streaming). The existing runtime fallback is kept.
  • The experimentalStreamingEvolve preference and its Developer-tab toggle are removed: GlobalPreferences / GlobalPreferencesUpdate in prefs.rs, ui_prefs.rs accessor, generated IPC types (ipc/types.ts, orpc-bindings.ts), types/preferences.ts, utils/test-fixtures.ts, ai-provider-migration.test.ts.
  • Existing preference files that still contain experimentalStreamingEvolve load without error (GlobalPreferences is #[serde(default)]; add a test that a prefs JSON with the stale key deserializes).
  • The evolve-progress Storybook story no longer describes streaming as an experimental flag.
  • Optional, separate ticket if wanted: telemetry event for "run streamed" vs "fell back to non-streaming" so we can see how often the fallback fires.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions