Commit Graph

6353 Commits

Author SHA1 Message Date
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
openhands
1322f944be refactor: settings are transparent — no backend auto-fill
critic_server_url and critic_model_name are now user-facing settings
exposed in the GUI. The backend no longer mutates them based on proxy
detection. _get_agent_settings is now a pure pass-through with model
override only.

SDK pin: b69f7cee

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 12:06:58 +00:00
openhands
5925483f6b chore: update SDK pin to 0030eed1 (mcp_config + schema versioning)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 11:58:15 +00:00
openhands
0144424c8e fix: remove dead security_analyzer override on Agent
security_analyzer lives in VerificationSettings, not on Agent.
The model_copy override was a no-op.

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 11:54:20 +00:00
openhands
f07ce85b45 refactor: flow mcp_config through settings, not runtime override
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 11:51:01 +00:00
openhands
bc5a46dcee simplify: settings-transparent agent creation
- _get_agent_settings resolves ALL settings (model, critic endpoint)
- _create_agent just calls settings.create_agent() + runtime overrides
- Eliminated _get_default_critic, _apply_critic_proxy, _CRITIC_PROXY_PATTERN
- Removed legacy path (agent_settings is always present)
- Replaced mock-heavy tests with real-object assertions (-200 lines)

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 11:44:41 +00:00
openhands
9990870060 refactor: use AgentSettings.create_agent() for V1 agent creation
Replace manual Agent construction with settings.create_agent() when
SDK AgentSettings are available.  This makes settings the single
source of truth for LLM, tools, condenser, critic, and agent context.

Key changes:
- _get_default_critic() eliminated — replaced by _apply_critic_proxy()
  which sets critic_server_url/critic_model_name on the settings, then
  lets the SDK's build_critic() do the construction.
- _create_agent_with_context() settings path: populate tools +
  agent_context on settings, call create_agent(), apply runtime-only
  overrides (mcp_config, system_prompt) via model_copy.
- Legacy path (no agent_settings) kept for backward compat.
- Tests updated: agent_context now in Agent() constructor,
  mcp_config/system_prompt in model_copy.

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 11:30:02 +00:00
openhands
bab9a45590 chore: regenerate lock files to pick up SDK VerificationSettings commit
Update poetry.lock, enterprise/poetry.lock, and uv.lock to resolve
to SDK commit bb601665 which includes the merged VerificationSettings.

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 02:44:33 +00:00
openhands
b4107ff9dc settings: merge Critic+Security into Verification, remove OpenHandsAgentSettings
- SDK: combined CriticSettings + SecuritySettings into VerificationSettings
  with backward-compat property accessors and type aliases
- Removed OpenHandsAgentSettings subclass — use AgentSettings directly
- Nav order: LLM → Condenser → Verification (was separate Security + Critic)
- Single verification-settings route replaces critic-settings + security-settings
- Updated _SDK_TO_FLAT_SETTINGS keys to verification.* namespace
- All 119 backend tests pass, frontend builds, lint clean

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 02:31:05 +00:00
openhands
3e04713097 Merge remote-tracking branch 'origin/main' into openhands/issue-2228-gui-settings-schema 2026-03-17 02:28:36 +00:00
openhands
77f868081c feat: add Security settings section via OpenHandsAgentSettings
Create OpenHandsAgentSettings(AgentSettings) in the OpenHands codebase
that extends the SDK's AgentSettings with a 'security' section containing
confirmation_mode (critical) and security_analyzer (major). The SDK's
export_schema() picks these up automatically via its metadata conventions.

Backend:
- SecuritySettings pydantic model with SDK metadata annotations
- OpenHandsAgentSettings subclass used by _get_sdk_settings_schema()
- _SDK_TO_FLAT_SETTINGS bridges dotted SDK keys to flat Settings attrs
  so existing consumers (session init, security-analyzer setup) work
- _extract_sdk_settings_values seeds from flat fields for UI display

Frontend:
- /settings/security route renders the security schema section
- Nav: LLM -> Security -> Condenser -> Critic (both SAAS and OSS)
- Removed empty General page (no schema section exists for it yet)

Tests:
- New test_get_sdk_settings_schema_includes_security_section
- All 119 backend + 10 frontend tests pass

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 02:08:07 +00:00
openhands
3a12924bc8 refactor: add General/Security pages, remove SDK_LEGACY_FIELD_MAP, fix inferInitialView
- Add /settings/general and /settings/security sidebar pages rendering
  their respective SDK schema sections
- Reorder nav: General above LLM, Security below LLM (both SAAS + OSS)
- Remove SDK_LEGACY_FIELD_MAP and all legacy field bridging — the only
  canonical store for SDK settings is now sdk_settings_values
- Simplify to_agent_settings(), _extract_sdk_settings_values(), and
  _apply_settings_payload() to read/write sdk_settings_values only
- Fix inferInitialView to accept an optional schemaOverride so
  SdkSectionPage passes filteredSchema (prevents cross-section
  minor-value overrides from elevating the view tier on unrelated pages)
- Add SETTINGS$NAV_GENERAL and SETTINGS$NAV_SECURITY i18n keys with
  translations for all 14 languages
- Use lock.svg for Security icon and settings.svg for General icon

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 01:46:11 +00:00
openhands
cfa7def554 feat: split Condenser and Critic into separate sidebar settings pages
- Add /settings/condenser and /settings/critic routes alongside LLM
- Extract reusable SdkSectionPage component with render-prop header
- Extract SchemaField + FIELD_HELP_LINKS into shared sdk-settings module
- LLM page now only renders 'llm' section; condenser/critic each render
  their own section using the same generic SdkSectionPage
