1717 Commits

Author SHA1 Message Date
openhands
71201ac4cd refactor: Simplify useInfiniteScroll hook API
- Remove redundant containerRef (useRef), keep only useState for container
- Rename return value from 'ref' to 'setRef' for clearer API
- Replace waitForTimeout with proper expect().toHaveCount() in E2E tests

Addresses code review feedback on PR #12084
2025-12-22 19:25:43 +00:00
openhands
da4b1e1a88 fix: Prevent duplicate API calls when reopening conversation panel
When the conversation panel was closed and reopened, TanStack Query's
useInfiniteQuery would refetch all cached pages, causing multiple API
calls. This fix adds staleTime of 5 minutes to prevent unnecessary
refetches when the data is still fresh.

This is consistent with other hooks in the codebase that use the same
staleTime value.

Co-authored-by: openhands <openhands@all-hands.dev>
2025-12-18 20:36:55 +00:00
openhands
7bd9a7f8b7 fix: Fix E2E tests for infinite scroll and avatar menu
- Fix avatar-menu test: Remove group-hover:pointer-events-auto from wrapper
  div to prevent menu from intercepting clicks on the avatar button. Only
  enable pointer events when menu is actually open via click.

- Fix infinite-scroll test: Add data-testid='conversation-card' to
  RecentConversation component for test selector consistency.

- Update recent conversations test: Change test to match actual component
  behavior (View More/Less button instead of infinite scroll). The
  RecentConversations component uses a display limit with expand/collapse
  functionality, not infinite scroll for display.

Co-authored-by: openhands <openhands@all-hands.dev>
2025-12-18 18:25:50 +00:00
openhands
22ca3e3fd1 Add Playwright E2E test for infinite scroll and fix flaky avatar-menu test
- Add infinite-scroll.spec.ts with tests for:
  - Loading more conversations when scrolling in conversation panel
  - Loading more conversations when scrolling in recent conversations
- Fix avatar-menu.spec.ts:
  - Changed test to use click-to-open behavior instead of CSS hover
  - CSS hover bridge cannot be reliably tested with Playwright
  - Removed browser-specific skips since click behavior works everywhere

Co-authored-by: openhands <openhands@all-hands.dev>
2025-12-18 17:23:51 +00:00
openhands
02f69f02c0 Add unit tests for useInfiniteScroll hook and Playwright documentation
- Add 5 unit tests for useInfiniteScroll hook covering:
  - Scroll near bottom triggers fetchNextPage
  - Scroll not near bottom doesn't trigger fetch
  - hasNextPage=false doesn't trigger fetch
  - isFetchingNextPage=true doesn't trigger fetch
  - Callback ref properly attaches to container
- Add Playwright E2E testing documentation to repo.md
- Initialize mock settings with defaults to avoid modal popup during testing

Co-authored-by: openhands <openhands@all-hands.dev>
2025-12-18 17:13:35 +00:00
openhands
a2a24a753a feat(frontend): enhance mock conversation handlers for pagination testing
- Generate 50 mock conversations instead of 3 for better pagination testing
- Add pagination support to mock API endpoint
- Include variety of project names, repositories, and statuses

Co-authored-by: openhands <openhands@all-hands.dev>
2025-12-18 16:11:09 +00:00
openhands
d85952fe8e fix: Fix infinite scroll for conversations list
The useInfiniteScroll hook had a bug where the scroll event listener
might not be attached if the ref was assigned after the initial render.
This happened because the useEffect depended on handleScroll, which
didn't change when the ref was assigned via a callback ref.

Changes:
- Modified useInfiniteScroll to use a callback ref and state to track
  when the container is mounted
- The hook now returns { ref, containerRef } instead of just the ref
- Updated ConversationPanel and RecentConversations to use the new API

This ensures that the scroll event listener is properly attached when
the container element is mounted, enabling auto-pagination to work
correctly in the conversations list.

