* Replace bundled backend with seeded default local backend
Eliminate the special-case 'bundled' backend in favor of a regular registered
backend that is seeded on first read. Users can now rename or remove the
default 'Local' backend like any other.
- Drop `api/backend-registry/bundled.ts` and the `BundledBackend` distinction.
Add `default-backend.ts` with `makeDefaultLocalBackend()` and
`getEffectiveLocalBackend()` (used by API clients that need a baseline
local target when the registry is empty).
- `storage.readStoredBackends()` seeds `[makeDefaultLocalBackend()]` when the
`openhands-backends` localStorage key has never been written.
- `active-store.getActiveBackend()` falls back to the first local backend in
the registry (or a synthesized default) instead of the removed bundled.
- `useActiveBackendContext()` no longer exposes `bundledBackend`. The Manage
Backends modal and BackendSelector dropdown both render directly from the
registered list — no special-casing — so the seeded default appears
exactly once in each.
- BackendSelector: `buildOptions()` no longer prepends a synthetic bundled
entry; the placeholder shows the active backend's name. Drop the
BACKEND$LOCAL_ROW translation key.
- Dropdown UX: clear the input value on open so the active label does not
appear both in the trigger and as a highlighted menu row.
Co-authored-by: openhands <openhands@all-hands.dev>
* Fix CI failures for seeded local backend
Co-authored-by: openhands <openhands@all-hands.dev>
---------
Co-authored-by: openhands <openhands@all-hands.dev>