open-swe/tests
Adam Moussa b3fc62da80
refactor: split webapp.py into api/ + per-source webhook routes
Plan step C4 (docs/upstream-sync/domain-reorg/reorg-build-plan.md, approved
decisions 1-2): split the 2,590-line agent/webapp.py monolith into
agent/webhooks/common.py (shared verify/dispatch helpers), agent/api/app.py
(composition), agent/api/health.py (/health + /webhooks/run-complete), and
per-source {github,linear,slack,jira,confluence}_routes.py. Atlassian
Connect lifecycle + descriptor routes (/connect/*) fold into
confluence_routes.py; webapp.py becomes the upstream-shaped compatibility
shim (from .api.app import app). langgraph.json http.app stays
agent.webapp:app via the shim.

Fork content, upstream layout: linear/slack route files verified
content-identical to upstream 8356eb34 and taken verbatim; github_routes is
upstream + the fork's CI auto-fix trigger wiring; jira/confluence routes are
fork-only, transformed to the same common.X / service.X module-attribute
style. All signature verification (GitHub HMAC, Slack, Linear
timestamp-freshness, verify_jira_secret + opt-in HMAC/timestamp/IP
allowlist, Connect JWT/qsh), token-attribution gating, TID-COLLIDE-01 repo
binding, _is_repo_auto_review_enabled gates, and public-repo org gate move
unchanged.

Handlers rewired from webapp.X to common.X; test monkeypatch sites across
26 files + conftest.py + e2e/harness.py retargeted to
webhook_common/handler/route modules per upstream's pattern. Residual
agent.webapp importers: only the shim, langgraph.json http.app, Makefile
uvicorn target, and docs (doc-path updates land in C7).

Gates: ruff check + format, pytest --co, full unit (1637 passed), full
Playwright E2E vs real langgraph dev (9/9), residual-importer sweep.
2026-07-17 14:30:05 -04:00
..
e2e refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
middleware fix: keep sandbox backend stable across recovery (#1294)w 2026-05-11 16:03:38 -07:00
conftest.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_account_link.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_agent_assembly_context.py feat: port durable dispatch hardening and startup latency improvements (#160) 2026-07-09 17:11:25 -04:00
test_agent_instructions.py feat: per-repo custom instructions for the coding agent (#1460) 2026-06-09 15:46:29 -07:00
test_agent_schedules.py feat(open-swe): re-add Fable 5 behind an admin toggle (Bedrock) (#172) 2026-07-10 14:05:20 -04:00
test_agent_subagent_models.py feat(open-swe): re-add Fable 5 behind an admin toggle (Bedrock) (#172) 2026-07-10 14:05:20 -04:00
test_agent_thread_pr_state.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_agent_usage.py Revert out-of-process usage-snapshot builder (#1473) 2026-06-09 13:19:11 -07:00
test_agents_md.py feat: reviewer enforces AGENTS.md/CLAUDE.md repo rules as mandatory pass (#1569) 2026-06-18 11:13:58 -07:00
test_analyzer_cron.py feat: outcomes dataset + bootstrap/continual split via skills (#1365) 2026-06-01 13:25:12 -07:00
test_analyzer_skills.py feat: outcomes dataset + bootstrap/continual split via skills (#1365) 2026-06-01 13:25:12 -07:00
test_anthropic_effort.py feat(open-swe): stream agent chat via @langchain/react v2 protocol (#1475) 2026-06-11 09:54:35 -07:00
test_anthropic_model.py feat(open-swe): re-add Fable 5 behind an admin toggle (Bedrock) (#172) 2026-07-10 14:05:20 -04:00
test_api_standards_skill.py feat: apply API standards skill in PR reviews for API changes (#1452) 2026-06-08 14:37:04 -07:00
test_app_bot_identity.py feat: author Slack/dashboard/schedule commits + PRs as the app by default (#57) (#60) 2026-06-29 14:22:33 -04:00
test_atlassian_connect.py feat: Jira + Confluence integration (tools + triggers) (#182) 2026-07-13 19:45:54 -04:00
test_auth_error_leak.py fix: resolve security-review findings (sandbox isolation, IAM list scope, webhook replay, info-leak) (#54) 2026-06-29 12:21:19 -04:00
test_auth_sources.py feat(open-swe): open Linear-triggered PRs as the triggering user (#179) 2026-07-13 15:17:00 -04:00
test_authorship.py Adopt Sea Haven agent conventions, no attribution (#30) 2026-06-27 22:08:45 -04:00
test_autofix_state.py feat: activate PR babysitting UI toggles for autofix and trigger mode (#1561) 2026-06-17 14:12:04 -07:00
test_autofix_webhook.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_check_message_queue.py feat: activate PR babysitting UI toggles for autofix and trigger mode (#1561) 2026-06-17 14:12:04 -07:00
test_ci_autofix.py refactor: adopt modular webhook architecture (#1621) + port fork customizations (#85) 2026-06-30 18:46:46 -04:00
test_completion_webhook.py feat: Jira + Confluence integration (tools + triggers) (#182) 2026-07-13 19:45:54 -04:00
test_confluence_utils.py feat: Jira + Confluence integration (tools + triggers) (#182) 2026-07-13 19:45:54 -04:00
test_confluence_webhook.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_corridor_mcp.py feat: port durable dispatch hardening and startup latency improvements (#160) 2026-07-09 17:11:25 -04:00
test_currents_tools.py feat: add user-scoped Currents.dev API key for e2e test investigation (#1566) 2026-06-17 13:59:55 -07:00
test_dashboard_admin.py fix: allow GitHub logins for dashboard admins (#1582) 2026-06-20 09:44:12 -07:00
test_dashboard_csrf.py fix: harden origin parsing and home prompt submit failure (#1499) 2026-06-11 11:54:25 -07:00
test_dashboard_links.py fix: point reviewer "Open in Web" link to the review page (#1519) 2026-06-12 14:15:58 -07:00
test_dashboard_oauth_redirect.py chore: cherry-pick clean upstream fixes + cherry-pick runbook (#117) 2026-07-03 11:48:40 -04:00
test_dashboard_org_login_gate.py fix: Lock dashboard login to GitHub org members (#1367) 2026-06-01 20:56:30 +00:00
test_dashboard_repo_optional.py feat(open-swe): stream agent chat via @langchain/react v2 protocol (#1475) 2026-06-11 09:54:35 -07:00
test_dashboard_repos.py fix: Reduce graph load and dashboard repo failures (#1412) 2026-06-04 13:54:06 -07:00
test_dashboard_reviews.py refactor: consolidate reviewer modules into agent/review/ 2026-07-17 13:52:03 -04:00
test_dashboard_run_email.py fix: use Slack OIDC mappings for Slack thread ownership (#1410) 2026-06-04 19:58:30 +00:00
test_dashboard_thread_api.py chore: let admins interrupt runaway agent runs (#195) 2026-07-16 16:05:03 -04:00
test_dashboard_thread_api_activity.py fix: restore org-wide read access to agent threads (#1474) 2026-06-09 16:41:07 -07:00
test_dashboard_web_handoff.py chore: sync upstream/main, defer #1621 modular webhooks (#81) 2026-06-30 16:45:19 -04:00
test_daytona_integration.py fix(daytona): make sandbox snapshot configurable (#1220) 2026-05-01 22:51:34 +00:00
test_dispatch.py feat: port durable dispatch hardening and startup latency improvements (#160) 2026-07-09 17:11:25 -04:00
test_e2b_integration.py feat(open-swe): add E2B sandbox provider (port of upstream 48217b68, #1489) (#199) 2026-07-16 18:23:42 -04:00
test_encryption.py feat: support TOKEN_ENCRYPTION_KEY rotation via MultiFernet [closes AB-2323] (#1275) 2026-05-08 14:29:23 -07:00
test_ensure_no_empty_msg.py chore: sync upstream/main, defer #1621 modular webhooks (#81) 2026-06-30 16:45:19 -04:00
test_eval_jobs.py feat: Run reviewer eval in a GitHub Action; dashboard becomes read-only (#1556) 2026-06-16 19:38:36 -07:00
test_eval_store_reporter.py feat: Run reviewer eval in a GitHub Action; dashboard becomes read-only (#1556) 2026-06-16 19:38:36 -07:00
test_fireworks_model.py feat: add 3 verified Fireworks models to selectable set (#79) 2026-06-30 15:31:22 -04:00
test_gateway.py feat: port LangSmith LLM Gateway routing from upstream (#1671, #1673, #1674, #1678) (#155) 2026-07-09 14:44:15 -04:00
test_github_app.py fix(open-swe): port core GitHub-App scope fallback (#1701), workflows:write kept out of standing scope (#181) 2026-07-13 14:24:37 -04:00
test_github_checks.py refactor: consolidate reviewer modules into agent/review/ 2026-07-17 13:52:03 -04:00
test_github_ci.py feat: shared GitHub HTTP helper with retries, rate-limit handling [closes OPE-45] (#1565) 2026-06-17 14:45:57 -07:00
test_github_comment_prompts.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_github_feedback.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_github_http.py feat: shared GitHub HTTP helper with retries, rate-limit handling [closes OPE-45] (#1565) 2026-06-17 14:45:57 -07:00
test_github_issue_webhook.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_github_oauth_refresh.py fix: auto-recover from expired GitHub refresh tokens (#1491) 2026-06-11 12:05:27 -07:00
test_github_proxy_refresh.py chore: sync upstream/main, defer #1621 modular webhooks (#81) 2026-06-30 16:45:19 -04:00
test_github_token_ttl.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_http_security.py feat: Re-land deferred upstream features on modular webhooks (#80) (#128) 2026-07-08 18:32:43 -04:00
test_jira_utils.py feat: Jira + Confluence integration (tools + triggers) (#182) 2026-07-13 19:45:54 -04:00
test_jira_webhook_author.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_jira_webhook_corroboration.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_jira_webhook_replay.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_langsmith_sandbox_config.py feat: add idle TTL and delete-after-stop sandbox lifecycle controls (#1265) 2026-05-08 00:30:14 -04:00
test_langsmith_sandbox_timeout.py fix: enforce client-side deadline on sandbox execute (#1451) 2026-06-08 11:16:08 -07:00
test_langsmith_trace_url.py feat: plan mode with model-driven entry and collaborative review (#1580) 2026-06-23 12:06:58 -07:00
test_linear_webhook_author.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_linear_webhook_replay.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_local_integration.py chore: sync upstream/main, defer #1621 modular webhooks (#81) 2026-06-30 16:45:19 -04:00
test_model_fallback_middleware.py feat: port model-fallback resilience from upstream (#1694, #1695) (#161) 2026-07-09 18:28:21 -04:00
test_model_fallback_resolution.py fix: stale admin model defaults after model upgrades (#1709) (#200) 2026-07-16 18:03:44 -04:00
test_multimodal.py feat: handle images sent to non-vision models in Slack, Linear, and web UI (#1560) 2026-06-17 09:12:52 -07:00
test_normalize_repo.py feat: tune reviewer for precision — web/wiki tools + recalibrated prompt (#1312) 2026-05-20 18:35:00 +00:00
test_notify_step_limit_middleware.py fix: notify users via Slack when agent hits model call step limit (#1204) 2026-05-01 14:24:25 -07:00
test_notion_oauth.py feat: add user-scoped Notion MCP OAuth (#1593) 2026-06-23 12:07:13 -07:00
test_observability_tools.py feat: add user-scoped Notion MCP OAuth (#1593) 2026-06-23 12:07:13 -07:00
test_open_pull_request.py chore: adopt five clean upstream cherry-picks (#194) 2026-07-16 19:28:35 +00:00
test_plan_mode.py feat: Re-land deferred upstream features on modular webhooks (#80) (#128) 2026-07-08 18:32:43 -04:00
test_plan_review.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_pr_creation_guard.py feat: surface attributed PR creation failures (#180) 2026-07-13 14:45:19 -04:00
test_pr_ready_auto_review.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_prompt_default_repo.py fix: make default repository configurable (#1429) 2026-06-05 13:48:47 -07:00
test_proxy_auth.py fix(open-swe): port core GitHub-App scope fallback (#1701), workflows:write kept out of standing scope (#181) 2026-07-13 14:24:37 -04:00
test_public_repo_org_gate.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_recent_comments.py chore: Drop monorepo (#1029) 2026-03-06 16:10:34 -08:00
test_reconcile_sweep.py refactor: adopt modular webhook architecture (#1621) + port fork customizations (#85) 2026-06-30 18:46:46 -04:00
test_refresh_slack_status_middleware.py feat: add optional Slack Assistants API typing status indicator (#1269) 2026-05-08 10:21:55 -07:00
test_repair_orphaned_tool_calls.py fix: repair orphaned tool calls before model calls (#1604) 2026-06-24 12:58:10 -07:00
test_repo_binding_isolation.py fix: resolve security-review findings (sandbox isolation, IAM list scope, webhook replay, info-leak) (#54) 2026-06-29 12:21:19 -04:00
test_repo_extraction.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_repo_prep.py fix: reviewer can silently review a stale checkout on reused sandboxes (#1503) 2026-06-11 13:42:10 -07:00
test_repo_snapshots.py feat: repo-scoped dynamic sandbox snapshots (#1595) 2026-06-23 12:24:11 -07:00
test_report_platform_issue_tool.py feat: re-land scoped AGENTS auto-load (#1684) + platform issue reporting tool (#1685) (#129) 2026-07-08 18:52:01 -04:00
test_review_api.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_review_chat.py chore: sync upstream/main, defer #1621 modular webhooks (#81) 2026-06-30 16:45:19 -04:00
test_review_style_collector.py refactor: consolidate reviewer modules into agent/review/ 2026-07-17 13:52:03 -04:00
test_review_style_sync.py fix: review style prompts UX, stale runs, and OAuth refresh (#1321) 2026-05-21 17:44:04 +00:00
test_review_styles_store.py feat: tune reviewer for precision — web/wiki tools + recalibrated prompt (#1312) 2026-05-20 18:35:00 +00:00
test_reviewer.py fix: align reviewer eval with published findings (upstream #1713) (#201) 2026-07-17 12:10:54 -04:00
test_reviewer_diff.py refactor: consolidate reviewer modules into agent/review/ 2026-07-17 13:52:03 -04:00
test_reviewer_eval_judge.py fix: align reviewer eval with published findings (upstream #1713) (#201) 2026-07-17 12:10:54 -04:00
test_reviewer_eval_run.py Reviewer eval admin: configurable runs + stacked form layout (#1540) 2026-06-16 10:12:35 -07:00
test_reviewer_eval_target.py refactor: consolidate reviewer modules into agent/review/ 2026-07-17 13:52:03 -04:00
test_reviewer_findings.py refactor: consolidate reviewer modules into agent/review/ 2026-07-17 13:52:03 -04:00
test_reviewer_groups.py refactor: consolidate reviewer modules into agent/review/ 2026-07-17 13:52:03 -04:00
test_reviewer_outcomes.py feat: outcomes dataset + bootstrap/continual split via skills (#1365) 2026-06-01 13:25:12 -07:00
test_reviewer_publish.py refactor: consolidate reviewer modules into agent/review/ 2026-07-17 13:52:03 -04:00
test_reviewer_reconcile.py refactor: consolidate reviewer modules into agent/review/ 2026-07-17 13:52:03 -04:00
test_reviewer_tools.py refactor: consolidate reviewer modules into agent/review/ 2026-07-17 13:52:03 -04:00
test_reviewer_trace_context.py refactor: consolidate reviewer modules into agent/review/ 2026-07-17 13:52:03 -04:00
test_reviewer_watch.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_sandbox_paths.py fix: better custom backend support (#1071) 2026-03-17 11:55:36 -07:00
test_sanitize_fireworks_messages.py feat: port LangSmith LLM Gateway routing from upstream (#1671, #1673, #1674, #1678) (#155) 2026-07-09 14:44:15 -04:00
test_sanitize_openai_responses.py feat: port LangSmith LLM Gateway routing from upstream (#1671, #1673, #1674, #1678) (#155) 2026-07-09 14:44:15 -04:00
test_sanitize_thinking_blocks.py feat: migrate model providers to Bedrock (Claude) + Fireworks (everything else) (#62) 2026-06-29 15:57:19 -04:00
test_sanitize_tool_inputs.py fix: coerce malformed integer strings in read_file offset/limit params (#1216) 2026-05-01 14:29:48 -07:00
test_schedule_thread_wakeup.py chore: cherry-pick clean upstream fixes + cherry-pick runbook (#117) 2026-07-03 11:48:40 -04:00
test_slack_add_reaction_tool.py feat: add Slack reaction tool (#1650) 2026-07-03 15:38:56 -04:00
test_slack_assistants_status.py chore: sync upstream/main, defer #1621 modular webhooks (#81) 2026-06-30 16:45:19 -04:00
test_slack_context.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_slack_feedback.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_slack_oauth.py feat: open Slack-triggered PRs as the triggering user (#1375) 2026-06-02 15:04:20 -07:00
test_slack_start_new_thread_tool.py feat: Re-land deferred upstream features on modular webhooks (#80) (#128) 2026-07-08 18:32:43 -04:00
test_slack_thread_reply_tool.py fix: enforce terse Slack tool messages (#1717) (#197) 2026-07-16 17:51:17 -04:00
test_slack_webhook_errors.py refactor: split webapp.py into api/ + per-source webhook routes 2026-07-17 14:30:05 -04:00
test_stale_sandbox_creating.py feat: repo-scoped dynamic sandbox snapshots (#1595) 2026-06-23 12:24:11 -07:00
test_subdir_agents_middleware.py feat: re-land scoped AGENTS auto-load (#1684) + platform issue reporting tool (#1685) (#129) 2026-07-08 18:52:01 -04:00
test_team_credentials.py feat: server-side Datadog/LangSmith observability tools + team creds [closes OPE-54] (#1476) 2026-06-10 11:07:42 -07:00
test_team_settings_fable.py feat(open-swe): re-add Fable 5 behind an admin toggle (Bedrock) (#172) 2026-07-10 14:05:20 -04:00
test_team_settings_grouping.py feat: migrate model providers to Bedrock (Claude) + Fireworks (everything else) (#62) 2026-06-29 15:57:19 -04:00
test_team_settings_org_guidelines.py feat: distill Sea Haven conventions into agent prompt, reviewer, and fork docs (#113) 2026-07-02 18:29:15 -04:00
test_tool_artifact_middleware.py feat(open-swe): stream agent chat via @langchain/react v2 protocol (#1475) 2026-06-11 09:54:35 -07:00
test_user_credentials.py feat: add user-scoped Notion MCP OAuth (#1593) 2026-06-23 12:07:13 -07:00
test_user_mappings.py fix: use Slack OIDC mappings for Slack thread ownership (#1410) 2026-06-04 19:58:30 +00:00
test_workflow_push_guard.py fix(open-swe): port core GitHub-App scope fallback (#1701), workflows:write kept out of standing scope (#181) 2026-07-13 14:24:37 -04:00