mirror of
https://github.com/Sea-Haven-Industries/open-swe.git
synced 2026-10-07 16:19:09 +00:00
feat: add PR trace resolution (#1612)
* feat: add PR trace resolution
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
* fix: inject reviewer trace context as JSON
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
* fix: address review on PR trace resolution
Use the documented LangSmith metadata filter syntax
(and(eq(metadata_key,...), eq(metadata_value,...))) instead of
has(metadata, '{...}'), which does not match runs — _list_thread_runs
was silently returning nothing. Bound full-text searches to a 90-day
window so they don't hit LangSmith's large-window rate limit.
Also folds in the best-effort branch->head-sha resolver (dropping the
weighted scoring/threshold + repo/file evidence + GitHub hydration),
sandbox JSON injection, and the admin "Resolve trace" dry-run endpoint.
The IDOR findings are moot: resolve_pr_to_threads/summarize_agent_session
were removed; resolution now runs deterministically from the trusted run
config with no model-controlled pr_url or thread_id.
* fix: scope branch trace search to the repo
Branch names like fix-tests aren't unique across repos (or older PRs) in
a shared tracing project, so an unscoped branch hit could resolve to an
unrelated thread and write its runs into the reviewer sandbox. Require
the repo slug to co-occur with the branch in matched runs; the full head
SHA stays unscoped since it is globally unique. Addresses open-swe review
on PR #1612.
---------
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
(cherry picked from commit 69148f54f5)
This commit is contained in:
parent
2a226e2cd1
commit
53511c5c61
2 changed files with 1 additions and 1 deletions
|
|
@ -31,7 +31,6 @@ TEAM_SETTINGS_KEY = "default"
|
||||||
# prompt. Generous enough for a detailed policy, small enough to stay bounded.
|
# prompt. Generous enough for a detailed policy, small enough to stay bounded.
|
||||||
ORG_GUIDELINES_MAX_CHARS = 10_000
|
ORG_GUIDELINES_MAX_CHARS = 10_000
|
||||||
REVIEW_TRACING_PROJECT_MAX_CHARS = 256
|
REVIEW_TRACING_PROJECT_MAX_CHARS = 256
|
||||||
|
|
||||||
# Sea Haven review baseline seeded as the org-wide guidelines default. Surfaces
|
# Sea Haven review baseline seeded as the org-wide guidelines default. Surfaces
|
||||||
# in the reviewer prompt for every repo until an admin overrides it with a
|
# in the reviewer prompt for every repo until an admin overrides it with a
|
||||||
# non-empty value via the dashboard (PUT /team-settings). Keep it stack-agnostic
|
# non-empty value via the dashboard (PUT /team-settings). Keep it stack-agnostic
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@ def test_default_settings_seed_sea_haven_org_guidelines() -> None:
|
||||||
assert len(DEFAULT_ORG_REVIEW_GUIDELINES) <= ORG_GUIDELINES_MAX_CHARS
|
assert len(DEFAULT_ORG_REVIEW_GUIDELINES) <= ORG_GUIDELINES_MAX_CHARS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def test_review_tracing_project_blank_normalizes_to_none() -> None:
|
def test_review_tracing_project_blank_normalizes_to_none() -> None:
|
||||||
assert TeamSettingsUpdate(review_tracing_project=" ").review_tracing_project is None
|
assert TeamSettingsUpdate(review_tracing_project=" ").review_tracing_project is None
|
||||||
assert TeamSettingsUpdate(review_tracing_project=None).review_tracing_project is None
|
assert TeamSettingsUpdate(review_tracing_project=None).review_tracing_project is None
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue