open-swe/agent/utils
Ramon Nogueira 92dbf6f932
fix: update Slack trace reply on web handoff (#1630)
* fix: update Slack trace reply on web handoff

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

* fix: trigger web handoff on dashboard starts

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

* fix: format web handoff as contextual fragment

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

* fix: preserve trace_message_ts when overwriting Slack run mapping

When store_slack_run_mapping is called without trace_message_ts (e.g. on
follow-up Slack mentions), it was unconditionally overwriting the
thread-level mapping and clobbering the timestamp captured from the
initial trace reply. After that, _notify_slack_web_handoff could not find
the original message, so a subsequent move to Web silently skipped the
Slack trace update.

Now, when trace_message_ts is not passed, the existing thread mapping is
read first and its trace_message_ts is preserved.

* style: ruff format

---------

Co-authored-by: Ramon Nogueira <270434257+ramon-langchain@users.noreply.github.com>
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
Co-authored-by: Johannes du Plessis <51395795+johannes117@users.noreply.github.com>
Co-authored-by: Johannes du Plessis <johannes@langchain.dev>
2026-06-29 10:22:01 -07:00
..
agents_md.py feat: reviewer enforces AGENTS.md/CLAUDE.md repo rules as mandatory pass (#1569) 2026-06-18 11:13:58 -07:00
analyzer_skills.py feat: outcomes dataset + bootstrap/continual split via skills (#1365) 2026-06-01 13:25:12 -07:00
api_standards_skill.py feat: apply API standards skill in PR reviews for API changes (#1452) 2026-06-08 14:37:04 -07:00
auth.py refactor: durable interrupt dispatch + completion webhook (#1621) 2026-06-26 13:48:38 -07:00
authorship.py feat: link PR attribution footer to the originating thread (#1539) 2026-06-16 09:50:18 -07:00
comments.py chore: Drop monorepo (#1029) 2026-03-06 16:10:34 -08:00
dashboard_handoff.py fix: update Slack trace reply on web handoff (#1630) 2026-06-29 10:22:01 -07:00
dashboard_links.py feat: plan mode with model-driven entry and collaborative review (#1580) 2026-06-23 12:06:58 -07:00
github_app.py refactor: durable interrupt dispatch + completion webhook (#1621) 2026-06-26 13:48:38 -07:00
github_checks.py feat: shared GitHub HTTP helper with retries, rate-limit handling [closes OPE-45] (#1565) 2026-06-17 14:45:57 -07:00
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
github_comments.py refactor: durable interrupt dispatch + completion webhook (#1621) 2026-06-26 13:48:38 -07:00
github_feedback.py feat: outcomes dataset + bootstrap/continual split via skills (#1365) 2026-06-01 13:25:12 -07:00
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
github_org_membership.py fix: Lock dashboard login to GitHub org members (#1367) 2026-06-01 20:56:30 +00:00
github_proxy.py feat: gate workflow pushes with approval (#1614) 2026-06-25 17:17:51 -07:00
github_token.py fix: stop storing GitHub tokens in metadata (#1405) 2026-06-04 09:33:51 -07:00
http.py refactor: durable interrupt dispatch + completion webhook (#1621) 2026-06-26 13:48:38 -07:00
langsmith.py feat: plan mode with model-driven entry and collaborative review (#1580) 2026-06-23 12:06:58 -07:00
linear.py refactor: durable interrupt dispatch + completion webhook (#1621) 2026-06-26 13:48:38 -07:00
linear_team_repo_map.py chore: Add langsmith deployments data plane linear project (#1044) 2026-03-09 18:36:00 -07:00
model.py refactor: durable interrupt dispatch + completion webhook (#1621) 2026-06-26 13:48:38 -07:00
multimodal.py refactor: durable interrupt dispatch + completion webhook (#1621) 2026-06-26 13:48:38 -07:00
repo.py feat: extract repo parsing into shared util, add linear comment repo override (#1103) 2026-03-20 13:34:00 -07:00
repo_prep.py fix: reviewer can silently review a stale checkout on reused sandboxes (#1503) 2026-06-11 13:42:10 -07:00
reviewer_outcomes.py feat: outcomes dataset + bootstrap/continual split via skills (#1365) 2026-06-01 13:25:12 -07:00
sandbox.py feat: repo-scoped dynamic sandbox snapshots (#1595) 2026-06-23 12:24:11 -07:00
sandbox_paths.py fix: better custom backend support (#1071) 2026-03-17 11:55:36 -07:00
sandbox_state.py fix: keep sandbox backend stable across recovery (#1294)w 2026-05-11 16:03:38 -07:00
slack.py fix: update Slack trace reply on web handoff (#1630) 2026-06-29 10:22:01 -07:00
slack_feedback.py feat: outcomes dataset + bootstrap/continual split via skills (#1365) 2026-06-01 13:25:12 -07:00
thread_ops.py refactor: durable interrupt dispatch + completion webhook (#1621) 2026-06-26 13:48:38 -07:00
tracing.py feat: route graphs to separate LangSmith tracing projects (#1508) 2026-06-11 17:57:16 -07:00
url_safety.py refactor: durable interrupt dispatch + completion webhook (#1621) 2026-06-26 13:48:38 -07:00