Commit Graph

6309 Commits

Author SHA1 Message Date
openhands
2963277639 style: update enterprise card dimensions and self-hosted descriptions
- Set desktop card dimensions: 438px width, 371.5px min-height
- Add rounded-2xl (16px border-radius) and border to cards
- Add separate short description for self-hosted card:
  'Deploy OpenHands on your own infrastructure. Full control over data, compliance, and security.'
- Keep longer description for form page CTA card:
  'Deploy OpenHands on your own infrastructure. Full control over your data, compliance, and security. Ideal for enterprises that require on-premises or private cloud deployment.'
- Add ENTERPRISE$SELF_HOSTED_CARD_DESCRIPTION i18n key with all 15 languages

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 17:02:46 +00:00
openhands
02d0d840ec refactor: show confirmation modal on homepage after form submit
- Update form to navigate to '/' with state { showRequestSubmittedModal: true }
- Update HomeScreen to check location state and show modal
- Modal renders on homepage, not on form page
- Clear location state after modal closes to prevent re-showing on refresh
- Update tests for new navigation flow

Flow:
1. User fills form and clicks Submit
2. Navigate to homepage with state
3. Homepage renders modal overlay
4. User clicks Done/Close -> modal closes, state cleared

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 16:51:57 +00:00
HeyItsChloe
1304306173 Merge branch 'APP-972/lead-capture-form' of https://github.com/OpenHands/OpenHands into APP-972/lead-capture-form 2026-03-19 09:48:19 -07:00
HeyItsChloe
3e79081089 cloud svg 2026-03-19 09:47:49 -07:00
openhands
f70c78e77f feat: add confirmation modal after form submission
- Create RequestSubmittedModal component matching design specs:
  - 448x170px, black background, border-radius 6px
  - Close button (X) at top right with 0.7 opacity
  - Title: 'Request submitted' (18px semibold)
  - Description text (14px, #8C8C8C)
  - Done button to dismiss and navigate to homepage
- Update InformationRequestForm to show modal on successful submit
- Navigate to '/' (homepage) when modal is closed
- Add i18n translations for modal text (15 languages):
  - ENTERPRISE$REQUEST_SUBMITTED_TITLE
  - ENTERPRISE$REQUEST_SUBMITTED_DESCRIPTION
  - ENTERPRISE$DONE_BUTTON
  - MODAL$CLOSE_BUTTON_LABEL
- Add unit tests for RequestSubmittedModal (10 tests)
- Update form tests for modal behavior (22 tests)

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 16:46:22 +00:00
openhands
de4f8f5f8e feat: show validation errors only after form submission attempt
- Remove always-visible red asterisk from required fields
- Add showError prop to FormInput for conditional error display
- Add hasAttemptedSubmit state to track form submission attempts
- Show red border only when: showError=true AND required AND empty
- Add aria-invalid attribute for accessibility
- Prevent form submission when required fields are empty
- Update unit tests for new validation behavior

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 16:31:41 +00:00
openhands
c3917fdcbe test: add unit tests for lead capture form components
- Add FormInput tests (15 tests)
  - Input/textarea rendering
  - Required field validation
  - Accessibility attributes (aria-label, aria-required)
  - Placeholder and type handling

- Add InformationRequestForm tests (17 tests)
  - Form field rendering
  - SaaS vs Self-hosted content switching
  - Form interaction and callbacks
  - Accessibility (button group, aria-labels)

- Add InformationRequest route tests (15 tests)
  - Page rendering and navigation
  - Card selection flow
  - Form display on Learn More click
  - Back navigation handling

- Add Card component tests (14 tests)
  - Theme variants (default, outlined, dark)
  - Hover variant (elevated)
  - Gradient variant (standard)
  - Combined variant behavior

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 16:25:38 +00:00
openhands
57f8f2c002 fix: revert unintended icon rename in CTA components
- Revert ServerIcon back to StackedIcon in login-cta.tsx
- Revert ServerIcon back to StackedIcon in context-menu-cta.tsx
- Revert test name back to 'stacked icon'

This PR should only add stacked icon to new files, not rename
existing icon usage.

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 16:20:49 +00:00
openhands
48d330f8b9 feat: add form validation and accessibility improvements
- Add required prop to FormInput with red asterisk indicator
- Make all form fields required (name, company, email, message)
- Add aria-label and aria-required attributes to inputs
- Add aria-label to all buttons (Back, Submit, Learn More)
- Add role='group' to button container
- Fix logo size inconsistency (55px → 56px)

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 16:11:29 +00:00
openhands
9ab08db6a1 refactor: improve CSS responsiveness
- Replace p-[25px] with p-6 (Tailwind default 24px)
- Remove fixed leading-[30px] from title (let browser handle)
- Remove fixed leading-[22.75px] from card description
- Replace h-10 with min-h-10 on inputs (allows growth)

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 16:01:31 +00:00
openhands
af41018121 content: update self-hosted description text
- Add full description for self-hosted option including:
  'Ideal for enterprises that require on-premises or private cloud deployment.'
- Updated all 15 language translations

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 15:53:13 +00:00
openhands
04e6c64ac1 refactor: add gradient variant to Card component
- Add gradient variant with 'standard' option to card.tsx
  - Semi-transparent background (#0A0A0A80)
  - Border-top color (#24242499)
  - Box shadow for depth
  - Radial gradient overlay via before pseudo-element
- Update information-request-form to use gradient='standard' variant
- Remove inline style overrides in favor of variant

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 15:46:06 +00:00
openhands
473bf910b6 style: update form layout to match design specifications
- Update container max-width to 896px with 32px gap
- Logo: 56x56px
- Title: 24px semibold, 30px line-height
- Subtitle: 14px regular, 20px line-height using Text component
- Form: max-width 544px with 16px gap between inputs
- FormInput: 40px height, 4px border-radius, #1F1F1F66 background
- CTA Card: 320px width using Card component with theme=dark
  - Custom gradient overlay and shadow
  - Icon: 40x40px
  - Title: 20px semibold, 28px line-height
  - Description: 14px, 22.75px line-height using Text component
- Responsive layout: stacks on mobile, side-by-side on desktop

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 15:40:49 +00:00
openhands
4894619c9b refactor: rename StepInput to FormInput and use OpenHandsLogoWhite
- Rename step-input.tsx to form-input.tsx
- Rename StepInput component to FormInput
- Update imports in information-request-form.tsx and step-content.tsx
- Use OpenHandsLogoWhite instead of custom wave icon
- Delete unused wave.svg file

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 15:24:59 +00:00
openhands
37561714a6 feat: redesign information request form with two-column layout
- Add wave.svg icon for form header
- Redesign form with side-by-side layout: form fields left, info card right
- Show different content based on request type (SaaS vs Self-hosted)
- Different titles, subtitles, and message placeholders per type
- Use Card component for info card section
- Submit navigates to home page (/)
- Back returns to card selection view
- Update i18n translations for all form labels and placeholders

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 15:10:35 +00:00
openhands
de75609e7a feat: add information request form component
- Create InformationRequestForm component in features/onboarding
- Update information-request route to show form when Learn More is clicked
- Change back button to navigate to /login instead of browser history
- Add i18n translations for form fields (name, email, company, message)
- Form back button returns to card selection view

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 15:04:25 +00:00
openhands
fb33356041 fix: restore stacked.svg icon that was accidentally deleted
The stacked.svg icon was mistakenly deleted in a previous commit
but is still needed by information-request.tsx.

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 14:54:05 +00:00
openhands
e1f661e83a fix: update card hover state and simplify route structure
- Add hover='elevated' variant to Card component with proper gradients:
  - Linear gradient background (180deg, #0F0F0F to #0A0A0A)
  - Radial gradient overlay for subtle glow effect
  - Border-top and box-shadow on hover
- Simplify onboarding routes: use index for onboarding-form
- Update onboarding-layout background to bg-black
- Simplify icon usage in information-request (remove wrapper div)

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-18 19:53:44 +00:00
openhands
a1331a562d feat: add enterprise lead capture form page
- Add new route /onboarding/information-request for enterprise lead capture
- Create onboarding layout with shared dark background for onboarding routes
- Refactor onboarding routes to use layout pattern with child routes
- Add EnterpriseCard component with SaaS and Self-hosted options
- Add cloud.svg icon for Enterprise SaaS card
- Rename stacked.svg to server.svg (deleted stacked.svg)
- Update all usages of StackedIcon to ServerIcon
- Add i18n translations for all new text content (all languages)
- Add new paths to intermediate pages list

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-18 19:08:55 +00:00
Jordi Mas
8e0386c416 feat: add Catalan translation (#13299) 2026-03-18 13:17:43 -04:00
Nelson Spence
48cd85e47e fix(security): add sleep to container wait loop (#12869)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 13:04:36 -04:00
不做了睡大觉
c62b47dcb1 fix: handle empty body in GitHub issue resolver (#13039)
Co-authored-by: User <user@example.com>
2026-03-18 12:36:52 -04:00
Jamie Chicago
eb9a822d4c Update CONTRIBUTING.md (#13463) 2026-03-18 12:10:22 -04:00
Engel Nyst
fb7333aa62 fix: stop calling agent-server /generate_title (#13093)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-18 17:10:07 +01:00
aivong-openhands
fb23418803 clarify docstring for provider token reference (#13386)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-18 12:03:56 -04:00
Xingyao Wang
991585c05d docs: add cross-repo testing skill for SDK ↔ OH Cloud e2e workflow (#13446)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-18 16:00:23 +00:00
Chris Bagwell
35a40ddee8 fix: handle containers with tagless images in DockerSandboxService (#13238) 2026-03-18 11:55:48 -04:00
Hiep Le
5d1f9f815a fix(frontend): preserve settings page route on browser refresh (org project) (#13462) 2026-03-18 22:50:42 +07:00
Hiep Le
d3bf989e77 feat(frontend): improve conversation access error message with workspace hint (org project) (#13461) 2026-03-18 22:50:30 +07:00
Hiep Le
6589e592e3 feat(frontend): add contextual info messages on LLM settings page (org project) (#13460) 2026-03-18 22:50:16 +07:00
Chris Bagwell
fe4c0569f7 Remove unused WORK_HOSTS_SKILL_FOOTER (#12594) 2026-03-18 21:57:23 +07:00
Xingyao Wang
28ecf06404 Render V1 paired tool summaries (#13451)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-18 10:52:05 +00:00
dependabot[bot]
26fa1185a4 chore(deps): bump mcp from 1.25.0 to 1.26.0 in the mcp-packages group (#13314)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: aivong-openhands <ai.vong@openhands.dev>
2026-03-17 17:44:35 -05:00
HeyItsChloe
d3a8b037f2 feat(frontend): home page cta (#13339)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: hieptl <hieptl.developer@gmail.com>
2026-03-18 03:44:36 +07:00
HeyItsChloe
af1fa8961a feat(frontend): login page cta (#13337)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-18 03:14:59 +07:00
HeyItsChloe
3b215c4ad1 feat(frontend): context menu cta (#13338)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-18 02:52:02 +07:00
HeyItsChloe
7516b53f5a feat(frontend): self hosted new user questions (#13367)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: hieptl <hieptl.developer@gmail.com>
2026-03-18 02:51:40 +07:00
aivong-openhands
855ef7ba5f PLTF-309: disable budget enforcement when ENABLE_BILLING=false (#13440)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 14:26:13 -05:00
Rohit Malhotra
09ca1b882f (Hotfix): use direct attrib for file download result (#13448) 2026-03-17 14:48:46 -04:00
Jamie Chicago
79cfffce60 docs: Improve Development.md and CONTRIBUTING.md with OS-specific setup guides (#13432)
Co-authored-by: enyst <engel.nyst@gmail.com>
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 17:03:33 +01:00
Saurya Velagapudi
b68c75252d Add architecture diagrams explaining system components and WebSocket flow (#12542)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: Saurya <saurya@openhands.dev>
Co-authored-by: Ray Myers <ray.myers@gmail.com>
2026-03-17 08:52:40 -07:00
aivong-openhands
d58e12ad74 Fix CVE-2026-27962: Update authlib to 1.6.9 (#13439)
Co-authored-by: OpenHands CVE Fix Bot <openhands@all-hands.dev>
Co-authored-by: OpenHands Bot <contact@all-hands.dev>
2026-03-17 10:13:08 -05:00
Engel Nyst
bd837039dd chore: update skills path comments (#12794) 2026-03-17 10:45:50 -04:00
Kooltek68
8a7779068a docs: fix typo in README.md (#13444) 2026-03-17 10:16:31 -04:00
Neha Prasad
38099934b6 fix : planner PLAN.md rendering and search labels (#13418)
Co-authored-by: hieptl <hieptl.developer@gmail.com>
2026-03-17 20:59:02 +07:00
Xingyao Wang
75c823c486 feat: expose_secrets param on /users/me + sandbox-scoped secrets API (#13383)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 12:54:57 +00:00
Tim O'Farrell
8941111c4e refactor: use status instead of pod_status in RemoteSandboxService (#13436)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-16 17:34:27 -06:00
ankit kumar
59dd1da7d6 fix: update deprecated libtmux API calls (#12596)
Co-authored-by: ANKIT <ankit@ANKITs-MacBook-Air.local>
2026-03-16 18:21:05 -04:00
Rohit Malhotra
934fbe93c2 Feat: enterprise banner option during device oauth (#13361)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-16 18:54:36 +00:00
Xingyao Wang
55e4f07200 fix: add missing params to TestLoadHooksFromWorkspace setup (#13424)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-16 14:49:36 -04:00