open-swe/docs/upstream-sync/triage.md
Adam Moussa dfdd41879c
feat(infra): upstream-sync triage ledger, cherry-pick hooks, and git cp (#118)
* docs(upstream-sync): add triage ledger + cherry-pick hook plan

Seeds the upstream triage ledger (52 diverged commits from langchain-ai/open-swe
categorized: landed/won't-merge/deferred/untriaged) and the design plan for a
git-hook mechanism to keep it in sync during cherry-picks.

* feat(upstream-sync): jsonl-backed triage ledger + generator CLI

triage.jsonl is now the source of truth (52 rows migrated from triage.md);
triage.md is generated with a do-not-edit banner. scripts/triage.py provides
migrate/generate/reconcile/lookup/check-reject/set; make triage-render/check/reconcile
added (triage-check is CI-safe staleness gate). Stdlib-only so git hooks can call it.

* feat(upstream-sync): cherry-pick triage git hooks + git cp wrapper

post-commit journals each -x pick to an untracked .git-local journal; prepare-commit-msg
hard-blocks known-reject picks (commit-msg is a secondary backstop — clean picks skip it on
git 2.50.1), overridable via git cp --force / SH_CHERRYPICK_ALLOW_REJECT=1 /
sh.cherrypick.blockRejects=false. git-cp is the pre-apply guard + auto-reconcile. pre-push is
a SHIM that re-execs the global Sea Haven security pre-push so core.hooksPath=.githooks does
not shadow it; install-hooks.sh verifies that shim FIRST and refuses if it is missing.

* docs(upstream-sync): correct hook plan + git cp runbook

Record the verified git 2.50.1 finding that clean cherry-picks skip commit-msg, so the block
lives in prepare-commit-msg; note the locked HARD-BLOCK-by-default reject policy. CHERRYPICK.md
now leads with make install-hooks + git cp and explains the generated-md ledger.

* chore(upstream-sync): mark #1651 landed (Bedrock family fix on gateway-routing)

* docs(upstream-sync): rewrite CHERRYPICK.md as a repo-specific runbook

* feat(upstream-sync): add triage.py sync + make triage-sync

Discovers commits on dev..upstream/main not yet in the ledger and appends them
as untriaged (PR # and subject parsed from each commit), then bumps _meta
'last synced' to the upstream tip and regenerates triage.md. Closes the
discovery side of the workflow: triage-sync to pull in new work, git cp to land it.

* docs(upstream-sync): move cherry-pick runbook to PR1 branch as cherry-pick-runbook.md
2026-07-03 11:46:00 -04:00

5.6 KiB

Upstream triage ledger

Commits on upstream/main (langchain-ai/open-swe) not yet in dev, and the decision on each. Rows key on the upstream SHA (stable across local cherry-picks). Deferred rows are provisional — re-inspect before picking. See the fork-maintenance runbook in CLAUDE.md.

Last synced upstream/main: 73b7d1c0 (2026-07-02)

sha pr subject decision why branch
0b76afdc #1653 reviews block agenda, sticky headers, diff scroll Landed cherry-pick-upstream
7530653b #1655 ResizeObserver settle for review scroll-to Landed cherry-pick-upstream
23bd4a63 #1660 top padding to sticky review block header Landed cherry-pick-upstream
9e5a1924 #1656 purge expired thread_wakeup crons Landed cherry-pick-upstream
63eb9a08 #1661 sidebar filter popover border tokens Landed cherry-pick-upstream
bc7ce591 #1668 preserve dashboard redirect after login Landed cherry-pick-upstream
f32e492a #1637 return to thread after plan approval Landed cherry-pick-upstream
7ee3e057 #1636 make plan view mobile friendly Landed cherry-pick-upstream
6575c327 #1654 disable React StrictMode Landed kept fork's PwaUpdateProvider cherry-pick-upstream
289f5e3a #1651 add Sonnet 5 to model picker Landed already in dev; added Bedrock family fallback fix (c16fb915) gateway-routing
c3292d82 #1611 bake sfw binary into sandbox image Won't merge already in dev
48bf712b #1609 show message timestamps Won't merge already in dev
85c0f63e #1620 clickable shared PR header Won't merge already in dev
db2ae58e #1643 pre-bundle shiki/@pierre deps Won't merge already in dev
1d9da064 #1662 bump astral-sh/setup-uv Won't merge dev ahead (v8.2.0, checkout@v7)
83cb40a0 #1616 update langsmith sdk to 0.9.3 Won't merge regression — dev has 0.9.6
00906401 #1610 editable plan mode Won't merge regression — dev plan-mode supersedes
e5a29eca #1613 plan links in PR descriptions Won't merge regression — dev has async plan-ref
e1d85526 #1645 switch ui to pnpm Won't merge tooling — fork keeps bun
f5670f24 #1639 require bun for ui agent work Deferred clean new file, aligned PR1
209132d3 #1621 durable interrupt dispatch + completion webhook Deferred investigate first — may be applied durable-dispatch
02bb4dfd #1658 don't attach loopback run-complete webhooks Deferred durable-dispatch
29015fad #1614 gate workflow pushes with approval Deferred durable-dispatch
546042a4 #1652 add workflow approval UI Deferred plan-approval
ae04b72b #1635 publish plans from sandbox files Deferred plan-approval
c03a6be7 #1634 keep plan guidance high-level Deferred plan-approval
96cceb74 #1632 notify Slack on plan approval Deferred plan-approval
2f56d754 #1618 omit plan link when no plan exists Deferred likely regression plan-approval
ee224d3e #1650 add Slack reaction tool Deferred slack-tooling
747ce4bb #1638 add Slack breakout thread tool Deferred slack-tooling
27d90ef1 #1633 include Slack channel context in prompts Deferred slack-tooling
4cd5fa5c #1629 avoid recapping Slack replies Deferred slack-tooling
92dbf6f9 #1630 update Slack trace reply on web handoff Deferred slack-tooling
bb36448b #1627 surface Slack thread errors Deferred slack-tooling
73b7d1c0 #1678 fix OpenAI Responses reasoning replay Deferred gateway-routing
5f7c2f46 #1674 fix Fireworks Gateway base URL Deferred gateway-routing
702ef908 #1673 dedicated LangSmith gateway API key Deferred gateway-routing
e9dc6e01 #1671 opt-in LangSmith LLM Gateway routing Deferred gateway-routing
5da3d0c6 #1624 post reviewer resolution notes verbatim Deferred reviewer-misc
69148f54 #1612 add PR trace resolution Deferred reviewer-misc
6d125526 #1625 stop wrapping installs in sfw Deferred reviewer-misc
320bb39a #1657 opt-in tracemalloc for aiohttp sessions Deferred reviewer-misc
baf0c248 #1617 filter & grouping menu in threads sidebar Deferred ~998 LOC own branch
f29868ff #1615 recover thread work as patch Deferred ~495 LOC own branch
8e0788dc #1631 show queued dashboard follow-ups Deferred own branch
9c601ca1 #1648 add Stagehand-powered browser subagent Deferred own branch
8c944381 #1622 restore forced tool call Deferred own branch
5dc360d8 #1619 bump langgraph-checkpoint 4.1.0→4.1.1 Untriaged
4f913198 #1647 widen split review diffs Untriaged
20f63e8c #1646 install missing deps before verification Untriaged
89f886e2 #1642 request actions read for sandbox logs Untriaged
2f237b53 #1626 fall back to vision model for image threads Untriaged

Maintenance: after a git sync, add new dev..upstream/main SHAs as Untriaged (edit triage.jsonl) and bump "Last synced". A successful git cherry-pick -x auto-moves the row to Landed via the post-commit journal + make triage-reconcile.