mirror of
https://github.com/Sea-Haven-Industries/open-swe.git
synced 2026-09-30 12:43:16 +00:00
* feat: chat with your PR on the review page
Add a sandbox-less `chat` graph that answers questions about a single PR
from its diff, the published review findings, and read-only GitHub access.
- agent/chat.py: deepagents graph, no sandbox (default StateBackend, file
mutation + execute tools excluded). PR context is seeded as virtual files
under /pr/; a repo-scoped App token is resolved in-graph.
- tools: read_repo_file, search_repo_code, list_review_findings.
- dashboard/review_chat_api.py + routes: per-user chat thread, LangGraph
stream/commands/state/history proxy pinned to the chat assistant, seeds
diff/findings/overview on first run. Gated by repo access.
- UI: Chat tab wired to a chat-scoped StreamProvider (replaces Coming Soon).
* feat: admin setting for review-chat default model
Add a 'Open SWE Review Chat' default to team settings (default_chat_model /
default_chat_reasoning_effort). get_team_default_model("chat") inherits the
Agent default when unset; the chat graph resolves through it. Admin RolePicker
gains an 'Agent default' inherit option that clears the override.
* feat: multi-conversation review chat (tabs, new chat, history)
Replace the single per-PR chat thread with multiple per-user conversations:
- threads minted client-side; first message persists with a title derived
from the prompt.
- list + delete endpoints; chat panel gets a tab strip (history), new-chat
(+), close (x), refresh, an intro greeting, and suggested prompts.
- get_review_chat now returns availability only (ids are client-minted).
* ui fixes
* ui: review-chat history dropdown, full-width AI replies, resizable side panel
* fix(review-chat): enforce per-user thread ownership on proxy endpoints; reseed PR context on head change
---------
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
27 lines
653 B
JSON
27 lines
653 B
JSON
{
|
|
"$schema": "https://langgra.ph/schema.json",
|
|
"python_version": "3.12",
|
|
"api_version": "0.10.0rc3",
|
|
"graphs": {
|
|
"agent": "agent.server:traced_agent",
|
|
"reviewer": "agent.reviewer:traced_reviewer_agent",
|
|
"analyzer": "agent.analyzer:traced_analyzer",
|
|
"chat": "agent.chat:traced_chat_agent",
|
|
"scheduler": "agent.scheduler:get_scheduler",
|
|
"ci_monitor": "agent.ci_monitor:get_ci_monitor"
|
|
},
|
|
"dependencies": [
|
|
"."
|
|
],
|
|
"http": {
|
|
"app": "agent.webapp:app"
|
|
},
|
|
"checkpointer": {
|
|
"ttl": {
|
|
"strategy": "delete",
|
|
"sweep_interval_minutes": 60,
|
|
"default_ttl": 43200
|
|
}
|
|
},
|
|
"env": ".env"
|
|
}
|