- Add nav items with MemoryIcon (Condenser) and LightbulbIcon (Critic)
  to both SAAS_NAV_ITEMS and OSS_NAV_ITEMS
- Add SETTINGS$NAV_CONDENSER and SETTINGS$NAV_CRITIC i18n keys with
  translations for all 14 supported languages
- Update tests to reflect LLM-only page scope

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-17 01:18:29 +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
openhands
33d6a11abf feat: three-tier view (Basic/Advanced/All), CriticalFields with ModelSelector, help links, and schema-driven sections
- Rewrite llm-settings.tsx with SettingsView = 'basic' | 'advanced' | 'all'
- Critical fields (llm.model, llm.api_key, llm.base_url) rendered with purpose-built
  components at the top: ModelSelector for model, SettingsInput for API key/base URL
- Generic schema-driven fields rendered below, excluding specially-rendered keys
- UI-only help link mapping (FIELD_HELP_LINKS) for API key guidance
- Add SETTINGS$ALL i18n key with translations for all supported languages
- Update sdk-settings-schema.ts with isFieldVisibleInView, inferInitialView,
  hasAdvancedSettings, hasMinorSettings, SPECIALLY_RENDERED_KEYS
- Fix no-continue lint error
- Add llm.base_url to mock schema and test fixtures
- Update all tests for three-tier view and CriticalFields rendering
- Remove search_api_key from has-advanced-settings-set.ts
- Merge main into branch

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-16 22:49:37 +00:00
openhands
71d5aa5aa8 Merge remote-tracking branch 'origin/main' into openhands/issue-2228-gui-settings-schema 2026-03-16 22:44:22 +00: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
openhands
90d2681e34 fix: handle git-based SDK deps in enterprise Docker build
Strip git-based openhands SDK dependencies from the exported
requirements.txt in the enterprise Dockerfile. These packages are
already installed via the base app image and cannot have their hashes
verified by pip when using git branch references.

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-16 19:18:46 +00:00
openhands
565a5702c3 fix: pin Poetry >=2.3.0 in Dockerfile to match lockfile hash algorithm
Poetry 2.3.0 changed the content-hash algorithm to include dependency
groups. The Docker build cache had an older Poetry version that computed
a different hash, causing 'pyproject.toml changed significantly' errors.
Pinning >=2.3.0 ensures the Dockerfile installs a compatible version and
also busts the stale cache layer.

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-16 19:04:55 +00: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
openhands
4b9097068d chore: regenerate lockfiles for Docker build compatibility
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-16 18:50:50 +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
openhands
c9a5834164 Merge main and resolve conflicts for SDK settings schema PR
- Resolved merge conflicts in 5 files keeping both PR and main changes
- Fixed TestLoadHooksFromWorkspace missing pending_message_service and
  max_num_conversations_per_sandbox constructor args
- Removed unused UUID import flagged by ruff

All 118 targeted tests pass, frontend builds cleanly, pre-commit checks pass.

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-16 17:55:03 +00:00
Xingyao Wang
00daaa41d3 feat: Load workspace hooks for V1 conversations and add hooks viewer UI (#12773)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: enyst <engel.nyst@gmail.com>
Co-authored-by: Alona King <alona@all-hands.dev>
2026-03-17 00:55:23 +08:00
HeyItsChloe
a0e777503e fix(frontend): prevent auto sandbox resume behavior (#13133)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-16 10:22:23 -06:00
Hiep Le
238cab4d08 fix(frontend): prevent chat message loss during websocket disconnections or page refresh (#13380) 2026-03-16 22:25:44 +07:00
Tim O'Farrell
aec95ecf3b feat(frontend): update stop sandbox dialog to display conversations in sandbox (#13388)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-16 05:20:10 -06:00
Tim O'Farrell
d591b140c8 feat: Add configurable sandbox reuse with grouping strategies (#11922)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-16 05:19:31 -06:00
openhands
19a089aa4b Merge main and fix settings schema CI
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-15 19:51:27 +00:00
Rohit Malhotra
4dfcd68153 (Hotfix): followup messages for slack conversations (#13411)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-15 14:23:06 -04:00
aivong-openhands
f7ca32126f Fix CVE-2026-32597: Update pyjwt to 2.12.0 (#13405)
Co-authored-by: OpenHands CVE Fix Bot <openhands@all-hands.dev>
2026-03-14 09:35:56 -05:00
Hiep Le
c66a112bf5 fix(frontend): add rendering support for GlobObservation and GrepObservation events (#13379) 2026-03-14 19:56:57 +07:00
Ray Myers
a8ff720b40 chore: Update imagemagick in Debian images for security patches (#13397) 2026-03-13 22:48:50 -05:00
chuckbutkus
a14158e818 fix: use query params for file upload path (#13376)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-13 21:08:23 -04:00
John-Mason P. Shackelford
0c51089ab6 Upgrade the SDK to 1.14.0 (#13398)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-13 21:07:20 -04:00
chuckbutkus
8189d21445 Fix async call to await return (#13395) 2026-03-13 19:13:18 -04:00
chuckbutkus
b7e5c9d25b Use a flag to indicate if new users should use V1 (#13393)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-13 22:39:07 +00:00
chuckbutkus
873dc6628f Add Enterprise SSO login button to V1 login page (#13390)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-13 16:57:34 -04:00