Commit graph

46 commits

Author SHA1 Message Date
seahaven-openswe[bot]
f79f49c755
Make PR title repo-aware and auto-link issues (#46)
Some checks are pending
Build & publish app artifacts / Publish + deploy (dev) (push) Waiting to run
Build & publish app artifacts / Publish + deploy (prod) (push) Waiting to run
Infra CD / Infra CI (pre-deploy) (push) Waiting to run
Infra CD / Deploy open-swe-dev (push) Blocked by required conditions
Infra CD / Deploy open-swe-prod (push) Blocked by required conditions
CI / Lint (push) Waiting to run
CI / Format check (push) Waiting to run
CI / Unit tests (push) Waiting to run
CI / Playwright E2E (push) Waiting to run
Hardcoding the Sea Haven no-type-prefix PR title made every PR fail
semantic-PR-title gates (this repo's PR Title Lint, upstream open-swe),
forcing manual retitling. Make the title rule detect a conventional-commit
gate and conform, falling back to the imperative style otherwise. Also add
Closes/Refs issue-linking guidance and the default-branch auto-close caveat.

Refs: #41

Co-authored-by: seahaven-openswe[bot] <296972425+seahaven-openswe[bot]@users.noreply.github.com>
2026-06-27 22:56:01 -04:00
Adam Moussa
f3db9f02e3
Adopt Sea Haven agent conventions, no attribution (#30)
Codify the box-only #4 customizations into Git so the AWS deployment
(which deploys from this repo) actually applies them — previously only
the retired sh-openswe box had them.

- prompt.py: branch names feature|bug|hotfix/<kebab> (optional <KEY->);
  imperative PR titles with no conventional-commit type: prefix; PR body
  Summary/Validation/Tests/Notes; handbook commit format. Rewrite the
  collaboration template from an attribution MANDATE to a PROHIBITION —
  no Co-authored-by bot trailer, no "Made by [Open SWE]" footer, no
  agent/AI notes on any artifact.
- github_comments.py: add @seahaven-openswe (the deployed App slug) to
  the mention triggers.
- authorship.py: remove the now-unused attribution helpers
  (build_pr_attribution_footer, add_bot_coauthor_trailer,
  add_pr_collaboration_note, PR_ATTRIBUTION_*). Keep OPEN_SWE_BOT_* —
  server.py still uses them for the sandbox git identity.
- Flip the attribution unit tests to assert the no-attribution behavior;
  drop tests for the removed helpers.

Commits stay authored as the triggering user for now — flipping
authorship to the bot account depends on the Vercel preview-deploy
constraint and is deferred to #11.

Refs: #4 #11

Claude-Session: https://claude.ai/code/session_01DMhLf4G5V8MStJQyAW95hi
2026-06-27 22:08:45 -04:00
John Kennedy
9db7eab134
feat: Add Corridor MCP analyzePlan integration (#1572)
* Add Corridor MCP analyzePlan integration

* Update agent/integrations/corridor_mcp.py

Co-authored-by: open-swe[bot] <215916821+open-swe[bot]@users.noreply.github.com>

* Add Corridor analysis prompt

* Only include Corridor prompt when tool loads

---------

Co-authored-by: open-swe[bot] <215916821+open-swe[bot]@users.noreply.github.com>
2026-06-18 14:01:25 -07:00
Johannes du Plessis
f539962c73
feat: server-side Datadog/LangSmith observability tools + team creds [closes OPE-54] (#1476)
* feat: server-side Datadog/LangSmith observability tools + team creds

Add team-wide observability credential settings (Datadog DD_SITE/API/APP
keys, LangSmith API key) stored encrypted server-side, with an admin
dashboard section to connect/disconnect each provider. When connected,
get_agent loads read-only observability tools server-side: Datadog via its
hosted MCP server (langchain-mcp-adapters, toolsets=core) and LangSmith
read tools (langsmith_get_trace, langsmith_list_runs). Credentials live in
the LangGraph server process and are never exposed to the sandbox.

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>

* fix: address review on observability tools

Address PR review feedback:
- Authorize observability tools per triggering user (admins + the
  OBSERVABILITY_AUTHORIZED_EMAILS allowlist) so prompt-injected runs from
  untrusted contributors can't reach team Datadog/LangSmith data.
- Use the documented Datadog MCP auth headers DD_API_KEY / DD_APPLICATION_KEY.
- Store each provider's credentials under its own store key to avoid a
  read-modify-write race dropping the other provider on concurrent saves.

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>

* fix: async email resolution in observability authorization gate

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-06-10 11:07:42 -07:00
Johannes du Plessis
0a7fae60cd
docs: document dashboard + refresh local dev setup (#1376)
* docs: document dashboard + refresh local dev setup in INSTALLATION

- add the web dashboard (ui/) and its FastAPI backend API to the setup flow
- document dashboard-login OAuth (GITHUB_APP_CLIENT_ID/SECRET, second callback
  URL) as distinct from the LangSmith-brokered agent-runtime OAuth
- add new env vars: DASHBOARD_API_BASE_URL/BASE_URL/JWT_SECRET/ALLOWED_ORIGINS,
  CONFIGURED_ADMINS, X_SERVICE_AUTH_JWT_SECRET, LANGGRAPH_URL, SANDBOX_TYPE,
  REVIEWER_OUTCOMES_DATASET, PUBLIC_REPO_ORG_GATE, SLACK_CLIENT_ID/SECRET/TEAM_ID,
  SLACK_REPO_OWNER/NAME
- add "Sign in with Slack" OIDC account-linking setup
- rewrite local dev: make dev serves 3 graphs + FastAPI on :2024; new step for
  running the UI (bun) on :3000, incl. the required DASHBOARD_ALLOWED_ORIGINS
  CORS setting and cookie wiring
- correct production langgraph.json to three graphs; document Vercel UI deploy
- add dashboard verify + troubleshooting sections
- README: dashboard feature bullet + updated install blurb

* docs: clarify dashboard API setup

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-06-02 15:55:35 -07:00
Johannes du Plessis
96774f20ae
feat: move github workflows to gh cli (#1238)
* feat: move github workflows to gh cli

Use LangSmith proxy auth to support gh-driven GitHub workflows while removing custom GitHub wrapper tools.

* docker ignore + snapshot and docker image updates

* updated image and instructions

* removing open_pr if needed after agent call
2026-05-04 18:03:53 -07:00
Johannes du Plessis
448be4a466
feat(open-swe): Default to GPT-5.5 medium reasoning (#1224)
* feat: default to GPT-5.5 medium reasoning

Use OpenAI GPT-5.5 with medium reasoning as the default model and document the completion-token budget semantics for reasoning models.

* fix: use Responses API reasoning config

Pass GPT-5.5 reasoning settings through LangChain's Responses API parameter instead of the Chat Completions-only reasoning_effort field.

* feat: raise GPT-5.5 output budget

Set the default GPT-5.5 output token budget to the model maximum so long-running coding tasks have more room for reasoning and final responses.

* feat: align recursion limit with Deep Agents

Use Deep Agents' default recursion limit so longer coding runs have room to complete without Open SWE imposing a lower cap.

* chore: remove minimal effort level

* chore: reduce max tokens to 64_000

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-04-28 15:03:21 -07:00
Aran Yogesh
2039fe6660
feat: stop auto-cloning and let agent manage repo setup [closes OPE-21] (#1159)
* feat: authenticate git operations via sandbox proxy instead of credential files

* feat: authenticate git operations via sandbox proxy instead of credential files

* feat: authenticate git operations via sandbox proxy instead of credential files

* removing logger.info

* formatting and linting

* fix: resolve lint errors in server.py (imports, unused vars, undefined names)

* feat: use opaque proxy headers for GitHub auth in sandbox

* linting formatting and test changes

* linting

* Delete .claude directory

* Delete tests/evals directory

* fix: address PR review — guard missing tokens, quote shell paths, add proxy auth tests

* fix: restore authorship, branch_name support, and installation token for PR creation

* linitng

* fix: move installation token fetch before commit, clean up dead proxy validation code

* feat: stop auto-cloning and let agent manage repo setup [closes OPE-21]

* feat: stop auto-cloning and let agent manage repo setup [closes OPE-21]

* fix: address review feedback — restore agents_md, add git user config, lint fixes

* fix: drop github_token arg from sandbox creation, use generic create_sandbox factory with langsmith-only proxy config

* fix: use _get_langsmith_api_key() for prod key fallback, warn when API key missing for proxy config

* linting

* linting

* feat: add installation token auth to list_repos GitHub API call

* agents.md update

* linting

* fix: address PR review feedback — shell precedence bug in prompt, remove dead code

* linting

* Apply suggestion from @bracesproul

Co-authored-by: Brace Sproul <braceasproul@gmail.com>

* Apply suggestion from @bracesproul

Co-authored-by: Brace Sproul <braceasproul@gmail.com>

* fix: address PR review feedback — restore {working_dir} in prompt, remove clone code block

* fix:Extract check_or_recreate_sandbox utility from inline sandbox health check

* fix: address PR review feedback — async list_repos, restore template name, fix prompt colon

* fix: resolve merge conflicts with main, adopt deepagents v0.5.0a4 LangSmithSandbox

* linting

* yogesh/ope-21-stop-auto-cloning

* Update agent/tools/list_repos.py

Co-authored-by: Brace Sproul <braceasproul@gmail.com>

* Update agent/prompt.py

Co-authored-by: Brace Sproul <braceasproul@gmail.com>

* feat: address PR review — list_repos uses GitHub API only, PR trigger includes org/repo

* linting

* feat: address PR review feedback — list_repos pagination, simpler return, sandbox health check

* feat: support listing repos for personal user accounts via is_organization flag

---------

Co-authored-by: Brace Sproul <braceasproul@gmail.com>
2026-04-10 17:04:55 -07:00
Brace Sproul
0d8647c2cd
fix: Revert dummy readme change (#1132) 2026-03-25 13:35:11 -07:00
Brace Sproul
4cfe2fd8a5
chore: dummy readme change to test committing workflow (#1130)
* chore: dummy readme change to test committing workflow

Co-authored-by: Brace Sproul <46789226+bracesproul@users.noreply.github.com>

* cr

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-03-25 13:34:08 -07:00
Mason Daugherty
d524e3ba92
chore: add badges and tagline to readme header (#1069)
* Add badges, tagline, and ecosystem links to README header

* Match README header syntax exactly to langchain-ai/langchain repo style

* Apply suggestion from @mdrxy

Co-authored-by: Mason Daugherty <github@mdrxy.com>

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
Co-authored-by: Brace Sproul <braceasproul@gmail.com>
2026-03-17 18:25:48 +00:00
Brace Sproul
633d80bf0e
fix: Add back logo to readme (#1068) 2026-03-17 10:41:41 -07:00
Brace Sproul
82e2bcc94b
chore: Update announcement blog post link in README (#1067) 2026-03-17 10:38:51 -07:00
Harrison Chase
5c493ea1c7 cr 2026-03-07 13:24:10 -08:00
aran-yogesh
abd26fbbaf readme updates 2026-03-06 15:21:38 -08:00
aran-yogesh
229cc08713 readme update 2026-03-06 15:06:16 -08:00
Aran Yogesh
86ea40e04f
Update README.md
Co-authored-by: Brace Sproul <braceasproul@gmail.com>
2026-03-06 14:56:12 -08:00
aran-yogesh
75bc943ac5 order update instructions 2026-03-06 14:47:05 -08:00
aran-yogesh
a6d05a86b2 lineaer webhook update instructions 2026-03-06 14:36:26 -08:00
aran-yogesh
1d19c05b7e chore: readme update 2026-03-06 14:23:29 -08:00
Open SWE Bot
f154609351 docs: Add repository deprecation warning to README
This repository is no longer actively maintained and will not receive further updates. Added a prominent warning notice at the top of the README to inform users that the project has been deprecated.
2026-01-26 01:01:16 +00:00
Open SWE Bot
db8adf2be2 feat: Add deprecation warning for open-swe-max labels
- Add deprecation warning in webhook handler when max labels are used
- Update documentation to indicate open-swe-max labels are deprecated
- Recommend users switch to standard open-swe labels with Opus 4.5
- Update README, best-practices.mdx, github.mdx, and prompts.ts
- Max labels still functional but now log deprecation warnings
2026-01-26 00:56:50 +00:00
Lauren Hirata Singh
bfb2ab7bcc
Fix links and improve README content (#859)
Updated docs links in README.md for accuracy and clarity.
2025-11-13 18:39:29 -08:00
Brace Sproul
8af9ae9e76
docs: Add blog and video links to readme (#687) 2025-08-06 10:48:22 -07:00
Brace Sproul
a7f726df00
feat: Opus 4.1 support, switch default open-swe-max to Opus 4.1 (#678) 2025-08-05 10:34:26 -07:00
Brace Sproul
68be0e816d
fix: readme title wording (#668) 2025-08-05 00:38:21 +00:00
Brace Sproul
cc127000ab
fix: info -> note readme (#666) 2025-08-05 00:02:24 +00:00
Brace Sproul
700bbf20f5
chore: add proper jsonwebtoken deps (#659)
* deps: add proper jsonwebtoken deps

* cr
2025-08-04 13:31:59 -07:00
open-swe[bot]
2c774ee517
feat: Add Max Mode Labels with Claude Opus 4 Support (#577)
* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* cr

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
Co-authored-by: bracesproul <braceasproul@gmail.com>
2025-07-28 16:33:12 -07:00
Brace Sproul
8e5414ce2b
fix: Typo in readme (#566) 2025-07-28 18:27:21 +00:00
Brace Sproul
f61ea79b13
chore: Cleanup readme (#532)
* chore: Cleanup readme

* cr

* cr

* cr

* cr

* cr
2025-07-25 16:46:52 +00:00
Aliyan Ishfaq
f822fda82d
feat: Added LLM fallback (#433)
* prompt changes and eval fix

* prompt deletions reverted

* formatting

* chore: code cleaning

* feat: add LangGraph evaluation support

* fix: py lg check logging fix

* chore: code cleaning

* dataset added

* chore: code cleaning

* chore: code cleaning

* Readme changes

* feat: LLM fallback added

* feat: add llm fallback

* chore: code cleaning

* chore: code cleaning

* chore: code cleaned

* feat: llm fallback in runtime

* fix: build errors

* refactor: FallbackRunnable now extends ConfigurableModel

* Readme update

* feat: llm as a judge script added

* chore: code formatted

* fix: use GA gemini models instead of preview

* fix: type improvements

* feat: added skeleton for tool py-dev-server

* fix: code cleaning & type improvements

* fix: code cleaning

* cr

---------

Co-authored-by: bracesproul <braceasproul@gmail.com>
2025-07-21 15:54:55 -07:00
Brace Sproul
cf81583473
fix: Cleanup readme, small changes to docs (#458)
* fix: Cleanup readme, small changes to docs

* add formatter to docs

* cr

* cr

* cr

* cr

* cr

* cr

* cr
2025-07-21 21:12:55 +00:00
Brace Sproul
abc984409f
refactor: Proxy req utils, rename GITHUB_TOKEN_ENCRYPTION_KEY to SECRETS_ENCRYPTION_KEY (#391)
* refactor: Proxy req utils, rename GITHUB_TOKEN_ENCRYPTION_KEY to SECRETS_ENCRYPTION_KEY

* cr
2025-07-11 10:48:14 -07:00
Brace Sproul
38dc6ebdf4
fix: Improve DX for getting port for agent (#221)
* fix: Improve DX for getting port for agent

* docs
2025-06-18 18:58:15 +00:00
Brace Sproul
1d0a1cce6f
feat: Clone, commit and push as bot, not user (#174) 2025-06-15 13:41:32 -07:00
Brace Sproul
fda6529419
feat(open-swe): encrypt GitHub tokens in proxy route to prevent exposure in LangGraph runs (#160)
* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* cr

* docs
2025-06-15 12:37:31 -07:00
Brace Sproul
bf72e1faf7
feat: GitHub e2e auth (#106)
* feat: GitHub e2e auth

* cr

* reimplement proxy route

* fix github auth

* cr

* cr

* cr

* cr

* cr
2025-06-11 21:00:08 +00:00
Brace Sproul
8afe1e6803
feat: Update chat UI to be Open SWE specific (#76) (#91)
* init repo-selector

* add branch selector UI, extend GH hook w branch info

* add   reconnectOnMount: true resumeStream, remove repo description from selector, fix styling

* styling repo + branch

* udpate getBranch calls to include targetRepo arg

* format

* add search to repo + branch selectors

* add settings icon link to /github for dev convenience

* add default branch selection

* format

* minor cleanup

* init task list UI demo

* individual task component

* tasks real data

* task visual improvement

* persisting tasks, navigate to thread onClick

* task UI

* TaskSidebar, Navigate to tasks

* org tasks by thread

* group by thread

* improve sidebar, task-list, rm github modal on refresh

* collapse sidebar works when viewing a thread

* remove micro-tasks expansion from threads component, change taskId to taskIndex for persistence + simplicity

* init config sidebar ui

* open and close config sidebar

* add ref for getAllTasks + add graph_id metadata

* format

* create threadItem component

* format

* add threadUtils

* centralize + refactor types

* format

* improve thread status, realtime updates

* fix scroll issue

* remove temperature from config-sidebar

* Change model via sidebar

* fix flashing on updates

* init plan UI

* centralize types

* self CR: refactoring, cleanup, remove comments, add todos

* CR: clean comments + logs, fix repo selector bug

* fix: Update example env file in web (#77)

* disable auto scroll on pageload

* reposelector: use default branch not main master

* remove archived tab temp, default branch listed first in branchSelector dropdown

* auto select first repo

* improve status indicator

* refactor status indicator

* simplify status implementation to use Langgraph

* util moved from provider to thread-utils

* linting, improve task completion logic

* feat: Support followup requests (#60)

* feat: Support followup requests

* cr

* cr

* fix

* account for pr already exists

* remove task provider

* fix: Better prompting and context provided for codebase structure awareness (#85)

* fix: Better prompting and context provided for codebase structure awareness

* cr

* linting + skeleton loader

* fix: branch selector, add github api pagination

* small branch update

* update task completion status realtime

* threadItem stream remove flashing/polling

* feat: Create a shared package (#89)

* feat: Create a shared package

* formatting

* fix: drop passing target repo to getBranchName

* drop docs

* use shared package for config fields in config sidebar

* fix: styling and structure for repo/branch selectors

* fix: use shared types/objects for config fields

* default key for configs

* fix: improved styling for threads

* fix renering num tasks

* disable repo branch selector when chat started

* cr

* cr

* bump deps

* fix: rendering plan in interrupt

* cr

* cr

---------

Co-authored-by: Dylan Boudro <121908331+starmorph@users.noreply.github.com>
2025-06-09 00:29:40 +00:00
Brace Sproul
887fc030a4
feat(agent-generated): Add github oauth (#63)
* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* Apply patch

* format and lint

* fix ui

* Apply patch (#68)

Co-authored-by: Harrison Chase <11986836+hwchase17@users.noreply.github.com>

* fix: Github auth

* update readme

* cr

* cr

* cr

* cr

---------

Co-authored-by: Harrison Chase <11986836+hwchase17@users.noreply.github.com>
Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
2025-06-02 01:30:29 +00:00
Ivan Dagelic
65b68a1a42
feat: daytona sandboxes (#59)
* feat: daytona sandboxes

Signed-off-by: Ivan Dagelic <dagelic.ivan@gmail.com>

* fix: change daytona snapshot namespace

Signed-off-by: Ivan Dagelic <dagelic.ivan@gmail.com>

* update yarn.lock and run formatter

---------

Signed-off-by: Ivan Dagelic <dagelic.ivan@gmail.com>
Co-authored-by: Brace Sproul <braceasproul@gmail.com>
2025-05-30 15:59:14 -07:00
Brace Sproul
d87da9a356
feat: Add new instructions in readme (#49) 2025-05-29 21:03:57 +00:00
Brace Sproul
8f00f90289
chore: Add warning to readme (#48) 2025-05-29 13:43:12 -07:00
Brace Sproul
c6d867e1a7
feat: Monorepo (#22)
* feat: Monorepo

* cr

* cr
2025-05-26 13:02:51 -07:00
Brace Sproul
fd0d50be26
fix: Docs and scripts (#15)
* fix: Docs and scripts

* cr

* fix: better err handling

* cr
2025-05-23 16:43:14 -07:00
bracesproul
e2415aee3f init commit 2025-05-21 14:47:56 -07:00