Commit Graph
53 Commits
Author SHA1 Message Date
Robert Brennanandopenhands 9c3b936d16 Add npm run dev:static for offline / high-latency development (#168)
Mirrors the dev:automation backend stack (agent-server + automation +
ingress) but serves a production frontend build through a small static
server instead of Vite. Designed for use over flaky / high-RTT links
where Vite's ~1000 ESM module fetches make full reloads painfully slow:
hashed assets are now sent with public/immutable cache headers, so an
SPA reload is ~1 round-trip (304 on index.html) and zero asset fetches.

scripts/static-server.mjs: combined static-file server + reverse proxy.
A drop-in for sirv-cli that additionally proxies the same prefixes Vite
proxies in dev (/api, /api/automation, /sockets, /server_info, /alive,
/health, /ready) so hitting :3001 directly behaves like Vite's dev
server — without it, sirv-cli's --single fallback turns /server_info
into the SPA shell whenever a tunnel exposes the static port instead of
the ingress port. Caches /assets/* immutable, index.html no-cache,
weak ETags.

scripts/dev-static.mjs: orchestrator that builds the frontend, then
spawns agent-server, automation, static-server, and the existing
ingress with the same route table as dev-with-automation.

scripts/dev-safe.mjs: add isPortBusy() and
releaseStaleConversationLeases() helpers. The agent-server tags each
conversation directory with an owner_lease.json keyed to a per-process
owner_instance_id (45 s TTL, heartbeat-renewed) and skip-loads any
conversation whose lease is held by a different instance. If the
previous agent-server died ungracefully — or you restart inside the
TTL window — every existing conversation becomes invisible to the new
instance until the leases age out. dev:static now port-checks for a
live agent-server (aborts on conflict), then unlinks stale leases so
conversations created by npm run dev are immediately visible.

Co-authored-by: openhands <openhands@all-hands.dev>
2026-05-08 17:29:27 +07:00
Robert Brennanandopenhands 22aa64f482 Conversation control bar: surface local git remote/branch + diff against HEAD (#166)
* Show local git remote/branch in conversation control bar

For conversations started from a local workspace (no selected_repository
on the conversation), shell out via the agent server's bash-execute
endpoint to read 'git remote get-url origin' and the current branch from
the conversation's working dir, and use them to populate the repo and
branch chips in the chat git control bar.

- New parseGitRemoteUrl util maps remote URLs to {host, owner/repo,
  provider}, recognizing github/gitlab/bitbucket/azure cloud hosts.
- New useLocalGitInfo query hook runs only when the conversation lacks a
  selected_repository, has a working_dir, and the runtime is ready.
  Failures (non-git checkout, etc.) silently fall back to the existing
  'No repo / No branch' display.
- GitControlBar layers the local fallback after conversation/task data
  but keeps pull/push/PR gated on conversation/task data only, so we
  don't enable provider-specific flows for repos the agent didn't clone.
- Repo/branch buttons now render the detected name even when no provider
  is known; the external-link styling is reserved for cases where we can
  build a real URL.

Co-authored-by: openhands <openhands@all-hands.dev>

* Bump typescript-client and request HEAD ref for git changes

Update @openhands/typescript-client from 7d20f11 to 6b9603f (latest main)
to pick up the new optional 'ref' option on RemoteWorkspace.gitChanges
and gitDiff. Pass { ref: 'HEAD' } from both the V1 and legacy git-service
adapters (and the cloud-proxy query strings) so the Changes panel shows
working tree + index versus the latest commit (i.e. staged + unstaged)
instead of diffing against the auto-detected upstream/default branch.

Co-authored-by: openhands <openhands@all-hands.dev>

* chore(lint): prettier nits in use-local-git-info

Co-authored-by: openhands <openhands@all-hands.dev>

* Refactor git remote URL normalization

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2026-05-07 23:01:10 -07:00
Hiep Le dd744b13f6 feat: cloud backend support with multi-backend selector and SaaS proxy routing (#145)
* feat: multi-backend support with cloud SaaS proxy routing

* feat: route conversation export through cloud proxy on cloud backends

* fix: route conversation delete through cloud proxy on cloud backends

* fix: forward settings diffs verbatim through cloud proxy save

* fix: surface cloud-aware settings sub-pages and gate local-only routes

* fix: route secrets settings through cloud proxy on cloud backends

* fix: route conversation stop runtime through cloud proxy on cloud backends

* fix: re-expose planning agent UI for cloud backends and route plan file reads through cloud proxy

* fix: route Display Cost runtime fetch through cloud proxy and ungate local metrics without session API key

* fix: handle WAITING_FOR_SANDBOX task status from cloud backends to prevent UI crash

* fix: re-expose Public Share in conversation menu for cloud backends

* fix: redirect to home when switching backends from a conversation page

* fix: hide cloud orgs the API key can't access in backend selector

* feat: support running multiple local agent-servers with shared persistence

* fix: lint

* fix: failing tests
2026-05-08 01:17:40 +07:00
dependabot[bot]andopenhands ee0359b0f3 deps(deps-dev): bump eslint-plugin-react-hooks from 4.6.2 to 7.1.1 in the react group (#149)
* deps(deps-dev): bump eslint-plugin-react-hooks in the react group

Bumps the react group with 1 update: [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks).


Updates `eslint-plugin-react-hooks` from 4.6.2 to 7.1.1
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/eslint-plugin-react-hooks@7.1.1/packages/eslint-plugin-react-hooks)

---
updated-dependencies:
- dependency-name: eslint-plugin-react-hooks
  dependency-version: 7.1.1
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>

* ci: allow eslint-plugin-react-hooks v5+ alongside airbnb-19

- Add npm override so eslint-config-airbnb's strict ^4.3.0 peer dep on
  eslint-plugin-react-hooks does not block dependabot version bumps.
- Disable the new React Compiler-aware rules introduced in
  eslint-plugin-react-hooks@5+ (immutability, preserve-manual-memoization,
  refs, set-state-in-effect) to avoid retroactively flagging existing code
  on every plugin bump. They can be re-enabled if/when we adopt the
  React Compiler.

Co-authored-by: openhands <openhands@all-hands.dev>

---------

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>
2026-05-07 13:43:24 -04:00
dependabot[bot] dc0b5ac964 deps(deps): bump @microlink/react-json-view from 1.31.18 to 1.31.19 (#153)
Bumps [@microlink/react-json-view](https://github.com/microlinkhq/react-json-view) from 1.31.18 to 1.31.19.
- [Release notes](https://github.com/microlinkhq/react-json-view/releases)
- [Changelog](https://github.com/microlinkhq/react-json-view/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/react-json-view/compare/v1.31.18...v1.31.19)

---
updated-dependencies:
- dependency-name: "@microlink/react-json-view"
  dependency-version: 1.31.19
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 13:06:22 -04:00
dependabot[bot] d5c6a6522d deps(deps-dev): bump the testing group with 3 updates (#151)
Bumps the testing group with 3 updates: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8), [msw](https://github.com/mswjs/msw) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/coverage-v8` from 4.1.4 to 4.1.5
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/coverage-v8)

Updates `msw` from 2.13.4 to 2.14.2
- [Release notes](https://github.com/mswjs/msw/releases)
- [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mswjs/msw/compare/v2.13.4...v2.14.2)

Updates `vitest` from 4.1.4 to 4.1.5
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 4.1.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing
- dependency-name: msw
  dependency-version: 2.14.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing
- dependency-name: vitest
  dependency-version: 4.1.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 13:06:16 -04:00
dependabot[bot] 5592d903ee deps(deps): bump the react-router group with 4 updates (#150)
Bumps the react-router group with 4 updates: [@react-router/node](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node), [@react-router/serve](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve), [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) and [@react-router/dev](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dev).


Updates `@react-router/node` from 7.14.1 to 7.14.2
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-node/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/@react-router/node@7.14.2/packages/react-router-node)

Updates `@react-router/serve` from 7.14.1 to 7.14.2
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-serve/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/@react-router/serve@7.14.2/packages/react-router-serve)

Updates `react-router` from 7.14.1 to 7.14.2
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.14.2/packages/react-router)

Updates `@react-router/dev` from 7.14.1 to 7.14.2
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dev/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/@react-router/dev@7.14.2/packages/react-router-dev)

---
updated-dependencies:
- dependency-name: "@react-router/node"
  dependency-version: 7.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: react-router
- dependency-name: "@react-router/serve"
  dependency-version: 7.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: react-router
- dependency-name: react-router
  dependency-version: 7.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: react-router
- dependency-name: "@react-router/dev"
  dependency-version: 7.14.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react-router
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 13:06:10 -04:00
dependabot[bot] 5b36c6c444 deps(deps): bump react-i18next in the i18next group (#148)
Bumps the i18next group with 1 update: [react-i18next](https://github.com/i18next/react-i18next).


Updates `react-i18next` from 17.0.4 to 17.0.6
- [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/react-i18next/compare/v17.0.4...v17.0.6)

---
updated-dependencies:
- dependency-name: react-i18next
  dependency-version: 17.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: i18next
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 13:06:05 -04:00
Robert Brennan 3b364ca389 switch to uuid package (#146) 2026-05-07 12:50:05 -04:00
988cfed5c6 feat: add automation backend integration with standalone ingress proxy (#127)
* feat: add automation backend integration with standalone ingress proxy

- Add scripts/ingress.mjs: standalone HTTP reverse proxy for routing traffic
  to multiple backends based on URL path prefix
- Add scripts/dev-with-automation.mjs: orchestrates full stack with
  agent-server, automation backend (both via uvx), Vite, and ingress
- Make 'npm run dev' run full stack by default (was dev:safe, now dev:automation)
- Rename 'npm run dev:safe' to 'npm run dev:minimal' for agent-server + Vite only
- Update README with new quickstart showing full stack as default
- Update AGENTS.md with architecture documentation

Architecture:
  http://localhost:8000 (Ingress)
  ├── /api/automation/* → Automation Backend (:18001)
  ├── /api/*, /sockets  → Agent Server (:18000)
  └── /* (default)      → Vite Dev Server (:3001)

* test: add tests for ingress and dev-with-automation scripts

- Add __tests__/scripts/ingress.test.ts with 14 tests covering:
  - CLI argument parsing (--help, --port, --route, --default)
  - Route matching (exact, prefix, longest-match-first)
  - Proxy functionality (forwarding, query params, error handling)
  - 502 response when backend unavailable
  - 503 response for unmatched routes with no default

- Add __tests__/scripts/dev-with-automation.test.ts with 19 tests covering:
  - buildAutomationCommand() with various git refs/repos
  - buildConfig() port and path configuration
  - CLI --help output
  - Graceful exit when uvx is missing

- Export testable functions from dev-with-automation.mjs

* fix: prevent dev-with-automation from auto-executing when imported

The script was calling main() unconditionally, which caused test failures
when vitest imported the module. Now check if the module is the main entry
point before executing.

---------

Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: hieptl <hieptl.developer@gmail.com>
2026-05-07 12:02:15 -04:00
dependabot[bot] ef03d8c144 deps(deps-dev): bump tailwindcss from 4.2.2 to 4.2.4 (#72)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) from 4.2.2 to 4.2.4.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.4/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-version: 4.2.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 11:29:26 -04:00
dependabot[bot] 8fc6eb97ef deps(deps): bump @tailwindcss/vite from 4.2.2 to 4.2.4 (#73)
Bumps [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) from 4.2.2 to 4.2.4.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.4/packages/@tailwindcss-vite)

---
updated-dependencies:
- dependency-name: "@tailwindcss/vite"
  dependency-version: 4.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 11:22:03 -04:00
dependabot[bot] 05dcac1131 deps(deps): bump i18next from 26.0.6 to 26.0.8 (#74)
Bumps [i18next](https://github.com/i18next/i18next) from 26.0.6 to 26.0.8.
- [Release notes](https://github.com/i18next/i18next/releases)
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/i18next/compare/v26.0.6...v26.0.8)

---
updated-dependencies:
- dependency-name: i18next
  dependency-version: 26.0.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 11:21:59 -04:00
dependabot[bot] 8a5c944e4f deps(deps): bump vite from 8.0.9 to 8.0.10 (#80)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.0.9 to 8.0.10.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.0.10/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 8.0.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 11:21:48 -04:00
dependabot[bot] 0ade8e2578 deps(deps-dev): bump jsdom from 29.0.2 to 29.1.1 (#81)
Bumps [jsdom](https://github.com/jsdom/jsdom) from 29.0.2 to 29.1.1.
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Commits](https://github.com/jsdom/jsdom/compare/v29.0.2...v29.1.1)

---
updated-dependencies:
- dependency-name: jsdom
  dependency-version: 29.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 11:15:10 -04:00
dependabot[bot] f6f966a6d2 deps(deps): bump i18next-http-backend from 3.0.5 to 3.0.6 (#79)
Bumps [i18next-http-backend](https://github.com/i18next/i18next-http-backend) from 3.0.5 to 3.0.6.
- [Changelog](https://github.com/i18next/i18next-http-backend/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/i18next-http-backend/compare/v3.0.5...v3.0.6)

---
updated-dependencies:
- dependency-name: i18next-http-backend
  dependency-version: 3.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 11:15:05 -04:00
dependabot[bot] 49aa6e1149 deps(deps): bump @tanstack/react-query from 5.99.2 to 5.100.6 (#78)
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.99.2 to 5.100.6.
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.100.6/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.100.5
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 11:15:00 -04:00
dependabot[bot] d1314cedf2 deps(deps-dev): bump @tanstack/eslint-plugin-query (#77)
Bumps [@tanstack/eslint-plugin-query](https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query) from 5.99.2 to 5.100.6.
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/eslint-plugin-query/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/eslint-plugin-query@5.100.6/packages/eslint-plugin-query)

---
updated-dependencies:
- dependency-name: "@tanstack/eslint-plugin-query"
  dependency-version: 5.100.5
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 11:14:56 -04:00
dependabot[bot] e28cd11d37 deps(deps): bump posthog-js from 1.369.3 to 1.372.5 (#76)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.369.3 to 1.372.5.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.369.3...posthog-js@1.372.5)

---
updated-dependencies:
- dependency-name: posthog-js
  dependency-version: 1.372.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 11:14:52 -04:00
dependabot[bot] 4336329009 deps(deps): bump lucide-react from 1.8.0 to 1.14.0 (#75)
Bumps [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) from 1.8.0 to 1.14.0.
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.14.0/packages/lucide-react)

---
updated-dependencies:
- dependency-name: lucide-react
  dependency-version: 1.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 11:14:28 -04:00
Hiep Le 7e221c4b65 fix(frontend): revert HeroUI v3 to v2 and scope body for portal'd popovers (#124)
* feat: revert HeroUI v3 to v2 and scope body for portal'd popovers

* fix: failing tests

* fix: failing tests
2026-05-07 02:24:35 +07:00
Graham Neubigandopenhands 62871d3a7b rename agent-server-gui to agent-canvas (#121)
- npm package: @openhands/agent-server-gui -> @openhands/agent-canvas
- README/DEVELOPMENT/AGENTS/codereview guide updated to new name
- GitHub URL in onboarding screen + tests updated
- dev launcher env vars renamed: OH_GUI_SAFE_* -> OH_CANVAS_SAFE_*
- default state dir: ~/.openhands/agent-server-gui -> ~/.openhands/agent-canvas
- i18n strings replace 'GUI' phrasing with 'Agent Canvas' across settings,
  upgrade, onboarding, and unavailable copy
- Test fixtures, working-dir paths, and library-consumer smoke updated

Co-authored-by: openhands <openhands@all-hands.dev>
2026-05-06 13:07:01 -04:00
Hiep Le 1cc616921f feat(frontend): isolate per-conversation working directories (#90)
* feat: isolate per-conversation working directories

* fix: failing tests
2026-05-05 01:32:24 +07:00
Hiep Le dd8a44231f fix(frontend): remove SaaS and enterprise terminology (#88)
* fix: remove SaaS and enterprise terminology

* refactor: remove unrelated file
2026-05-04 21:27:45 +07:00
Graham Neubigandopenhands ea2135386b Implement scoped embeddable styles (#55)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-30 22:46:04 -07:00
Graham Neubigandopenhands 8bfae71939 Namespace library i18n resources (#62)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-30 22:45:31 -07:00
Graham Neubigandopenhands 96c237261f Fix Vercel React Router deployment output (#58)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-30 08:29:29 -07:00
Graham Neubigandopenhands 22b7d6e842 Add library build mode and component barrel exports (#54)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-30 07:37:01 -04:00
9924789a02 deps(deps): bump react-i18next from 17.0.0 to 17.0.4 (#39)
Bumps [react-i18next](https://github.com/i18next/react-i18next) from 17.0.0 to 17.0.4.
- [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/react-i18next/compare/v17.0.0...v17.0.4)

---
updated-dependencies:
- dependency-name: react-i18next
  dependency-version: 17.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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: Graham Neubig <neubig@gmail.com>
2026-04-30 06:52:05 -04:00
Graham Neubigandopenhands 22013de897 Upgrade HeroUI to v3 (#50)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-28 23:53:34 -04:00
Graham Neubig 0dddd7a6e7 Fix Windows dev startup (#43) 2026-04-28 21:31:37 -04:00
dependabot[bot] 67cdcff033 deps(deps): bump vite from 8.0.8 to 8.0.9 (#40)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.0.8 to 8.0.9.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.0.9/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 8.0.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-27 10:40:21 -04:00
openhands fbfd3015ab Revert HeroUI to v2
Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-27 02:56:29 +00:00
Graham Neubig 6ffab7c61d Update typescript package 2026-04-26 22:03:11 -04:00
dependabot[bot]andopenhands e085510622 deps(deps): bump @heroui/react from 2.8.10 to 3.0.3 (#28)
* deps(deps): bump @heroui/react from 2.8.10 to 3.0.3

Bumps [@heroui/react](https://github.com/heroui-inc/heroui/tree/HEAD/packages/react) from 2.8.10 to 3.0.3.
- [Release notes](https://github.com/heroui-inc/heroui/releases)
- [Changelog](https://github.com/heroui-inc/heroui/blob/v3/packages/react/CHANGELOG.md)
- [Commits](https://github.com/heroui-inc/heroui/commits/v3.0.3/packages/react)

---
updated-dependencies:
- dependency-name: "@heroui/react"
  dependency-version: 3.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: restore HeroUI v3 compatibility

Co-authored-by: openhands <openhands@all-hands.dev>

---------

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>
2026-04-26 13:51:42 -04:00
dependabot[bot]andopenhands 4345967285 deps(deps): bump lucide-react from 0.562.0 to 1.8.0 (#33)
Bumps [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) from 0.562.0 to 1.8.0.
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.8.0/packages/lucide-react)

---
updated-dependencies:
- dependency-name: lucide-react
  dependency-version: 1.8.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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>
2026-04-26 13:29:32 -04:00
dependabot[bot] 474170dd18 deps(deps-dev): bump vite-plugin-svgr from 4.5.0 to 5.2.0 (#32)
Bumps [vite-plugin-svgr](https://github.com/pd4d10/vite-plugin-svgr) from 4.5.0 to 5.2.0.
- [Release notes](https://github.com/pd4d10/vite-plugin-svgr/releases)
- [Commits](https://github.com/pd4d10/vite-plugin-svgr/compare/v4.5.0...v5.2.0)

---
updated-dependencies:
- dependency-name: vite-plugin-svgr
  dependency-version: 5.2.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-26 13:22:45 -04:00
dependabot[bot]andopenhands 438f51a224 deps(deps-dev): bump typescript from 5.9.3 to 6.0.3 (#34)
* deps(deps-dev): bump typescript from 5.9.3 to 6.0.3

Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.9.3 to 6.0.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v6.0.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 6.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* test: stabilize flaky CI checks

Co-authored-by: openhands <openhands@all-hands.dev>

* test: harden Vitest browser globals

Co-authored-by: openhands <openhands@all-hands.dev>

---------

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>
2026-04-26 13:16:33 -04:00
dependabot[bot] 6d29e7670c deps(deps): bump react-i18next from 16.6.6 to 17.0.0 (#35)
Bumps [react-i18next](https://github.com/i18next/react-i18next) from 16.6.6 to 17.0.0.
- [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/react-i18next/compare/v16.6.6...v17.0.0)

---
updated-dependencies:
- dependency-name: react-i18next
  dependency-version: 17.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-26 12:53:48 -04:00
dependabot[bot] 5d324a29e6 deps(deps): bump vite from 7.3.2 to 8.0.8 (#31)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.3.2 to 8.0.8.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.0.8/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 8.0.8
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-26 12:53:46 -04:00
dependabot[bot] 4a561b5bbf deps(deps): bump i18next from 25.10.10 to 26.0.6 (#30)
Bumps [i18next](https://github.com/i18next/i18next) from 25.10.10 to 26.0.6.
- [Release notes](https://github.com/i18next/i18next/releases)
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/i18next/compare/v25.10.10...v26.0.6)

---
updated-dependencies:
- dependency-name: i18next
  dependency-version: 26.0.6
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-26 12:53:43 -04:00
dependabot[bot] e43fc1f8aa deps(deps-dev): bump jsdom from 27.4.0 to 29.0.2 (#29)
Bumps [jsdom](https://github.com/jsdom/jsdom) from 27.4.0 to 29.0.2.
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Commits](https://github.com/jsdom/jsdom/compare/v27.4.0...v29.0.2)

---
updated-dependencies:
- dependency-name: jsdom
  dependency-version: 29.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-26 12:53:41 -04:00
Graham Neubigandopenhands 9cdc64ac00 Add CI workflows and exact dependency pinning (#25)
* Add CI workflows and Dependabot updates

Co-authored-by: openhands <openhands@all-hands.dev>

* Exact-pin direct npm dependencies

Co-authored-by: openhands <openhands@all-hands.dev>

* Fix CI Vite config test portability

Co-authored-by: openhands <openhands@all-hands.dev>

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-26 11:33:46 -04:00
Graham Neubigandopenhands 0e60826123 Add isolated dev stack command for OpenHands Cloud debugging (#20)
* Warn about OpenHands Cloud backend conflicts

Co-authored-by: openhands <openhands@all-hands.dev>

* Add isolated dev stack command

Co-authored-by: openhands <openhands@all-hands.dev>

* Promote isolated stack to default dev command

Co-authored-by: openhands <openhands@all-hands.dev>

* Fix dev-safe startup failure and docs

Co-authored-by: openhands <openhands@all-hands.dev>

* Restructure docs for users and developers

Co-authored-by: openhands <openhands@all-hands.dev>

* Remove libtmux from install docs

Co-authored-by: openhands <openhands@all-hands.dev>

* Fix first-load Vite optimize dependency errors

Co-authored-by: openhands <openhands@all-hands.dev>

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-26 11:09:39 -04:00
Graham Neubigandopenhands 18fc1fd9a9 [Phase 1] Strip SaaS-specific code from the OSS repo (#17)
* Strip SaaS-only frontend code

Co-authored-by: openhands <openhands@all-hands.dev>

* Fix static mock builds

Co-authored-by: openhands <openhands@all-hands.dev>

* Restore OSS settings route tests

* Restore pinned TypeScript client dependency\n\nCo-authored-by: openhands <openhands@all-hands.dev>

* Revert vendored TypeScript client workaround

Co-authored-by: openhands <openhands@all-hands.dev>

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-25 16:27:55 -04:00
Graham Neubigandopenhands 3f84ba07a6 Warn on incompatible agent server version (#18)
* Warn on incompatible agent server version

Co-authored-by: openhands <openhands@all-hands.dev>

* Use server version for compatibility guard

Co-authored-by: openhands <openhands@all-hands.dev>

* Tighten compatibility guard typing

Co-authored-by: openhands <openhands@all-hands.dev>

* Update

* Warn when agent server is unavailable

Co-authored-by: openhands <openhands@all-hands.dev>

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-25 14:58:11 -04:00
Graham Neubigandopenhands 66542e4976 Add sandbox project metadata (#1)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-24 17:33:22 -04:00
openhands f3b97de0e6 Use vendored TypeScript client for agent server APIs
Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-24 17:11:53 +00:00
openhands 1c239d73a9 Port OpenHands frontend to direct agent_server integration
Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-24 02:46:34 +00:00
sp.wack 35346068d1 chore: Remove root level package.json (#6498) 2025-01-29 00:31:48 +04:00