You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the create-agent flow, any provider that advertises a config_schema has its config fields reset to their schema defaults (or wiped to empty) on every keystroke. Typing into a field like Inference auth snaps the value back almost immediately, making it effectively impossible to enter a non-default value through the UI.
Against a fast local provider binary the reset appears instantaneous, so it looks like the field refuses to accept input.
Impact
Any backend provider advertising config_schema fields is unconfigurable from Buzz Desktop.
Fields with a default snap back to that default; fields without one get wiped to empty.
The probe useEffect (line 29) lists the entire draft in its dependency array:
},[draft,isProviderMode,onDraftChange,selectedBackendProvider]);// line 64
Every keystroke in ProviderConfigFields calls onDraftChange({ ...draft, providerConfig }) (lines 116–117), producing a new draft object — which re-triggers the effect and re-runs probeBackendProvider(...).
When the probe resolves, it rebuilds defaults from config_schema and calls (lines 50–54):
onDraftChange({
...draft,probedProvider: result,providerConfig: defaults,// clobbers whatever the user just typed});
So each keystroke fires a fresh probe, and each resolved probe overwrites providerConfig back to the schema defaults. This is both a correctness bug (typed values lost) and a churn bug (one provider probe per keystroke).
Proposed fix
Don't re-probe once the provider has already been probed:
This stays correct on provider switches: the "Run on" <select> resets the draft to emptyWhereToRunDraft (probedProvider: null, lines 78–83), so a fresh probe still fires when the user picks a different provider.
Belt-and-suspenders — seed defaults without overwriting typed values, so a late-resolving probe can never erase user input:
The early-return guard alone fixes both the reset and the probe-per-keystroke churn; the merge is defense-in-depth.
Repro
Have any backend provider installed that advertises a config_schema with at least one property that has a default.
Open the create-agent form, set Run on to that provider.
Try to type a value into one of the config fields that differs from its default.
Observed: the field snaps back to its default almost immediately (near-instant against a fast local provider binary).
Expected: the typed value persists.
Discovered while building a backend provider that launches agents on a Databricks sandbox / Lakebox. Its inference_auth field (default env) could not be switched to sandbox from the UI. Details in IceRhymers/buzz-lakebox#11.
Screen.Recording.2026-07-27.at.2.53.09.PM.mov
Environment
Verified in block/buzz at main (component unchanged from 8bb43d51 through 3faea98).
Summary
In the create-agent flow, any provider that advertises a
config_schemahas its config fields reset to their schema defaults (or wiped to empty) on every keystroke. Typing into a field like Inference auth snaps the value back almost immediately, making it effectively impossible to enter a non-default value through the UI.Against a fast local provider binary the reset appears instantaneous, so it looks like the field refuses to accept input.
Impact
config_schemafields is unconfigurable from Buzz Desktop.defaultsnap back to that default; fields without one get wiped to empty.profile,inference_auth(defaultenv), andidle_timeout. Its opt-ininference_auth: "sandbox"path cannot be selected from the UI at all —inference_authalways resets toenv. (Details in feat(zero-token): opt-ininference_auth: "sandbox"— zero-Databricks-token inference via the baked per-user cfg IceRhymers/buzz-lakebox#11.)defaultfrom the schema only changes the reset target fromenvto empty.Root cause
desktop/src/features/agents/ui/WhereToRunSection.tsxThe probe
useEffect(line 29) lists the entiredraftin its dependency array:Every keystroke in
ProviderConfigFieldscallsonDraftChange({ ...draft, providerConfig })(lines 116–117), producing a newdraftobject — which re-triggers the effect and re-runsprobeBackendProvider(...).When the probe resolves, it rebuilds
defaultsfromconfig_schemaand calls (lines 50–54):So each keystroke fires a fresh probe, and each resolved probe overwrites
providerConfigback to the schema defaults. This is both a correctness bug (typed values lost) and a churn bug (one provider probe per keystroke).Proposed fix
Don't re-probe once the provider has already been probed:
This stays correct on provider switches: the "Run on"
<select>resets the draft toemptyWhereToRunDraft(probedProvider: null, lines 78–83), so a fresh probe still fires when the user picks a different provider.Belt-and-suspenders — seed defaults without overwriting typed values, so a late-resolving probe can never erase user input:
The early-return guard alone fixes both the reset and the probe-per-keystroke churn; the merge is defense-in-depth.
Repro
config_schemawith at least one property that has adefault.Discovered while building a backend provider that launches agents on a Databricks sandbox / Lakebox. Its
inference_authfield (defaultenv) could not be switched tosandboxfrom the UI. Details inIceRhymers/buzz-lakebox#11.Screen.Recording.2026-07-27.at.2.53.09.PM.mov
Environment
block/buzzatmain(component unchanged from8bb43d51through3faea98).desktop/src/features/agents/ui/WhereToRunSection.tsx