mirror of
https://github.com/OpenHands/OpenHands.git
synced 2026-10-07 15:58:03 +08:00
* Add backend modal visual snapshot Co-authored-by: openhands <openhands@all-hands.dev> * Clarify OpenHands backend login host Co-authored-by: openhands <openhands@all-hands.dev> * Clarify OpenHands Cloud login copy Co-authored-by: openhands <openhands@all-hands.dev> * Add missing i18n translations and move host into connection box - Translate BACKEND$HOST_HELPER, BACKEND$HOST_DOCS_LINK, and BACKEND$AUTH_METHOD_HELPER into all 14 non-English locales. - Move the Host input inside the bordered connection card for cloud-add mode so host, login, and API key are visually grouped. - Keep the host input in a stable DOM position (never unmounted when kind flips mid-keystroke) by conditionally styling the wrapper rather than rendering two separate input trees. Co-authored-by: openhands <openhands@all-hands.dev> * Update add-backend-modal snapshot Co-authored-by: openhands <openhands@all-hands.dev> * Reorder: Host + API Key first, then OR Login with OpenHands Cloud The connection box now shows: 1. Host input + helper text 2. API Key input + docs link 3. ── OR ── 4. Login with OpenHands Cloud button This groups the manual credentials together and presents the OAuth device flow as the alternative, which is a clearer mental model. Also removes the now-unused BACKEND$AUTH_METHOD_HELPER translation key. Co-authored-by: openhands <openhands@all-hands.dev> * chore: update baseline snapshots [skip ci] * Remove prefilled default host; Login with Cloud always uses app.openhands.dev - Host field starts empty — no confusing 'use the default' guidance. - 'Login with OpenHands Cloud' always targets app.openhands.dev regardless of what's in the host field, and fills both host and API key on success. - Updated helper text to simply say 'Enter the URL of your OpenHands Cloud or self-hosted Agent Server.' - Removed now-unused BACKEND$AUTH_METHOD_HELPER translation key. - Updated tests to reflect no-prefill behavior. Co-authored-by: openhands <openhands@all-hands.dev> * chore: update baseline snapshots [skip ci] * Remove redundant helper text; form layout is self-explanatory The Login with OpenHands Cloud button already handles the cloud case, so the helper text about entering a Cloud URL was confusing. Removed HOST_HELPER, HOST_DOCS_LINK translation keys and the OPENHANDS_CLOUD_DOCS_URL constant. The form now reads cleanly: Host + API Key → OR → Login with OpenHands Cloud Co-authored-by: openhands <openhands@all-hands.dev> * Add host helper: 'Enter the URL of your agent server or self-hosted OpenHands Cloud' Links 'self-hosted OpenHands Cloud' to https://github.com/All-Hands-AI/OpenHands-Cloud Co-authored-by: openhands <openhands@all-hands.dev> * chore: update baseline snapshots [skip ci] * Login button uses host field; prefill cloud default; add OAuth hint - Host prefilled with https://app.openhands.dev (self-hosted users can change it to their own deployment). - Login button now uses the host from the field (not hardcoded), so self-hosted OpenHands Cloud deployments can also use OAuth. - Added hint below login button: 'Works with OpenHands Cloud or your self-hosted OpenHands Cloud deployment.' Co-authored-by: openhands <openhands@all-hands.dev> * chore: update baseline snapshots [skip ci] * Two-column Add Backend modal with i18n translations Redesign the Add Backend modal as a two-column layout: - Left column: manual connection (Name, Host, API Key + Connect button) - Right column: OpenHands Cloud OAuth login with Advanced host override - Vertical OR divider separating the two approaches Add 5 new i18n translation keys with all 15 language translations: - BACKEND$CLOUD_TITLE, BACKEND$CLOUD_DESCRIPTION, BACKEND$CONNECT, BACKEND$ADVANCED, BACKEND$NAME_HELPER Update tests for the new layout (add-backend-modal, backend-selector). Co-authored-by: openhands <openhands@all-hands.dev> * fix: lint and prettier formatting in backend-form-modal Co-authored-by: openhands <openhands@all-hands.dev> * fix: stabilize add-backend snapshot test with server_info mock and networkidle wait The e2e test was timing out on the dropdown trigger click because the backend health check was making real requests to the dev server. Mock the /server_info endpoint and wait for networkidle before interacting. Co-authored-by: openhands <openhands@all-hands.dev> * fix: replace networkidle with targeted element wait in snapshot test The networkidle wait was consuming most of the 60s test timeout due to periodic health check polls. Wait for the specific dropdown trigger element instead. Co-authored-by: openhands <openhands@all-hands.dev> * fix: use hover instead of click to open backend dropdown in snapshot test The BackendSelector uses openOnHover=true. Playwright's click first hovers (opening the menu), then clicks the toggle (closing it). Using hover() keeps the menu open for the subsequent menu item click. Co-authored-by: openhands <openhands@all-hands.dev> * chore: update baseline snapshots [skip ci] * ci: trigger CI after snapshot baseline update Co-authored-by: openhands <openhands@all-hands.dev> * Render backend host helper text Co-authored-by: openhands <openhands@all-hands.dev> * Update self-hosted cloud repository link Co-authored-by: openhands <openhands@all-hands.dev> * fix: use current cloud login host --------- Co-authored-by: openhands <openhands@all-hands.dev> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>