Commit Graph

6226 Commits

Author SHA1 Message Date
openhands
6ec03098ad fix: add integration tests, store prompt in config, remove AST extraction, extract pagination helper, simplify update
- Thread 1: Added integration tests using real SQLite database (aiosqlite)
  that exercise actual SQL queries for list, get, create, delete, pagination
- Thread 3: Store prompt in config JSON column so DB is source of truth,
  not the generated file
- Thread 4: Removed _extract_prompt_from_file (AST extraction) entirely
- Thread 5: Extracted _paginate() helper used by search_automations and
  list_automation_runs
- Thread 6: Simplified update endpoint - reads prompt from config instead
  of parsing file content

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-11 18:01:25 +00:00
openhands
20e0ebacf0 fix: address PR review feedback for automation CRUD API
- Fix pagination cursor bug: next_page_id now points to rows[limit]
  (first item of next page) instead of rows[limit-1] in both
  search_automations and list_automation_runs
- Simplify update endpoint: use model_dump(exclude_unset=True) to
  extract changed fields and set intersection for regen detection
- Add user isolation security tests: verify user B cannot GET, PATCH,
  DELETE, or search user A's automations
- Move automation_router import to top of saas_server.py with other
  router imports
- Consistent error handling: capture file_store_key before session
  close in delete endpoint
- Safe isoformat() calls: guard against None timestamps in
  _automation_to_response and _run_to_response

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-11 08:23:20 +00:00
openhands
3230813a95 [Automations Phase 1] Task 2: CRUD API
Implement REST API for creating, reading, updating, and deleting
automations. Simple mode only for Phase 1 (form input → generated file).

New files:
- enterprise/server/routes/automation_models.py: Pydantic request/response models
- enterprise/server/routes/automations.py: FastAPI router with 8 endpoints
- enterprise/storage/automation.py: SQLAlchemy models (stub for Task 1)
- enterprise/storage/automation_event.py: SQLAlchemy model (stub for Task 1)
- enterprise/services/: Config, file generator, event publisher stubs

Endpoints:
- POST /api/v1/automations — Create automation
- GET /api/v1/automations/search — List automations (paginated)
- GET /api/v1/automations/{id} — Get automation
- PATCH /api/v1/automations/{id} — Update automation
- DELETE /api/v1/automations/{id} — Delete automation and runs
- POST /api/v1/automations/{id}/run — Manual trigger
- GET /api/v1/automations/{id}/runs — List runs (paginated)
- GET /api/v1/automations/{id}/runs/{run_id} — Get run detail