Co-authored-by: openhands <openhands@all-hands.dev>
2025-12-18 14:47:24 +00:00
Hiep Le
afce58a27d
refactor(frontend): move frontend/src/ui/microagent-management-service to frontend/src/api (#12017) 2025-12-18 20:27:38 +07:00
Hiep Le
43f7a6fdbd
fix(frontend): resolve overlap between conversation panel and account context menu (#12079) 2025-12-18 20:17:32 +07:00
Hiep Le
9ef11bf930
feat: show available skills for v1 conversations (#12039) 2025-12-17 23:25:10 +07:00
Hiep Le
f98e7fbc49
fix(frontend): observation events and action events (v1 conversations) (#12066)
Co-authored-by: openhands <openhands@all-hands.dev>
2025-12-17 22:34:28 +07:00
Hiep Le
0607614372
feat(frontend): add refresh button to changes tab (#12036)
Co-authored-by: Tim O'Farrell <tofarr@gmail.com>
2025-12-17 22:29:18 +07:00
dependabot[bot]
2c83e419dc
chore(deps): bump the version-all group across 1 directory with 5 updates (#12071) 2025-12-17 19:16:54 +04:00
Tim O'Farrell
dc14624480
Fix for frontend stall (#12069) 2025-12-17 03:35:46 +00:00
Rohit Malhotra
7853b41add
Add OAuth 2.0 Device Flow backend for CLI authentication (#11984)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: Xingyao Wang <xingyao@all-hands.dev>
2025-12-16 11:54:01 -05:00
Tim O'Farrell
2a98c95557
Release OpenHands v1.0.0 (#12052)
Co-authored-by: mamoodi <mamoodiha@gmail.com>
Co-authored-by: Engel Nyst <engel.nyst@gmail.com>
2025-12-16 11:03:29 -05:00
Mariam Saeed
3b7b2fd8cc
fix(frontend): Separate pause state from agent loading (#12041)
Co-authored-by: amanape <83104063+amanape@users.noreply.github.com>
2025-12-16 13:39:15 +00:00
Hiep Le
49740a463f
fix(frontend): clicking think block in conversation pane breaks ui (v1 conversations) (#12057) 2025-12-16 20:14:19 +07:00
dependabot[bot]
ee97542080
chore(deps): bump the version-all group in /frontend with 7 updates (#12050)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 23:08:17 +04:00
Abhay Mishra
a12170e4c9
refactor(frontend): Extracted useQuery and useMutation from the main branch (#12031)
Co-authored-by: sp.wack <83104063+amanape@users.noreply.github.com>
2025-12-15 16:37:52 +00:00
Abhay Mishra
f52d9899e2
Consolidate scattered test files into a unified frontend/__tests__/ directory (#12002) 2025-12-15 19:58:09 +04:00
Neha Prasad
47914c3576
chore: remove pnpm settings from npmrc (#12028) 2025-12-15 12:05:42 +07:00
Hiep Le
67c9b6cf86
refactor(frontend): websocket error message (v1 conversations) (#12045) 2025-12-15 01:31:12 +07:00
Hiep Le
d772dd65a5
fix(frontend): fix fetching the number of events on the front end (v1 conversations) (#11987) 2025-12-12 22:10:22 +07:00
dependabot[bot]
5daada17fd
chore(deps): bump the version-all group in /frontend with 8 updates (#12022)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 18:54:45 +04:00
Abhay Mishra
5a21c59a3c
refactor(frontend): Consolidate duplicate Settings type definitions (#12006) 2025-12-12 14:16:31 +00:00
Bharath A V
976d9d1ab9
Refactor(mocks): modularize MSW handlers into domain-specific files (#11974)
Co-authored-by: sp.wack <83104063+amanape@users.noreply.github.com>
2025-12-12 13:21:08 +00:00
Bharath A V
6917d45d3a
refactor(frontend): consolidate settings navigation items logic into shared custom hook (#11950)
Co-authored-by: amanape <83104063+amanape@users.noreply.github.com>
2025-12-12 13:20:59 +00:00
Nhan Nguyen
8a202b945b
fix(frontend): animate loading spinner for in-progress tasks (#12001)
Co-authored-by: amanape <83104063+amanape@users.noreply.github.com>
2025-12-12 13:03:28 +00:00
dependabot[bot]
62f594bc28
chore(deps): bump the version-all group across 1 directory with 2 updates (#12009)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 15:42:57 +00:00
sp.wack
94086f119a
fix(frontend): Fix avatar context menu closing on diagonal mouse movement (#11994) 2025-12-11 19:17:21 +04:00
Neha Prasad
f76016aa4d
chore: remove unused frontend dependencies (#11940)
Co-authored-by: amanape <83104063+amanape@users.noreply.github.com>
2025-12-11 15:15:11 +00:00
Lee Kyeong Joon
b16845fa06
refactor(frontend): Refactor tests to use Zustand's native state setting instead of vi.mock for stores (#11980)
Co-authored-by: amanape <83104063+amanape@users.noreply.github.com>
2025-12-11 14:53:08 +00:00
sp.wack
f4dd5384d0
fix(frontend): Fix empty state showing alongside error in RecentConversations (#11993) 2025-12-11 14:27:49 +00:00
Tim O'Farrell
f7c3a36745
feat: remember last selected git provider in homepage dropdown (#11979)
Co-authored-by: openhands <openhands@all-hands.dev>
2025-12-10 19:22:47 -07:00
HeyItsChloe
853547be82
fix(frontend): fix highlighted in terminal is missing background color (#11981)
Co-authored-by: Chloe <chloe@openhands.com>
2025-12-10 20:26:02 +04:00
Hiep Le
272a37d1b8
refactor(frontend): remove certain security analyzer options for v1 conversations (#11988) 2025-12-10 21:50:30 +07:00
sp.wack
92c91471b2
Add GitHub Actions workflow for frontend E2E tests with Playwright (#11990) 2025-12-10 14:43:34 +00:00
dependabot[bot]
7875df4be8
chore(deps): bump the version-all group in /frontend with 2 updates (#11973)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-10 12:39:30 +00:00
sp.wack
e18168020a
fix(frontend): skip flaky WebSocket broadcast tests (#11972) 2025-12-09 14:57:26 +00:00
Alona
9b57a0b14f
Remove error icon from ExpandableMessage component (#11964) 2025-12-09 02:50:03 +07:00
Alona
8559efa7b2
Remove loud red x icon on agent commands (#11962) 2025-12-09 01:28:13 +07:00
Hiep Le
bf06b7e3f3
fix(frontend): hide api key input field in advanced settings when provider is openhands (#11949) 2025-12-08 23:03:59 +07:00
Hiep Le
959d610d86
fix(frontend): set v1_enable correctly when saving mcp settings (#11948) 2025-12-08 23:03:26 +07:00
Bharath A V
16125f2ae9
Refactor(frontend): move settings-service into api folder and update (#11958) 2025-12-08 14:50:51 +00:00
dependabot[bot]
d31950c061
chore(deps): bump the version-all group in /frontend with 6 updates (#11957)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-08 14:46:08 +00:00
Tim O'Farrell
1a983d2978
APP-190 Add browser screenshot support for V1 conversations (#11919)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: sp.wack <83104063+amanape@users.noreply.github.com>
2025-12-06 14:04:01 -07:00
Hiep Le
7811a62491
refactor(frontend): remove max_budget_per_task input element for v1 (#11921) 2025-12-06 00:50:40 +07:00
dependabot[bot]
4344f5ad4e
chore(deps): bump the version-all group across 1 directory with 9 updates (#11915)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-05 14:59:19 +00:00
Neha Prasad
17821f782e
feat: display command in observation block (#11885)
Co-authored-by: sp.wack <83104063+amanape@users.noreply.github.com>
2025-12-05 14:45:28 +00:00