Commit Graph
67 Commits
Author SHA1 Message Date
Engel Nyst 9c83fdfe33 docs: clarify PR template agent section (#16942) 2026-08-27 03:48:29 +02:00
Engel Nystandsmolpaws 861e9ef501 fix(agent-canvas): scope baked working_dir to the default-local backend (#16759)
Co-authored-by: smolpaws <engel@enyst.org>
2026-08-24 03:00:54 +00:00
Engel Nystandopenhands ab893f288a fix: open LLM settings from model dropdown (#1664)
* fix: open LLM settings from model dropdown

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

* fix: align model settings destination type

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

* style: format settings destination

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

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2026-07-15 19:11:42 +00:00
4bd3baccde ci: adopt release-please via shared release-actions (#1496)
* ci: adopt release-please via shared release-actions

Standardize agent-canvas releases on the org-wide release-please
automation (OpenHands/release-actions), matching typescript-client and
OpenHands/OpenHands.

Adds the three caller workflows:
- release.yml      release-please on push to main / release/**
- pr.yml           Conventional-Commit title lint + type: labels
- release-ready.yml draft release PR -> "Ready for review" gate
                   (Slack alert to #proj-agent-canvas + optional tests)

Adds the release-please state files: release-please-config.json
(node, draft PRs, extra-files), .release-please-manifest.json,
.github/release.yml (changelog categories), version.txt. Manifest is
seeded at 1.0.0 (the current GA release, v1.0.0 shipped 2026-06-15).

extra-files keeps the non-package.json version pins in lockstep:
config/defaults.json ($.versions.agentCanvas) and the README docker
example. The node release-type already bumps package.json and
package-lock.json.

Corrects stale on-main version refs (package.json rc.6,
config/defaults.json + README rc.11) to the real released 1.0.0, so all
pins share a single source of truth.

Removes create-release.yml: release-please now owns tag + GitHub Release
creation. npm-publish.yml and docker.yml are unchanged - they trigger on
the v* tags release-please still produces (pushed with the release App
token so tag-triggered workflows fire).

Co-authored-by: smolpaws <engel@enyst.org>

* fix: sync README.windows.md docker tag + track it in release-please

The docs-version-sync test also checks README.windows.md, which still
pinned 1.0.0-rc.11. Update both its docker image refs to the released
1.0.0 and add it to release-please extra-files (with the
x-release-please-version annotation) so future bumps keep it in lockstep
alongside README.md and config/defaults.json.

Co-authored-by: smolpaws <engel@enyst.org>

* ci: pin v-prefix tagging and first-release start point

Two robustness fixes after confirming agent-canvas's release conventions:

- include-v-in-tag: true (explicit). agent-canvas tags are vX.Y.Z
  (v1.0.0, v1.0.0-rc.12), and npm-publish.yml + docker.yml trigger on
  push tags 'v*'. release-please's node default already adds the v, but
  pin it explicitly so a default change can't silently drop the prefix
  and break tag-triggered publishing. (Matches typescript-client, which
  also ships v-prefixed tags; differs from OpenHands/OpenHands, which
  sets include-v-in-tag:false for its no-v scheme.)

- last-release-sha pinned to the v1.0.0 release commit
  (7b9c17e). v1.0.0 is a real, published release (2026-06-15; npm
  latest). This tells release-please the first managed release starts
  from there, so its first run scans only post-1.0.0 commits instead of
  walking the whole history.

Co-authored-by: smolpaws <engel@enyst.org>

* ci: drop orphaned version.txt

Per AI review: version.txt would never be updated and nothing consumes
it. The README's "four state files" guidance assumes the `simple`
release-type (which release-actions itself uses, where version.txt is
the canonical version source). agent-canvas uses `release-type: node`,
where package.json is the source of truth — so version.txt is redundant
and not auto-bumped. The other node adopters (typescript-client,
OpenHands/OpenHands) ship no version.txt either. Remove it rather than
keep a file that silently goes stale.

Co-authored-by: smolpaws <engel@enyst.org>

* docs: document the release-please flow

---------

Co-authored-by: smolpaws <engel@enyst.org>
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: hieptl <hieptl.developer@gmail.com>
2026-07-09 12:22:29 +07:00
Engel Nystandopenhands aed9a485be Show five lines for long user prompts (#1578)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-07-03 03:14:29 +00:00
Engel Nystandopenhands ae5b8a995d ci: add release ready gate (#14987)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-07-02 02:56:19 +02:00
1294b08944 fix(settings): show ACP-disabled tooltip on desktop (drop pointer-events-none) (#1499)
* fix(settings): show ACP-disabled tooltip on desktop (drop pointer-events-none)

When an ACP agent is active, the desktop settings sidebar greys out the
LLM/Condenser/Verification items and wraps them in a hover StyledTooltip
("Disabled while {agent} is active"). The tooltip never opened, so users
saw a greyed item with no explanation (reported on macOS desktop).

Root cause: the disabled link also got `pointer-events-none`, but
StyledTooltip is HeroUI's pointer-driven Tooltip — with pointer events
suppressed, onPointerEnter never fires and the tooltip can't open.
pointer-events-none wasn't needed for correctness either: onClick already
preventDefaults navigation, and tabIndex=-1 + aria-disabled cover
keyboard/AT.

Fix: keep the item visually greyed (opacity-50) but only apply
pointer-events-none when there's no disabledReason tooltip to show.

Fixes #1498

Co-authored-by: smolpaws <engel@enyst.org>

* chore: Remove PR-only artifacts

* Address ACP tooltip review comment

* Restore sidebar disabled aria comment

---------

Co-authored-by: smolpaws <engel@enyst.org>
Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-26 01:16:56 +00:00
Engel Nystandopenhands b34d67e19f fix: binaryornot Python 3 crash on binary reads (#14518)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-24 04:09:56 +02:00
Engel Nystandopenhands 01d141d0cd ci: collapse mock e2e PR comment tables (#1465)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-23 15:56:16 +02:00
Engel Nyst 904e0f45f2 docs: revise source code links in README.md
Update README source-code links for OpenHands Agent, Agent Server, and Agent Canvas.\n\nThis squash commit was generated by an AI agent (OpenHands) on behalf of the user.
2026-06-17 20:45:23 +02:00
Engel Nyst cfbe828c8a Align OpenHands provider display with SDK boundary (#1345)
* fix: align OpenHands provider display with SDK boundary
* fix: narrow OpenHands provider display PR
2026-06-15 16:30:37 +00:00
Engel Nystandopenhands 2888a5ca4e fix: preserve hidden LLM base URL on basic saves (#1347)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-13 05:05:25 +02:00
Engel Nystandopenhands af9c653f3c settings: trust public OpenHands provider models (#1280)
* settings: trust public OpenHands provider models
* test: update OpenHands profile E2E expectation
* test: allow transitional OpenHands model shape in E2E
* test: update OpenHands provider profile E2E
* ci: pin mock e2e to SDK provider PR

Temporarily run mock-LLM E2E against OpenHands/software-agent-sdk#3548 so the provider settings refactor is validated with the matching SDK end state.

* test: stabilize automation trajectory for SDK pin

Use non-empty safety replies for the automation-run conversation so the mock trajectory completes whether the pinned SDK does or does not consume an internal LLM turn first.

* ci: isolate SDK PR pin to smoke test

Keep the full mock-LLM and Docker E2E suites on the released agent-server/automation stack, and add a targeted profile-management E2E job that runs against the SDK PR git ref.

* ci: remove temporary SDK PR pin

Revert the temporary OpenHands/software-agent-sdk#3548 git ref before switching the PR to the release-branch SDK pin.

* ci: pin SDK smoke to release PR

Point the temporary SDK smoke-test pin at OpenHands/software-agent-sdk#3638 (Release v1.28.0) so PR #1280 validates against the release branch hash.

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

Remove the temporary SDK release-branch pin now that software-agent-sdk v1.28.0 is published, and run the mock E2E workflow against the released agent-server package.

* test: align agent server version references

Update docs and drift-detection expectations for the 1.28.0 agent-server pin.

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-13 01:56:11 +00:00
Engel Nystandopenhands faf0e08f23 fix: Pin duplicate checker action to extensions release (#14771)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-12 02:47:14 +02:00
Engel Nystandopenhands 1016affac1 ci: add label-triggered OpenHands QA workflow (#1283)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-12 00:17:01 +00:00
Engel Nystandopenhands d8b3f3302e Use reusable issue duplicate checker action (#14609)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-12 02:09:59 +02:00
Engel Nyst e54e80a1b7 Fix OpenHands LLM key access for credited orgs (#14724) 2026-06-11 20:30:17 +02:00
Engel Nystandopenhands f6ea202d56 chore: align package version with RC (#1303)
Keep package metadata in sync with config/defaults.json so npm scripts and mock E2E logs report the current agent-canvas RC version.

Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-11 18:22:51 +00:00
Engel Nystandopenhands 39c816d38d fix: stabilize snapshot consent handling (#1304)
* fix: stabilize snapshot consent handling

Seed the legacy analytics-consent key in snapshot tests so the server-backed analytics dialog closes before page interactions, and make snapshot reports distinguish visual diffs/new snapshots from actual workflow failures.

* fix: only seed analytics consent for snapshots

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-11 19:55:51 +02:00
Engel Nystandopenhands a947e312d8 refactor(llm): clean up reverse-mapping OpenHands provider models (#14725)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-11 19:38:40 +02:00
Engel Nyst 77a8decca9 Add PR description readiness check (#1179)
* Add PR description readiness check
2026-06-09 22:26:08 +00:00
Engel Nystandopenhands 4b9fa526b8 ci: add label-triggered OpenHands QA workflow (#14730)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-09 20:08:14 +02:00
Engel Nystandopenhands 41eaaf44c0 Harden workflow GitHub context handling (#14537)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-09 19:48:31 +02:00
00062bdfad Default onboarding LLM to OpenAI GPT-5.5 (#1103)
* fix: default onboarding LLM to OpenAI GPT-5.5

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

* test: share onboarding default LLM model constant

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

* test: update mock e2e onboarding test for OpenAI GPT-5.5 default

Align the onboarding regression spec with the new default model
(openai/gpt-5.5) introduced in this PR, replacing the previous
Anthropic Claude Opus assertions.

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

* fix: add openai/gpt-5.5 to onboarding LLM catalog mock

The routeOnboardingLlmCatalog helper only included anthropic and
openhands providers. The new onboarding default (openai/gpt-5.5) needs
the openai provider and model in the intercepted API responses so the
provider/model dropdowns can populate correctly.

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

* fix: strip stale llm_base_url from settings in onboarding e2e tests

Earlier mock-LLM tests (conversation, automation) configure the real
agent-server with llm_base_url pointing at the mock LLM server. That
stale URL causes LlmSettingsScreen to open in Advanced view (text
inputs) instead of Basic view (ModelSelector dropdowns), so the
onboarding regression test can't find the provider/model inputs.

Intercept GET /api/settings in routeOnboardingLlmCatalog to clear
llm_base_url, ensuring the form renders in Basic view.

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

* docs: add E2E test debugging guide to AGENTS.md

Document the workflow for diagnosing CI failures: reading PR comments,
downloading artifacts, inspecting error-context.md page snapshots,
and common failure patterns (stale state, view mode mismatch, route
interception).

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

* fix: intercept agent_settings.llm.base_url in onboarding test

Move the settings interception from the shared helper into the
specific test's beforeGoto callback. Clear agent_settings.llm.base_url
(not top-level llm_base_url) from the real server response so the LLM
form renders in Basic view with ModelSelector dropdowns.

The interception is registered AFTER routeSessionApiKey so Playwright's
LIFO order processes it first for /api/settings requests.

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

---------

Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: Rohit Malhotra <rohitvinodmalhotra@gmail.com>
2026-06-04 18:19:35 +00:00
Engel Nyst e096779809 test: add onboarding regression E2E coverage (#1105)
* test: add onboarding regression e2e coverage
2026-06-04 00:32:30 +02:00
Engel Nyst e386ba316c Harden workflow GitHub context handling (#750)
* Harden workflow GitHub context handling

Pass attacker-controllable GitHub context and workflow values through environment variables before shell use.
2026-06-02 22:29:18 +02:00
Engel Nyst 56545a78c5 Add issue duplicate checker workflow (#987)
* Add issue duplicate checker workflow
2026-06-02 18:54:27 +00:00
Engel Nystandopenhands ee94749c70 fix: switch conversations by LLM profile name (#978)
Use the agent-server switch_profile endpoint for running conversations so the UI does not need to fetch encrypted profile secrets before switching models.

Co-authored-by: openhands <openhands@all-hands.dev>
2026-06-01 16:53:04 +00:00
Engel Nystandopenhands 0ddbd85be4 Require human context at the top of PR descriptions (#14527)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-05-22 18:42:40 +02:00
Engel Nystandopenhands 2eef5c9050 Fix issue opened workflow automation (#14526)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-05-22 18:18:19 +02:00
Engel Nystandopenhands d04c1bb31c Automate good first issue labeling in issue triage (#14498)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-05-22 17:54:32 +02:00
Engel Nystandopenhands 5edf3f7f8f chore: clean up MCP catalog assumptions (#657)
* fix: surface MCP install targets in marketplace

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

* chore: clean up MCP catalog assumptions

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

* chore: harden MCP install target helper

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

* chore: clean up MCP catalog assumptions

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

* Apply suggestion from @enyst

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2026-05-20 16:55:35 +00:00
Engel Nystandopenhands 1a6e629fda fix: sync MCP marketplace with extensions catalog (#645)
Update the extensions dependency to the commit that removes deprecated MCP entries, assert those entries stay absent from the marketplace, and keep legacy installed servers visible/searchable in the MCP settings UI.

Co-authored-by: openhands <openhands@all-hands.dev>
2026-05-20 01:56:08 +02:00
Engel Nystandopenhands 7b9c2fec33 Update Slack MCP catalog entry (#641)
* Update Slack MCP catalog entry

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

* Apply suggestion from @enyst

* Pin extensions to merged Slack MCP fix

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2026-05-19 23:00:53 +00:00
Engel NystandOpenHands adb2699780 ci: add 7-day Dependabot cooldown (#14465)
Co-authored-by: OpenHands <openhands@all-hands.dev>
2026-05-19 10:08:58 +02:00
Engel Nystandopenhands 40032f97c8 fix: clarify local llm profiles ui (#534)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-05-17 01:07:22 +02:00
Engel Nyst e72b729ce0 Fix project phase to alpha in README (#528)
Updated project phase from sandbox to alpha and improved warning message formatting.
2026-05-16 20:13:02 +02:00
Engel Nystandopenhands 5c42bd3492 Rename PROJECT_PATH to PROJECTS_PATH (#521)
* Rename PROJECT_PATH to PROJECTS_PATH

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

* Apply suggestion from @enyst

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2026-05-16 16:20:44 +00:00
Engel Nystandopenhands dd7234d712 ci: run PR review on fork PRs (#14109)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-25 03:20:34 +02:00
Engel Nystandopenhands eb940ea5e7 Use SDK package public exports where available (#13402)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-15 22:05:08 +02:00
Engel Nyst 4cdf88d480 Update LICENSE (#13924) 2026-04-14 19:03:41 +00:00
Engel Nystandopenhands c788674b41 fix: remove resolver summary language hint (#13684)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-04-01 16:35:28 +02:00
Engel Nystandopenhands dbd199e77c Validate selected branch names before checkout (#13667)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-31 18:21:21 +02:00
Engel Nystandopenhands 239e40da75 Fix: restore conversation link in PR bodies created via MCP (#13092)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-27 11:25:34 -04:00
Engel Nystandopenhands 3a9f00aa37 Keep VSCode accessible when agent errors (#13492)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-19 14:46:56 +01:00
Engel Nystandopenhands 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
Engel Nyst bd837039dd chore: update skills path comments (#12794) 2026-03-17 10:45:50 -04:00
Engel Nystandopenhands b37adbc1e6 Remove deprecated reset-settings endpoint (#13298)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-08 13:11:35 +01:00
Engel Nystandopenhands f01c8dd955 V1 resolver: move PR/issue context into initial user message (#12983)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-03-04 10:21:08 -05:00
Engel Nystandopenhands 25076ee44c chore: mark security/ and resolver/ as Legacy V0 (#13062)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-02-28 04:22:47 +01:00
Engel Nystandopenhands a6e148d1e6 refactor: use consolidated pr-review action (#12801)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-02-20 02:08:42 +01:00
Engel Nystandopenhands b06b9eedac fix: wire suggested task prompts for V1 (#12787)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-02-16 23:57:32 +01:00
5511c01c2e chore: clarify draft guidance in PR template (#12670)
Co-authored-by: smolpaws <engel@enyst.org>
Co-authored-by: mamoodi <mamoodiha@gmail.com>
2026-01-29 14:17:35 +00:00
Engel Nyst 02825fb5bb Cleanup CLI directory (#12669) 2026-01-29 15:14:50 +01:00
Engel Nystandopenhands 08df955ba7 Clarify OpenHands naming (replace “OSS” wording in docs and backend) (#12235)
Co-authored-by: openhands <openhands@all-hands.dev>
2026-01-07 07:24:27 +01:00
Engel Nyst 15bc78f4c1 Remove VSCode extension integration from OpenHands repo (#12234) 2026-01-01 19:28:05 +01:00
d9d19043f1 chore: Mark V0 legacy files with clear headers and V1 pointers (#12165)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: Rohit Malhotra <rohitvinodmalhotra@gmail.com>
2025-12-30 00:21:29 +01:00
Engel Nystandopenhands 97654e6a5e Configurable conda/mamba channel_alias for runtime builds (#11516)
Co-authored-by: openhands <openhands@all-hands.dev>
2025-12-29 00:40:57 +01:00
ec9daf3bcc Fix tool call validation error handling for Groq LLM provider (#10927)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: Engel Nyst <enyst@users.noreply.github.com>
2025-12-19 07:31:07 +01:00
Engel Nyst 7782f2afe9 Fix links in readme (#11802) 2025-11-24 19:58:55 +01:00
Engel Nyst bede37fdb6 feat: Enable native tool calling for gemini-3-pro-preview (#11774) 2025-11-18 23:29:54 +01:00
Engel Nyst f4dcc136d0 tests: remove Windows-only tests and clean up Windows conditionals (#11697) 2025-11-10 21:34:55 +01:00
Engel Nyst 83a3c2c5bf Add invisible AI-only guidance to Checklist: humans must fill (#11688) 2025-11-10 18:13:18 +00:00
Engel Nyst 63c9e6403f ci: remove flaky Windows Python tests workflow (#11694) 2025-11-10 12:43:48 -05:00
Engel Nyst 14807ed273 ci: remove outdated integration runner (#11653) 2025-11-10 15:51:40 +01:00
b83e2877ec CLI: align with agent-sdk renames (#11643)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: rohitvinodmalhotra@gmail.com <rohitvinodmalhotra@gmail.com>
2025-11-07 11:30:37 -05:00
Engel Nyst 6e8be827b8 Fix deprecated links (#11605) 2025-11-01 12:37:32 -04:00