Part of RFC: https://github.com/OpenHands/OpenHands/issues/13275

Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-10 18:45:48 +00:00
Juan Michelini
5e5950b091 Add Gemini-3.1-Pro-Preview model support to frontend (#13253)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: Ray Myers <ray.myers@gmail.com>
2026-03-10 16:18:13 +00:00
John-Mason P. Shackelford
c7ff560465 Fix getGitPath to handle nested GitLab group paths (#13006)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-10 11:12:08 -05:00
Joe Laverty
3432bbbb88 fix: Remove N+1 request from Bitbucket Data Center integration (#13281) 2026-03-10 11:08:30 -05:00
Hiep Le
fc24be2627 fix(frontend): preserve login_method param to enable session re-authentication (#13310) 2026-03-10 22:52:40 +07:00
Hiep Le
bc72b38d6e fix(backend): propagate LLM settings to all org members when admin saves settings (#13326) 2026-03-10 22:52:01 +07:00
Dream
145f1266e6 feat(frontend): create a separate UI tab for monitoring tasks (#13065)
Co-authored-by: hieptl <hieptl.developer@gmail.com>
2026-03-10 22:31:38 +07:00
Rohit Malhotra
e12dd924ce feat(slack): implement repo selection with external_select for pagination (#13273)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-09 16:04:49 -04:00
Tim O'Farrell
598b381e3d Added fallback for sandbox spec service (#13317)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-09 12:21:52 -06:00
Ray Myers
698cfc2520 fix: sanitize file_path in git diff shell commands to prevent command injection (#13051)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-09 17:29:25 +00:00
Xingyao Wang
8356170193 Fix stale Docker image tags & add version consistency CI + update-sdk skill (#13315)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-09 17:23:30 +00:00
mamoodi
fe2e50fc7d Use tag version instead of commit for agent server image (#13312) 2026-03-09 10:46:21 -04:00
aivong-openhands
ef840b046a remove mcp version check for cve_2025_66416 (#13277) 2026-03-09 09:38:44 -05:00
Tim O'Farrell
c8fe39b176 Upgrading SDK to 1.12.0 (#13248) 2026-03-09 21:06:12 +07:00
Ray Myers
8c46df6b59 fix: asyncpg, device key timestamp without timezone, error reporting (#13301)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-08 12:56:59 -05:00
Engel Nyst
b37adbc1e6 Remove deprecated reset-settings endpoint (#13298)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-08 13:11:35 +01:00
Tim O'Farrell
3ec999e88a Fix LiteLLM key management and user migration SQL queries (#13279)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-06 21:48:19 -07:00
Jamie Chicago
d1c2185d99 [fix] update welcome email to new cloud sign ups (#13254)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-06 15:24:55 -06:00
Joe Laverty
ede203add3 feat(enterprise): Bitbucket Data Center Integration (#13228)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-06 10:49:20 -06:00
aivong-openhands
b0cdd0358f fix: add mcp>=1.25 constraint and CVE-2025-66416 tests (#13247)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-03-06 10:31:46 -06:00
Tim O'Farrell
6186685ebc Refactor user authorization: Replace domain blocklist with flexible whitelist/blacklist pattern matching (#13207)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-06 09:10:59 -07:00
jpelletier1
2d7362bf26 refactor: update skills to Agent Skills format (#13267)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-06 09:22:28 -05:00
Povo43
1f1fb5a954 fix(i18n): correct Japanese translation strings (#13261) 2026-03-06 14:15:27 +04:00
Chris Bagwell
41d8bd28e9 fix: preserve llm_base_url when saving MCP server config (#13225) 2026-03-06 02:39:58 +01:00
Rohit Malhotra
6c394cc415 Add rate limiting to verification emails during OAuth flow (#13255)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-05 19:10:25 -05:00
Rohit Malhotra
4c380e5a58 feat: Add timeout handling for Slack repo query (#13249)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-06 00:02:04 +00:00
Chris Bagwell
ded0363e36 fix: ensure VSCode tab popout works for V1 (#13118) 2026-03-06 00:53:15 +01:00
Juan Michelini
d8444ef626 Add Qwen3-Coder-Next model support to frontend (#13222)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-05 19:34:06 -03:00
Juan Michelini
64e96b7c3c Add Kimi-K2.5 model support to frontend (#13227)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-05 19:33:59 -03:00
aivong-openhands
dcef5ae1f1 Fix CVE-2026-0540: Override dompurify to version 3.3.2 (#13230)
Co-authored-by: OpenHands CVE Fix Bot <openhands@all-hands.dev>
2026-03-05 14:42:20 -06:00
aivong-openhands
cfbf29f6e8 chore: downgrade fastmcp to 2.12.4 in uv.lock (#13240)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: OpenHands Bot <contact@all-hands.dev>
2026-03-05 14:42:01 -06:00
sp.wack
59b369047f Revert "Fix dark background in chat status row hiding message content" (#13239) 2026-03-05 19:40:06 +04:00
Hiep Le
07468e39f7 feat(frontend): disable the create a plan button when users are using the planning agent (#13234) 2026-03-05 22:19:50 +07:00
Hiep Le
0b0bfdff05 feat(frontend): add the build button to the planner tab (#13235) 2026-03-05 22:19:14 +07:00
aivong-openhands
42b0a89366 Fix CVE-2026-28802: Update authlib to 1.6.7 (#13229)
Co-authored-by: OpenHands CVE Fix Bot <openhands@all-hands.dev>
2026-03-05 08:56:47 -06:00
layla
e78d7de0c0 Fix dark background in chat status row hiding message content (#13236) 2026-03-05 18:47:11 +04:00
Juan Michelini
6751bba939 Add GLM-5 model support to frontend (#13213)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: OpenHands Bot <contact@all-hands.dev>
2026-03-05 18:44:33 +04:00
aivong-openhands
039e966dad update mcp to 1.25.0 in uv lock (#13231) 2026-03-05 07:42:24 -06:00
Juan Michelini
a1f73bb4c6 Add Claude-Sonnet-4-6 model support to frontend (#13224)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-04 21:13:30 -03:00
Rohit Malhotra
bf769d1744 Handle deleted GitHub issues (410 error) gracefully (#13217)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-04 15:50:37 -05:00
Tim O'Farrell
15e9435b35 Remove ExperimentManager concept from codebase (#13215)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-04 13:41:18 -07:00
Rohit Malhotra
3e15b849a3 Downgrade solvability disabled log from warning to info (#13216)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-04 15:26:21 -05:00
Rohit Malhotra
c32934ed2f Improve budget exceeded error handling in V1 callback processors (#13219)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-04 15:25:46 -05:00
Hiep Le
518fb2ee24 fix(frontend): hide add team members button when anonymous analytics is disabled (#13209) 2026-03-05 02:03:47 +07:00
Hiep Le
eeac9f14a3 fix(backend): allow deleting an organization after recent changes (#13200) 2026-03-05 01:52:33 +07:00
Rohit Malhotra
039e208167 Fix enterprise mypy type checking to catch type mismatches (#13140)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-04 13:43:46 -05:00
Hiep Le
6f8bf24226 feat: hide the users, billing, and integration pages for self-hosted customers (#13199) 2026-03-05 01:24:06 +07:00
Rohit Malhotra
6e9e906946 Remove dead test code for non-existent update_common_room_signal function (#13211)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-04 13:20:25 -05:00