openhands
b13ba0cf2a
feat: Enable Usage dashboard for Personal Workspaces
...
Remove isPersonalOrg restriction from usage page visibility check,
allowing users in Personal Workspaces to access the Usage dashboard
as long as they have view_billing permission (owner/admin).
Co-authored-by: openhands <openhands@all-hands.dev >
2026-03-20 17:17:31 +00:00
openhands
93fe1613d7
feat: Add Usage dashboard for organization admins and owners
...
This PR adds a Usage page to the Settings menu that displays organization
usage statistics including:
- Total number of conversations
- Number of merged PRs
- Average cost per conversation
- A chart showing conversation counts over the last 90 days
The page is only visible to users with admin or owner roles in team organizations.
Backend changes:
- Add /api/organizations/{org_id}/usage endpoint in enterprise/server/routes/usage.py
- Register usage_router in enterprise/saas_server.py
Frontend changes:
- Add usage-service API client and types
- Add useUsageStats React Query hook
- Add Usage nav item to settings navigation (admin/owner only, team orgs only)
- Create usage-settings.tsx page with stat cards and conversation chart
- Add i18n translations for Usage page (all supported languages)
- Add route configuration for /settings/usage
Co-authored-by: openhands <openhands@all-hands.dev >
2026-03-19 16:32:20 +00:00
Chris Bagwell
120fd7516a
Fix: Prevent auto-logout on 401 errors in oss mode ( #13466 )
2026-03-19 16:33:01 +01:00
chuckbutkus
2224127ac3
Fix when budgets are None ( #13482 )
...
Co-authored-by: openhands <openhands@all-hands.dev >
2026-03-19 10:14:48 -05:00
aivong-openhands
2d1e9fa35b
Fix CVE-2026-33123: Update pypdf to 6.9.1 ( #13473 )
...
Co-authored-by: OpenHands CVE Fix Bot <openhands@all-hands.dev >
2026-03-19 11:05:30 -04:00
MkDev11
0ec962e96b
feat: add /clear endpoint for V1 conversations ( #12786 )
...
Co-authored-by: mkdev11 <MkDev11@users.noreply.github.com >
Co-authored-by: openhands <openhands@all-hands.dev >
Co-authored-by: tofarr <tofarr@gmail.com >
Co-authored-by: hieptl <hieptl.developer@gmail.com >
2026-03-19 21:13:58 +07:00
Engel Nyst
3a9f00aa37
Keep VSCode accessible when agent errors ( #13492 )
...
Co-authored-by: openhands <openhands@all-hands.dev >
2026-03-19 14:46:56 +01:00
Hiep Le
e02dbb8974
fix(backend): validate API key org_id during authorization to prevent cross-org access (org project) ( #13468 )
2026-03-19 16:09:37 +07:00
Hiep Le
8039807c3f
fix(frontend): scope organization data queries by organization ID (org project) ( #13459 )
2026-03-19 14:18:29 +07:00
Saurya Velagapudi
a96760eea7
fix: ensure LiteLLM user exists before generating API keys ( #12667 )
...
Co-authored-by: openhands <openhands@all-hands.dev >
2026-03-18 17:16:43 -07:00
Saurya Velagapudi
dcb2e21b87
feat: Auto-forward LLM_* env vars to agent-server and fix host network config ( #13192 )
...
Co-authored-by: openhands <openhands@all-hands.dev >
2026-03-18 17:07:19 -07:00
Tim O'Farrell
7edebcbc0c
fix: use atomic write in LocalFileStore to prevent race conditions ( #13480 )
...
Co-authored-by: openhands <openhands@all-hands.dev >
Co-authored-by: OpenHands Bot <contact@all-hands.dev >
2026-03-18 16:49:32 -06:00
HeyItsChloe
abd1f9948f
fix: return empty skills list instead of 404 for stopped sandboxes ( #13429 )
...
Co-authored-by: openhands <openhands@all-hands.dev >
2026-03-18 14:46:00 -06:00
aivong-openhands
2879e58781
Fix CVE-2026-30922: Update pyasn1 to 0.6.3 ( #13452 )
...
Co-authored-by: OpenHands CVE Fix Bot <openhands@all-hands.dev >
2026-03-18 16:00:06 -04:00
Rohit Malhotra
1d1ffc2be0
feat(enterprise): Add service API for automation API key creation ( #13467 )
...
Co-authored-by: openhands <openhands@all-hands.dev >
2026-03-18 19:07:36 +00:00
Hiep Le
db41148396
feat(backend): expose API key org_id via new GET /api/keys/current endpoint (org project) ( #13469 )
2026-03-19 01:46:23 +07:00
Robert Brennan
39a4ca422f
fix: use sentence case for 'Waiting for sandbox' text ( #12958 )
...
Co-authored-by: openhands <openhands@all-hands.dev >
2026-03-18 14:42:46 -04:00
Varun Chawla
6d86803f41
Add loading feedback to git changes refresh button ( #12792 )
...
Co-authored-by: hieptl <hieptl.developer@gmail.com >
2026-03-19 01:26:27 +07: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
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