[ { "authors": [ "Tsenghan", "cmaldonado80", "hansolo949", "kagura-agent", "njxiaohan", "plokomarketing-ai", "xudaiyanzi" ], "average_similarity": 0.397, "cluster_id": "pr-scope-37574-10", "kind": "pr_scope", "last_activity_at": "2026-04-20T20:46:23Z", "outside_window_prs": [ { "additions": 8, "author": "xialonglee", "changed_files": 2, "created_at": "2026-03-06T09:43:49Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37574/files", "html_url": "https://github.com/openclaw/openclaw/pull/37574", "merged": false, "number": 37574, "state": "open", "title": "perf(ui): avoid per-event array allocation in eventLogBuffer", "updated_at": "2026-04-20T04:35:50Z" }, { "additions": 116, "author": "Schnitzel", "changed_files": 2, "created_at": "2026-04-14T01:50:09Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66271/files", "html_url": "https://github.com/openclaw/openclaw/pull/66271", "merged": false, "number": 66271, "state": "open", "title": "Control UI: avoid chat flicker on session reload", "updated_at": "2026-04-14T02:17:24Z" }, { "additions": 22, "author": "0riginal-claw", "changed_files": 2, "created_at": "2026-04-14T10:15:49Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66485/files", "html_url": "https://github.com/openclaw/openclaw/pull/66485", "merged": false, "number": 66485, "state": "open", "title": "Align context usage display, refresh chat after compaction", "updated_at": "2026-04-14T10:23:35Z" } ], "pairwise": [ { "breadth_similarity": 0.45, "concentration_similarity": 0.879, "content_similarity": 0.906, "left_pr_number": 67699, "right_pr_number": 68518, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts" ], "similarity": 0.83, "size_similarity": 0.712 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.739, "left_pr_number": 67951, "right_pr_number": 68518, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts" ], "similarity": 0.752, "size_similarity": 0.564 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.778, "content_similarity": 0.687, "left_pr_number": 37574, "right_pr_number": 66485, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.673, "size_similarity": 0.519 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.879, "content_similarity": 0.688, "left_pr_number": 67699, "right_pr_number": 67951, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts" ], "similarity": 0.631, "size_similarity": 0.402 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.673, "left_pr_number": 66271, "right_pr_number": 67037, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.sessions.node.test.ts", "ui/src/ui/app-gateway.ts" ], "similarity": 0.629, "size_similarity": 0.253 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.561, "left_pr_number": 68014, "right_pr_number": 68518, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.ts" ], "similarity": 0.626, "size_similarity": 0.723 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.608, "left_pr_number": 37574, "right_pr_number": 66271, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.593, "size_similarity": 0.119 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.462, "left_pr_number": 67951, "right_pr_number": 68014, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.ts" ], "similarity": 0.565, "size_similarity": 0.779 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.778, "content_similarity": 0.591, "left_pr_number": 66271, "right_pr_number": 66485, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.562, "size_similarity": 0.229 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.486, "left_pr_number": 37574, "right_pr_number": 69402, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.54, "size_similarity": 0.5 }, { "breadth_similarity": 0.35, "concentration_similarity": 0.879, "content_similarity": 0.515, "left_pr_number": 67699, "right_pr_number": 68014, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.ts" ], "similarity": 0.517, "size_similarity": 0.515 }, { "breadth_similarity": 0.317, "concentration_similarity": 0.882, "content_similarity": 0.477, "left_pr_number": 66271, "right_pr_number": 69454, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.sessions.node.test.ts", "ui/src/ui/app-gateway.ts" ], "similarity": 0.49, "size_similarity": 0.534 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.778, "content_similarity": 0.505, "left_pr_number": 66485, "right_pr_number": 69402, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.481, "size_similarity": 0.259 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.882, "content_similarity": 0.455, "left_pr_number": 67037, "right_pr_number": 69454, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.node.test.ts", "ui/src/ui/app-gateway.sessions.node.test.ts", "ui/src/ui/app-gateway.ts" ], "similarity": 0.475, "size_similarity": 0.473 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.429, "left_pr_number": 66271, "right_pr_number": 69402, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.434, "size_similarity": 0.059 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.879, "content_similarity": 0.26, "left_pr_number": 66271, "right_pr_number": 67699, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.405, "size_similarity": 0.894 }, { "breadth_similarity": 0.35, "concentration_similarity": 0.879, "content_similarity": 0.444, "left_pr_number": 67699, "right_pr_number": 69402, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.398, "size_similarity": 0.053 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.171, "left_pr_number": 66271, "right_pr_number": 68518, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.389, "size_similarity": 0.797 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.371, "left_pr_number": 37574, "right_pr_number": 67037, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.384, "size_similarity": 0.03 }, { "breadth_similarity": 0.6, "concentration_similarity": 1.0, "content_similarity": 0.366, "left_pr_number": 67037, "right_pr_number": 69402, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.368, "size_similarity": 0.015 }, { "breadth_similarity": 0.667, "concentration_similarity": 0.996, "content_similarity": 0.204, "left_pr_number": 67699, "right_pr_number": 69454, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts", "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.349, "size_similarity": 0.597 }, { "breadth_similarity": 0.7, "concentration_similarity": 0.899, "content_similarity": 0.287, "left_pr_number": 66485, "right_pr_number": 67699, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.347, "size_similarity": 0.205 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.778, "content_similarity": 0.354, "left_pr_number": 66485, "right_pr_number": 67037, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.34, "size_similarity": 0.058 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.165, "left_pr_number": 66271, "right_pr_number": 67951, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.333, "size_similarity": 0.449 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.167, "left_pr_number": 66271, "right_pr_number": 68014, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.328, "size_similarity": 0.576 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.879, "content_similarity": 0.236, "left_pr_number": 67037, "right_pr_number": 67699, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.327, "size_similarity": 0.283 }, { "breadth_similarity": 0.567, "concentration_similarity": 0.895, "content_similarity": 0.285, "left_pr_number": 66485, "right_pr_number": 69454, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.319, "size_similarity": 0.122 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.778, "content_similarity": 0.167, "left_pr_number": 66485, "right_pr_number": 67951, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.307, "size_similarity": 0.509 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.155, "left_pr_number": 37574, "right_pr_number": 67951, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.298, "size_similarity": 0.264 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.879, "content_similarity": 0.273, "left_pr_number": 37574, "right_pr_number": 67699, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.296, "size_similarity": 0.106 }, { "breadth_similarity": 0.317, "concentration_similarity": 0.882, "content_similarity": 0.29, "left_pr_number": 37574, "right_pr_number": 69454, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts", "ui/src/ui/app-settings.ts" ], "similarity": 0.288, "size_similarity": 0.063 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.161, "left_pr_number": 37574, "right_pr_number": 68518, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.285, "size_similarity": 0.149 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.163, "left_pr_number": 68014, "right_pr_number": 69402, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.279, "size_similarity": 0.103 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.778, "content_similarity": 0.173, "left_pr_number": 66485, "right_pr_number": 68518, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.278, "size_similarity": 0.287 }, { "breadth_similarity": 0.283, "concentration_similarity": 0.882, "content_similarity": 0.279, "left_pr_number": 69402, "right_pr_number": 69454, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts" ], "similarity": 0.272, "size_similarity": 0.032 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.778, "content_similarity": 0.169, "left_pr_number": 66485, "right_pr_number": 68014, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.267, "size_similarity": 0.397 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.167, "left_pr_number": 67037, "right_pr_number": 68518, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.267, "size_similarity": 0.201 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.157, "left_pr_number": 37574, "right_pr_number": 68014, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.266, "size_similarity": 0.206 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.161, "left_pr_number": 67951, "right_pr_number": 69402, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.257, "size_similarity": 0.132 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.167, "left_pr_number": 68518, "right_pr_number": 69402, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.253, "size_similarity": 0.074 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.161, "left_pr_number": 67037, "right_pr_number": 67951, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.25, "size_similarity": 0.113 }, { "breadth_similarity": 0.6, "concentration_similarity": 1.0, "content_similarity": 0.163, "left_pr_number": 67037, "right_pr_number": 68014, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.246, "size_similarity": 0.146 }, { "breadth_similarity": 0.317, "concentration_similarity": 0.882, "content_similarity": 0.138, "left_pr_number": 68518, "right_pr_number": 69454, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.237, "size_similarity": 0.425 }, { "breadth_similarity": 0.283, "concentration_similarity": 0.882, "content_similarity": 0.135, "left_pr_number": 68014, "right_pr_number": 69454, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.213, "size_similarity": 0.308 }, { "breadth_similarity": 0.317, "concentration_similarity": 0.882, "content_similarity": 0.133, "left_pr_number": 67951, "right_pr_number": 69454, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.205, "size_similarity": 0.24 } ], "pr_count": 10, "pr_numbers": [ 37574, 66271, 66485, 67037, 67699, 67951, 68014, 68518, 69402, 69454 ], "recent_pr_count": 7, "recent_pr_numbers": [ 67037, 67699, 67951, 68014, 68518, 69402, 69454 ], "representative_pr_number": 66271, "representative_title": "Control UI: avoid chat flicker on session reload", "representative_url": "https://github.com/openclaw/openclaw/pull/66271", "shared_directories": [ "ui/src/ui", "ui/src", "ui", "ui/src/ui/controllers" ], "shared_filenames": [ "ui/src/ui/app-gateway.ts", "ui/src/ui/controllers/chat.ts", "ui/src/ui/app-gateway.sessions.node.test.ts", "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/app-gateway.node.test.ts", "ui/src/ui/app-settings.ts", "ui/src/ui/app-render.helpers.ts" ], "summary": "10 open PRs share weighted file overlap around `ui/src/ui/app-gateway.ts`, `ui/src/ui/controllers/chat.ts`, `ui/src/ui/app-gateway.sessions.node.test.ts`; representative PR #66271.", "title": "Scope: Control UI: avoid chat flicker on session reload" }, { "authors": [ "1aifanatic", "ImLukeF", "christnorman", "everySympathy", "jasonmakr", "mushuiyu886", "nightq" ], "average_similarity": 0.539, "cluster_id": "pr-scope-66583-8", "kind": "pr_scope", "last_activity_at": "2026-04-20T07:05:24Z", "outside_window_prs": [ { "additions": 175, "author": "RafeSymonds", "changed_files": 10, "created_at": "2026-04-14T13:59:49Z", "deletions": 12, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66583/files", "html_url": "https://github.com/openclaw/openclaw/pull/66583", "merged": false, "number": 66583, "state": "open", "title": "feat(memory-core): add dreaming.model config field for per-sweep model override", "updated_at": "2026-04-14T14:06:36Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.973, "left_pr_number": 68087, "right_pr_number": 68312, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.981, "size_similarity": 1.0 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.974, "left_pr_number": 68020, "right_pr_number": 68087, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.965, "size_similarity": 0.884 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.949, "left_pr_number": 68020, "right_pr_number": 68312, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.947, "size_similarity": 0.884 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.609, "left_pr_number": 68087, "right_pr_number": 68364, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.695, "size_similarity": 0.789 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.596, "left_pr_number": 68312, "right_pr_number": 68364, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.685, "size_similarity": 0.789 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.541, "left_pr_number": 68020, "right_pr_number": 68364, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.634, "size_similarity": 0.698 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.687, "content_similarity": 0.575, "left_pr_number": 68020, "right_pr_number": 68681, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.583, "size_similarity": 0.642 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.687, "content_similarity": 0.559, "left_pr_number": 68087, "right_pr_number": 68681, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.561, "size_similarity": 0.567 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.687, "content_similarity": 0.546, "left_pr_number": 68312, "right_pr_number": 68681, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.552, "size_similarity": 0.567 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.687, "content_similarity": 0.548, "left_pr_number": 68364, "right_pr_number": 68681, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.535, "size_similarity": 0.448 }, { "breadth_similarity": 0.267, "concentration_similarity": 0.91, "content_similarity": 0.636, "left_pr_number": 68087, "right_pr_number": 69209, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.526, "size_similarity": 0.06 }, { "breadth_similarity": 0.267, "concentration_similarity": 0.91, "content_similarity": 0.635, "left_pr_number": 68312, "right_pr_number": 69209, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.525, "size_similarity": 0.06 }, { "breadth_similarity": 0.267, "concentration_similarity": 0.91, "content_similarity": 0.63, "left_pr_number": 68020, "right_pr_number": 69209, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.524, "size_similarity": 0.068 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.788, "content_similarity": 0.56, "left_pr_number": 68364, "right_pr_number": 68445, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.52, "size_similarity": 0.288 }, { "breadth_similarity": 0.9, "concentration_similarity": 0.898, "content_similarity": 0.393, "left_pr_number": 68445, "right_pr_number": 68681, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.506, "size_similarity": 0.644 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.593, "content_similarity": 0.495, "left_pr_number": 66583, "right_pr_number": 69209, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "src/memory-host-sdk", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/openclaw.plugin.json", "extensions/memory-core/src/config.test.ts", "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts", "extensions/memory-core/src/dreaming-phases.ts", "extensions/memory-core/src/dreaming.ts", "src/memory-host-sdk/dreaming.test.ts", "src/memory-host-sdk/dreaming.ts" ], "similarity": 0.501, "size_similarity": 0.295 }, { "breadth_similarity": 0.267, "concentration_similarity": 0.91, "content_similarity": 0.589, "left_pr_number": 68364, "right_pr_number": 69209, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.492, "size_similarity": 0.047 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.788, "content_similarity": 0.47, "left_pr_number": 68087, "right_pr_number": 68445, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.469, "size_similarity": 0.365 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.788, "content_similarity": 0.463, "left_pr_number": 68312, "right_pr_number": 68445, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.464, "size_similarity": 0.365 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.878, "content_similarity": 0.482, "left_pr_number": 68445, "right_pr_number": 69209, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts", "extensions/memory-core/src/dreaming-phases.ts" ], "similarity": 0.464, "size_similarity": 0.164 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.788, "content_similarity": 0.445, "left_pr_number": 68020, "right_pr_number": 68445, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.458, "size_similarity": 0.413 }, { "breadth_similarity": 0.533, "concentration_similarity": 0.776, "content_similarity": 0.491, "left_pr_number": 68681, "right_pr_number": 69209, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.452, "size_similarity": 0.106 }, { "breadth_similarity": 0.2, "concentration_similarity": 0.503, "content_similarity": 0.396, "left_pr_number": 66583, "right_pr_number": 68312, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.353, "size_similarity": 0.203 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.714, "content_similarity": 0.269, "left_pr_number": 66583, "right_pr_number": 68445, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts", "extensions/memory-core/src/dreaming-phases.ts" ], "similarity": 0.352, "size_similarity": 0.556 }, { "breadth_similarity": 0.2, "concentration_similarity": 0.503, "content_similarity": 0.398, "left_pr_number": 66583, "right_pr_number": 68364, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.348, "size_similarity": 0.16 }, { "breadth_similarity": 0.2, "concentration_similarity": 0.503, "content_similarity": 0.386, "left_pr_number": 66583, "right_pr_number": 68087, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.346, "size_similarity": 0.203 }, { "breadth_similarity": 0.2, "concentration_similarity": 0.503, "content_similarity": 0.353, "left_pr_number": 66583, "right_pr_number": 68020, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.327, "size_similarity": 0.23 }, { "breadth_similarity": 0.4, "concentration_similarity": 0.816, "content_similarity": 0.273, "left_pr_number": 66583, "right_pr_number": 68681, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts" ], "similarity": 0.325, "size_similarity": 0.358 } ], "pr_count": 8, "pr_numbers": [ 66583, 68020, 68087, 68312, 68364, 68445, 68681, 69209 ], "recent_pr_count": 7, "recent_pr_numbers": [ 68020, 68087, 68312, 68364, 68445, 68681, 69209 ], "representative_pr_number": 68087, "representative_title": "fix(memory-core): downgrade cleanup warning to debug when missing operator.admin scope", "representative_url": "https://github.com/openclaw/openclaw/pull/68087", "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions", "src", "src/memory-host-sdk" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-narrative.test.ts", "extensions/memory-core/src/dreaming-narrative.ts", "extensions/memory-core/src/dreaming-phases.ts", "extensions/memory-core/src/config.test.ts", "src/memory-host-sdk/dreaming.test.ts", "extensions/memory-core/src/dreaming.ts", "src/memory-host-sdk/dreaming.ts", "extensions/memory-core/openclaw.plugin.json" ], "summary": "8 open PRs share weighted file overlap around `extensions/memory-core/src/dreaming-narrative.test.ts`, `extensions/memory-core/src/dreaming-narrative.ts`, `extensions/memory-core/src/dreaming-phases.ts`; representative PR #68087.", "title": "Scope: fix(memory-core): downgrade cleanup warning to debug when missing operator.admin scope" }, { "authors": [ "Maaannnn", "briandevans", "dkaygithub", "draix", "duqaXxX", "hss-oss", "sk7n4k3d" ], "average_similarity": 0.433, "cluster_id": "pr-scope-64660-8", "kind": "pr_scope", "last_activity_at": "2026-04-20T17:32:57Z", "outside_window_prs": [ { "additions": 404, "author": "gzsiang", "changed_files": 9, "created_at": "2026-04-11T05:24:38Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64660/files", "html_url": "https://github.com/openclaw/openclaw/pull/64660", "merged": false, "number": 64660, "state": "open", "title": "fix(agents): support local LLM tool calls and streaming usage via OpenAI-compatible endpoints", "updated_at": "2026-04-14T04:09:42Z" } ], "pairwise": [ { "breadth_similarity": 0.875, "concentration_similarity": 0.721, "content_similarity": 0.729, "left_pr_number": 67203, "right_pr_number": 68418, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.753, "size_similarity": 0.792 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.998, "content_similarity": 0.641, "left_pr_number": 68418, "right_pr_number": 69212, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.635, "size_similarity": 0.413 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.608, "left_pr_number": 66949, "right_pr_number": 69411, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.58, "size_similarity": 0.195 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.998, "content_similarity": 0.502, "left_pr_number": 66949, "right_pr_number": 68418, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.578, "size_similarity": 0.761 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.998, "content_similarity": 0.567, "left_pr_number": 68418, "right_pr_number": 69411, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.544, "size_similarity": 0.256 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.413, "left_pr_number": 66949, "right_pr_number": 69212, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.508, "size_similarity": 0.542 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.842, "content_similarity": 0.381, "left_pr_number": 64660, "right_pr_number": 68418, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.ts" ], "similarity": 0.495, "size_similarity": 0.909 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.719, "content_similarity": 0.495, "left_pr_number": 67203, "right_pr_number": 69212, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.494, "size_similarity": 0.327 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.477, "left_pr_number": 69212, "right_pr_number": 69411, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.483, "size_similarity": 0.106 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.719, "content_similarity": 0.465, "left_pr_number": 67203, "right_pr_number": 69411, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.46, "size_similarity": 0.323 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.719, "content_similarity": 0.362, "left_pr_number": 66949, "right_pr_number": 67203, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.455, "size_similarity": 0.603 }, { "breadth_similarity": 0.174, "concentration_similarity": 0.768, "content_similarity": 0.458, "left_pr_number": 66871, "right_pr_number": 69411, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.439, "size_similarity": 0.414 }, { "breadth_similarity": 0.303, "concentration_similarity": 0.77, "content_similarity": 0.368, "left_pr_number": 66871, "right_pr_number": 68418, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.419, "size_similarity": 0.618 }, { "breadth_similarity": 0.265, "concentration_similarity": 0.768, "content_similarity": 0.387, "left_pr_number": 66871, "right_pr_number": 66949, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.407, "size_similarity": 0.471 }, { "breadth_similarity": 0.675, "concentration_similarity": 0.955, "content_similarity": 0.299, "left_pr_number": 64660, "right_pr_number": 68935, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.ts", "src/agents/pi-embedded-runner/stream-resolution.ts" ], "similarity": 0.402, "size_similarity": 0.515 }, { "breadth_similarity": 0.348, "concentration_similarity": 0.951, "content_similarity": 0.29, "left_pr_number": 66871, "right_pr_number": 67203, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.402, "size_similarity": 0.78 }, { "breadth_similarity": 0.325, "concentration_similarity": 0.797, "content_similarity": 0.348, "left_pr_number": 68418, "right_pr_number": 68935, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.401, "size_similarity": 0.566 }, { "breadth_similarity": 0.225, "concentration_similarity": 0.795, "content_similarity": 0.316, "left_pr_number": 68935, "right_pr_number": 69212, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.393, "size_similarity": 0.729 }, { "breadth_similarity": 0.389, "concentration_similarity": 0.84, "content_similarity": 0.28, "left_pr_number": 64660, "right_pr_number": 66949, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.ts" ], "similarity": 0.381, "size_similarity": 0.692 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.973, "content_similarity": 0.267, "left_pr_number": 66871, "right_pr_number": 68935, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "docs", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.375, "size_similarity": 0.35 }, { "breadth_similarity": 0.267, "concentration_similarity": 0.795, "content_similarity": 0.262, "left_pr_number": 66949, "right_pr_number": 68935, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.361, "size_similarity": 0.744 }, { "breadth_similarity": 0.556, "concentration_similarity": 0.879, "content_similarity": 0.174, "left_pr_number": 64660, "right_pr_number": 67203, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.ts" ], "similarity": 0.352, "size_similarity": 0.871 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.84, "content_similarity": 0.303, "left_pr_number": 64660, "right_pr_number": 69212, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.ts" ], "similarity": 0.344, "size_similarity": 0.375 }, { "breadth_similarity": 0.659, "concentration_similarity": 0.928, "content_similarity": 0.157, "left_pr_number": 64660, "right_pr_number": 66871, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.ts" ], "similarity": 0.324, "size_similarity": 0.68 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.924, "content_similarity": 0.246, "left_pr_number": 67203, "right_pr_number": 68935, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.323, "size_similarity": 0.449 }, { "breadth_similarity": 0.22, "concentration_similarity": 0.768, "content_similarity": 0.315, "left_pr_number": 66871, "right_pr_number": 69212, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.319, "size_similarity": 0.255 }, { "breadth_similarity": 0.183, "concentration_similarity": 0.795, "content_similarity": 0.29, "left_pr_number": 68935, "right_pr_number": 69411, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.test.ts", "src/agents/openai-transport-stream.ts" ], "similarity": 0.283, "size_similarity": 0.145 }, { "breadth_similarity": 0.278, "concentration_similarity": 0.84, "content_similarity": 0.154, "left_pr_number": 64660, "right_pr_number": 69411, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-transport-stream.ts" ], "similarity": 0.22, "size_similarity": 0.282 } ], "pr_count": 8, "pr_numbers": [ 64660, 66871, 66949, 67203, 68418, 68935, 69212, 69411 ], "recent_pr_count": 7, "recent_pr_numbers": [ 66871, 66949, 67203, 68418, 68935, 69212, 69411 ], "representative_pr_number": 68418, "representative_title": "fix(agents): unpack typed-block delta.content arrays in openai-completions stream", "representative_url": "https://github.com/openclaw/openclaw/pull/68418", "shared_directories": [ "src/agents", "src", "src/agents/pi-embedded-runner", "docs" ], "shared_filenames": [ "src/agents/openai-transport-stream.ts", "src/agents/openai-transport-stream.test.ts", "src/agents/pi-embedded-runner/stream-resolution.ts" ], "summary": "8 open PRs share weighted file overlap around `src/agents/openai-transport-stream.ts`, `src/agents/openai-transport-stream.test.ts`, `src/agents/pi-embedded-runner/stream-resolution.ts`; representative PR #68418.", "title": "Scope: fix(agents): unpack typed-block delta.content arrays in openai-completions stream" }, { "authors": [ "HelloBias", "IVY-AI-gif", "Lucenx9", "Zetarcos", "isopenclaw", "luoyanglang" ], "average_similarity": 0.404, "cluster_id": "pr-scope-53288-11", "kind": "pr_scope", "last_activity_at": "2026-04-19T17:34:20Z", "outside_window_prs": [ { "additions": 130, "author": "jeremyknows", "changed_files": 3, "created_at": "2026-03-24T02:00:14Z", "deletions": 17, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53288/files", "html_url": "https://github.com/openclaw/openclaw/pull/53288", "merged": false, "number": 53288, "state": "open", "title": "feat(discord): extract embed fields and footer for agent visibility", "updated_at": "2026-03-24T20:15:31Z" }, { "additions": 162, "author": "joelnishanth", "changed_files": 2, "created_at": "2026-03-24T17:37:34Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53854/files", "html_url": "https://github.com/openclaw/openclaw/pull/53854", "merged": false, "number": 53854, "state": "open", "title": "fix(discord): catch thrown errors from gateway WebSocket close handler", "updated_at": "2026-03-24T20:15:28Z" }, { "additions": 151, "author": "qinchaomeishenmeshi", "changed_files": 3, "created_at": "2026-03-24T22:31:04Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/54035/files", "html_url": "https://github.com/openclaw/openclaw/pull/54035", "merged": false, "number": 54035, "state": "open", "title": "fix(discord): use turn-source routing hints for exec approvals before session-key fallback", "updated_at": "2026-03-24T22:33:23Z" }, { "additions": 386, "author": "snowshadow", "changed_files": 2, "created_at": "2026-04-12T01:30:18Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65084/files", "html_url": "https://github.com/openclaw/openclaw/pull/65084", "merged": false, "number": 65084, "state": "open", "title": "fix(discord): guard zombie gateway reconnects after close", "updated_at": "2026-04-12T11:18:10Z" }, { "additions": 499, "author": "snowshadow", "changed_files": 5, "created_at": "2026-04-13T05:15:43Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65727/files", "html_url": "https://github.com/openclaw/openclaw/pull/65727", "merged": false, "number": 65727, "state": "open", "title": "docs: add hook-pack publishing guide", "updated_at": "2026-04-13T05:23:27Z" } ], "pairwise": [ { "breadth_similarity": 0.367, "concentration_similarity": 0.774, "content_similarity": 0.865, "left_pr_number": 65084, "right_pr_number": 65727, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/gateway-plugin.ts", "extensions/discord/src/monitor/provider.proxy.test.ts" ], "similarity": 0.797, "size_similarity": 0.774 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.799, "left_pr_number": 53854, "right_pr_number": 67033, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/gateway-plugin.test.ts", "extensions/discord/src/monitor/gateway-plugin.ts" ], "similarity": 0.765, "size_similarity": 0.371 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.694, "left_pr_number": 68538, "right_pr_number": 68710, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/native-command.plugin-dispatch.test.ts", "extensions/discord/src/monitor/native-command.ts" ], "similarity": 0.72, "size_similarity": 0.566 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.966, "content_similarity": 0.776, "left_pr_number": 65084, "right_pr_number": 68159, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/gateway-plugin.ts", "extensions/discord/src/monitor/provider.proxy.test.ts" ], "similarity": 0.695, "size_similarity": 0.301 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.653, "left_pr_number": 65084, "right_pr_number": 67033, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/gateway-plugin.ts" ], "similarity": 0.631, "size_similarity": 0.161 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.808, "content_similarity": 0.672, "left_pr_number": 65727, "right_pr_number": 68159, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/gateway-plugin.ts", "extensions/discord/src/monitor/provider.proxy.test.ts" ], "similarity": 0.609, "size_similarity": 0.232 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.481, "left_pr_number": 53854, "right_pr_number": 65084, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/gateway-plugin.ts" ], "similarity": 0.552, "size_similarity": 0.433 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.966, "content_similarity": 0.406, "left_pr_number": 53854, "right_pr_number": 68159, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/gateway-plugin.ts" ], "similarity": 0.495, "size_similarity": 0.695 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.966, "content_similarity": 0.436, "left_pr_number": 67033, "right_pr_number": 68159, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/gateway-plugin.ts" ], "similarity": 0.492, "size_similarity": 0.534 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.774, "content_similarity": 0.565, "left_pr_number": 65727, "right_pr_number": 67033, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/gateway-plugin.ts" ], "similarity": 0.489, "size_similarity": 0.124 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.208, "left_pr_number": 65084, "right_pr_number": 66891, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.429, "size_similarity": 0.889 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.209, "left_pr_number": 53854, "right_pr_number": 68034, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.428, "size_similarity": 0.879 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.199, "left_pr_number": 68034, "right_pr_number": 68710, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.424, "size_similarity": 0.896 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.216, "left_pr_number": 53854, "right_pr_number": 68710, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.419, "size_similarity": 0.788 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.774, "content_similarity": 0.416, "left_pr_number": 53854, "right_pr_number": 65727, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/gateway-plugin.ts" ], "similarity": 0.417, "size_similarity": 0.335 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.211, "left_pr_number": 53288, "right_pr_number": 53854, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.413, "size_similarity": 0.88 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.219, "left_pr_number": 53854, "right_pr_number": 68538, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.411, "size_similarity": 0.719 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.972, "content_similarity": 0.203, "left_pr_number": 54035, "right_pr_number": 68159, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.404, "size_similarity": 0.753 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.994, "content_similarity": 0.193, "left_pr_number": 53288, "right_pr_number": 54035, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.403, "size_similarity": 0.955 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.966, "content_similarity": 0.214, "left_pr_number": 68159, "right_pr_number": 68538, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.402, "size_similarity": 0.967 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.204, "left_pr_number": 53288, "right_pr_number": 68538, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.398, "size_similarity": 0.816 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.994, "content_similarity": 0.208, "left_pr_number": 53854, "right_pr_number": 54035, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.392, "size_similarity": 0.922 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.195, "left_pr_number": 53288, "right_pr_number": 68034, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.386, "size_similarity": 0.774 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.966, "content_similarity": 0.207, "left_pr_number": 53288, "right_pr_number": 68159, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.386, "size_similarity": 0.789 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.202, "left_pr_number": 68034, "right_pr_number": 68538, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.386, "size_similarity": 0.632 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.218, "left_pr_number": 65084, "right_pr_number": 68710, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.385, "size_similarity": 0.549 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.201, "left_pr_number": 53288, "right_pr_number": 68710, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.378, "size_similarity": 0.693 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.21, "left_pr_number": 67033, "right_pr_number": 68538, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.375, "size_similarity": 0.517 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.211, "left_pr_number": 65084, "right_pr_number": 68034, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.372, "size_similarity": 0.492 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.994, "content_similarity": 0.201, "left_pr_number": 54035, "right_pr_number": 68538, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.365, "size_similarity": 0.779 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.994, "content_similarity": 0.192, "left_pr_number": 54035, "right_pr_number": 68034, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.364, "size_similarity": 0.811 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.197, "left_pr_number": 66891, "right_pr_number": 68710, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.361, "size_similarity": 0.488 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.994, "content_similarity": 0.198, "left_pr_number": 54035, "right_pr_number": 68710, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.356, "size_similarity": 0.726 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.207, "left_pr_number": 53854, "right_pr_number": 66891, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.352, "size_similarity": 0.385 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.221, "left_pr_number": 65084, "right_pr_number": 68538, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.351, "size_similarity": 0.311 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.191, "left_pr_number": 66891, "right_pr_number": 68034, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.349, "size_similarity": 0.438 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.966, "content_similarity": 0.205, "left_pr_number": 68034, "right_pr_number": 68159, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.341, "size_similarity": 0.611 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.213, "left_pr_number": 53288, "right_pr_number": 65084, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.34, "size_similarity": 0.381 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.201, "left_pr_number": 67033, "right_pr_number": 68034, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.34, "size_similarity": 0.326 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.203, "left_pr_number": 53288, "right_pr_number": 67033, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.339, "size_similarity": 0.422 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.208, "left_pr_number": 67033, "right_pr_number": 68710, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.339, "size_similarity": 0.292 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.966, "content_similarity": 0.212, "left_pr_number": 68159, "right_pr_number": 68710, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.337, "size_similarity": 0.547 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.774, "content_similarity": 0.18, "left_pr_number": 65727, "right_pr_number": 66891, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.332, "size_similarity": 0.87 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.199, "left_pr_number": 66891, "right_pr_number": 68538, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.331, "size_similarity": 0.276 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.192, "left_pr_number": 53288, "right_pr_number": 66891, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.319, "size_similarity": 0.339 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.994, "content_similarity": 0.209, "left_pr_number": 54035, "right_pr_number": 65084, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.314, "size_similarity": 0.399 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.199, "left_pr_number": 66891, "right_pr_number": 67033, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.31, "size_similarity": 0.143 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.994, "content_similarity": 0.2, "left_pr_number": 54035, "right_pr_number": 67033, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.308, "size_similarity": 0.403 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.994, "content_similarity": 0.189, "left_pr_number": 54035, "right_pr_number": 66891, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.294, "size_similarity": 0.355 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.966, "content_similarity": 0.202, "left_pr_number": 66891, "right_pr_number": 68159, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.288, "size_similarity": 0.267 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.78, "content_similarity": 0.181, "left_pr_number": 54035, "right_pr_number": 65727, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.276, "size_similarity": 0.309 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.774, "content_similarity": 0.189, "left_pr_number": 65727, "right_pr_number": 68710, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.271, "size_similarity": 0.425 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.774, "content_similarity": 0.183, "left_pr_number": 65727, "right_pr_number": 68034, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.26, "size_similarity": 0.381 }, { "breadth_similarity": 0.467, "concentration_similarity": 0.774, "content_similarity": 0.184, "left_pr_number": 53288, "right_pr_number": 65727, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.259, "size_similarity": 0.295 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.774, "content_similarity": 0.191, "left_pr_number": 65727, "right_pr_number": 68538, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.245, "size_similarity": 0.24 } ], "pr_count": 11, "pr_numbers": [ 53288, 53854, 54035, 65084, 65727, 66891, 67033, 68034, 68159, 68538, 68710 ], "recent_pr_count": 6, "recent_pr_numbers": [ 66891, 67033, 68034, 68159, 68538, 68710 ], "representative_pr_number": 65084, "representative_title": "fix(discord): guard zombie gateway reconnects after close", "representative_url": "https://github.com/openclaw/openclaw/pull/65084", "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/gateway-plugin.ts", "extensions/discord/src/monitor/provider.proxy.test.ts", "extensions/discord/src/monitor/gateway-plugin.test.ts", "extensions/discord/src/monitor/native-command.plugin-dispatch.test.ts", "extensions/discord/src/monitor/native-command.ts" ], "summary": "11 open PRs share weighted file overlap around `extensions/discord/src/monitor/gateway-plugin.ts`, `extensions/discord/src/monitor/provider.proxy.test.ts`, `extensions/discord/src/monitor/gateway-plugin.test.ts`; representative PR #65084.", "title": "Scope: fix(discord): guard zombie gateway reconnects after close" }, { "authors": [ "Magicray1217", "MoerAI", "chrispatil", "rockchris099", "wkeything" ], "average_similarity": 0.432, "cluster_id": "pr-scope-51421-10", "kind": "pr_scope", "last_activity_at": "2026-04-20T23:25:13Z", "outside_window_prs": [ { "additions": 37, "author": "Kaspre", "changed_files": 2, "created_at": "2026-03-21T04:39:54Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/51421/files", "html_url": "https://github.com/openclaw/openclaw/pull/51421", "merged": false, "number": 51421, "state": "open", "title": "fix(memory): memoryFlush fires every compaction cycle instead of every other", "updated_at": "2026-04-18T19:02:06Z" }, { "additions": 103, "author": "070freebird070-ctrl", "changed_files": 3, "created_at": "2026-04-10T15:34:59Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64384/files", "html_url": "https://github.com/openclaw/openclaw/pull/64384", "merged": false, "number": 64384, "state": "open", "title": "fix(reply): gate preflight compaction fast-path on token threshold (#63892)", "updated_at": "2026-04-10T15:38:10Z" }, { "additions": 128, "author": "neeravmakwana", "changed_files": 5, "created_at": "2026-04-13T01:04:09Z", "deletions": 20, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65622/files", "html_url": "https://github.com/openclaw/openclaw/pull/65622", "merged": false, "number": 65622, "state": "open", "title": "fix(agents): reevaluate preflight compaction on fresh totals", "updated_at": "2026-04-13T01:17:48Z" }, { "additions": 416, "author": "KeWang0622", "changed_files": 3, "created_at": "2026-04-14T17:48:45Z", "deletions": 23, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66716/files", "html_url": "https://github.com/openclaw/openclaw/pull/66716", "merged": false, "number": 66716, "state": "open", "title": "fix: auto-compaction fires on fresh cached token counts (#66520)", "updated_at": "2026-04-14T18:34:26Z" } ], "pairwise": [ { "breadth_similarity": 0.354, "concentration_similarity": 0.924, "content_similarity": 0.827, "left_pr_number": 66716, "right_pr_number": 66846, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.test.ts", "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.764, "size_similarity": 0.69 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.996, "content_similarity": 0.687, "left_pr_number": 64384, "right_pr_number": 65622, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "CHANGELOG.md", "src/auto-reply/reply/agent-runner-memory.test.ts", "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.72, "size_similarity": 0.73 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.991, "content_similarity": 0.797, "left_pr_number": 64384, "right_pr_number": 66716, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.test.ts", "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.719, "size_similarity": 0.246 }, { "breadth_similarity": 0.521, "concentration_similarity": 0.933, "content_similarity": 0.762, "left_pr_number": 64384, "right_pr_number": 66846, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.test.ts", "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.686, "size_similarity": 0.356 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.559, "left_pr_number": 51421, "right_pr_number": 66845, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.648, "size_similarity": 0.714 }, { "breadth_similarity": 0.55, "concentration_similarity": 0.986, "content_similarity": 0.645, "left_pr_number": 65622, "right_pr_number": 66716, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.test.ts", "src/auto-reply/reply/agent-runner-memory.ts", "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.606, "size_similarity": 0.337 }, { "breadth_similarity": 0.646, "concentration_similarity": 0.938, "content_similarity": 0.567, "left_pr_number": 65622, "right_pr_number": 66846, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.test.ts", "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.582, "size_similarity": 0.488 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.938, "content_similarity": 0.617, "left_pr_number": 66764, "right_pr_number": 67297, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.581, "size_similarity": 0.4 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.938, "content_similarity": 0.547, "left_pr_number": 51421, "right_pr_number": 66764, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts", "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.567, "size_similarity": 0.525 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.986, "content_similarity": 0.63, "left_pr_number": 65622, "right_pr_number": 69138, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.test.ts", "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.553, "size_similarity": 0.115 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.951, "content_similarity": 0.427, "left_pr_number": 65622, "right_pr_number": 66764, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts", "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.508, "size_similarity": 0.541 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.938, "content_similarity": 0.508, "left_pr_number": 66716, "right_pr_number": 66764, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts", "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.505, "size_similarity": 0.182 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.416, "left_pr_number": 51421, "right_pr_number": 69138, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.502, "size_similarity": 0.405 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.947, "content_similarity": 0.347, "left_pr_number": 64384, "right_pr_number": 66764, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.502, "size_similarity": 0.741 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.42, "left_pr_number": 67297, "right_pr_number": 69138, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.499, "size_similarity": 0.531 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.938, "content_similarity": 0.472, "left_pr_number": 66764, "right_pr_number": 66845, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.492, "size_similarity": 0.375 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.502, "left_pr_number": 66716, "right_pr_number": 69138, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.test.ts", "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.491, "size_similarity": 0.039 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.991, "content_similarity": 0.479, "left_pr_number": 64384, "right_pr_number": 69138, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.test.ts", "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.467, "size_similarity": 0.157 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.306, "left_pr_number": 51421, "right_pr_number": 67297, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.453, "size_similarity": 0.762 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.924, "content_similarity": 0.512, "left_pr_number": 66846, "right_pr_number": 69138, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.test.ts", "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.442, "size_similarity": 0.056 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.594, "content_similarity": 0.502, "left_pr_number": 51421, "right_pr_number": 69379, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts", "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.44, "size_similarity": 0.172 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.594, "content_similarity": 0.506, "left_pr_number": 66845, "right_pr_number": 69379, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/memory-flush.ts", "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.435, "size_similarity": 0.123 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.657, "content_similarity": 0.418, "left_pr_number": 66764, "right_pr_number": 69379, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts", "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.433, "size_similarity": 0.328 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.938, "content_similarity": 0.394, "left_pr_number": 66764, "right_pr_number": 69138, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.413, "size_similarity": 0.212 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.373, "left_pr_number": 51421, "right_pr_number": 66716, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts", "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.409, "size_similarity": 0.096 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.355, "left_pr_number": 66716, "right_pr_number": 66845, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.392, "size_similarity": 0.068 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.986, "content_similarity": 0.337, "left_pr_number": 51421, "right_pr_number": 65622, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts", "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.373, "size_similarity": 0.284 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.991, "content_similarity": 0.338, "left_pr_number": 64384, "right_pr_number": 67297, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.372, "size_similarity": 0.296 }, { "breadth_similarity": 0.35, "concentration_similarity": 0.986, "content_similarity": 0.361, "left_pr_number": 65622, "right_pr_number": 67297, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.37, "size_similarity": 0.216 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.334, "left_pr_number": 66716, "right_pr_number": 67297, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.362, "size_similarity": 0.073 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.608, "content_similarity": 0.234, "left_pr_number": 65622, "right_pr_number": 69379, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "CHANGELOG.md", "src/auto-reply/reply/agent-runner-memory.ts", "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.36, "size_similarity": 0.607 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.594, "content_similarity": 0.281, "left_pr_number": 66716, "right_pr_number": 69379, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts", "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.351, "size_similarity": 0.556 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.1, "left_pr_number": 66845, "right_pr_number": 67297, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [], "similarity": 0.336, "size_similarity": 0.938 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.67, "content_similarity": 0.115, "left_pr_number": 66846, "right_pr_number": 69379, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.322, "size_similarity": 0.805 }, { "breadth_similarity": 0.521, "concentration_similarity": 0.987, "content_similarity": 0.232, "left_pr_number": 66764, "right_pr_number": 66846, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.304, "size_similarity": 0.264 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.986, "content_similarity": 0.254, "left_pr_number": 65622, "right_pr_number": 66845, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/reply-state.test.ts" ], "similarity": 0.302, "size_similarity": 0.203 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.093, "left_pr_number": 66845, "right_pr_number": 69138, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [], "similarity": 0.3, "size_similarity": 0.567 }, { "breadth_similarity": 0.229, "concentration_similarity": 0.924, "content_similarity": 0.305, "left_pr_number": 66846, "right_pr_number": 67297, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.298, "size_similarity": 0.106 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.594, "content_similarity": 0.306, "left_pr_number": 67297, "right_pr_number": 69379, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.289, "size_similarity": 0.131 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.991, "content_similarity": 0.165, "left_pr_number": 51421, "right_pr_number": 64384, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.282, "size_similarity": 0.389 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.604, "content_similarity": 0.148, "left_pr_number": 64384, "right_pr_number": 69379, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "CHANGELOG.md", "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.258, "size_similarity": 0.443 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.924, "content_similarity": 0.186, "left_pr_number": 51421, "right_pr_number": 66846, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.227, "size_similarity": 0.139 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.991, "content_similarity": 0.091, "left_pr_number": 64384, "right_pr_number": 66845, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [], "similarity": 0.214, "size_similarity": 0.278 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.594, "content_similarity": 0.145, "left_pr_number": 69138, "right_pr_number": 69379, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts" ], "similarity": 0.175, "size_similarity": 0.07 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.924, "content_similarity": 0.091, "left_pr_number": 66845, "right_pr_number": 66846, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [], "similarity": 0.154, "size_similarity": 0.099 } ], "pr_count": 10, "pr_numbers": [ 51421, 64384, 65622, 66716, 66764, 66845, 66846, 67297, 69138, 69379 ], "recent_pr_count": 6, "recent_pr_numbers": [ 66764, 66845, 66846, 67297, 69138, 69379 ], "representative_pr_number": 66716, "representative_title": "fix: auto-compaction fires on fresh cached token counts (#66520)", "representative_url": "https://github.com/openclaw/openclaw/pull/66716", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-memory.ts", "src/auto-reply/reply/reply-state.test.ts", "src/auto-reply/reply/agent-runner-memory.test.ts", "CHANGELOG.md", "src/auto-reply/reply/memory-flush.ts" ], "summary": "10 open PRs share weighted file overlap around `src/auto-reply/reply/agent-runner-memory.ts`, `src/auto-reply/reply/reply-state.test.ts`, `src/auto-reply/reply/agent-runner-memory.test.ts`; representative PR #66716.", "title": "Scope: fix: auto-compaction fires on fresh cached token counts (#66520)" }, { "authors": [ "MoerAI", "Tuarisa", "armorbreak001", "chen-zhang-cs-code", "sahilsatralkar" ], "average_similarity": 0.561, "cluster_id": "pr-scope-51150-9", "kind": "pr_scope", "last_activity_at": "2026-04-21T15:50:53Z", "outside_window_prs": [ { "additions": 362, "author": "JaiminBhojani", "changed_files": 5, "created_at": "2026-03-20T17:02:35Z", "deletions": 45, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/51150/files", "html_url": "https://github.com/openclaw/openclaw/pull/51150", "merged": false, "number": 51150, "state": "open", "title": "fix(agents): resolve imageModel 'Unknown model' for custom providers (#33185)", "updated_at": "2026-04-21T17:40:29Z" }, { "additions": 44, "author": "Lanfei", "changed_files": 7, "created_at": "2026-03-24T14:21:16Z", "deletions": 20, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53738/files", "html_url": "https://github.com/openclaw/openclaw/pull/53738", "merged": false, "number": 53738, "state": "open", "title": "fix(media-tools): apply models.providers baseUrl override in image and pdf tools", "updated_at": "2026-03-24T20:15:29Z" }, { "additions": 81, "author": "sagarpswc", "changed_files": 3, "created_at": "2026-04-13T09:31:42Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65837/files", "html_url": "https://github.com/openclaw/openclaw/pull/65837", "merged": false, "number": 65837, "state": "open", "title": "Fix image tool custom provider resolution for models.json", "updated_at": "2026-04-13T09:43:08Z" }, { "additions": 144, "author": "zhanggpcsu", "changed_files": 3, "created_at": "2026-04-14T15:00:33Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66622/files", "html_url": "https://github.com/openclaw/openclaw/pull/66622", "merged": false, "number": 66622, "state": "open", "title": "fix #66486: fix(image): prepare dynamic models before image tool registry lookup", "updated_at": "2026-04-16T08:31:59Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.803, "left_pr_number": 68243, "right_pr_number": 69682, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.85, "size_similarity": 0.921 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.881, "left_pr_number": 67326, "right_pr_number": 69682, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.795, "size_similarity": 0.191 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.841, "left_pr_number": 67326, "right_pr_number": 68243, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.77, "size_similarity": 0.208 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.986, "content_similarity": 0.83, "left_pr_number": 66622, "right_pr_number": 67326, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.762, "size_similarity": 0.485 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.986, "content_similarity": 0.828, "left_pr_number": 66622, "right_pr_number": 68243, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.751, "size_similarity": 0.429 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.68, "left_pr_number": 68906, "right_pr_number": 69682, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.741, "size_similarity": 0.763 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.705, "content_similarity": 0.787, "left_pr_number": 51150, "right_pr_number": 67326, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.734, "size_similarity": 0.744 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.986, "content_similarity": 0.75, "left_pr_number": 66622, "right_pr_number": 68906, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.71, "size_similarity": 0.517 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.596, "left_pr_number": 68243, "right_pr_number": 68906, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.692, "size_similarity": 0.829 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.986, "content_similarity": 0.724, "left_pr_number": 66622, "right_pr_number": 69682, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.674, "size_similarity": 0.395 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.643, "content_similarity": 0.637, "left_pr_number": 65837, "right_pr_number": 66622, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.669, "size_similarity": 0.605 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.671, "left_pr_number": 67326, "right_pr_number": 68906, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.657, "size_similarity": 0.251 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.719, "content_similarity": 0.677, "left_pr_number": 51150, "right_pr_number": 66622, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.627, "size_similarity": 0.361 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.705, "content_similarity": 0.723, "left_pr_number": 51150, "right_pr_number": 69682, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.6, "size_similarity": 0.143 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.629, "content_similarity": 0.525, "left_pr_number": 65837, "right_pr_number": 68906, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.585, "size_similarity": 0.854 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.63, "left_pr_number": 68906, "right_pr_number": 68919, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.ts" ], "similarity": 0.576, "size_similarity": 0.066 }, { "breadth_similarity": 0.268, "concentration_similarity": 0.531, "content_similarity": 0.529, "left_pr_number": 53738, "right_pr_number": 68906, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.55, "size_similarity": 0.842 }, { "breadth_similarity": 0.464, "concentration_similarity": 0.902, "content_similarity": 0.493, "left_pr_number": 53738, "right_pr_number": 65837, "shared_directories": [ "src/agents/tools", "src/agents", "src/media-understanding", "src" ], "shared_filenames": [ "src/agents/tools/media-tool-shared.ts", "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.544, "size_similarity": 0.719 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.705, "content_similarity": 0.63, "left_pr_number": 51150, "right_pr_number": 68243, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.536, "size_similarity": 0.155 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.629, "content_similarity": 0.573, "left_pr_number": 65837, "right_pr_number": 67326, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.535, "size_similarity": 0.294 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.629, "content_similarity": 0.48, "left_pr_number": 65837, "right_pr_number": 68243, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.532, "size_similarity": 0.708 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.629, "content_similarity": 0.473, "left_pr_number": 65837, "right_pr_number": 69682, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.519, "size_similarity": 0.652 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.705, "content_similarity": 0.595, "left_pr_number": 51150, "right_pr_number": 68906, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.516, "size_similarity": 0.187 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.924, "content_similarity": 0.481, "left_pr_number": 51150, "right_pr_number": 65837, "shared_directories": [ "src/agents/tools", "src/agents", "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.479, "size_similarity": 0.219 }, { "breadth_similarity": 0.268, "concentration_similarity": 0.531, "content_similarity": 0.415, "left_pr_number": 53738, "right_pr_number": 69682, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.479, "size_similarity": 0.906 }, { "breadth_similarity": 0.464, "concentration_similarity": 0.545, "content_similarity": 0.454, "left_pr_number": 53738, "right_pr_number": 66622, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.457, "size_similarity": 0.435 }, { "breadth_similarity": 0.268, "concentration_similarity": 0.531, "content_similarity": 0.351, "left_pr_number": 53738, "right_pr_number": 68243, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.447, "size_similarity": 0.984 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.986, "content_similarity": 0.483, "left_pr_number": 66622, "right_pr_number": 68919, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.ts" ], "similarity": 0.434, "size_similarity": 0.034 }, { "breadth_similarity": 0.196, "concentration_similarity": 0.531, "content_similarity": 0.52, "left_pr_number": 53738, "right_pr_number": 68919, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.ts" ], "similarity": 0.422, "size_similarity": 0.078 }, { "breadth_similarity": 0.732, "concentration_similarity": 0.826, "content_similarity": 0.395, "left_pr_number": 51150, "right_pr_number": 53738, "shared_directories": [ "src/agents/tools", "src/agents", "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.415, "size_similarity": 0.157 }, { "breadth_similarity": 0.268, "concentration_similarity": 0.531, "content_similarity": 0.438, "left_pr_number": 53738, "right_pr_number": 67326, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.test.ts", "src/media-understanding/image.ts" ], "similarity": 0.392, "size_similarity": 0.211 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.371, "left_pr_number": 67326, "right_pr_number": 68919, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.ts" ], "similarity": 0.387, "size_similarity": 0.017 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.357, "left_pr_number": 68243, "right_pr_number": 68919, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.ts" ], "similarity": 0.387, "size_similarity": 0.079 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.313, "left_pr_number": 68919, "right_pr_number": 69682, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.ts" ], "similarity": 0.357, "size_similarity": 0.086 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.629, "content_similarity": 0.39, "left_pr_number": 65837, "right_pr_number": 68919, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.ts" ], "similarity": 0.355, "size_similarity": 0.056 }, { "breadth_similarity": 0.267, "concentration_similarity": 0.705, "content_similarity": 0.292, "left_pr_number": 51150, "right_pr_number": 68919, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/image.ts" ], "similarity": 0.268, "size_similarity": 0.012 } ], "pr_count": 9, "pr_numbers": [ 51150, 53738, 65837, 66622, 67326, 68243, 68906, 68919, 69682 ], "recent_pr_count": 5, "recent_pr_numbers": [ 67326, 68243, 68906, 68919, 69682 ], "representative_pr_number": 66622, "representative_title": "fix #66486: fix(image): prepare dynamic models before image tool registry lookup", "representative_url": "https://github.com/openclaw/openclaw/pull/66622", "shared_directories": [ "src/media-understanding", "src", "src/agents/tools", "src/agents" ], "shared_filenames": [ "src/media-understanding/image.ts", "src/media-understanding/image.test.ts", "src/agents/tools/media-tool-shared.ts" ], "summary": "9 open PRs share weighted file overlap around `src/media-understanding/image.ts`, `src/media-understanding/image.test.ts`, `src/agents/tools/media-tool-shared.ts`; representative PR #66622.", "title": "Scope: fix #66486: fix(image): prepare dynamic models before image tool registry lookup" }, { "authors": [ "Jay-ju", "amittell", "badgerbees", "zhangyue19921010" ], "average_similarity": 0.511, "cluster_id": "pr-scope-63502-7", "kind": "pr_scope", "last_activity_at": "2026-04-21T12:56:26Z", "outside_window_prs": [ { "additions": 136, "author": "ddupg", "changed_files": 4, "created_at": "2026-04-09T02:49:41Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63502/files", "html_url": "https://github.com/openclaw/openclaw/pull/63502", "merged": false, "number": 63502, "state": "open", "title": "feat(memory-lancedb): add cloud storage support to memory-lancedb", "updated_at": "2026-04-13T03:44:40Z" }, { "additions": 228, "author": "l0cka", "changed_files": 2, "created_at": "2026-04-12T00:35:15Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65066/files", "html_url": "https://github.com/openclaw/openclaw/pull/65066", "merged": false, "number": 65066, "state": "open", "title": "fix(memory-lancedb): register runtime for doctor and status", "updated_at": "2026-04-12T01:13:38Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.901, "left_pr_number": 67952, "right_pr_number": 68116, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.928, "size_similarity": 0.981 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.834, "left_pr_number": 65066, "right_pr_number": 69707, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.test.ts", "extensions/memory-lancedb/index.ts" ], "similarity": 0.812, "size_similarity": 0.518 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.719, "left_pr_number": 63502, "right_pr_number": 69707, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.test.ts", "extensions/memory-lancedb/index.ts" ], "similarity": 0.755, "size_similarity": 0.843 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.607, "left_pr_number": 66913, "right_pr_number": 69707, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.test.ts", "extensions/memory-lancedb/index.ts" ], "similarity": 0.698, "size_similarity": 0.822 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.631, "left_pr_number": 63502, "right_pr_number": 65066, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.test.ts", "extensions/memory-lancedb/index.ts" ], "similarity": 0.659, "size_similarity": 0.614 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.548, "left_pr_number": 65066, "right_pr_number": 66913, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.test.ts", "extensions/memory-lancedb/index.ts" ], "similarity": 0.598, "size_similarity": 0.425 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.503, "left_pr_number": 63502, "right_pr_number": 66913, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.test.ts", "extensions/memory-lancedb/index.ts" ], "similarity": 0.581, "size_similarity": 0.693 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.591, "left_pr_number": 65066, "right_pr_number": 67952, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.573, "size_similarity": 0.232 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.562, "left_pr_number": 65066, "right_pr_number": 68116, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.553, "size_similarity": 0.228 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.442, "left_pr_number": 67952, "right_pr_number": 69707, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.502, "size_similarity": 0.449 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.442, "left_pr_number": 68116, "right_pr_number": 69707, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.5, "size_similarity": 0.441 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.338, "left_pr_number": 63502, "right_pr_number": 68060, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/config.ts", "extensions/memory-lancedb/index.ts" ], "similarity": 0.426, "size_similarity": 0.266 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.339, "left_pr_number": 63502, "right_pr_number": 67952, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.407, "size_similarity": 0.379 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.259, "left_pr_number": 65066, "right_pr_number": 68060, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.371, "size_similarity": 0.433 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.282, "left_pr_number": 63502, "right_pr_number": 68116, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.366, "size_similarity": 0.371 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.221, "left_pr_number": 66913, "right_pr_number": 67952, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.362, "size_similarity": 0.546 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.224, "left_pr_number": 66913, "right_pr_number": 68116, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.362, "size_similarity": 0.536 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.32, "left_pr_number": 68060, "right_pr_number": 68116, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.351, "size_similarity": 0.099 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.311, "left_pr_number": 67952, "right_pr_number": 68060, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.346, "size_similarity": 0.101 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.214, "left_pr_number": 68060, "right_pr_number": 69707, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.309, "size_similarity": 0.224 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.167, "left_pr_number": 66913, "right_pr_number": 68060, "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts" ], "similarity": 0.269, "size_similarity": 0.184 } ], "pr_count": 7, "pr_numbers": [ 63502, 65066, 66913, 67952, 68060, 68116, 69707 ], "recent_pr_count": 5, "recent_pr_numbers": [ 66913, 67952, 68060, 68116, 69707 ], "representative_pr_number": 69707, "representative_title": "fix(memory-lancedb): truncate embeddings locally", "representative_url": "https://github.com/openclaw/openclaw/pull/69707", "shared_directories": [ "extensions/memory-lancedb", "extensions" ], "shared_filenames": [ "extensions/memory-lancedb/index.ts", "extensions/memory-lancedb/index.test.ts", "extensions/memory-lancedb/config.ts" ], "summary": "7 open PRs share weighted file overlap around `extensions/memory-lancedb/index.ts`, `extensions/memory-lancedb/index.test.ts`, `extensions/memory-lancedb/config.ts`; representative PR #69707.", "title": "Scope: fix(memory-lancedb): truncate embeddings locally" }, { "authors": [ "Eruditi", "JustInCache", "Mlightsnow", "Sanjays2402", "nnish16" ], "average_similarity": 0.752, "cluster_id": "pr-scope-68894-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T15:21:44Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.99, "left_pr_number": 68894, "right_pr_number": 69002, "shared_directories": [ "src/commands", "src" ], "shared_filenames": [ "src/commands/onboard-skills.test.ts", "src/commands/onboard-skills.ts" ], "similarity": 0.984, "size_similarity": 0.938 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.992, "left_pr_number": 68943, "right_pr_number": 69545, "shared_directories": [ "src/commands", "src" ], "shared_filenames": [ "src/commands/onboard-skills.test.ts", "src/commands/onboard-skills.ts" ], "similarity": 0.984, "size_similarity": 0.926 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.999, "left_pr_number": 68894, "right_pr_number": 69545, "shared_directories": [ "src/commands", "src" ], "shared_filenames": [ "src/commands/onboard-skills.test.ts", "src/commands/onboard-skills.ts" ], "similarity": 0.976, "size_similarity": 0.844 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.985, "left_pr_number": 69002, "right_pr_number": 69545, "shared_directories": [ "src/commands", "src" ], "shared_filenames": [ "src/commands/onboard-skills.test.ts", "src/commands/onboard-skills.ts" ], "similarity": 0.975, "size_similarity": 0.9 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.999, "left_pr_number": 68943, "right_pr_number": 69002, "shared_directories": [ "src/commands", "src" ], "shared_filenames": [ "src/commands/onboard-skills.test.ts", "src/commands/onboard-skills.ts" ], "similarity": 0.974, "size_similarity": 0.833 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.995, "left_pr_number": 68894, "right_pr_number": 68943, "shared_directories": [ "src/commands", "src" ], "shared_filenames": [ "src/commands/onboard-skills.test.ts", "src/commands/onboard-skills.ts" ], "similarity": 0.964, "size_similarity": 0.781 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.473, "left_pr_number": 68941, "right_pr_number": 69002, "shared_directories": [ "src/commands", "src" ], "shared_filenames": [ "src/commands/onboard-skills.ts" ], "similarity": 0.466, "size_similarity": 0.067 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.441, "left_pr_number": 68941, "right_pr_number": 68943, "shared_directories": [ "src/commands", "src" ], "shared_filenames": [ "src/commands/onboard-skills.ts" ], "similarity": 0.446, "size_similarity": 0.08 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.352, "left_pr_number": 68894, "right_pr_number": 68941, "shared_directories": [ "src/commands", "src" ], "shared_filenames": [ "src/commands/onboard-skills.ts" ], "similarity": 0.381, "size_similarity": 0.062 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.343, "left_pr_number": 68941, "right_pr_number": 69545, "shared_directories": [ "src/commands", "src" ], "shared_filenames": [ "src/commands/onboard-skills.ts" ], "similarity": 0.376, "size_similarity": 0.074 } ], "pr_count": 5, "pr_numbers": [ 68894, 68941, 68943, 69002, 69545 ], "recent_pr_count": 5, "recent_pr_numbers": [ 68894, 68941, 68943, 69002, 69545 ], "representative_pr_number": 69002, "representative_title": "Fix: skip Homebrew prompt on platforms brew doesn't support (Resolves #68893)", "representative_url": "https://github.com/openclaw/openclaw/pull/69002", "shared_directories": [ "src/commands", "src" ], "shared_filenames": [ "src/commands/onboard-skills.ts", "src/commands/onboard-skills.test.ts" ], "summary": "5 open PRs share weighted file overlap around `src/commands/onboard-skills.ts`, `src/commands/onboard-skills.test.ts`; representative PR #69002.", "title": "Scope: Fix: skip Homebrew prompt on platforms brew doesn't support (Resolves #68893)" }, { "authors": [ "DanWebb1949", "Eruditi", "glfruit", "sk7n4k3d", "yaelsprikut" ], "average_similarity": 0.518, "cluster_id": "pr-scope-67535-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T15:20:19Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.667, "concentration_similarity": 0.86, "content_similarity": 0.814, "left_pr_number": 69421, "right_pr_number": 69645, "shared_directories": [ "src/cli/update-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/update-cli.test.ts", "src/cli/update-cli/update-command.ts" ], "similarity": 0.779, "size_similarity": 0.661 }, { "breadth_similarity": 0.667, "concentration_similarity": 0.972, "content_similarity": 0.73, "left_pr_number": 67702, "right_pr_number": 69421, "shared_directories": [ "src/cli/update-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/update-cli.test.ts", "src/cli/update-cli/update-command.ts" ], "similarity": 0.686, "size_similarity": 0.397 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.513, "content_similarity": 0.725, "left_pr_number": 67535, "right_pr_number": 69645, "shared_directories": [ "src/cli/update-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/update-cli/update-command.ts" ], "similarity": 0.626, "size_similarity": 0.282 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.833, "content_similarity": 0.633, "left_pr_number": 67702, "right_pr_number": 69645, "shared_directories": [ "src/cli/update-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/update-cli.test.ts", "src/cli/update-cli/update-command.ts" ], "similarity": 0.624, "size_similarity": 0.263 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.876, "content_similarity": 0.35, "left_pr_number": 69574, "right_pr_number": 69645, "shared_directories": [ "src/cli/update-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/update-cli/update-command.ts" ], "similarity": 0.499, "size_similarity": 0.846 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.636, "content_similarity": 0.485, "left_pr_number": 67535, "right_pr_number": 69574, "shared_directories": [ "src/cli/update-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/update-cli/update-command.ts" ], "similarity": 0.463, "size_similarity": 0.333 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.984, "content_similarity": 0.336, "left_pr_number": 69421, "right_pr_number": 69574, "shared_directories": [ "src/cli/update-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/update-cli/update-command.ts" ], "similarity": 0.452, "size_similarity": 0.559 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.956, "content_similarity": 0.273, "left_pr_number": 67702, "right_pr_number": 69574, "shared_directories": [ "src/cli/update-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/update-cli/update-command.ts" ], "similarity": 0.356, "size_similarity": 0.222 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.653, "content_similarity": 0.373, "left_pr_number": 67535, "right_pr_number": 69421, "shared_directories": [ "src/cli/update-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/update-cli/update-command.ts" ], "similarity": 0.355, "size_similarity": 0.186 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.68, "content_similarity": 0.351, "left_pr_number": 67535, "right_pr_number": 67702, "shared_directories": [ "src/cli/update-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/update-cli/update-command.ts" ], "similarity": 0.341, "size_similarity": 0.074 } ], "pr_count": 5, "pr_numbers": [ 67535, 67702, 69421, 69574, 69645 ], "recent_pr_count": 5, "recent_pr_numbers": [ 67535, 67702, 69421, 69574, 69645 ], "representative_pr_number": 69645, "representative_title": "fix: skip update when already on target version", "representative_url": "https://github.com/openclaw/openclaw/pull/69645", "shared_directories": [ "src/cli/update-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/update-cli/update-command.ts", "src/cli/update-cli.test.ts" ], "summary": "5 open PRs share weighted file overlap around `src/cli/update-cli/update-command.ts`, `src/cli/update-cli.test.ts`; representative PR #69645.", "title": "Scope: fix: skip update when already on target version" }, { "authors": [ "akinshaywai", "javierdici", "jckm14" ], "average_similarity": 0.412, "cluster_id": "pr-scope-36800-9", "kind": "pr_scope", "last_activity_at": "2026-04-19T22:56:12Z", "outside_window_prs": [ { "additions": 57, "author": "Jleverett4", "changed_files": 3, "created_at": "2026-03-05T22:26:45Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/36800/files", "html_url": "https://github.com/openclaw/openclaw/pull/36800", "merged": false, "number": 36800, "state": "open", "title": "Control UI: surface hidden tool output (deliverables hint) in Chat", "updated_at": "2026-04-18T04:23:40Z" }, { "additions": 104, "author": "X-AlexBin", "changed_files": 5, "created_at": "2026-03-06T08:54:12Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37490/files", "html_url": "https://github.com/openclaw/openclaw/pull/37490", "merged": false, "number": 37490, "state": "open", "title": "UI: label dashboard vs feishu message source", "updated_at": "2026-04-19T04:33:33Z" }, { "additions": 87, "author": "aliramw", "changed_files": 5, "created_at": "2026-03-06T22:19:36Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38363/files", "html_url": "https://github.com/openclaw/openclaw/pull/38363", "merged": false, "number": 38363, "state": "open", "title": "feat(control-ui): add configurable chat send shortcut", "updated_at": "2026-04-21T04:31:09Z" }, { "additions": 36, "author": "coder999999999", "changed_files": 2, "created_at": "2026-04-12T22:15:50Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65575/files", "html_url": "https://github.com/openclaw/openclaw/pull/65575", "merged": false, "number": 65575, "state": "open", "title": "fix(ui): pause chat announcements during streaming", "updated_at": "2026-04-12T23:00:22Z" }, { "additions": 20, "author": "Tianworld", "changed_files": 1, "created_at": "2026-04-14T16:05:28Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66655/files", "html_url": "https://github.com/openclaw/openclaw/pull/66655", "merged": false, "number": 66655, "state": "open", "title": "fix(control-ui): show configured thinkingDefault in dropdown", "updated_at": "2026-04-14T16:06:58Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.957, "content_similarity": 0.957, "left_pr_number": 67431, "right_pr_number": 67432, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/chat/grouped-render.ts", "ui/src/ui/views/chat.ts", "ui/src/ui/views/markdown-sidebar.ts" ], "similarity": 0.958, "size_similarity": 0.933 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.808, "content_similarity": 0.547, "left_pr_number": 36800, "right_pr_number": 38363, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/app-render.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.597, "size_similarity": 0.626 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.985, "content_similarity": 0.697, "left_pr_number": 66655, "right_pr_number": 68926, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.592, "size_similarity": 0.032 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.823, "content_similarity": 0.456, "left_pr_number": 38363, "right_pr_number": 68850, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/views/chat.test.ts" ], "similarity": 0.587, "size_similarity": 0.978 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.736, "content_similarity": 0.54, "left_pr_number": 38363, "right_pr_number": 65575, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/chat.test.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.521, "size_similarity": 0.407 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.574, "content_similarity": 0.528, "left_pr_number": 68850, "right_pr_number": 68926, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.502, "size_similarity": 0.136 }, { "breadth_similarity": 0.55, "concentration_similarity": 0.845, "content_similarity": 0.371, "left_pr_number": 37490, "right_pr_number": 68850, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.node.test.ts", "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.49, "size_similarity": 0.886 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.559, "content_similarity": 0.46, "left_pr_number": 65575, "right_pr_number": 68850, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/chat.test.ts" ], "similarity": 0.468, "size_similarity": 0.398 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.985, "content_similarity": 0.307, "left_pr_number": 36800, "right_pr_number": 68850, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.456, "size_similarity": 0.613 }, { "breadth_similarity": 0.708, "concentration_similarity": 0.944, "content_similarity": 0.402, "left_pr_number": 36800, "right_pr_number": 67432, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.439, "size_similarity": 0.263 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.978, "content_similarity": 0.264, "left_pr_number": 37490, "right_pr_number": 38363, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.439, "size_similarity": 0.867 }, { "breadth_similarity": 0.708, "concentration_similarity": 0.901, "content_similarity": 0.401, "left_pr_number": 36800, "right_pr_number": 67431, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.434, "size_similarity": 0.246 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.558, "content_similarity": 0.431, "left_pr_number": 36800, "right_pr_number": 68926, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.426, "size_similarity": 0.083 }, { "breadth_similarity": 0.775, "concentration_similarity": 0.929, "content_similarity": 0.385, "left_pr_number": 37490, "right_pr_number": 67431, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/chat/grouped-render.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.413, "size_similarity": 0.133 }, { "breadth_similarity": 0.775, "concentration_similarity": 0.886, "content_similarity": 0.37, "left_pr_number": 37490, "right_pr_number": 67432, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/chat/grouped-render.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.403, "size_similarity": 0.143 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.544, "content_similarity": 0.3, "left_pr_number": 36800, "right_pr_number": 65575, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/chat.ts" ], "similarity": 0.393, "size_similarity": 0.649 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.544, "content_similarity": 0.371, "left_pr_number": 36800, "right_pr_number": 66655, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.386, "size_similarity": 0.386 }, { "breadth_similarity": 0.7, "concentration_similarity": 0.751, "content_similarity": 0.359, "left_pr_number": 38363, "right_pr_number": 68926, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.379, "size_similarity": 0.133 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.643, "content_similarity": 0.315, "left_pr_number": 66655, "right_pr_number": 67431, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.377, "size_similarity": 0.636 }, { "breadth_similarity": 0.55, "concentration_similarity": 0.83, "content_similarity": 0.283, "left_pr_number": 36800, "right_pr_number": 37490, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.376, "size_similarity": 0.543 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.6, "content_similarity": 0.303, "left_pr_number": 66655, "right_pr_number": 67432, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.373, "size_similarity": 0.682 }, { "breadth_similarity": 0.733, "concentration_similarity": 0.907, "content_similarity": 0.315, "left_pr_number": 38363, "right_pr_number": 67431, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.362, "size_similarity": 0.154 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.729, "content_similarity": 0.365, "left_pr_number": 37490, "right_pr_number": 68926, "shared_directories": [ "ui/src/styles/chat", "ui/src/styles", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.36, "size_similarity": 0.153 }, { "breadth_similarity": 0.733, "concentration_similarity": 0.864, "content_similarity": 0.313, "left_pr_number": 38363, "right_pr_number": 67432, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.36, "size_similarity": 0.165 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.559, "content_similarity": 0.352, "left_pr_number": 66655, "right_pr_number": 68850, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.352, "size_similarity": 0.237 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.657, "content_similarity": 0.362, "left_pr_number": 67431, "right_pr_number": 68926, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.348, "size_similarity": 0.02 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.178, "left_pr_number": 65575, "right_pr_number": 66655, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.339, "size_similarity": 0.595 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.615, "content_similarity": 0.348, "left_pr_number": 67432, "right_pr_number": 68926, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.336, "size_similarity": 0.022 }, { "breadth_similarity": 0.225, "concentration_similarity": 0.714, "content_similarity": 0.339, "left_pr_number": 37490, "right_pr_number": 66655, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.327, "size_similarity": 0.21 }, { "breadth_similarity": 0.35, "concentration_similarity": 0.736, "content_similarity": 0.313, "left_pr_number": 38363, "right_pr_number": 66655, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.327, "size_similarity": 0.242 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.6, "content_similarity": 0.257, "left_pr_number": 65575, "right_pr_number": 67432, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/chat.ts" ], "similarity": 0.312, "size_similarity": 0.405 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.643, "content_similarity": 0.258, "left_pr_number": 65575, "right_pr_number": 67431, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/chat.ts" ], "similarity": 0.311, "size_similarity": 0.378 }, { "breadth_similarity": 0.708, "concentration_similarity": 0.916, "content_similarity": 0.234, "left_pr_number": 67431, "right_pr_number": 68850, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.303, "size_similarity": 0.151 }, { "breadth_similarity": 0.708, "concentration_similarity": 0.959, "content_similarity": 0.228, "left_pr_number": 67432, "right_pr_number": 68850, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.303, "size_similarity": 0.161 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.985, "content_similarity": 0.186, "left_pr_number": 65575, "right_pr_number": 68926, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.263, "size_similarity": 0.054 }, { "breadth_similarity": 0.325, "concentration_similarity": 0.714, "content_similarity": 0.17, "left_pr_number": 37490, "right_pr_number": 65575, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/chat.ts" ], "similarity": 0.24, "size_similarity": 0.352 } ], "pr_count": 9, "pr_numbers": [ 36800, 37490, 38363, 65575, 66655, 67431, 67432, 68850, 68926 ], "recent_pr_count": 4, "recent_pr_numbers": [ 67431, 67432, 68850, 68926 ], "representative_pr_number": 38363, "representative_title": "feat(control-ui): add configurable chat send shortcut", "representative_url": "https://github.com/openclaw/openclaw/pull/38363", "shared_directories": [ "ui/src/ui", "ui/src", "ui", "ui/src/ui/views", "ui/src/ui/chat", "ui/src/styles/chat", "ui/src/styles" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/views/chat.ts", "ui/src/ui/views/chat.test.ts", "ui/src/ui/chat/grouped-render.ts", "ui/src/ui/views/markdown-sidebar.ts", "ui/src/ui/app-render.helpers.node.test.ts", "ui/src/ui/app-render.ts" ], "summary": "9 open PRs share weighted file overlap around `ui/src/ui/app-render.helpers.ts`, `ui/src/ui/views/chat.ts`, `ui/src/ui/views/chat.test.ts`; representative PR #38363.", "title": "Scope: feat(control-ui): add configurable chat send shortcut" }, { "authors": [ "hansolo949", "sunlight7777777", "xudaiyanzi" ], "average_similarity": 0.379, "cluster_id": "pr-scope-37305-9", "kind": "pr_scope", "last_activity_at": "2026-04-21T17:48:01Z", "outside_window_prs": [ { "additions": 273, "author": "hyudryu", "changed_files": 7, "created_at": "2026-03-06T06:36:46Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37305/files", "html_url": "https://github.com/openclaw/openclaw/pull/37305", "merged": false, "number": 37305, "state": "open", "title": "Added delete modal to delete agents", "updated_at": "2026-04-19T04:32:34Z" }, { "additions": 222, "author": "misselvexu", "changed_files": 17, "created_at": "2026-03-24T01:38:28Z", "deletions": 22, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53276/files", "html_url": "https://github.com/openclaw/openclaw/pull/53276", "merged": false, "number": 53276, "state": "open", "title": "fix(gateway): device identity should not require browser Secure Context", "updated_at": "2026-03-24T20:15:31Z" }, { "additions": 149, "author": "luzhidong", "changed_files": 11, "created_at": "2026-03-24T16:51:26Z", "deletions": 15, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53812/files", "html_url": "https://github.com/openclaw/openclaw/pull/53812", "merged": false, "number": 53812, "state": "open", "title": "feat(webchat): implement cursor-based pagination for chat history", "updated_at": "2026-03-24T23:13:40Z" }, { "additions": 175, "author": "CCcassiusdjs", "changed_files": 9, "created_at": "2026-04-12T02:37:09Z", "deletions": 23, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65115/files", "html_url": "https://github.com/openclaw/openclaw/pull/65115", "merged": false, "number": 65115, "state": "open", "title": "fix: resolve 8 GUI bugs in webchat Control UI and TUI", "updated_at": "2026-04-12T02:59:30Z" }, { "additions": 169, "author": "Rohan5commit", "changed_files": 12, "created_at": "2026-04-13T18:08:49Z", "deletions": 19, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66098/files", "html_url": "https://github.com/openclaw/openclaw/pull/66098", "merged": false, "number": 66098, "state": "open", "title": "fix(web-ui): respect effective chat defaults", "updated_at": "2026-04-13T18:17:56Z" } ], "pairwise": [ { "breadth_similarity": 0.817, "concentration_similarity": 0.922, "content_similarity": 0.93, "left_pr_number": 69519, "right_pr_number": 69740, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/styles", "ui/src/ui", "test/scripts", "ui/src", "test", "ui" ], "shared_filenames": [ "test/scripts/test-install-sh-docker.test.ts", "ui/src/styles/components.css", "ui/src/ui/app-render.ts", "ui/src/ui/app-view-state.ts", "ui/src/ui/controllers/sessions.test.ts", "ui/src/ui/controllers/sessions.ts", "ui/src/ui/views/sessions.test.ts", "ui/src/ui/views/sessions.ts" ], "similarity": 0.913, "size_similarity": 0.894 }, { "breadth_similarity": 0.938, "concentration_similarity": 0.609, "content_similarity": 0.367, "left_pr_number": 37305, "right_pr_number": 69519, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/styles", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/styles/components.css", "ui/src/ui/app-render.ts", "ui/src/ui/app-view-state.ts" ], "similarity": 0.526, "size_similarity": 0.968 }, { "breadth_similarity": 0.771, "concentration_similarity": 0.889, "content_similarity": 0.359, "left_pr_number": 53812, "right_pr_number": 66098, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "src/gateway/server-methods", "ui/src/ui", "src/gateway", "ui/src", "src", "ui" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts", "ui/src/ui/app-render.ts", "ui/src/ui/app-view-state.ts", "ui/src/ui/app.ts", "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.504, "size_similarity": 0.872 }, { "breadth_similarity": 0.767, "concentration_similarity": 0.688, "content_similarity": 0.341, "left_pr_number": 37305, "right_pr_number": 69740, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/styles", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/styles/components.css", "ui/src/ui/app-render.ts", "ui/src/ui/app-view-state.ts" ], "similarity": 0.488, "size_similarity": 0.924 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.821, "content_similarity": 0.439, "left_pr_number": 66098, "right_pr_number": 67036, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts", "ui/src/ui/views/chat.test.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.46, "size_similarity": 0.325 }, { "breadth_similarity": 0.784, "concentration_similarity": 0.949, "content_similarity": 0.297, "left_pr_number": 53812, "right_pr_number": 65115, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.ts" ], "similarity": 0.458, "size_similarity": 0.828 }, { "breadth_similarity": 0.732, "concentration_similarity": 0.99, "content_similarity": 0.266, "left_pr_number": 66098, "right_pr_number": 66780, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts" ], "similarity": 0.444, "size_similarity": 0.899 }, { "breadth_similarity": 0.792, "concentration_similarity": 0.94, "content_similarity": 0.21, "left_pr_number": 65115, "right_pr_number": 66098, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.ts" ], "similarity": 0.416, "size_similarity": 0.949 }, { "breadth_similarity": 0.847, "concentration_similarity": 0.899, "content_similarity": 0.193, "left_pr_number": 53812, "right_pr_number": 66780, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts" ], "similarity": 0.41, "size_similarity": 0.97 }, { "breadth_similarity": 0.929, "concentration_similarity": 0.95, "content_similarity": 0.193, "left_pr_number": 65115, "right_pr_number": 66780, "shared_directories": [ "src/agents/pi-embedded-runner/run", "ui/src/ui/controllers", "src/agents/pi-embedded-runner", "ui/src/ui", "src/agents", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.ts" ], "similarity": 0.403, "size_similarity": 0.854 }, { "breadth_similarity": 0.706, "concentration_similarity": 0.78, "content_similarity": 0.227, "left_pr_number": 37305, "right_pr_number": 53276, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/agents.ts" ], "similarity": 0.4, "size_similarity": 0.878 }, { "breadth_similarity": 0.853, "concentration_similarity": 0.738, "content_similarity": 0.211, "left_pr_number": 53276, "right_pr_number": 66098, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "src/gateway", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts" ], "similarity": 0.385, "size_similarity": 0.77 }, { "breadth_similarity": 0.681, "concentration_similarity": 0.798, "content_similarity": 0.205, "left_pr_number": 53276, "right_pr_number": 65115, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.ts" ], "similarity": 0.373, "size_similarity": 0.811 }, { "breadth_similarity": 0.735, "concentration_similarity": 0.83, "content_similarity": 0.163, "left_pr_number": 53276, "right_pr_number": 69519, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/sessions.ts" ], "similarity": 0.365, "size_similarity": 0.907 }, { "breadth_similarity": 0.659, "concentration_similarity": 0.832, "content_similarity": 0.304, "left_pr_number": 66780, "right_pr_number": 67036, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts" ], "similarity": 0.364, "size_similarity": 0.292 }, { "breadth_similarity": 0.792, "concentration_similarity": 0.958, "content_similarity": 0.18, "left_pr_number": 37305, "right_pr_number": 66098, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.ts", "ui/src/ui/app-view-state.ts", "ui/src/ui/app.ts" ], "similarity": 0.355, "size_similarity": 0.676 }, { "breadth_similarity": 0.535, "concentration_similarity": 0.916, "content_similarity": 0.271, "left_pr_number": 53276, "right_pr_number": 67036, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts" ], "similarity": 0.352, "size_similarity": 0.421 }, { "breadth_similarity": 0.636, "concentration_similarity": 0.849, "content_similarity": 0.204, "left_pr_number": 53276, "right_pr_number": 53812, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "src/gateway", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts" ], "similarity": 0.35, "size_similarity": 0.672 }, { "breadth_similarity": 0.694, "concentration_similarity": 0.882, "content_similarity": 0.265, "left_pr_number": 65115, "right_pr_number": 67036, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.ts" ], "similarity": 0.35, "size_similarity": 0.342 }, { "breadth_similarity": 0.711, "concentration_similarity": 0.908, "content_similarity": 0.153, "left_pr_number": 53276, "right_pr_number": 69740, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/sessions.ts" ], "similarity": 0.345, "size_similarity": 0.811 }, { "breadth_similarity": 0.631, "concentration_similarity": 0.931, "content_similarity": 0.202, "left_pr_number": 37305, "right_pr_number": 53812, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/styles", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.ts", "ui/src/ui/app-view-state.ts", "ui/src/ui/app.ts" ], "similarity": 0.339, "size_similarity": 0.59 }, { "breadth_similarity": 0.806, "concentration_similarity": 0.982, "content_similarity": 0.137, "left_pr_number": 37305, "right_pr_number": 65115, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.332, "size_similarity": 0.712 }, { "breadth_similarity": 0.622, "concentration_similarity": 0.748, "content_similarity": 0.184, "left_pr_number": 53276, "right_pr_number": 66780, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts" ], "similarity": 0.332, "size_similarity": 0.693 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.567, "content_similarity": 0.159, "left_pr_number": 66098, "right_pr_number": 69519, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.ts", "ui/src/ui/app-view-state.ts" ], "similarity": 0.328, "size_similarity": 0.699 }, { "breadth_similarity": 0.738, "concentration_similarity": 0.863, "content_similarity": 0.187, "left_pr_number": 37305, "right_pr_number": 67036, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.32, "size_similarity": 0.48 }, { "breadth_similarity": 0.83, "concentration_similarity": 0.757, "content_similarity": 0.166, "left_pr_number": 53812, "right_pr_number": 69740, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/styles", "ui/src/ui", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.ts", "ui/src/ui/app-view-state.ts" ], "similarity": 0.319, "size_similarity": 0.545 }, { "breadth_similarity": 0.861, "concentration_similarity": 0.628, "content_similarity": 0.131, "left_pr_number": 65115, "right_pr_number": 69519, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.319, "size_similarity": 0.736 }, { "breadth_similarity": 0.676, "concentration_similarity": 0.679, "content_similarity": 0.177, "left_pr_number": 53812, "right_pr_number": 69519, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/styles", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.ts", "ui/src/ui/app-view-state.ts" ], "similarity": 0.317, "size_similarity": 0.61 }, { "breadth_similarity": 0.95, "concentration_similarity": 0.706, "content_similarity": 0.126, "left_pr_number": 65115, "right_pr_number": 69740, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "src/agents", "ui/src", "src", "ui" ], "shared_filenames": [], "similarity": 0.317, "size_similarity": 0.658 }, { "breadth_similarity": 0.551, "concentration_similarity": 0.933, "content_similarity": 0.243, "left_pr_number": 53812, "right_pr_number": 67036, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/controllers/chat.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.314, "size_similarity": 0.283 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.645, "content_similarity": 0.149, "left_pr_number": 66098, "right_pr_number": 69740, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/ui", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.ts", "ui/src/ui/app-view-state.ts" ], "similarity": 0.314, "size_similarity": 0.625 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.746, "content_similarity": 0.175, "left_pr_number": 67036, "right_pr_number": 69519, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.309, "size_similarity": 0.465 }, { "breadth_similarity": 0.65, "concentration_similarity": 0.824, "content_similarity": 0.162, "left_pr_number": 67036, "right_pr_number": 69740, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.298, "size_similarity": 0.52 }, { "breadth_similarity": 0.746, "concentration_similarity": 0.968, "content_similarity": 0.103, "left_pr_number": 37305, "right_pr_number": 66780, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.286, "size_similarity": 0.608 }, { "breadth_similarity": 0.802, "concentration_similarity": 0.578, "content_similarity": 0.096, "left_pr_number": 66780, "right_pr_number": 69519, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.27, "size_similarity": 0.628 }, { "breadth_similarity": 0.879, "concentration_similarity": 0.656, "content_similarity": 0.093, "left_pr_number": 66780, "right_pr_number": 69740, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "src/agents", "ui/src", "src", "ui" ], "shared_filenames": [], "similarity": 0.27, "size_similarity": 0.561 } ], "pr_count": 9, "pr_numbers": [ 37305, 53276, 53812, 65115, 66098, 66780, 67036, 69519, 69740 ], "recent_pr_count": 4, "recent_pr_numbers": [ 66780, 67036, 69519, 69740 ], "representative_pr_number": 69519, "representative_title": "Sessions page: use numeric input for Limit field", "representative_url": "https://github.com/openclaw/openclaw/pull/69519", "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui", "ui/src/ui/views", "src", "ui/src/styles", "src/gateway" ], "shared_filenames": [ "ui/src/ui/controllers/chat.ts", "ui/src/ui/controllers/chat.test.ts", "ui/src/ui/app-view-state.ts", "ui/src/ui/app-render.ts", "ui/src/ui/controllers/sessions.ts", "ui/src/styles/components.css", "ui/src/ui/views/chat.ts", "ui/src/ui/app.ts" ], "summary": "9 open PRs share weighted file overlap around `ui/src/ui/controllers/chat.ts`, `ui/src/ui/controllers/chat.test.ts`, `ui/src/ui/app-view-state.ts`; representative PR #69519.", "title": "Scope: Sessions page: use numeric input for Limit field" }, { "authors": [ "Jimmy-xuzimo", "bradfreels", "lllyin" ], "average_similarity": 0.405, "cluster_id": "pr-scope-64688-8", "kind": "pr_scope", "last_activity_at": "2026-04-21T12:01:52Z", "outside_window_prs": [ { "additions": 156, "author": "Jimmy-xuzimo", "changed_files": 4, "created_at": "2026-04-11T07:04:03Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64688/files", "html_url": "https://github.com/openclaw/openclaw/pull/64688", "merged": false, "number": 64688, "state": "open", "title": "fix(codex): remove invalid OAuth scopes model.request and api.responses.write", "updated_at": "2026-04-12T14:46:27Z" }, { "additions": 69, "author": "neo1027144-creator", "changed_files": 2, "created_at": "2026-04-11T20:30:52Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65004/files", "html_url": "https://github.com/openclaw/openclaw/pull/65004", "merged": false, "number": 65004, "state": "open", "title": "fix(cron): suppress trailing NO_REPLY in announce delivery path [AI-assisted]", "updated_at": "2026-04-11T20:51:33Z" }, { "additions": 113, "author": "BKF-Gitty", "changed_files": 4, "created_at": "2026-04-11T21:37:23Z", "deletions": 9, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65016/files", "html_url": "https://github.com/openclaw/openclaw/pull/65016", "merged": false, "number": 65016, "state": "open", "title": "Fix/cron announce no reply", "updated_at": "2026-04-12T19:34:35Z" }, { "additions": 124, "author": "jeffchen1981-fu", "changed_files": 3, "created_at": "2026-04-14T17:42:39Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66712/files", "html_url": "https://github.com/openclaw/openclaw/pull/66712", "merged": false, "number": 66712, "state": "open", "title": "feat(cron): add slot-level delivery dedup guard", "updated_at": "2026-04-16T04:10:56Z" } ], "pairwise": [ { "breadth_similarity": 0.917, "concentration_similarity": 0.856, "content_similarity": 0.645, "left_pr_number": 67701, "right_pr_number": 68180, "shared_directories": [ "src/cron/isolated-agent", "src/acp", "src/cron", "src/telegram", "src" ], "shared_filenames": [ "src/acp/translator.ts", "src/cron/isolated-agent/delivery-dispatch.ts", "src/telegram/send.ts" ], "similarity": 0.694, "size_similarity": 0.719 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.992, "content_similarity": 0.699, "left_pr_number": 65004, "right_pr_number": 66712, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts", "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.685, "size_similarity": 0.589 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.575, "left_pr_number": 65004, "right_pr_number": 69256, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.55, "size_similarity": 0.151 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.492, "content_similarity": 0.635, "left_pr_number": 65016, "right_pr_number": 69256, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.507, "size_similarity": 0.09 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.5, "content_similarity": 0.381, "left_pr_number": 65016, "right_pr_number": 66712, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.502, "size_similarity": 0.984 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.995, "content_similarity": 0.329, "left_pr_number": 66712, "right_pr_number": 69345, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts", "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.493, "size_similarity": 0.838 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.492, "content_similarity": 0.472, "left_pr_number": 65004, "right_pr_number": 65016, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.482, "size_similarity": 0.598 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.732, "content_similarity": 0.445, "left_pr_number": 64688, "right_pr_number": 68180, "shared_directories": [ "src/cron/isolated-agent", "src/acp", "src/cron", "src/telegram", "src" ], "shared_filenames": [ "src/acp/translator.ts", "src/cron/isolated-agent/delivery-dispatch.ts", "src/telegram/send.ts" ], "similarity": 0.467, "size_similarity": 0.258 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.986, "content_similarity": 0.38, "left_pr_number": 65004, "right_pr_number": 69345, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts", "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.439, "size_similarity": 0.493 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.505, "content_similarity": 0.299, "left_pr_number": 65016, "right_pr_number": 69345, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.433, "size_similarity": 0.824 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.992, "content_similarity": 0.466, "left_pr_number": 66712, "right_pr_number": 69256, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.431, "size_similarity": 0.089 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.98, "content_similarity": 0.357, "left_pr_number": 65016, "right_pr_number": 68180, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.429, "size_similarity": 0.336 }, { "breadth_similarity": 0.733, "concentration_similarity": 0.589, "content_similarity": 0.374, "left_pr_number": 64688, "right_pr_number": 67701, "shared_directories": [ "src/cron/isolated-agent", "src/acp", "src/cron", "src/telegram", "src" ], "shared_filenames": [ "src/acp/translator.ts", "src/cron/isolated-agent/delivery-dispatch.ts", "src/telegram/send.ts" ], "similarity": 0.418, "size_similarity": 0.358 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.986, "content_similarity": 0.444, "left_pr_number": 69256, "right_pr_number": 69345, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.409, "size_similarity": 0.074 }, { "breadth_similarity": 0.733, "concentration_similarity": 0.877, "content_similarity": 0.305, "left_pr_number": 65016, "right_pr_number": 67701, "shared_directories": [ "src/cron/isolated-agent", "src/agents", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.401, "size_similarity": 0.467 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.712, "content_similarity": 0.209, "left_pr_number": 64688, "right_pr_number": 65016, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.397, "size_similarity": 0.767 }, { "breadth_similarity": 0.3, "concentration_similarity": 0.512, "content_similarity": 0.305, "left_pr_number": 65004, "right_pr_number": 68180, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.353, "size_similarity": 0.562 }, { "breadth_similarity": 0.267, "concentration_similarity": 0.368, "content_similarity": 0.256, "left_pr_number": 65004, "right_pr_number": 67701, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.342, "size_similarity": 0.781 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.788, "content_similarity": 0.173, "left_pr_number": 64688, "right_pr_number": 66712, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.34, "size_similarity": 0.78 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.793, "content_similarity": 0.115, "left_pr_number": 64688, "right_pr_number": 69345, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.335, "size_similarity": 0.931 }, { "breadth_similarity": 0.2, "concentration_similarity": 0.512, "content_similarity": 0.354, "left_pr_number": 68180, "right_pr_number": 69256, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.334, "size_similarity": 0.268 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.52, "content_similarity": 0.296, "left_pr_number": 66712, "right_pr_number": 68180, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.333, "size_similarity": 0.331 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.376, "content_similarity": 0.249, "left_pr_number": 66712, "right_pr_number": 67701, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.307, "size_similarity": 0.46 }, { "breadth_similarity": 0.183, "concentration_similarity": 0.368, "content_similarity": 0.298, "left_pr_number": 67701, "right_pr_number": 69256, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.274, "size_similarity": 0.193 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.78, "content_similarity": 0.178, "left_pr_number": 64688, "right_pr_number": 65004, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.27, "size_similarity": 0.459 }, { "breadth_similarity": 0.6, "concentration_similarity": 0.526, "content_similarity": 0.195, "left_pr_number": 68180, "right_pr_number": 69345, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.264, "size_similarity": 0.277 }, { "breadth_similarity": 0.533, "concentration_similarity": 0.382, "content_similarity": 0.164, "left_pr_number": 67701, "right_pr_number": 69345, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.245, "size_similarity": 0.385 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.78, "content_similarity": 0.207, "left_pr_number": 64688, "right_pr_number": 69256, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts" ], "similarity": 0.219, "size_similarity": 0.069 } ], "pr_count": 8, "pr_numbers": [ 64688, 65004, 65016, 66712, 67701, 68180, 69256, 69345 ], "recent_pr_count": 4, "recent_pr_numbers": [ 67701, 68180, 69256, 69345 ], "representative_pr_number": 65016, "representative_title": "Fix/cron announce no reply", "representative_url": "https://github.com/openclaw/openclaw/pull/65016", "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src", "src/acp", "src/telegram", "src/agents" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-dispatch.ts", "src/acp/translator.ts", "src/telegram/send.ts", "src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts" ], "summary": "8 open PRs share weighted file overlap around `src/cron/isolated-agent/delivery-dispatch.ts`, `src/acp/translator.ts`, `src/telegram/send.ts`; representative PR #65016.", "title": "Scope: Fix/cron announce no reply" }, { "authors": [ "JoeshpCheung", "lawrence3699", "lyfuci", "rzyns" ], "average_similarity": 0.459, "cluster_id": "pr-scope-63586-7", "kind": "pr_scope", "last_activity_at": "2026-04-21T13:57:12Z", "outside_window_prs": [ { "additions": 136, "author": "jepson-liu", "changed_files": 2, "created_at": "2026-04-09T06:30:21Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63586/files", "html_url": "https://github.com/openclaw/openclaw/pull/63586", "merged": false, "number": 63586, "state": "open", "title": "fix(plugins): ignore non-allowlisted load errors #63575", "updated_at": "2026-04-11T01:36:08Z" }, { "additions": 592, "author": "hxy91819", "changed_files": 6, "created_at": "2026-04-10T06:54:39Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64154/files", "html_url": "https://github.com/openclaw/openclaw/pull/64154", "merged": false, "number": 64154, "state": "open", "title": "Plugins: keep untrusted workspace channel shadows out of setup-time loads", "updated_at": "2026-04-12T04:19:23Z" }, { "additions": 10, "author": "hteo1337", "changed_files": 3, "created_at": "2026-04-10T15:41:50Z", "deletions": 12, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64388/files", "html_url": "https://github.com/openclaw/openclaw/pull/64388", "merged": false, "number": 64388, "state": "open", "title": "fix(plugins): auto-correct cache:false when activate:false instead of throwing", "updated_at": "2026-04-11T11:53:58Z" } ], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.574, "left_pr_number": 67892, "right_pr_number": 68638, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.682, "size_similarity": 0.983 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.576, "left_pr_number": 63586, "right_pr_number": 68638, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.663, "size_similarity": 0.844 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.992, "content_similarity": 0.55, "left_pr_number": 68389, "right_pr_number": 68638, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.65, "size_similarity": 0.937 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.511, "left_pr_number": 63586, "right_pr_number": 67892, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.636, "size_similarity": 0.858 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.992, "content_similarity": 0.514, "left_pr_number": 67892, "right_pr_number": 68389, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.611, "size_similarity": 0.953 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.992, "content_similarity": 0.491, "left_pr_number": 63586, "right_pr_number": 68389, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.587, "size_similarity": 0.901 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.909, "content_similarity": 0.503, "left_pr_number": 64388, "right_pr_number": 68638, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.501, "size_similarity": 0.185 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.917, "content_similarity": 0.463, "left_pr_number": 64388, "right_pr_number": 68389, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.496, "size_similarity": 0.173 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.909, "content_similarity": 0.481, "left_pr_number": 64388, "right_pr_number": 67892, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.467, "size_similarity": 0.182 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.909, "content_similarity": 0.465, "left_pr_number": 63586, "right_pr_number": 64388, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.453, "size_similarity": 0.156 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.492, "content_similarity": 0.491, "left_pr_number": 64154, "right_pr_number": 67892, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.428, "size_similarity": 0.203 }, { "breadth_similarity": 0.516, "concentration_similarity": 0.527, "content_similarity": 0.262, "left_pr_number": 64154, "right_pr_number": 69458, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.404, "size_similarity": 0.951 }, { "breadth_similarity": 0.148, "concentration_similarity": 0.965, "content_similarity": 0.425, "left_pr_number": 67892, "right_pr_number": 69458, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.39, "size_similarity": 0.193 }, { "breadth_similarity": 0.187, "concentration_similarity": 0.965, "content_similarity": 0.408, "left_pr_number": 68638, "right_pr_number": 69458, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.381, "size_similarity": 0.189 }, { "breadth_similarity": 0.258, "concentration_similarity": 0.973, "content_similarity": 0.353, "left_pr_number": 68389, "right_pr_number": 69458, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.352, "size_similarity": 0.202 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.492, "content_similarity": 0.369, "left_pr_number": 64154, "right_pr_number": 68638, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts", "src/plugins/registry.ts" ], "similarity": 0.351, "size_similarity": 0.199 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.5, "content_similarity": 0.341, "left_pr_number": 64154, "right_pr_number": 68389, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.346, "size_similarity": 0.213 }, { "breadth_similarity": 0.148, "concentration_similarity": 0.965, "content_similarity": 0.353, "left_pr_number": 63586, "right_pr_number": 69458, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.344, "size_similarity": 0.225 }, { "breadth_similarity": 0.258, "concentration_similarity": 0.944, "content_similarity": 0.339, "left_pr_number": 64388, "right_pr_number": 69458, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.315, "size_similarity": 0.035 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.492, "content_similarity": 0.306, "left_pr_number": 63586, "right_pr_number": 64154, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.303, "size_similarity": 0.236 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.583, "content_similarity": 0.279, "left_pr_number": 64154, "right_pr_number": 64388, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts" ], "similarity": 0.28, "size_similarity": 0.037 } ], "pr_count": 7, "pr_numbers": [ 63586, 64154, 64388, 67892, 68389, 68638, 69458 ], "recent_pr_count": 4, "recent_pr_numbers": [ 67892, 68389, 68638, 69458 ], "representative_pr_number": 68638, "representative_title": "fix(loader): avoid memory and compaction side effects during non-activating loads", "representative_url": "https://github.com/openclaw/openclaw/pull/68638", "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/loader.test.ts", "src/plugins/loader.ts", "src/plugins/registry.ts" ], "summary": "7 open PRs share weighted file overlap around `src/plugins/loader.test.ts`, `src/plugins/loader.ts`, `src/plugins/registry.ts`; representative PR #68638.", "title": "Scope: fix(loader): avoid memory and compaction side effects during non-activating loads" }, { "authors": [ "Efan404", "ScientificProgrammer", "banddude", "dyaskur" ], "average_similarity": 0.433, "cluster_id": "pr-scope-35950-7", "kind": "pr_scope", "last_activity_at": "2026-04-20T05:40:30Z", "outside_window_prs": [ { "additions": 88, "author": "TeirikangasAnfra", "changed_files": 2, "created_at": "2026-03-05T10:38:36Z", "deletions": 33, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/35950/files", "html_url": "https://github.com/openclaw/openclaw/pull/35950", "merged": false, "number": 35950, "state": "open", "title": "fix(googlechat): delivery failures \u2014 typing cleanup, block dedup race, DM thread handling", "updated_at": "2026-04-17T04:31:32Z" }, { "additions": 145, "author": "MaxJinju", "changed_files": 5, "created_at": "2026-03-24T12:43:11Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53676/files", "html_url": "https://github.com/openclaw/openclaw/pull/53676", "merged": false, "number": 53676, "state": "open", "title": "fix(googlechat): harden webhook auth matching and diagnostics", "updated_at": "2026-03-24T20:15:29Z" }, { "additions": 108, "author": "colin-lgtm", "changed_files": 19, "created_at": "2026-04-12T21:59:13Z", "deletions": 88, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65570/files", "html_url": "https://github.com/openclaw/openclaw/pull/65570", "merged": false, "number": 65570, "state": "open", "title": "fix(googlechat): resolve domexception startup crash and prevent silent text loss", "updated_at": "2026-04-17T14:30:41Z" } ], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.959, "content_similarity": 0.966, "left_pr_number": 35950, "right_pr_number": 68614, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.856, "size_similarity": 0.545 }, { "breadth_similarity": 0.8, "concentration_similarity": 1.0, "content_similarity": 0.584, "left_pr_number": 53676, "right_pr_number": 67221, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/auth.test.ts", "extensions/googlechat/src/auth.ts" ], "similarity": 0.669, "size_similarity": 0.868 }, { "breadth_similarity": 0.139, "concentration_similarity": 0.833, "content_similarity": 0.593, "left_pr_number": 68614, "right_pr_number": 68967, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.612, "size_similarity": 0.946 }, { "breadth_similarity": 0.278, "concentration_similarity": 0.875, "content_similarity": 0.577, "left_pr_number": 35950, "right_pr_number": 68967, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions", "src" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.562, "size_similarity": 0.576 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.959, "content_similarity": 0.472, "left_pr_number": 35950, "right_pr_number": 67055, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.531, "size_similarity": 0.521 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.507, "left_pr_number": 67055, "right_pr_number": 68614, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.523, "size_similarity": 0.284 }, { "breadth_similarity": 0.065, "concentration_similarity": 0.403, "content_similarity": 0.434, "left_pr_number": 65570, "right_pr_number": 68614, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.463, "size_similarity": 0.883 }, { "breadth_similarity": 0.13, "concentration_similarity": 0.444, "content_similarity": 0.429, "left_pr_number": 35950, "right_pr_number": 65570, "shared_directories": [ "extensions/googlechat/src", "src/auto-reply/reply", "extensions/googlechat", "src/auto-reply", "extensions", "src" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.428, "size_similarity": 0.617 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.251, "left_pr_number": 67221, "right_pr_number": 68614, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [], "similarity": 0.41, "size_similarity": 0.784 }, { "breadth_similarity": 0.6, "concentration_similarity": 1.0, "content_similarity": 0.276, "left_pr_number": 53676, "right_pr_number": 68614, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.405, "size_similarity": 0.68 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.959, "content_similarity": 0.271, "left_pr_number": 35950, "right_pr_number": 53676, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.403, "size_similarity": 0.801 }, { "breadth_similarity": 0.468, "concentration_similarity": 0.57, "content_similarity": 0.264, "left_pr_number": 65570, "right_pr_number": 68967, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "docs", "extensions", "src" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.4, "size_similarity": 0.933 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.959, "content_similarity": 0.247, "left_pr_number": 35950, "right_pr_number": 67221, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [], "similarity": 0.383, "size_similarity": 0.695 }, { "breadth_similarity": 0.194, "concentration_similarity": 0.833, "content_similarity": 0.344, "left_pr_number": 67055, "right_pr_number": 68967, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.347, "size_similarity": 0.3 }, { "breadth_similarity": 0.361, "concentration_similarity": 0.833, "content_similarity": 0.23, "left_pr_number": 53676, "right_pr_number": 68967, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.346, "size_similarity": 0.719 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.222, "left_pr_number": 67055, "right_pr_number": 67221, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [], "similarity": 0.343, "size_similarity": 0.362 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.221, "left_pr_number": 53676, "right_pr_number": 67055, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.338, "size_similarity": 0.417 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.833, "content_similarity": 0.206, "left_pr_number": 67221, "right_pr_number": 68967, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [], "similarity": 0.335, "size_similarity": 0.829 }, { "breadth_similarity": 0.117, "concentration_similarity": 0.403, "content_similarity": 0.126, "left_pr_number": 65570, "right_pr_number": 67221, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [], "similarity": 0.253, "size_similarity": 0.888 }, { "breadth_similarity": 0.17, "concentration_similarity": 0.403, "content_similarity": 0.138, "left_pr_number": 53676, "right_pr_number": 65570, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.249, "size_similarity": 0.77 }, { "breadth_similarity": 0.091, "concentration_similarity": 0.403, "content_similarity": 0.232, "left_pr_number": 65570, "right_pr_number": 67055, "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts" ], "similarity": 0.24, "size_similarity": 0.321 } ], "pr_count": 7, "pr_numbers": [ 35950, 53676, 65570, 67055, 67221, 68614, 68967 ], "recent_pr_count": 4, "recent_pr_numbers": [ 67055, 67221, 68614, 68967 ], "representative_pr_number": 68614, "representative_title": "fix(googlechat): add timeout and fallback for deferred responses", "representative_url": "https://github.com/openclaw/openclaw/pull/68614", "shared_directories": [ "extensions/googlechat/src", "extensions/googlechat", "extensions", "src", "src/auto-reply/reply", "src/auto-reply", "docs" ], "shared_filenames": [ "extensions/googlechat/src/monitor.ts", "extensions/googlechat/src/auth.test.ts", "extensions/googlechat/src/auth.ts" ], "summary": "7 open PRs share weighted file overlap around `extensions/googlechat/src/monitor.ts`, `extensions/googlechat/src/auth.test.ts`, `extensions/googlechat/src/auth.ts`; representative PR #68614.", "title": "Scope: fix(googlechat): add timeout and fallback for deferred responses" }, { "authors": [ "Eruditi", "Mlightsnow", "xuanmingguo" ], "average_similarity": 0.525, "cluster_id": "pr-scope-53762-6", "kind": "pr_scope", "last_activity_at": "2026-04-21T15:21:51Z", "outside_window_prs": [ { "additions": 59, "author": "amitgaur", "changed_files": 3, "created_at": "2026-03-24T15:16:57Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53762/files", "html_url": "https://github.com/openclaw/openclaw/pull/53762", "merged": false, "number": 53762, "state": "open", "title": "fix(telegram): flush buffered final answer when reasoning delivery is skipped [AI-assisted]", "updated_at": "2026-03-24T20:15:29Z" }, { "additions": 34, "author": "ShionEria", "changed_files": 2, "created_at": "2026-04-10T13:04:25Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64314/files", "html_url": "https://github.com/openclaw/openclaw/pull/64314", "merged": false, "number": 64314, "state": "open", "title": "fix(telegram): keep tool media after text preview", "updated_at": "2026-04-10T13:05:32Z" } ], "pairwise": [ { "breadth_similarity": 0.708, "concentration_similarity": 0.699, "content_similarity": 0.748, "left_pr_number": 69652, "right_pr_number": 69657, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions", "src" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.test.ts", "extensions/telegram/src/bot-message-dispatch.ts" ], "similarity": 0.731, "size_similarity": 0.675 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.926, "content_similarity": 0.687, "left_pr_number": 69022, "right_pr_number": 69652, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.test.ts", "extensions/telegram/src/bot-message-dispatch.ts" ], "similarity": 0.712, "size_similarity": 0.73 }, { "breadth_similarity": 0.542, "concentration_similarity": 0.625, "content_similarity": 0.569, "left_pr_number": 69022, "right_pr_number": 69657, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.test.ts", "extensions/telegram/src/bot-message-dispatch.ts" ], "similarity": 0.623, "size_similarity": 0.925 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.488, "left_pr_number": 64314, "right_pr_number": 69022, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.test.ts" ], "similarity": 0.614, "size_similarity": 0.925 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.983, "content_similarity": 0.523, "left_pr_number": 53762, "right_pr_number": 69022, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.test.ts", "extensions/telegram/src/bot-message-dispatch.ts" ], "similarity": 0.584, "size_similarity": 0.627 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.983, "content_similarity": 0.514, "left_pr_number": 53762, "right_pr_number": 64314, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.test.ts" ], "similarity": 0.569, "size_similarity": 0.678 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.943, "content_similarity": 0.496, "left_pr_number": 53762, "right_pr_number": 69652, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.test.ts", "extensions/telegram/src/bot-message-dispatch.ts" ], "similarity": 0.563, "size_similarity": 0.458 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.926, "content_similarity": 0.456, "left_pr_number": 64314, "right_pr_number": 69652, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.test.ts" ], "similarity": 0.525, "size_similarity": 0.675 }, { "breadth_similarity": 0.708, "concentration_similarity": 0.642, "content_similarity": 0.41, "left_pr_number": 53762, "right_pr_number": 69657, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.test.ts", "extensions/telegram/src/bot-message-dispatch.ts" ], "similarity": 0.492, "size_similarity": 0.678 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.625, "content_similarity": 0.378, "left_pr_number": 64314, "right_pr_number": 69657, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.test.ts" ], "similarity": 0.487, "size_similarity": 1.0 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.983, "content_similarity": 0.327, "left_pr_number": 53762, "right_pr_number": 66932, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.ts" ], "similarity": 0.441, "size_similarity": 0.814 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.285, "left_pr_number": 66932, "right_pr_number": 69022, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.ts" ], "similarity": 0.432, "size_similarity": 0.771 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.926, "content_similarity": 0.294, "left_pr_number": 66932, "right_pr_number": 69652, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.ts" ], "similarity": 0.378, "size_similarity": 0.562 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.16, "left_pr_number": 64314, "right_pr_number": 66932, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [], "similarity": 0.362, "size_similarity": 0.833 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.625, "content_similarity": 0.244, "left_pr_number": 66932, "right_pr_number": 69657, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.ts" ], "similarity": 0.356, "size_similarity": 0.833 } ], "pr_count": 6, "pr_numbers": [ 53762, 64314, 66932, 69022, 69652, 69657 ], "recent_pr_count": 4, "recent_pr_numbers": [ 66932, 69022, 69652, 69657 ], "representative_pr_number": 69022, "representative_title": "Fix: apply humanDelay between Telegram streamed block replies (Resolves #68945)", "representative_url": "https://github.com/openclaw/openclaw/pull/69022", "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions", "src" ], "shared_filenames": [ "extensions/telegram/src/bot-message-dispatch.ts", "extensions/telegram/src/bot-message-dispatch.test.ts" ], "summary": "6 open PRs share weighted file overlap around `extensions/telegram/src/bot-message-dispatch.ts`, `extensions/telegram/src/bot-message-dispatch.test.ts`; representative PR #69022.", "title": "Scope: Fix: apply humanDelay between Telegram streamed block replies (Resolves #68945)" }, { "authors": [ "alexlomt", "chrisabad", "zqchris" ], "average_similarity": 0.509, "cluster_id": "pr-scope-31909-6", "kind": "pr_scope", "last_activity_at": "2026-04-19T17:26:47Z", "outside_window_prs": [ { "additions": 255, "author": "jduartedj", "changed_files": 2, "created_at": "2026-03-02T16:40:30Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/31909/files", "html_url": "https://github.com/openclaw/openclaw/pull/31909", "merged": false, "number": 31909, "state": "open", "title": "fix(agents): ensure parallel tool results have correct parentId", "updated_at": "2026-04-20T09:07:35Z" }, { "additions": 105, "author": "dashhuang", "changed_files": 9, "created_at": "2026-04-09T10:45:35Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63696/files", "html_url": "https://github.com/openclaw/openclaw/pull/63696", "merged": false, "number": 63696, "state": "open", "title": "fix(agents): suppress duplicate user persistence on fallback retries", "updated_at": "2026-04-12T11:00:40Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.958, "content_similarity": 0.991, "left_pr_number": 67962, "right_pr_number": 68048, "shared_directories": [ "src/agents/pi-embedded-runner", "docs/.generated", "src/agents", "src/config", "docs", "src" ], "shared_filenames": [ "docs/.generated/config-baseline.sha256", "src/agents/pi-embedded-runner/tool-result-truncation.ts", "src/agents/session-tool-result-guard-wrapper.ts", "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts", "src/config/schema.base.generated.ts", "src/config/schema.help.ts", "src/config/schema.labels.ts", "src/config/types.agent-defaults.ts", "src/config/zod-schema.agent-runtime.ts" ], "similarity": 0.975, "size_similarity": 0.884 }, { "breadth_similarity": 0.225, "concentration_similarity": 0.533, "content_similarity": 0.629, "left_pr_number": 31909, "right_pr_number": 68048, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.598, "size_similarity": 0.725 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.947, "content_similarity": 0.542, "left_pr_number": 68372, "right_pr_number": 69033, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.585, "size_similarity": 0.386 }, { "breadth_similarity": 0.225, "concentration_similarity": 0.49, "content_similarity": 0.577, "left_pr_number": 31909, "right_pr_number": 67962, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.574, "size_similarity": 0.821 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.757, "content_similarity": 0.545, "left_pr_number": 31909, "right_pr_number": 69033, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.551, "size_similarity": 0.547 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.829, "content_similarity": 0.504, "left_pr_number": 68048, "right_pr_number": 68372, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/tool-result-truncation.ts", "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.462, "size_similarity": 0.153 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.787, "content_similarity": 0.5, "left_pr_number": 67962, "right_pr_number": 68372, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/tool-result-truncation.ts", "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.46, "size_similarity": 0.173 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.733, "content_similarity": 0.434, "left_pr_number": 67962, "right_pr_number": 69033, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.453, "size_similarity": 0.449 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.775, "content_similarity": 0.442, "left_pr_number": 68048, "right_pr_number": 69033, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.453, "size_similarity": 0.397 }, { "breadth_similarity": 0.472, "concentration_similarity": 0.89, "content_similarity": 0.353, "left_pr_number": 63696, "right_pr_number": 69033, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.451, "size_similarity": 0.75 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.704, "content_similarity": 0.454, "left_pr_number": 31909, "right_pr_number": 68372, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.434, "size_similarity": 0.211 }, { "breadth_similarity": 0.236, "concentration_similarity": 0.867, "content_similarity": 0.435, "left_pr_number": 31909, "right_pr_number": 63696, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.433, "size_similarity": 0.41 }, { "breadth_similarity": 0.95, "concentration_similarity": 0.624, "content_similarity": 0.363, "left_pr_number": 63696, "right_pr_number": 67962, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/session-tool-result-guard-wrapper.ts", "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.431, "size_similarity": 0.337 }, { "breadth_similarity": 0.95, "concentration_similarity": 0.666, "content_similarity": 0.361, "left_pr_number": 63696, "right_pr_number": 68048, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/session-tool-result-guard-wrapper.ts", "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.426, "size_similarity": 0.297 }, { "breadth_similarity": 0.472, "concentration_similarity": 0.837, "content_similarity": 0.26, "left_pr_number": 63696, "right_pr_number": 68372, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts" ], "similarity": 0.348, "size_similarity": 0.514 } ], "pr_count": 6, "pr_numbers": [ 31909, 63696, 67962, 68048, 68372, 69033 ], "recent_pr_count": 4, "recent_pr_numbers": [ 67962, 68048, 68372, 69033 ], "representative_pr_number": 68048, "representative_title": "fix(agents): harden toolResult details persistence policy (stringify undefined + double-cap)", "representative_url": "https://github.com/openclaw/openclaw/pull/68048", "shared_directories": [ "src/agents", "src", "src/agents/pi-embedded-runner", "docs/.generated", "src/config", "docs" ], "shared_filenames": [ "src/agents/session-tool-result-guard.test.ts", "src/agents/session-tool-result-guard.ts", "src/agents/pi-embedded-runner/tool-result-truncation.ts", "src/agents/session-tool-result-guard-wrapper.ts", "src/config/types.agent-defaults.ts", "docs/.generated/config-baseline.sha256", "src/config/zod-schema.agent-runtime.ts", "src/config/schema.labels.ts" ], "summary": "6 open PRs share weighted file overlap around `src/agents/session-tool-result-guard.test.ts`, `src/agents/session-tool-result-guard.ts`, `src/agents/pi-embedded-runner/tool-result-truncation.ts`; representative PR #68048.", "title": "Scope: fix(agents): harden toolResult details persistence policy (stringify undefined + double-cap)" }, { "authors": [ "91wan", "ly85206559", "miyago9267", "srinivaspavan9" ], "average_similarity": 0.361, "cluster_id": "pr-scope-48144-6", "kind": "pr_scope", "last_activity_at": "2026-04-21T15:13:51Z", "outside_window_prs": [ { "additions": 112, "author": "imwyvern", "changed_files": 2, "created_at": "2026-03-16T10:46:33Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/48144/files", "html_url": "https://github.com/openclaw/openclaw/pull/48144", "merged": false, "number": 48144, "state": "open", "title": "fix(ui): show current context tokens instead of cumulative in Control UI", "updated_at": "2026-04-20T18:09:07Z" }, { "additions": 308, "author": "fuller-stack-dev", "changed_files": 5, "created_at": "2026-03-24T15:57:25Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53776/files", "html_url": "https://github.com/openclaw/openclaw/pull/53776", "merged": false, "number": 53776, "state": "open", "title": "feat(ui): wire /steer slash command to sessions.steer RPC", "updated_at": "2026-03-24T20:29:52Z" } ], "pairwise": [ { "breadth_similarity": 0.367, "concentration_similarity": 0.99, "content_similarity": 0.751, "left_pr_number": 48144, "right_pr_number": 53776, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/chat/slash-command-executor.node.test.ts", "ui/src/ui/chat/slash-command-executor.ts" ], "similarity": 0.669, "size_similarity": 0.379 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.94, "content_similarity": 0.699, "left_pr_number": 68982, "right_pr_number": 69689, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/chat/grouped-render.test.ts", "ui/src/ui/chat/grouped-render.ts" ], "similarity": 0.662, "size_similarity": 0.254 }, { "breadth_similarity": 0.917, "concentration_similarity": 0.994, "content_similarity": 0.16, "left_pr_number": 68045, "right_pr_number": 69366, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "src/auto-reply", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/chat/grouped-render.ts" ], "similarity": 0.387, "size_similarity": 0.897 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.613, "content_similarity": 0.164, "left_pr_number": 53776, "right_pr_number": 69366, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.371, "size_similarity": 0.836 }, { "breadth_similarity": 0.917, "concentration_similarity": 0.62, "content_similarity": 0.14, "left_pr_number": 53776, "right_pr_number": 68045, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.36, "size_similarity": 0.932 }, { "breadth_similarity": 0.667, "concentration_similarity": 0.693, "content_similarity": 0.224, "left_pr_number": 68045, "right_pr_number": 68982, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/chat/grouped-render.ts" ], "similarity": 0.346, "size_similarity": 0.583 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.917, "content_similarity": 0.199, "left_pr_number": 48144, "right_pr_number": 68982, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.34, "size_similarity": 0.698 }, { "breadth_similarity": 0.733, "concentration_similarity": 0.927, "content_similarity": 0.198, "left_pr_number": 53776, "right_pr_number": 68982, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.34, "size_similarity": 0.543 }, { "breadth_similarity": 0.733, "concentration_similarity": 0.687, "content_similarity": 0.188, "left_pr_number": 68982, "right_pr_number": 69366, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/chat/grouped-render.ts" ], "similarity": 0.337, "size_similarity": 0.65 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.977, "content_similarity": 0.205, "left_pr_number": 48144, "right_pr_number": 69689, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.305, "size_similarity": 0.364 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.627, "content_similarity": 0.226, "left_pr_number": 69366, "right_pr_number": 69689, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/chat/grouped-render.ts" ], "similarity": 0.278, "size_similarity": 0.165 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.986, "content_similarity": 0.204, "left_pr_number": 53776, "right_pr_number": 69689, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.276, "size_similarity": 0.138 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.634, "content_similarity": 0.216, "left_pr_number": 68045, "right_pr_number": 69689, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "CHANGELOG.md", "ui/src/ui/chat/grouped-render.ts" ], "similarity": 0.263, "size_similarity": 0.148 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.604, "content_similarity": 0.165, "left_pr_number": 48144, "right_pr_number": 69366, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.25, "size_similarity": 0.454 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.61, "content_similarity": 0.14, "left_pr_number": 48144, "right_pr_number": 68045, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.223, "size_similarity": 0.407 } ], "pr_count": 6, "pr_numbers": [ 48144, 53776, 68045, 68982, 69366, 69689 ], "recent_pr_count": 4, "recent_pr_numbers": [ 68045, 68982, 69366, 69689 ], "representative_pr_number": 68982, "representative_title": "fix: stream reasoning in live chat", "representative_url": "https://github.com/openclaw/openclaw/pull/68982", "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui", "src/auto-reply", "src" ], "shared_filenames": [ "ui/src/ui/chat/grouped-render.ts", "ui/src/ui/chat/grouped-render.test.ts", "ui/src/ui/chat/slash-command-executor.node.test.ts", "ui/src/ui/chat/slash-command-executor.ts", "CHANGELOG.md" ], "summary": "6 open PRs share weighted file overlap around `ui/src/ui/chat/grouped-render.ts`, `ui/src/ui/chat/grouped-render.test.ts`, `ui/src/ui/chat/slash-command-executor.node.test.ts`; representative PR #68982.", "title": "Scope: fix: stream reasoning in live chat" }, { "authors": [ "kenrolzjc", "moltar-bot", "openperf", "rmfalco89" ], "average_similarity": 0.621, "cluster_id": "pr-scope-64516-5", "kind": "pr_scope", "last_activity_at": "2026-04-19T07:21:56Z", "outside_window_prs": [ { "additions": 17, "author": "rmfalco89", "changed_files": 2, "created_at": "2026-04-10T22:16:32Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64516/files", "html_url": "https://github.com/openclaw/openclaw/pull/64516", "merged": false, "number": 64516, "state": "open", "title": "fix(heartbeat): make cron event wrapper neutral so models execute embedded steps", "updated_at": "2026-04-14T00:08:40Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.987, "left_pr_number": 64516, "right_pr_number": 67262, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/heartbeat-events-filter.test.ts", "src/infra/heartbeat-events-filter.ts" ], "similarity": 0.946, "size_similarity": 0.696 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.905, "left_pr_number": 64516, "right_pr_number": 66838, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/heartbeat-events-filter.test.ts", "src/infra/heartbeat-events-filter.ts" ], "similarity": 0.866, "size_similarity": 0.657 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.899, "left_pr_number": 66838, "right_pr_number": 67262, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/heartbeat-events-filter.test.ts", "src/infra/heartbeat-events-filter.ts" ], "similarity": 0.831, "size_similarity": 0.457 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.543, "left_pr_number": 64516, "right_pr_number": 67273, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/heartbeat-events-filter.test.ts", "src/infra/heartbeat-events-filter.ts" ], "similarity": 0.526, "size_similarity": 0.144 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.495, "left_pr_number": 66838, "right_pr_number": 67273, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/heartbeat-events-filter.test.ts", "src/infra/heartbeat-events-filter.ts" ], "similarity": 0.517, "size_similarity": 0.219 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.802, "content_similarity": 0.591, "left_pr_number": 64516, "right_pr_number": 67059, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/heartbeat-events-filter.test.ts", "src/infra/heartbeat-events-filter.ts" ], "similarity": 0.515, "size_similarity": 0.134 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.531, "left_pr_number": 67262, "right_pr_number": 67273, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/heartbeat-events-filter.test.ts", "src/infra/heartbeat-events-filter.ts" ], "similarity": 0.512, "size_similarity": 0.1 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.802, "content_similarity": 0.583, "left_pr_number": 67059, "right_pr_number": 67262, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/heartbeat-events-filter.test.ts", "src/infra/heartbeat-events-filter.ts" ], "similarity": 0.504, "size_similarity": 0.093 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.802, "content_similarity": 0.539, "left_pr_number": 66838, "right_pr_number": 67059, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/heartbeat-events-filter.test.ts", "src/infra/heartbeat-events-filter.ts" ], "similarity": 0.498, "size_similarity": 0.203 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.802, "content_similarity": 0.371, "left_pr_number": 67059, "right_pr_number": 67273, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/heartbeat-events-filter.test.ts", "src/infra/heartbeat-events-filter.ts", "src/infra/heartbeat-runner.ts" ], "similarity": 0.497, "size_similarity": 0.93 } ], "pr_count": 5, "pr_numbers": [ 64516, 66838, 67059, 67262, 67273 ], "recent_pr_count": 4, "recent_pr_numbers": [ 66838, 67059, 67262, 67273 ], "representative_pr_number": 64516, "representative_title": "fix(heartbeat): make cron event wrapper neutral so models execute embedded steps", "representative_url": "https://github.com/openclaw/openclaw/pull/64516", "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/heartbeat-events-filter.test.ts", "src/infra/heartbeat-events-filter.ts", "src/infra/heartbeat-runner.ts" ], "summary": "5 open PRs share weighted file overlap around `src/infra/heartbeat-events-filter.test.ts`, `src/infra/heartbeat-events-filter.ts`, `src/infra/heartbeat-runner.ts`; representative PR #64516.", "title": "Scope: fix(heartbeat): make cron event wrapper neutral so models execute embedded steps" }, { "authors": [ "MukundaKatta", "jckm14", "pfrederiksen", "sharkqwy" ], "average_similarity": 0.579, "cluster_id": "pr-scope-66696-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T17:28:47Z", "outside_window_prs": [ { "additions": 14, "author": "pfrederiksen", "changed_files": 2, "created_at": "2026-04-14T17:13:57Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66696/files", "html_url": "https://github.com/openclaw/openclaw/pull/66696", "merged": false, "number": 66696, "state": "open", "title": "Support Corepack-managed pnpm in pre-commit tooling", "updated_at": "2026-04-14T17:30:06Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 1.0, "left_pr_number": 66753, "right_pr_number": 69115, "shared_directories": [ "git-hooks" ], "shared_filenames": [ "git-hooks/pre-commit" ], "similarity": 0.977, "size_similarity": 0.85 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.715, "content_similarity": 0.931, "left_pr_number": 66696, "right_pr_number": 67870, "shared_directories": [ "scripts/pre-commit", "git-hooks", "scripts" ], "shared_filenames": [ "git-hooks/pre-commit", "scripts/pre-commit/run-node-tool.sh" ], "similarity": 0.885, "size_similarity": 0.654 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.538, "content_similarity": 0.65, "left_pr_number": 66753, "right_pr_number": 67870, "shared_directories": [ "git-hooks" ], "shared_filenames": [ "git-hooks/pre-commit" ], "similarity": 0.647, "size_similarity": 0.769 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.538, "content_similarity": 0.651, "left_pr_number": 67870, "right_pr_number": 69115, "shared_directories": [ "git-hooks" ], "shared_filenames": [ "git-hooks/pre-commit" ], "similarity": 0.631, "size_similarity": 0.654 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.824, "content_similarity": 0.382, "left_pr_number": 66696, "right_pr_number": 69115, "shared_directories": [ "git-hooks" ], "shared_filenames": [ "git-hooks/pre-commit" ], "similarity": 0.508, "size_similarity": 1.0 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.824, "content_similarity": 0.386, "left_pr_number": 66696, "right_pr_number": 66753, "shared_directories": [ "git-hooks" ], "shared_filenames": [ "git-hooks/pre-commit" ], "similarity": 0.489, "size_similarity": 0.85 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.795, "content_similarity": 0.434, "left_pr_number": 66753, "right_pr_number": 66776, "shared_directories": [ "git-hooks" ], "shared_filenames": [ "git-hooks/pre-commit" ], "similarity": 0.462, "size_similarity": 0.455 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.795, "content_similarity": 0.434, "left_pr_number": 66776, "right_pr_number": 69115, "shared_directories": [ "git-hooks" ], "shared_filenames": [ "git-hooks/pre-commit" ], "similarity": 0.452, "size_similarity": 0.386 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.743, "content_similarity": 0.283, "left_pr_number": 66776, "right_pr_number": 67870, "shared_directories": [ "git-hooks" ], "shared_filenames": [ "git-hooks/pre-commit" ], "similarity": 0.424, "size_similarity": 0.591 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.972, "content_similarity": 0.162, "left_pr_number": 66696, "right_pr_number": 66776, "shared_directories": [ "git-hooks" ], "shared_filenames": [ "git-hooks/pre-commit" ], "similarity": 0.32, "size_similarity": 0.386 } ], "pr_count": 5, "pr_numbers": [ 66696, 66753, 66776, 67870, 69115 ], "recent_pr_count": 4, "recent_pr_numbers": [ 66753, 66776, 67870, 69115 ], "representative_pr_number": 67870, "representative_title": "fix(pre-commit): support corepack-managed pnpm in hook tooling", "representative_url": "https://github.com/openclaw/openclaw/pull/67870", "shared_directories": [ "git-hooks", "scripts/pre-commit", "scripts" ], "shared_filenames": [ "git-hooks/pre-commit", "scripts/pre-commit/run-node-tool.sh" ], "summary": "5 open PRs share weighted file overlap around `git-hooks/pre-commit`, `scripts/pre-commit/run-node-tool.sh`; representative PR #67870.", "title": "Scope: fix(pre-commit): support corepack-managed pnpm in hook tooling" }, { "authors": [ "ACMILANTX", "avirweb", "sahilsatralkar" ], "average_similarity": 0.52, "cluster_id": "pr-scope-64403-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T14:51:14Z", "outside_window_prs": [ { "additions": 366, "author": "ly85206559", "changed_files": 5, "created_at": "2026-04-10T16:30:53Z", "deletions": 20, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64403/files", "html_url": "https://github.com/openclaw/openclaw/pull/64403", "merged": false, "number": 64403, "state": "open", "title": "fix(plugins): prefer CLI metadata for lazy primary commands", "updated_at": "2026-04-21T11:16:10Z" } ], "pairwise": [ { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.85, "left_pr_number": 64403, "right_pr_number": 67063, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/cli-registry-loader.ts", "src/plugins/cli.test.ts" ], "similarity": 0.769, "size_similarity": 0.363 }, { "breadth_similarity": 0.452, "concentration_similarity": 0.907, "content_similarity": 0.571, "left_pr_number": 68654, "right_pr_number": 69744, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/cli-registry-loader.test.ts", "src/plugins/cli-registry-loader.ts" ], "similarity": 0.617, "size_similarity": 0.843 }, { "breadth_similarity": 0.9, "concentration_similarity": 1.0, "content_similarity": 0.551, "left_pr_number": 64403, "right_pr_number": 68654, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/cli-registry-loader.ts", "src/plugins/cli.test.ts", "src/plugins/cli.ts" ], "similarity": 0.607, "size_similarity": 0.541 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.516, "content_similarity": 0.555, "left_pr_number": 67063, "right_pr_number": 68242, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/cli-registry-loader.ts", "src/plugins/cli.test.ts" ], "similarity": 0.559, "size_similarity": 0.628 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.457, "left_pr_number": 67063, "right_pr_number": 68654, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/cli-registry-loader.ts", "src/plugins/cli.test.ts" ], "similarity": 0.545, "size_similarity": 0.67 }, { "breadth_similarity": 0.65, "concentration_similarity": 0.516, "content_similarity": 0.523, "left_pr_number": 64403, "right_pr_number": 68242, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/cli-registry-loader.ts", "src/plugins/cli.test.ts" ], "similarity": 0.544, "size_similarity": 0.578 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.516, "content_similarity": 0.335, "left_pr_number": 68242, "right_pr_number": 68654, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/cli-registry-loader.ts", "src/plugins/cli.test.ts" ], "similarity": 0.476, "size_similarity": 0.937 }, { "breadth_similarity": 0.524, "concentration_similarity": 0.907, "content_similarity": 0.303, "left_pr_number": 64403, "right_pr_number": 69744, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/cli-registry-loader.ts" ], "similarity": 0.406, "size_similarity": 0.642 }, { "breadth_similarity": 0.619, "concentration_similarity": 0.608, "content_similarity": 0.171, "left_pr_number": 68242, "right_pr_number": 69744, "shared_directories": [ "src/plugins", "extensions", "src" ], "shared_filenames": [ "src/plugins/cli-registry-loader.ts" ], "similarity": 0.347, "size_similarity": 0.899 }, { "breadth_similarity": 0.31, "concentration_similarity": 0.907, "content_similarity": 0.245, "left_pr_number": 67063, "right_pr_number": 69744, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/cli-registry-loader.ts" ], "similarity": 0.333, "size_similarity": 0.565 } ], "pr_count": 5, "pr_numbers": [ 64403, 67063, 68242, 68654, 69744 ], "recent_pr_count": 4, "recent_pr_numbers": [ 67063, 68242, 68654, 69744 ], "representative_pr_number": 64403, "representative_title": "fix(plugins): prefer CLI metadata for lazy primary commands", "representative_url": "https://github.com/openclaw/openclaw/pull/64403", "shared_directories": [ "src/plugins", "src", "extensions" ], "shared_filenames": [ "src/plugins/cli-registry-loader.ts", "src/plugins/cli.test.ts", "src/plugins/cli-registry-loader.test.ts", "src/plugins/cli.ts" ], "summary": "5 open PRs share weighted file overlap around `src/plugins/cli-registry-loader.ts`, `src/plugins/cli.test.ts`, `src/plugins/cli-registry-loader.test.ts`; representative PR #64403.", "title": "Scope: fix(plugins): prefer CLI metadata for lazy primary commands" }, { "authors": [ "1aifanatic", "igormf", "nnish16", "vvitovec" ], "average_similarity": 0.712, "cluster_id": "pr-scope-67395-4", "kind": "pr_scope", "last_activity_at": "2026-04-18T01:39:27Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.991, "left_pr_number": 68106, "right_pr_number": 68132, "shared_directories": [ "extensions/lobster/src", "extensions/lobster", "extensions" ], "shared_filenames": [ "extensions/lobster/src/lobster-runner.test.ts", "extensions/lobster/src/lobster-runner.ts" ], "similarity": 0.897, "size_similarity": 0.357 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.798, "left_pr_number": 68106, "right_pr_number": 68313, "shared_directories": [ "extensions/lobster/src", "extensions/lobster", "extensions" ], "shared_filenames": [ "extensions/lobster/src/lobster-runner.test.ts", "extensions/lobster/src/lobster-runner.ts" ], "similarity": 0.851, "size_similarity": 0.95 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.78, "left_pr_number": 68132, "right_pr_number": 68313, "shared_directories": [ "extensions/lobster/src", "extensions/lobster", "extensions" ], "shared_filenames": [ "extensions/lobster/src/lobster-runner.test.ts", "extensions/lobster/src/lobster-runner.ts" ], "similarity": 0.747, "size_similarity": 0.339 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.851, "content_similarity": 0.718, "left_pr_number": 67395, "right_pr_number": 68106, "shared_directories": [ "extensions/lobster/src", "extensions/lobster", "extensions" ], "shared_filenames": [ "extensions/lobster/src/lobster-runner.test.ts", "extensions/lobster/src/lobster-runner.ts" ], "similarity": 0.596, "size_similarity": 0.058 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.851, "content_similarity": 0.715, "left_pr_number": 67395, "right_pr_number": 68313, "shared_directories": [ "extensions/lobster/src", "extensions/lobster", "extensions" ], "shared_filenames": [ "extensions/lobster/src/lobster-runner.test.ts", "extensions/lobster/src/lobster-runner.ts" ], "similarity": 0.593, "size_similarity": 0.055 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.851, "content_similarity": 0.682, "left_pr_number": 67395, "right_pr_number": 68132, "shared_directories": [ "extensions/lobster/src", "extensions/lobster", "extensions" ], "shared_filenames": [ "extensions/lobster/src/lobster-runner.test.ts", "extensions/lobster/src/lobster-runner.ts" ], "similarity": 0.586, "size_similarity": 0.163 } ], "pr_count": 4, "pr_numbers": [ 67395, 68106, 68132, 68313 ], "recent_pr_count": 4, "recent_pr_numbers": [ 67395, 68106, 68132, 68313 ], "representative_pr_number": 68106, "representative_title": "fix(lobster): surface workflow path errors", "representative_url": "https://github.com/openclaw/openclaw/pull/68106", "shared_directories": [ "extensions/lobster/src", "extensions/lobster", "extensions" ], "shared_filenames": [ "extensions/lobster/src/lobster-runner.test.ts", "extensions/lobster/src/lobster-runner.ts" ], "summary": "4 open PRs share weighted file overlap around `extensions/lobster/src/lobster-runner.test.ts`, `extensions/lobster/src/lobster-runner.ts`; representative PR #68106.", "title": "Scope: fix(lobster): surface workflow path errors" }, { "authors": [ "Kailigithub", "frankhli843", "neeravmakwana" ], "average_similarity": 0.555, "cluster_id": "pr-scope-68193-4", "kind": "pr_scope", "last_activity_at": "2026-04-19T13:10:28Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.775, "concentration_similarity": 0.974, "content_similarity": 0.806, "left_pr_number": 68193, "right_pr_number": 68740, "shared_directories": [ "extensions/ollama/src", "extensions/ollama", "extensions" ], "shared_filenames": [ "extensions/ollama/src/provider-models.test.ts", "extensions/ollama/src/provider-models.ts" ], "similarity": 0.786, "size_similarity": 0.641 }, { "breadth_similarity": 0.9, "concentration_similarity": 0.95, "content_similarity": 0.867, "left_pr_number": 68349, "right_pr_number": 68740, "shared_directories": [ "extensions/ollama/src", "docs/providers", "extensions/ollama", "docs", "extensions" ], "shared_filenames": [ "CHANGELOG.md", "docs/providers/ollama.md", "extensions/ollama/src/provider-models.test.ts", "extensions/ollama/src/provider-models.ts" ], "similarity": 0.78, "size_similarity": 0.237 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.975, "content_similarity": 0.701, "left_pr_number": 68193, "right_pr_number": 68349, "shared_directories": [ "extensions/ollama/src", "extensions/ollama", "extensions" ], "shared_filenames": [ "extensions/ollama/src/provider-models.test.ts", "extensions/ollama/src/provider-models.ts" ], "similarity": 0.683, "size_similarity": 0.37 }, { "breadth_similarity": 0.675, "concentration_similarity": 0.6, "content_similarity": 0.52, "left_pr_number": 68193, "right_pr_number": 68762, "shared_directories": [ "extensions/ollama/src", "extensions/huggingface", "extensions/ollama", "src/plugins", "extensions", "src" ], "shared_filenames": [ "extensions/huggingface/models.ts", "extensions/ollama/src/provider-models.ts", "src/plugins/provider-self-hosted-setup.ts" ], "similarity": 0.478, "size_similarity": 0.109 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.575, "content_similarity": 0.265, "left_pr_number": 68740, "right_pr_number": 68762, "shared_directories": [ "extensions/ollama/src", "extensions/ollama", "extensions" ], "shared_filenames": [ "extensions/ollama/src/provider-models.ts" ], "similarity": 0.327, "size_similarity": 0.171 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.625, "content_similarity": 0.23, "left_pr_number": 68349, "right_pr_number": 68762, "shared_directories": [ "extensions/ollama/src", "extensions/ollama", "extensions" ], "shared_filenames": [ "extensions/ollama/src/provider-models.ts" ], "similarity": 0.278, "size_similarity": 0.04 } ], "pr_count": 4, "pr_numbers": [ 68193, 68349, 68740, 68762 ], "recent_pr_count": 4, "recent_pr_numbers": [ 68193, 68349, 68740, 68762 ], "representative_pr_number": 68193, "representative_title": "feat(ollama): detect Gemma 4 as reasoning model and check capabilities", "representative_url": "https://github.com/openclaw/openclaw/pull/68193", "shared_directories": [ "extensions/ollama/src", "extensions/ollama", "extensions", "extensions/huggingface", "docs/providers", "src/plugins", "docs", "src" ], "shared_filenames": [ "extensions/ollama/src/provider-models.ts", "extensions/ollama/src/provider-models.test.ts", "extensions/huggingface/models.ts", "src/plugins/provider-self-hosted-setup.ts", "docs/providers/ollama.md", "CHANGELOG.md" ], "summary": "4 open PRs share weighted file overlap around `extensions/ollama/src/provider-models.ts`, `extensions/ollama/src/provider-models.test.ts`, `extensions/huggingface/models.ts`; representative PR #68193.", "title": "Scope: feat(ollama): detect Gemma 4 as reasoning model and check capabilities" }, { "authors": [ "zeng269" ], "average_similarity": 0.518, "cluster_id": "pr-scope-67331-4", "kind": "pr_scope", "last_activity_at": "2026-04-16T18:13:38Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.448, "concentration_similarity": 0.886, "content_similarity": 0.752, "left_pr_number": 67332, "right_pr_number": 67333, "shared_directories": [ "src/agents/sandbox", "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/apply-patch.test.ts", "src/agents/apply-patch.ts", "src/agents/fs-permission-denied.test.ts", "src/agents/fs-permission-denied.ts", "src/agents/openclaw-tools.owner-authorization.test.ts", "src/agents/openclaw-tools.ts", "src/agents/pi-tools.read.ts", "src/agents/pi-tools.workspace-paths.test.ts", "src/agents/sandbox/fs-bridge-path-safety.ts", "src/agents/sandbox/fs-bridge.ts" ], "similarity": 0.702, "size_similarity": 0.581 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.764, "content_similarity": 0.652, "left_pr_number": 67331, "right_pr_number": 67332, "shared_directories": [ "src/agents/sandbox", "src/agents", "src" ], "shared_filenames": [ "src/agents/apply-patch.test.ts", "src/agents/apply-patch.ts", "src/agents/fs-permission-denied.test.ts", "src/agents/fs-permission-denied.ts", "src/agents/pi-tools.read.ts", "src/agents/pi-tools.workspace-paths.test.ts", "src/agents/sandbox/fs-bridge-path-safety.ts", "src/agents/sandbox/fs-bridge.ts", "src/agents/sandbox/remote-fs-bridge.ts" ], "similarity": 0.615, "size_similarity": 0.415 }, { "breadth_similarity": 0.764, "concentration_similarity": 0.829, "content_similarity": 0.624, "left_pr_number": 67333, "right_pr_number": 67345, "shared_directories": [ "src/agents/sandbox", "src/agents/tools", "src/agents", "src/commands", "src/flows", "test/fixtures", "scripts", "src", "test" ], "shared_filenames": [ "package.json", "scripts/check-claw-code-parity-harness.mjs", "src/agents/apply-patch.test.ts", "src/agents/apply-patch.ts", "src/agents/bash-tools.exec.ts", "src/agents/bash-validation.test.ts", "src/agents/bash-validation.ts", "src/agents/fs-permission-denied.test.ts", "src/agents/fs-permission-denied.ts", "src/agents/openclaw-tools.owner-authorization.test.ts" ], "similarity": 0.61, "size_similarity": 0.364 }, { "breadth_similarity": 0.326, "concentration_similarity": 0.944, "content_similarity": 0.486, "left_pr_number": 67332, "right_pr_number": 67345, "shared_directories": [ "src/agents/sandbox", "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/apply-patch.test.ts", "src/agents/apply-patch.ts", "src/agents/fs-permission-denied.test.ts", "src/agents/fs-permission-denied.ts", "src/agents/openclaw-tools.owner-authorization.test.ts", "src/agents/openclaw-tools.ts", "src/agents/pi-tools.read.ts", "src/agents/pi-tools.workspace-paths.test.ts", "src/agents/sandbox/fs-bridge-path-safety.ts", "src/agents/sandbox/fs-bridge.ts" ], "similarity": 0.452, "size_similarity": 0.212 }, { "breadth_similarity": 0.252, "concentration_similarity": 0.65, "content_similarity": 0.497, "left_pr_number": 67331, "right_pr_number": 67333, "shared_directories": [ "src/agents/sandbox", "src/agents", "src" ], "shared_filenames": [ "src/agents/apply-patch.test.ts", "src/agents/apply-patch.ts", "src/agents/fs-permission-denied.test.ts", "src/agents/fs-permission-denied.ts", "src/agents/pi-tools.read.ts", "src/agents/pi-tools.workspace-paths.test.ts", "src/agents/sandbox/fs-bridge-path-safety.ts", "src/agents/sandbox/fs-bridge.ts", "src/agents/sandbox/remote-fs-bridge.ts" ], "similarity": 0.442, "size_similarity": 0.241 }, { "breadth_similarity": 0.188, "concentration_similarity": 0.82, "content_similarity": 0.304, "left_pr_number": 67331, "right_pr_number": 67345, "shared_directories": [ "src/agents/sandbox", "src/agents", "src" ], "shared_filenames": [ "src/agents/apply-patch.test.ts", "src/agents/apply-patch.ts", "src/agents/fs-permission-denied.test.ts", "src/agents/fs-permission-denied.ts", "src/agents/pi-tools.read.ts", "src/agents/pi-tools.workspace-paths.test.ts", "src/agents/sandbox/fs-bridge-path-safety.ts", "src/agents/sandbox/fs-bridge.ts", "src/agents/sandbox/remote-fs-bridge.ts" ], "similarity": 0.286, "size_similarity": 0.088 } ], "pr_count": 4, "pr_numbers": [ 67331, 67332, 67333, 67345 ], "recent_pr_count": 4, "recent_pr_numbers": [ 67331, 67332, 67333, 67345 ], "representative_pr_number": 67332, "representative_title": "agents: wire task/team tools with owner-only authorization", "representative_url": "https://github.com/openclaw/openclaw/pull/67332", "shared_directories": [ "src/agents/sandbox", "src/agents", "src", "src/agents/tools", "test/fixtures", "src/flows", "src/commands", "test" ], "shared_filenames": [ "src/agents/fs-permission-denied.test.ts", "src/agents/fs-permission-denied.ts", "src/agents/pi-tools.workspace-paths.test.ts", "src/agents/sandbox/fs-bridge-path-safety.ts", "src/agents/apply-patch.test.ts", "src/agents/apply-patch.ts", "src/agents/sandbox/fs-bridge.ts", "src/agents/sandbox/remote-fs-bridge.ts" ], "summary": "4 open PRs share weighted file overlap around `src/agents/fs-permission-denied.test.ts`, `src/agents/fs-permission-denied.ts`, `src/agents/pi-tools.workspace-paths.test.ts`; representative PR #67332.", "title": "Scope: agents: wire task/team tools with owner-only authorization" }, { "authors": [ "oliviareid-svg", "wirjo" ], "average_similarity": 0.497, "cluster_id": "pr-scope-67341-4", "kind": "pr_scope", "last_activity_at": "2026-04-19T09:59:48Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.417, "concentration_similarity": 0.95, "content_similarity": 0.838, "left_pr_number": 68725, "right_pr_number": 68730, "shared_directories": [ "extensions/amazon-bedrock-mantle", "extensions" ], "shared_filenames": [ "extensions/amazon-bedrock-mantle/discovery.ts" ], "similarity": 0.789, "size_similarity": 0.755 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.389, "left_pr_number": 68725, "right_pr_number": 68903, "shared_directories": [ "extensions/amazon-bedrock-mantle", "extensions" ], "shared_filenames": [ "extensions/amazon-bedrock-mantle/discovery.ts" ], "similarity": 0.532, "size_similarity": 0.981 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.95, "content_similarity": 0.427, "left_pr_number": 68730, "right_pr_number": 68903, "shared_directories": [ "extensions/amazon-bedrock-mantle", "extensions" ], "shared_filenames": [ "extensions/amazon-bedrock-mantle/discovery.test.ts", "extensions/amazon-bedrock-mantle/discovery.ts" ], "similarity": 0.52, "size_similarity": 0.741 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.373, "left_pr_number": 67341, "right_pr_number": 68903, "shared_directories": [ "extensions/amazon-bedrock-mantle", "extensions" ], "shared_filenames": [ "extensions/amazon-bedrock-mantle/register.sync.runtime.ts" ], "similarity": 0.478, "size_similarity": 0.611 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.95, "content_similarity": 0.148, "left_pr_number": 67341, "right_pr_number": 68730, "shared_directories": [ "extensions/amazon-bedrock-mantle", "extensions" ], "shared_filenames": [], "similarity": 0.333, "size_similarity": 0.825 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.159, "left_pr_number": 67341, "right_pr_number": 68725, "shared_directories": [ "extensions/amazon-bedrock-mantle", "extensions" ], "shared_filenames": [], "similarity": 0.33, "size_similarity": 0.623 } ], "pr_count": 4, "pr_numbers": [ 67341, 68725, 68730, 68903 ], "recent_pr_count": 4, "recent_pr_numbers": [ 67341, 68725, 68730, 68903 ], "representative_pr_number": 68725, "representative_title": "feat(amazon-bedrock-mantle): add known context windows for open-weight Mantle models", "representative_url": "https://github.com/openclaw/openclaw/pull/68725", "shared_directories": [ "extensions/amazon-bedrock-mantle", "extensions" ], "shared_filenames": [ "extensions/amazon-bedrock-mantle/discovery.ts", "extensions/amazon-bedrock-mantle/discovery.test.ts", "extensions/amazon-bedrock-mantle/register.sync.runtime.ts" ], "summary": "4 open PRs share weighted file overlap around `extensions/amazon-bedrock-mantle/discovery.ts`, `extensions/amazon-bedrock-mantle/discovery.test.ts`, `extensions/amazon-bedrock-mantle/register.sync.runtime.ts`; representative PR #68725.", "title": "Scope: feat(amazon-bedrock-mantle): add known context windows for open-weight Mantle models" }, { "authors": [ "aboimpinto", "anyech", "jasonmakr", "miyago9267" ], "average_similarity": 0.48, "cluster_id": "pr-scope-67662-4", "kind": "pr_scope", "last_activity_at": "2026-04-19T05:53:26Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.339, "concentration_similarity": 0.792, "content_similarity": 0.702, "left_pr_number": 67662, "right_pr_number": 68420, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.incomplete-turn.test.ts", "src/agents/pi-embedded-runner/run.ts" ], "similarity": 0.625, "size_similarity": 0.396 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.599, "content_similarity": 0.452, "left_pr_number": 67662, "right_pr_number": 68453, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.incomplete-turn.test.ts", "src/agents/pi-embedded-runner/run.ts" ], "similarity": 0.511, "size_similarity": 0.599 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.878, "content_similarity": 0.476, "left_pr_number": 68453, "right_pr_number": 68512, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.incomplete-turn.test.ts", "src/agents/pi-embedded-runner/run.ts", "src/agents/pi-embedded-runner/run/incomplete-turn.ts" ], "similarity": 0.482, "size_similarity": 0.364 }, { "breadth_similarity": 0.464, "concentration_similarity": 0.807, "content_similarity": 0.403, "left_pr_number": 68420, "right_pr_number": 68453, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.incomplete-turn.test.ts", "src/agents/pi-embedded-runner/run.ts" ], "similarity": 0.468, "size_similarity": 0.661 }, { "breadth_similarity": 0.929, "concentration_similarity": 0.685, "content_similarity": 0.331, "left_pr_number": 68420, "right_pr_number": 68512, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.incomplete-turn.test.ts", "src/agents/pi-embedded-runner/run.ts" ], "similarity": 0.441, "size_similarity": 0.551 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.476, "content_similarity": 0.367, "left_pr_number": 67662, "right_pr_number": 68512, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.incomplete-turn.test.ts", "src/agents/pi-embedded-runner/run.ts" ], "similarity": 0.351, "size_similarity": 0.218 } ], "pr_count": 4, "pr_numbers": [ 67662, 68420, 68453, 68512 ], "recent_pr_count": 4, "recent_pr_numbers": [ 67662, 68420, 68453, 68512 ], "representative_pr_number": 68420, "representative_title": "Agents/fallback: rotate to fallback model on incomplete-turn exits", "representative_url": "https://github.com/openclaw/openclaw/pull/68420", "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src", "src/agents/pi-embedded-runner/run" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.incomplete-turn.test.ts", "src/agents/pi-embedded-runner/run.ts", "src/agents/pi-embedded-runner/run/incomplete-turn.ts" ], "summary": "4 open PRs share weighted file overlap around `src/agents/pi-embedded-runner/run.incomplete-turn.test.ts`, `src/agents/pi-embedded-runner/run.ts`, `src/agents/pi-embedded-runner/run/incomplete-turn.ts`; representative PR #68420.", "title": "Scope: Agents/fallback: rotate to fallback model on incomplete-turn exits" }, { "authors": [ "kevinheneveld", "moorsecopers99", "rvajustin" ], "average_similarity": 0.444, "cluster_id": "pr-scope-67208-4", "kind": "pr_scope", "last_activity_at": "2026-04-21T17:16:07Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.537, "content_similarity": 0.639, "left_pr_number": 67208, "right_pr_number": 67533, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts", "src/gateway/server-methods/server-methods.test.ts" ], "similarity": 0.605, "size_similarity": 0.537 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.466, "left_pr_number": 67533, "right_pr_number": 68235, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/server-methods.test.ts" ], "similarity": 0.528, "size_similarity": 0.341 }, { "breadth_similarity": 0.268, "concentration_similarity": 0.74, "content_similarity": 0.567, "left_pr_number": 67533, "right_pr_number": 68262, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts", "src/gateway/server-methods/server-methods.test.ts" ], "similarity": 0.475, "size_similarity": 0.096 }, { "breadth_similarity": 0.536, "concentration_similarity": 0.797, "content_similarity": 0.363, "left_pr_number": 67208, "right_pr_number": 68262, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "extensions", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts", "src/gateway/server-methods/server-methods.test.ts" ], "similarity": 0.374, "size_similarity": 0.178 }, { "breadth_similarity": 0.268, "concentration_similarity": 0.74, "content_similarity": 0.429, "left_pr_number": 68235, "right_pr_number": 68262, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/server-methods.test.ts" ], "similarity": 0.369, "size_similarity": 0.033 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.537, "content_similarity": 0.298, "left_pr_number": 67208, "right_pr_number": 68235, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/server-methods.test.ts" ], "similarity": 0.313, "size_similarity": 0.183 } ], "pr_count": 4, "pr_numbers": [ 67208, 67533, 68235, 68262 ], "recent_pr_count": 4, "recent_pr_numbers": [ 67208, 67533, 68235, 68262 ], "representative_pr_number": 67533, "representative_title": "fix(ui): render uploaded images in Control UI chat after history reload", "representative_url": "https://github.com/openclaw/openclaw/pull/67533", "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src", "extensions" ], "shared_filenames": [ "src/gateway/server-methods/server-methods.test.ts", "src/gateway/server-methods/chat.ts" ], "summary": "4 open PRs share weighted file overlap around `src/gateway/server-methods/server-methods.test.ts`, `src/gateway/server-methods/chat.ts`; representative PR #67533.", "title": "Scope: fix(ui): render uploaded images in Control UI chat after history reload" }, { "authors": [ "Sanjays2402", "kagura-agent", "leochame", "solomonneas" ], "average_similarity": 0.443, "cluster_id": "pr-scope-67601-4", "kind": "pr_scope", "last_activity_at": "2026-04-21T13:38:16Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.623, "left_pr_number": 68534, "right_pr_number": 68876, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-phases.test.ts", "extensions/memory-core/src/dreaming-phases.ts" ], "similarity": 0.646, "size_similarity": 0.4 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.957, "content_similarity": 0.432, "left_pr_number": 67601, "right_pr_number": 68534, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-phases.test.ts", "extensions/memory-core/src/dreaming-phases.ts" ], "similarity": 0.447, "size_similarity": 0.453 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.957, "content_similarity": 0.46, "left_pr_number": 67601, "right_pr_number": 68876, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-phases.test.ts", "extensions/memory-core/src/dreaming-phases.ts" ], "similarity": 0.426, "size_similarity": 0.181 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.957, "content_similarity": 0.442, "left_pr_number": 67601, "right_pr_number": 68774, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/short-term-promotion.test.ts", "extensions/memory-core/src/short-term-promotion.ts" ], "similarity": 0.419, "size_similarity": 0.217 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.159, "left_pr_number": 68774, "right_pr_number": 68876, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [], "similarity": 0.386, "size_similarity": 0.834 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.162, "left_pr_number": 68534, "right_pr_number": 68774, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [], "similarity": 0.336, "size_similarity": 0.48 } ], "pr_count": 4, "pr_numbers": [ 67601, 68534, 68774, 68876 ], "recent_pr_count": 4, "recent_pr_numbers": [ 67601, 68534, 68774, 68876 ], "representative_pr_number": 68876, "representative_title": "fix(memory): filter cron-triggered sessions and NO_REPLY sentinels from dreaming corpus (addresses #68449)", "representative_url": "https://github.com/openclaw/openclaw/pull/68876", "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming-phases.test.ts", "extensions/memory-core/src/dreaming-phases.ts", "extensions/memory-core/src/short-term-promotion.test.ts", "extensions/memory-core/src/short-term-promotion.ts" ], "summary": "4 open PRs share weighted file overlap around `extensions/memory-core/src/dreaming-phases.test.ts`, `extensions/memory-core/src/dreaming-phases.ts`, `extensions/memory-core/src/short-term-promotion.test.ts`; representative PR #68876.", "title": "Scope: fix(memory): filter cron-triggered sessions and NO_REPLY sentinels from dreaming corpus (addresses #68449)" }, { "authors": [ "MoerAI", "huiwen01", "mvanhorn" ], "average_similarity": 0.424, "cluster_id": "pr-scope-37545-12", "kind": "pr_scope", "last_activity_at": "2026-04-18T17:19:37Z", "outside_window_prs": [ { "additions": 558, "author": "JinYang88", "changed_files": 4, "created_at": "2026-03-06T09:15:29Z", "deletions": 121, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37545/files", "html_url": "https://github.com/openclaw/openclaw/pull/37545", "merged": false, "number": 37545, "state": "open", "title": "feat(feishu): add thinking panel with collapsible reasoning and tool tracking", "updated_at": "2026-04-19T04:33:50Z" }, { "additions": 68, "author": "allan0509", "changed_files": 1, "created_at": "2026-03-24T08:04:03Z", "deletions": 38, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53534/files", "html_url": "https://github.com/openclaw/openclaw/pull/53534", "merged": false, "number": 53534, "state": "open", "title": "fix(feishu): refine streaming card delivery", "updated_at": "2026-03-24T20:15:30Z" }, { "additions": 21, "author": "rottenpen", "changed_files": 3, "created_at": "2026-03-24T16:11:29Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53787/files", "html_url": "https://github.com/openclaw/openclaw/pull/53787", "merged": false, "number": 53787, "state": "open", "title": "fix(feishu): guard against undefined receiveIdType in resolveFeishuSendTarget", "updated_at": "2026-03-24T20:15:29Z" }, { "additions": 9, "author": "Vicky-v7", "changed_files": 1, "created_at": "2026-03-26T04:47:46Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/54898/files", "html_url": "https://github.com/openclaw/openclaw/pull/54898", "merged": false, "number": 54898, "state": "open", "title": "fix(feishu): strip leaked thinking content from streaming output", "updated_at": "2026-04-21T13:30:13Z" }, { "additions": 154, "author": "Vicky-v7", "changed_files": 4, "created_at": "2026-03-26T04:48:27Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/54899/files", "html_url": "https://github.com/openclaw/openclaw/pull/54899", "merged": false, "number": 54899, "state": "open", "title": "fix(feishu): sanitize markdown in streaming cards to prevent truncation", "updated_at": "2026-04-21T13:30:25Z" }, { "additions": 199, "author": "Vicky-v7", "changed_files": 4, "created_at": "2026-04-02T15:43:51Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/59771/files", "html_url": "https://github.com/openclaw/openclaw/pull/59771", "merged": false, "number": 59771, "state": "open", "title": "Fix Feishu streaming recovery after transient reply errors", "updated_at": "2026-04-21T13:40:17Z" }, { "additions": 111, "author": "TaoXieSZ", "changed_files": 7, "created_at": "2026-04-10T02:21:25Z", "deletions": 204, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64027/files", "html_url": "https://github.com/openclaw/openclaw/pull/64027", "merged": false, "number": 64027, "state": "open", "title": "feat(feishu): support in-place card content update on option click", "updated_at": "2026-04-11T14:02:20Z" }, { "additions": 75, "author": "TaoXieSZ", "changed_files": 3, "created_at": "2026-04-11T12:55:33Z", "deletions": 157, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64805/files", "html_url": "https://github.com/openclaw/openclaw/pull/64805", "merged": false, "number": 64805, "state": "open", "title": "feat(feishu): add token and context usage to streaming card footer", "updated_at": "2026-04-11T14:08:30Z" }, { "additions": 1, "author": "SARAMALI15792", "changed_files": 1, "created_at": "2026-04-13T19:50:45Z", "deletions": 10, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66148/files", "html_url": "https://github.com/openclaw/openclaw/pull/66148", "merged": false, "number": 66148, "state": "open", "title": "fix(feishu): remove streaming card update throttle to prevent duplicates", "updated_at": "2026-04-14T02:33:20Z" } ], "pairwise": [ { "breadth_similarity": 0.714, "concentration_similarity": 1.0, "content_similarity": 0.872, "left_pr_number": 64027, "right_pr_number": 64805, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/bot.ts", "extensions/feishu/src/monitor.comment.test.ts", "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.842, "size_similarity": 0.737 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.901, "left_pr_number": 53534, "right_pr_number": 66148, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/streaming-card.ts" ], "similarity": 0.796, "size_similarity": 0.104 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.653, "left_pr_number": 53534, "right_pr_number": 54899, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/streaming-card.ts" ], "similarity": 0.67, "size_similarity": 0.671 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.561, "left_pr_number": 54899, "right_pr_number": 59771, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts", "extensions/feishu/src/streaming-card.ts" ], "similarity": 0.657, "size_similarity": 0.763 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.649, "left_pr_number": 53534, "right_pr_number": 59771, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/streaming-card.ts" ], "similarity": 0.643, "size_similarity": 0.512 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.651, "left_pr_number": 67783, "right_pr_number": 68107, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/bot.ts", "extensions/feishu/src/reply-dispatcher.test.ts", "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.637, "size_similarity": 0.29 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.518, "left_pr_number": 54898, "right_pr_number": 68491, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.603, "size_similarity": 0.6 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.991, "content_similarity": 0.74, "left_pr_number": 37545, "right_pr_number": 54898, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.595, "size_similarity": 0.015 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.991, "content_similarity": 0.614, "left_pr_number": 37545, "right_pr_number": 64805, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.581, "size_similarity": 0.342 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.991, "content_similarity": 0.717, "left_pr_number": 37545, "right_pr_number": 68491, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.578, "size_similarity": 0.009 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.464, "left_pr_number": 59771, "right_pr_number": 68107, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.test.ts", "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.575, "size_similarity": 0.749 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.464, "left_pr_number": 64805, "right_pr_number": 68107, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/bot.ts", "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.575, "size_similarity": 0.668 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.542, "left_pr_number": 53787, "right_pr_number": 68491, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.53, "size_similarity": 0.231 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.991, "content_similarity": 0.56, "left_pr_number": 37545, "right_pr_number": 68107, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.526, "size_similarity": 0.228 }, { "breadth_similarity": 0.411, "concentration_similarity": 0.991, "content_similarity": 0.515, "left_pr_number": 37545, "right_pr_number": 64027, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.521, "size_similarity": 0.464 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.559, "left_pr_number": 64805, "right_pr_number": 68491, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.512, "size_similarity": 0.026 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.553, "left_pr_number": 54899, "right_pr_number": 66148, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/streaming-card.ts" ], "similarity": 0.51, "size_similarity": 0.07 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.328, "left_pr_number": 59771, "right_pr_number": 64805, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.501, "size_similarity": 0.892 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.536, "left_pr_number": 68107, "right_pr_number": 68491, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.498, "size_similarity": 0.039 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.531, "left_pr_number": 59771, "right_pr_number": 66148, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/streaming-card.ts" ], "similarity": 0.492, "size_similarity": 0.053 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.514, "left_pr_number": 54898, "right_pr_number": 64805, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.483, "size_similarity": 0.043 }, { "breadth_similarity": 0.714, "concentration_similarity": 1.0, "content_similarity": 0.409, "left_pr_number": 64027, "right_pr_number": 68107, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/bot.ts", "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.482, "size_similarity": 0.492 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.405, "left_pr_number": 64805, "right_pr_number": 67783, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/bot.ts", "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.45, "size_similarity": 0.194 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.991, "content_similarity": 0.461, "left_pr_number": 37545, "right_pr_number": 67783, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.445, "size_similarity": 0.066 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.991, "content_similarity": 0.408, "left_pr_number": 37545, "right_pr_number": 59771, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.443, "size_similarity": 0.305 }, { "breadth_similarity": 0.571, "concentration_similarity": 1.0, "content_similarity": 0.473, "left_pr_number": 64027, "right_pr_number": 68491, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.441, "size_similarity": 0.019 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.215, "left_pr_number": 54899, "right_pr_number": 68107, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.435, "size_similarity": 0.981 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.355, "left_pr_number": 59771, "right_pr_number": 67783, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.test.ts", "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.431, "size_similarity": 0.217 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.434, "left_pr_number": 54898, "right_pr_number": 68107, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.43, "size_similarity": 0.065 }, { "breadth_similarity": 0.786, "concentration_similarity": 1.0, "content_similarity": 0.282, "left_pr_number": 59771, "right_pr_number": 64027, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.424, "size_similarity": 0.657 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.254, "left_pr_number": 54899, "right_pr_number": 64805, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.417, "size_similarity": 0.681 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.422, "left_pr_number": 54898, "right_pr_number": 59771, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.415, "size_similarity": 0.048 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.416, "left_pr_number": 59771, "right_pr_number": 68491, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.408, "size_similarity": 0.029 }, { "breadth_similarity": 0.786, "concentration_similarity": 1.0, "content_similarity": 0.369, "left_pr_number": 64027, "right_pr_number": 67783, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/bot.ts", "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.408, "size_similarity": 0.143 }, { "breadth_similarity": 0.571, "concentration_similarity": 1.0, "content_similarity": 0.415, "left_pr_number": 54898, "right_pr_number": 64027, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.402, "size_similarity": 0.032 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.362, "left_pr_number": 54898, "right_pr_number": 67783, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.399, "size_similarity": 0.222 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.316, "left_pr_number": 53787, "right_pr_number": 68107, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.396, "size_similarity": 0.168 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.315, "left_pr_number": 53787, "right_pr_number": 54898, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.395, "size_similarity": 0.385 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.32, "left_pr_number": 53787, "right_pr_number": 64805, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.39, "size_similarity": 0.112 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.146, "left_pr_number": 54898, "right_pr_number": 66148, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.389, "size_similarity": 0.909 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.991, "content_similarity": 0.4, "left_pr_number": 37545, "right_pr_number": 53787, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.385, "size_similarity": 0.038 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.218, "left_pr_number": 53787, "right_pr_number": 67783, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.377, "size_similarity": 0.578 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.357, "left_pr_number": 54898, "right_pr_number": 54899, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.372, "size_similarity": 0.063 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.333, "left_pr_number": 67783, "right_pr_number": 68491, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.365, "size_similarity": 0.133 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.991, "content_similarity": 0.306, "left_pr_number": 37545, "right_pr_number": 54899, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.361, "size_similarity": 0.233 }, { "breadth_similarity": 0.786, "concentration_similarity": 1.0, "content_similarity": 0.223, "left_pr_number": 54899, "right_pr_number": 64027, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.36, "size_similarity": 0.502 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.256, "left_pr_number": 53787, "right_pr_number": 59771, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.336, "size_similarity": 0.126 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.149, "left_pr_number": 66148, "right_pr_number": 68491, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.336, "size_similarity": 0.545 }, { "breadth_similarity": 0.714, "concentration_similarity": 1.0, "content_similarity": 0.28, "left_pr_number": 53787, "right_pr_number": 64027, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.33, "size_similarity": 0.083 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.193, "left_pr_number": 54899, "right_pr_number": 67783, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.327, "size_similarity": 0.285 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.145, "left_pr_number": 53534, "right_pr_number": 68107, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.321, "size_similarity": 0.684 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.17, "left_pr_number": 53534, "right_pr_number": 64805, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.304, "size_similarity": 0.457 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.241, "left_pr_number": 54899, "right_pr_number": 68491, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.287, "size_similarity": 0.038 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.174, "left_pr_number": 53787, "right_pr_number": 54899, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts" ], "similarity": 0.284, "size_similarity": 0.165 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.138, "left_pr_number": 53534, "right_pr_number": 67783, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.273, "size_similarity": 0.425 }, { "breadth_similarity": 0.571, "concentration_similarity": 1.0, "content_similarity": 0.162, "left_pr_number": 53534, "right_pr_number": 64027, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.271, "size_similarity": 0.337 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.127, "left_pr_number": 53787, "right_pr_number": 66148, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.269, "size_similarity": 0.423 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.149, "left_pr_number": 53534, "right_pr_number": 54898, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.268, "size_similarity": 0.094 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.152, "left_pr_number": 53534, "right_pr_number": 68491, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.265, "size_similarity": 0.057 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.129, "left_pr_number": 53534, "right_pr_number": 53787, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.244, "size_similarity": 0.245 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.136, "left_pr_number": 66148, "right_pr_number": 67783, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.244, "size_similarity": 0.244 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.167, "left_pr_number": 64805, "right_pr_number": 66148, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.24, "size_similarity": 0.047 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.142, "left_pr_number": 66148, "right_pr_number": 68107, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.227, "size_similarity": 0.071 }, { "breadth_similarity": 0.571, "concentration_similarity": 1.0, "content_similarity": 0.159, "left_pr_number": 64027, "right_pr_number": 66148, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.224, "size_similarity": 0.035 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.991, "content_similarity": 0.166, "left_pr_number": 37545, "right_pr_number": 53534, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.214, "size_similarity": 0.156 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.991, "content_similarity": 0.162, "left_pr_number": 37545, "right_pr_number": 66148, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.191, "size_similarity": 0.016 } ], "pr_count": 12, "pr_numbers": [ 37545, 53534, 53787, 54898, 54899, 59771, 64027, 64805, 66148, 67783, 68107, 68491 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67783, 68107, 68491 ], "representative_pr_number": 59771, "representative_title": "Fix Feishu streaming recovery after transient reply errors", "representative_url": "https://github.com/openclaw/openclaw/pull/59771", "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/reply-dispatcher.ts", "extensions/feishu/src/streaming-card.ts", "extensions/feishu/src/bot.ts", "extensions/feishu/src/reply-dispatcher.test.ts", "extensions/feishu/src/monitor.comment.test.ts" ], "summary": "12 open PRs share weighted file overlap around `extensions/feishu/src/reply-dispatcher.ts`, `extensions/feishu/src/streaming-card.ts`, `extensions/feishu/src/bot.ts`; representative PR #59771.", "title": "Scope: Fix Feishu streaming recovery after transient reply errors" }, { "authors": [ "Bartok9", "leaderlemon", "neo1027144-creator" ], "average_similarity": 0.45, "cluster_id": "pr-scope-37639-10", "kind": "pr_scope", "last_activity_at": "2026-04-17T08:44:36Z", "outside_window_prs": [ { "additions": 41, "author": "epanonymous", "changed_files": 4, "created_at": "2026-03-06T10:30:26Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37639/files", "html_url": "https://github.com/openclaw/openclaw/pull/37639", "merged": false, "number": 37639, "state": "open", "title": "feat: expose background exec processes in sessions.list", "updated_at": "2026-04-20T04:36:26Z" }, { "additions": 25, "author": "SeashoreShi", "changed_files": 1, "created_at": "2026-03-25T12:11:07Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/54449/files", "html_url": "https://github.com/openclaw/openclaw/pull/54449", "merged": false, "number": 54449, "state": "open", "title": "fix(gateway): avoid stale terminal subagent status in disk-merged session views", "updated_at": "2026-04-21T09:26:18Z" }, { "additions": 115, "author": "coderredlab", "changed_files": 1, "created_at": "2026-04-02T05:04:23Z", "deletions": 42, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/59436/files", "html_url": "https://github.com/openclaw/openclaw/pull/59436", "merged": false, "number": 59436, "state": "open", "title": "perf(gateway): apply limit before building session rows and index child lookups", "updated_at": "2026-04-19T10:31:11Z" }, { "additions": 144, "author": "neofdezf-cloud", "changed_files": 2, "created_at": "2026-04-11T19:53:23Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64988/files", "html_url": "https://github.com/openclaw/openclaw/pull/64988", "merged": false, "number": 64988, "state": "open", "title": "feat(gateway): infer provider from configured model families", "updated_at": "2026-04-11T20:03:48Z" }, { "additions": 63, "author": "w-sss", "changed_files": 2, "created_at": "2026-04-12T04:38:30Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65178/files", "html_url": "https://github.com/openclaw/openclaw/pull/65178", "merged": false, "number": 65178, "state": "open", "title": "fix: case-insensitive model lookup for image support resolution", "updated_at": "2026-04-12T04:42:48Z" }, { "additions": 74, "author": "hondaya01", "changed_files": 2, "created_at": "2026-04-12T06:40:40Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65211/files", "html_url": "https://github.com/openclaw/openclaw/pull/65211", "merged": false, "number": 65211, "state": "open", "title": "fix: include user-configured provider models in gateway catalog for capability checks", "updated_at": "2026-04-12T07:14:11Z" }, { "additions": 4, "author": "suboss87", "changed_files": 1, "created_at": "2026-04-14T12:46:21Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66544/files", "html_url": "https://github.com/openclaw/openclaw/pull/66544", "merged": false, "number": 66544, "state": "open", "title": "fix(gateway): exclude heartbeat sender ID from session display name", "updated_at": "2026-04-19T00:33:48Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.899, "left_pr_number": 65178, "right_pr_number": 68047, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.test.ts", "src/gateway/session-utils.ts" ], "similarity": 0.912, "size_similarity": 0.882 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.875, "content_similarity": 0.838, "left_pr_number": 65178, "right_pr_number": 67768, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.test.ts", "src/gateway/session-utils.ts" ], "similarity": 0.83, "size_similarity": 0.941 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.875, "content_similarity": 0.78, "left_pr_number": 67768, "right_pr_number": 68047, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.test.ts", "src/gateway/session-utils.ts" ], "similarity": 0.789, "size_similarity": 0.938 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.821, "left_pr_number": 67766, "right_pr_number": 68047, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.test.ts", "src/gateway/session-utils.ts" ], "similarity": 0.775, "size_similarity": 0.335 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.786, "left_pr_number": 65178, "right_pr_number": 67766, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.test.ts", "src/gateway/session-utils.ts" ], "similarity": 0.757, "size_similarity": 0.38 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.748, "left_pr_number": 54449, "right_pr_number": 59436, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.701, "size_similarity": 0.185 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.875, "content_similarity": 0.757, "left_pr_number": 67766, "right_pr_number": 67768, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.test.ts", "src/gateway/session-utils.ts" ], "similarity": 0.686, "size_similarity": 0.358 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.596, "left_pr_number": 54449, "right_pr_number": 66544, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.593, "size_similarity": 0.172 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.572, "left_pr_number": 59436, "right_pr_number": 66544, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.555, "size_similarity": 0.032 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.32, "left_pr_number": 59436, "right_pr_number": 64988, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.488, "size_similarity": 0.924 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.3, "left_pr_number": 65211, "right_pr_number": 68047, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.474, "size_similarity": 0.759 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.415, "left_pr_number": 59436, "right_pr_number": 68047, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.473, "size_similarity": 0.382 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.886, "content_similarity": 0.417, "left_pr_number": 37639, "right_pr_number": 54449, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.464, "size_similarity": 0.659 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.358, "left_pr_number": 64988, "right_pr_number": 68047, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.463, "size_similarity": 0.414 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.279, "left_pr_number": 59436, "right_pr_number": 67766, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.452, "size_similarity": 0.877 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.353, "left_pr_number": 54449, "right_pr_number": 68047, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.445, "size_similarity": 0.483 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.245, "left_pr_number": 64988, "right_pr_number": 67766, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.443, "size_similarity": 0.81 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.886, "content_similarity": 0.335, "left_pr_number": 37639, "right_pr_number": 68047, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.431, "size_similarity": 0.733 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.281, "left_pr_number": 64988, "right_pr_number": 65178, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.417, "size_similarity": 0.469 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.886, "content_similarity": 0.43, "left_pr_number": 37639, "right_pr_number": 59436, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.416, "size_similarity": 0.28 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.183, "left_pr_number": 65178, "right_pr_number": 65211, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.407, "size_similarity": 0.861 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.299, "left_pr_number": 54449, "right_pr_number": 65178, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.398, "size_similarity": 0.426 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.298, "left_pr_number": 59436, "right_pr_number": 65178, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.398, "size_similarity": 0.433 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.371, "left_pr_number": 66544, "right_pr_number": 68047, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.397, "size_similarity": 0.083 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.239, "left_pr_number": 65211, "right_pr_number": 67766, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.383, "size_similarity": 0.441 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.257, "left_pr_number": 59436, "right_pr_number": 65211, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.381, "size_similarity": 0.503 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.886, "content_similarity": 0.279, "left_pr_number": 37639, "right_pr_number": 65178, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.378, "size_similarity": 0.647 }, { "breadth_similarity": 0.708, "concentration_similarity": 0.989, "content_similarity": 0.213, "left_pr_number": 37639, "right_pr_number": 67768, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.372, "size_similarity": 0.688 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.886, "content_similarity": 0.385, "left_pr_number": 37639, "right_pr_number": 66544, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.36, "size_similarity": 0.114 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.258, "left_pr_number": 54449, "right_pr_number": 65211, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.36, "size_similarity": 0.367 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.183, "left_pr_number": 64988, "right_pr_number": 65211, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.36, "size_similarity": 0.545 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.326, "left_pr_number": 64988, "right_pr_number": 66544, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.359, "size_similarity": 0.034 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.282, "left_pr_number": 54449, "right_pr_number": 64988, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.352, "size_similarity": 0.2 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.875, "content_similarity": 0.263, "left_pr_number": 64988, "right_pr_number": 67768, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.352, "size_similarity": 0.441 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.886, "content_similarity": 0.241, "left_pr_number": 37639, "right_pr_number": 65211, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.338, "size_similarity": 0.557 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.265, "left_pr_number": 54449, "right_pr_number": 67766, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.335, "size_similarity": 0.162 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.875, "content_similarity": 0.263, "left_pr_number": 59436, "right_pr_number": 67768, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.33, "size_similarity": 0.408 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.267, "left_pr_number": 65178, "right_pr_number": 66544, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.323, "size_similarity": 0.074 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.875, "content_similarity": 0.136, "left_pr_number": 65211, "right_pr_number": 67768, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.319, "size_similarity": 0.81 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.875, "content_similarity": 0.224, "left_pr_number": 54449, "right_pr_number": 67768, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.31, "size_similarity": 0.453 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.886, "content_similarity": 0.253, "left_pr_number": 37639, "right_pr_number": 64988, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.309, "size_similarity": 0.303 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.25, "left_pr_number": 66544, "right_pr_number": 67766, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.304, "size_similarity": 0.028 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.886, "content_similarity": 0.249, "left_pr_number": 37639, "right_pr_number": 67766, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.297, "size_similarity": 0.246 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.23, "left_pr_number": 65211, "right_pr_number": 66544, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.296, "size_similarity": 0.063 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.875, "content_similarity": 0.235, "left_pr_number": 66544, "right_pr_number": 67768, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts" ], "similarity": 0.262, "size_similarity": 0.078 } ], "pr_count": 10, "pr_numbers": [ 37639, 54449, 59436, 64988, 65178, 65211, 66544, 67766, 67768, 68047 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67766, 67768, 68047 ], "representative_pr_number": 68047, "representative_title": "fix(gateway): extend image-support name fallback to direct anthropic provider", "representative_url": "https://github.com/openclaw/openclaw/pull/68047", "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.ts", "src/gateway/session-utils.test.ts" ], "summary": "10 open PRs share weighted file overlap around `src/gateway/session-utils.ts`, `src/gateway/session-utils.test.ts`; representative PR #68047.", "title": "Scope: fix(gateway): extend image-support name fallback to direct anthropic provider" }, { "authors": [ "Sanjays2402", "skernelx", "vvitovec" ], "average_similarity": 0.467, "cluster_id": "pr-scope-53281-9", "kind": "pr_scope", "last_activity_at": "2026-04-21T03:54:13Z", "outside_window_prs": [ { "additions": 85, "author": "mrbob-git", "changed_files": 5, "created_at": "2026-03-24T01:48:42Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53281/files", "html_url": "https://github.com/openclaw/openclaw/pull/53281", "merged": false, "number": 53281, "state": "open", "title": "agents: clarify attachAs.mountPath guidance for subagent attachments", "updated_at": "2026-03-24T20:15:31Z" }, { "additions": 50, "author": "w-sss", "changed_files": 6, "created_at": "2026-03-24T11:05:59Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53631/files", "html_url": "https://github.com/openclaw/openclaw/pull/53631", "merged": false, "number": 53631, "state": "open", "title": "fix(telegram): improve 403 bot not member/blocked error messages", "updated_at": "2026-03-24T20:15:30Z" }, { "additions": 36, "author": "w-sss", "changed_files": 5, "created_at": "2026-03-24T11:06:07Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53632/files", "html_url": "https://github.com/openclaw/openclaw/pull/53632", "merged": false, "number": 53632, "state": "open", "title": "fix(browser): add missing logWarn imports", "updated_at": "2026-03-24T20:15:29Z" }, { "additions": 77, "author": "grtninja", "changed_files": 11, "created_at": "2026-04-11T11:50:44Z", "deletions": 31, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64787/files", "html_url": "https://github.com/openclaw/openclaw/pull/64787", "merged": false, "number": 64787, "state": "open", "title": "fix: ignore auto-filled streamTo for subagent spawns", "updated_at": "2026-04-13T19:57:19Z" }, { "additions": 12, "author": "damselem", "changed_files": 2, "created_at": "2026-04-12T09:37:25Z", "deletions": 13, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65282/files", "html_url": "https://github.com/openclaw/openclaw/pull/65282", "merged": false, "number": 65282, "state": "open", "title": "fix(agents): ignore ACP-only streamTo on subagent sessions_spawn", "updated_at": "2026-04-13T18:32:22Z" }, { "additions": 61, "author": "Gi99lin", "changed_files": 2, "created_at": "2026-04-14T17:56:46Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66720/files", "html_url": "https://github.com/openclaw/openclaw/pull/66720", "merged": false, "number": 66720, "state": "open", "title": "fix: strip runtime-specific properties from sessions_spawn tool schema for provider compatibility", "updated_at": "2026-04-15T08:41:26Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.946, "left_pr_number": 69170, "right_pr_number": 69203, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.937, "size_similarity": 0.833 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.893, "left_pr_number": 68397, "right_pr_number": 69203, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.817, "size_similarity": 0.283 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.845, "left_pr_number": 68397, "right_pr_number": 69170, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.792, "size_similarity": 0.34 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.705, "left_pr_number": 65282, "right_pr_number": 68397, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.714, "size_similarity": 0.472 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.887, "content_similarity": 0.625, "left_pr_number": 66720, "right_pr_number": 68397, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.685, "size_similarity": 0.855 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.518, "left_pr_number": 65282, "right_pr_number": 69170, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.621, "size_similarity": 0.72 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.52, "left_pr_number": 65282, "right_pr_number": 69203, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.604, "size_similarity": 0.6 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.887, "content_similarity": 0.573, "left_pr_number": 65282, "right_pr_number": 66720, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.581, "size_similarity": 0.403 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.821, "content_similarity": 0.503, "left_pr_number": 53631, "right_pr_number": 53632, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/subagent-announce.ts", "src/agents/subagent-registry.ts", "src/agents/subagent-registry.types.ts", "src/agents/subagent-spawn.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.576, "size_similarity": 0.717 }, { "breadth_similarity": 0.7, "concentration_similarity": 0.744, "content_similarity": 0.507, "left_pr_number": 53632, "right_pr_number": 66720, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.554, "size_similarity": 0.613 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.495, "content_similarity": 0.602, "left_pr_number": 53281, "right_pr_number": 65282, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.523, "size_similarity": 0.269 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.566, "content_similarity": 0.442, "left_pr_number": 53631, "right_pr_number": 66720, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.516, "size_similarity": 0.855 }, { "breadth_similarity": 0.602, "concentration_similarity": 0.978, "content_similarity": 0.348, "left_pr_number": 53281, "right_pr_number": 64787, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.482, "size_similarity": 0.861 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.495, "content_similarity": 0.459, "left_pr_number": 53281, "right_pr_number": 68397, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.468, "size_similarity": 0.57 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.887, "content_similarity": 0.413, "left_pr_number": 66720, "right_pr_number": 69203, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.445, "size_similarity": 0.242 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.887, "content_similarity": 0.387, "left_pr_number": 66720, "right_pr_number": 69170, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.434, "size_similarity": 0.29 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.632, "content_similarity": 0.348, "left_pr_number": 53632, "right_pr_number": 68397, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.428, "size_similarity": 0.717 }, { "breadth_similarity": 0.216, "concentration_similarity": 0.472, "content_similarity": 0.433, "left_pr_number": 64787, "right_pr_number": 68397, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.422, "size_similarity": 0.491 }, { "breadth_similarity": 0.216, "concentration_similarity": 0.472, "content_similarity": 0.486, "left_pr_number": 64787, "right_pr_number": 65282, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.42, "size_similarity": 0.231 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.453, "content_similarity": 0.303, "left_pr_number": 53631, "right_pr_number": 68397, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.418, "size_similarity": 1.0 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.495, "content_similarity": 0.442, "left_pr_number": 53281, "right_pr_number": 69170, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.4, "size_similarity": 0.194 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.495, "content_similarity": 0.442, "left_pr_number": 53281, "right_pr_number": 69203, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.395, "size_similarity": 0.161 }, { "breadth_similarity": 0.533, "concentration_similarity": 0.608, "content_similarity": 0.298, "left_pr_number": 53281, "right_pr_number": 66720, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.392, "size_similarity": 0.667 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.632, "content_similarity": 0.287, "left_pr_number": 53632, "right_pr_number": 65282, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.376, "size_similarity": 0.658 }, { "breadth_similarity": 0.917, "concentration_similarity": 0.958, "content_similarity": 0.194, "left_pr_number": 53281, "right_pr_number": 53631, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/subagent-spawn.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.361, "size_similarity": 0.57 }, { "breadth_similarity": 0.341, "concentration_similarity": 0.585, "content_similarity": 0.284, "left_pr_number": 64787, "right_pr_number": 66720, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.348, "size_similarity": 0.574 }, { "breadth_similarity": 0.216, "concentration_similarity": 0.472, "content_similarity": 0.399, "left_pr_number": 64787, "right_pr_number": 69203, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.345, "size_similarity": 0.139 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.863, "content_similarity": 0.223, "left_pr_number": 53281, "right_pr_number": 53632, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/subagent-spawn.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.344, "size_similarity": 0.409 }, { "breadth_similarity": 0.216, "concentration_similarity": 0.472, "content_similarity": 0.388, "left_pr_number": 64787, "right_pr_number": 69170, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.342, "size_similarity": 0.167 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.632, "content_similarity": 0.293, "left_pr_number": 53632, "right_pr_number": 69203, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.341, "size_similarity": 0.395 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.632, "content_similarity": 0.274, "left_pr_number": 53632, "right_pr_number": 69170, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.339, "size_similarity": 0.474 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.453, "content_similarity": 0.25, "left_pr_number": 53631, "right_pr_number": 65282, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.302, "size_similarity": 0.472 }, { "breadth_similarity": 0.648, "concentration_similarity": 0.981, "content_similarity": 0.146, "left_pr_number": 53631, "right_pr_number": 64787, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.29, "size_similarity": 0.491 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.453, "content_similarity": 0.255, "left_pr_number": 53631, "right_pr_number": 69203, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.277, "size_similarity": 0.283 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.453, "content_similarity": 0.239, "left_pr_number": 53631, "right_pr_number": 69170, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.274, "size_similarity": 0.34 }, { "breadth_similarity": 0.477, "concentration_similarity": 0.841, "content_similarity": 0.168, "left_pr_number": 53632, "right_pr_number": 64787, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts" ], "similarity": 0.26, "size_similarity": 0.352 } ], "pr_count": 9, "pr_numbers": [ 53281, 53631, 53632, 64787, 65282, 66720, 68397, 69170, 69203 ], "recent_pr_count": 3, "recent_pr_numbers": [ 68397, 69170, 69203 ], "representative_pr_number": 68397, "representative_title": "fix(sessions_spawn): silently strip ACP-only fields for runtime=subagent", "representative_url": "https://github.com/openclaw/openclaw/pull/68397", "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/sessions-spawn-tool.ts", "src/agents/tools/sessions-spawn-tool.test.ts", "src/agents/subagent-spawn.ts", "src/agents/subagent-registry.types.ts", "src/agents/subagent-registry.ts", "src/agents/subagent-announce.ts" ], "summary": "9 open PRs share weighted file overlap around `src/agents/tools/sessions-spawn-tool.ts`, `src/agents/tools/sessions-spawn-tool.test.ts`, `src/agents/subagent-spawn.ts`; representative PR #68397.", "title": "Scope: fix(sessions_spawn): silently strip ACP-only fields for runtime=subagent" }, { "authors": [ "Lucenx9", "jguin", "nufnaf" ], "average_similarity": 0.4, "cluster_id": "pr-scope-53782-9", "kind": "pr_scope", "last_activity_at": "2026-04-19T10:53:22Z", "outside_window_prs": [ { "additions": 85, "author": "ernestodeoliveira", "changed_files": 2, "created_at": "2026-03-24T16:05:18Z", "deletions": 10, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53782/files", "html_url": "https://github.com/openclaw/openclaw/pull/53782", "merged": false, "number": 53782, "state": "open", "title": "fix(discord): graceful degradation when account missing Message Content Intent", "updated_at": "2026-03-24T20:15:29Z" }, { "additions": 110, "author": "qinyao-he", "changed_files": 3, "created_at": "2026-04-07T20:16:08Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/62689/files", "html_url": "https://github.com/openclaw/openclaw/pull/62689", "merged": false, "number": 62689, "state": "open", "title": "[AI-assisted] fix(discord): normalize channel: prefix in ACP thread binding REST lookups", "updated_at": "2026-04-11T03:55:40Z" }, { "additions": 62, "author": "whydoineedausername-huh", "changed_files": 2, "created_at": "2026-04-10T18:14:16Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64446/files", "html_url": "https://github.com/openclaw/openclaw/pull/64446", "merged": false, "number": 64446, "state": "open", "title": "fix(discord): normalize explicit parent channel ids for child bindings", "updated_at": "2026-04-10T19:15:29Z" }, { "additions": 65, "author": "BenediktSchackenberg", "changed_files": 3, "created_at": "2026-04-11T10:57:21Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64768/files", "html_url": "https://github.com/openclaw/openclaw/pull/64768", "merged": false, "number": 64768, "state": "open", "title": "fix(discord): disconnect gateway before missing-id startup throw", "updated_at": "2026-04-11T11:14:32Z" }, { "additions": 33, "author": "janicduplessis", "changed_files": 2, "created_at": "2026-04-12T02:54:34Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65123/files", "html_url": "https://github.com/openclaw/openclaw/pull/65123", "merged": false, "number": 65123, "state": "open", "title": "fix(discord): preserve explicit target kind when parsing recipients", "updated_at": "2026-04-13T01:59:39Z" }, { "additions": 62, "author": "Hou-Yufan", "changed_files": 2, "created_at": "2026-04-12T15:18:31Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65421/files", "html_url": "https://github.com/openclaw/openclaw/pull/65421", "merged": false, "number": 65421, "state": "open", "title": "fix(discord): add message_sending plugin hook to reply delivery path", "updated_at": "2026-04-13T02:18:32Z" } ], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.826, "left_pr_number": 67665, "right_pr_number": 67867, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/thread-bindings.discord-api.test.ts", "extensions/discord/src/monitor/thread-bindings.discord-api.ts" ], "similarity": 0.832, "size_similarity": 0.8 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.684, "content_similarity": 0.822, "left_pr_number": 62689, "right_pr_number": 67665, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/thread-bindings.discord-api.test.ts", "extensions/discord/src/monitor/thread-bindings.discord-api.ts" ], "similarity": 0.721, "size_similarity": 0.351 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.684, "content_similarity": 0.687, "left_pr_number": 62689, "right_pr_number": 67867, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/thread-bindings.discord-api.test.ts", "extensions/discord/src/monitor/thread-bindings.discord-api.ts" ], "similarity": 0.656, "size_similarity": 0.439 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.575, "left_pr_number": 53782, "right_pr_number": 65123, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/channel.test.ts", "extensions/discord/src/channel.ts" ], "similarity": 0.606, "size_similarity": 0.358 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.309, "left_pr_number": 64446, "right_pr_number": 67867, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/thread-bindings.manager.ts" ], "similarity": 0.469, "size_similarity": 0.794 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.684, "content_similarity": 0.355, "left_pr_number": 53782, "right_pr_number": 62689, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/channel.test.ts" ], "similarity": 0.466, "size_similarity": 0.833 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.206, "left_pr_number": 67665, "right_pr_number": 68922, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.441, "size_similarity": 0.976 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.192, "left_pr_number": 64446, "right_pr_number": 64768, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.411, "size_similarity": 0.955 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.984, "content_similarity": 0.189, "left_pr_number": 64446, "right_pr_number": 65421, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.407, "size_similarity": 1.0 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.203, "left_pr_number": 64768, "right_pr_number": 67867, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.406, "size_similarity": 0.758 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.206, "left_pr_number": 67867, "right_pr_number": 68922, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.4, "size_similarity": 0.82 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.684, "content_similarity": 0.373, "left_pr_number": 62689, "right_pr_number": 65123, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/channel.test.ts" ], "similarity": 0.398, "size_similarity": 0.298 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.984, "content_similarity": 0.195, "left_pr_number": 64768, "right_pr_number": 65421, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.387, "size_similarity": 0.955 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.195, "left_pr_number": 64446, "right_pr_number": 68922, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.384, "size_similarity": 0.651 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.197, "left_pr_number": 64446, "right_pr_number": 67665, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.383, "size_similarity": 0.635 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.14, "left_pr_number": 65123, "right_pr_number": 67665, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.375, "size_similarity": 0.85 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.138, "left_pr_number": 65123, "right_pr_number": 68922, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.371, "size_similarity": 0.829 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.203, "left_pr_number": 64768, "right_pr_number": 67665, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.367, "size_similarity": 0.606 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.201, "left_pr_number": 64768, "right_pr_number": 68922, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.367, "size_similarity": 0.621 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.984, "content_similarity": 0.2, "left_pr_number": 65421, "right_pr_number": 67867, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.366, "size_similarity": 0.794 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.984, "content_similarity": 0.198, "left_pr_number": 65421, "right_pr_number": 68922, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.36, "size_similarity": 0.651 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.984, "content_similarity": 0.2, "left_pr_number": 65421, "right_pr_number": 67665, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.359, "size_similarity": 0.635 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.14, "left_pr_number": 53782, "right_pr_number": 64446, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.347, "size_similarity": 0.663 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.144, "left_pr_number": 53782, "right_pr_number": 64768, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.339, "size_similarity": 0.695 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.7, "content_similarity": 0.189, "left_pr_number": 62689, "right_pr_number": 65421, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.334, "size_similarity": 0.553 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.14, "left_pr_number": 65123, "right_pr_number": 67867, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.333, "size_similarity": 0.68 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.684, "content_similarity": 0.192, "left_pr_number": 62689, "right_pr_number": 64768, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.331, "size_similarity": 0.579 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.132, "left_pr_number": 64446, "right_pr_number": 65123, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.324, "size_similarity": 0.54 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.984, "content_similarity": 0.142, "left_pr_number": 53782, "right_pr_number": 65421, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.323, "size_similarity": 0.663 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.148, "left_pr_number": 53782, "right_pr_number": 67665, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.317, "size_similarity": 0.421 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.146, "left_pr_number": 53782, "right_pr_number": 68922, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.317, "size_similarity": 0.432 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.148, "left_pr_number": 53782, "right_pr_number": 67867, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.316, "size_similarity": 0.526 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.684, "content_similarity": 0.186, "left_pr_number": 62689, "right_pr_number": 64446, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.306, "size_similarity": 0.553 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.137, "left_pr_number": 64768, "right_pr_number": 65123, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.306, "size_similarity": 0.515 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.984, "content_similarity": 0.134, "left_pr_number": 65123, "right_pr_number": 65421, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.299, "size_similarity": 0.54 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.684, "content_similarity": 0.195, "left_pr_number": 62689, "right_pr_number": 68922, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.283, "size_similarity": 0.36 } ], "pr_count": 9, "pr_numbers": [ 53782, 62689, 64446, 64768, 65123, 65421, 67665, 67867, 68922 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67665, 67867, 68922 ], "representative_pr_number": 67665, "representative_title": "fix(discord): normalize prefixed conversation ids in resolveChannelIdForBinding", "representative_url": "https://github.com/openclaw/openclaw/pull/67665", "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions", "extensions/discord/src/monitor" ], "shared_filenames": [ "extensions/discord/src/monitor/thread-bindings.discord-api.ts", "extensions/discord/src/channel.test.ts", "extensions/discord/src/monitor/thread-bindings.discord-api.test.ts", "extensions/discord/src/monitor/thread-bindings.manager.ts", "extensions/discord/src/channel.ts" ], "summary": "9 open PRs share weighted file overlap around `extensions/discord/src/monitor/thread-bindings.discord-api.ts`, `extensions/discord/src/channel.test.ts`, `extensions/discord/src/monitor/thread-bindings.discord-api.test.ts`; representative PR #67665.", "title": "Scope: fix(discord): normalize prefixed conversation ids in resolveChannelIdForBinding" }, { "authors": [ "imadal1n" ], "average_similarity": 0.621, "cluster_id": "pr-scope-65017-8", "kind": "pr_scope", "last_activity_at": "2026-04-20T17:00:23Z", "outside_window_prs": [ { "additions": 105, "author": "imadal1n", "changed_files": 3, "created_at": "2026-04-11T21:51:49Z", "deletions": 11, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65017/files", "html_url": "https://github.com/openclaw/openclaw/pull/65017", "merged": false, "number": 65017, "state": "open", "title": "fix(memory-core): refresh qmd session exports on transcript updates", "updated_at": "2026-04-11T22:25:55Z" }, { "additions": 62, "author": "ccage-simp", "changed_files": 2, "created_at": "2026-04-12T17:18:49Z", "deletions": 27, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65481/files", "html_url": "https://github.com/openclaw/openclaw/pull/65481", "merged": false, "number": 65481, "state": "open", "title": "fix(memory-qmd): prefer --mask for collection patterns", "updated_at": "2026-04-12T19:35:38Z" }, { "additions": 116, "author": "jochenfrey", "changed_files": 1, "created_at": "2026-04-12T20:42:30Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65547/files", "html_url": "https://github.com/openclaw/openclaw/pull/65547", "merged": false, "number": 65547, "state": "open", "title": "test(memory-qmd): verify extraCollections pattern reaches qmd collection add CLI args", "updated_at": "2026-04-12T20:45:59Z" }, { "additions": 75, "author": "shawnduggan", "changed_files": 2, "created_at": "2026-04-13T11:36:13Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65914/files", "html_url": "https://github.com/openclaw/openclaw/pull/65914", "merged": false, "number": 65914, "state": "open", "title": "fix(memory): respect qmd status timeout and skip checkpoint exports", "updated_at": "2026-04-13T11:40:55Z" }, { "additions": 36, "author": "seank-com", "changed_files": 4, "created_at": "2026-04-14T01:38:34Z", "deletions": 34, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66259/files", "html_url": "https://github.com/openclaw/openclaw/pull/66259", "merged": false, "number": 66259, "state": "open", "title": "fix(memory): prefer --mask for qmd collection add compatibility", "updated_at": "2026-04-19T17:15:36Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.994, "content_similarity": 0.793, "left_pr_number": 65017, "right_pr_number": 67404, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "src/plugin-sdk", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts", "src/plugin-sdk/agent-harness.ts" ], "similarity": 0.833, "size_similarity": 0.853 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.8, "left_pr_number": 65547, "right_pr_number": 67805, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts" ], "similarity": 0.794, "size_similarity": 0.725 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.957, "content_similarity": 0.666, "left_pr_number": 65017, "right_pr_number": 65481, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.687, "size_similarity": 0.767 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.963, "content_similarity": 0.638, "left_pr_number": 67404, "right_pr_number": 67805, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.681, "size_similarity": 0.85 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.957, "content_similarity": 0.664, "left_pr_number": 65017, "right_pr_number": 67805, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.679, "size_similarity": 0.725 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.566, "left_pr_number": 65481, "right_pr_number": 65914, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.676, "size_similarity": 0.865 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.616, "left_pr_number": 65481, "right_pr_number": 66259, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.674, "size_similarity": 0.787 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.625, "left_pr_number": 65547, "right_pr_number": 65914, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts" ], "similarity": 0.662, "size_similarity": 0.664 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.624, "left_pr_number": 65914, "right_pr_number": 67805, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.659, "size_similarity": 0.481 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.963, "content_similarity": 0.646, "left_pr_number": 65481, "right_pr_number": 67404, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.657, "size_similarity": 0.654 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.583, "left_pr_number": 65481, "right_pr_number": 65547, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts" ], "similarity": 0.648, "size_similarity": 0.767 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.546, "left_pr_number": 65914, "right_pr_number": 66259, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.643, "size_similarity": 0.909 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.578, "left_pr_number": 65481, "right_pr_number": 67805, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.638, "size_similarity": 0.556 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.565, "left_pr_number": 65547, "right_pr_number": 66259, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts" ], "similarity": 0.598, "size_similarity": 0.603 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.957, "content_similarity": 0.556, "left_pr_number": 65017, "right_pr_number": 65914, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.595, "size_similarity": 0.664 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.957, "content_similarity": 0.507, "left_pr_number": 65017, "right_pr_number": 65547, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts" ], "similarity": 0.594, "size_similarity": 1.0 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.963, "content_similarity": 0.566, "left_pr_number": 65914, "right_pr_number": 67404, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.588, "size_similarity": 0.566 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.499, "left_pr_number": 65914, "right_pr_number": 68590, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.585, "size_similarity": 0.571 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.963, "content_similarity": 0.52, "left_pr_number": 65547, "right_pr_number": 67404, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts" ], "similarity": 0.582, "size_similarity": 0.853 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.557, "left_pr_number": 66259, "right_pr_number": 67805, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.58, "size_similarity": 0.438 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.55, "left_pr_number": 67805, "right_pr_number": 68590, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.576, "size_similarity": 0.275 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.957, "content_similarity": 0.503, "left_pr_number": 65017, "right_pr_number": 66259, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.553, "size_similarity": 0.603 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.963, "content_similarity": 0.513, "left_pr_number": 66259, "right_pr_number": 67404, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.547, "size_similarity": 0.515 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.46, "left_pr_number": 65481, "right_pr_number": 68590, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.546, "size_similarity": 0.494 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.963, "content_similarity": 0.558, "left_pr_number": 67404, "right_pr_number": 68590, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.545, "size_similarity": 0.324 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.957, "content_similarity": 0.53, "left_pr_number": 65017, "right_pr_number": 68590, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.534, "size_similarity": 0.379 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.441, "left_pr_number": 66259, "right_pr_number": 68590, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.528, "size_similarity": 0.629 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.445, "left_pr_number": 65547, "right_pr_number": 68590, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts" ], "similarity": 0.494, "size_similarity": 0.379 } ], "pr_count": 8, "pr_numbers": [ 65017, 65481, 65547, 65914, 66259, 67404, 67805, 68590 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67404, 67805, 68590 ], "representative_pr_number": 67805, "representative_title": "fix(memory-core): fall back when mcporter query returns no results", "representative_url": "https://github.com/openclaw/openclaw/pull/67805", "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions", "src/plugin-sdk", "src" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts", "src/plugin-sdk/agent-harness.ts" ], "summary": "8 open PRs share weighted file overlap around `extensions/memory-core/src/memory/qmd-manager.test.ts`, `extensions/memory-core/src/memory/qmd-manager.ts`, `src/plugin-sdk/agent-harness.ts`; representative PR #67805.", "title": "Scope: fix(memory-core): fall back when mcporter query returns no results" }, { "authors": [ "Phymath", "ayeshakhalid192007-dev", "nakamotoliu" ], "average_similarity": 0.371, "cluster_id": "pr-scope-64470-7", "kind": "pr_scope", "last_activity_at": "2026-04-21T14:56:06Z", "outside_window_prs": [ { "additions": 11, "author": "ClawdiaHedgehog", "changed_files": 1, "created_at": "2026-04-10T19:11:45Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64470/files", "html_url": "https://github.com/openclaw/openclaw/pull/64470", "merged": false, "number": 64470, "state": "open", "title": "fix(browser): set DISPLAY env var for WSL2 Chrome launches", "updated_at": "2026-04-11T02:33:01Z" }, { "additions": 122, "author": "navarrotech", "changed_files": 2, "created_at": "2026-04-11T01:26:28Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64573/files", "html_url": "https://github.com/openclaw/openclaw/pull/64573", "merged": false, "number": 64573, "state": "open", "title": "fix(browser): inject DISPLAY=:0 fallback when spawning Chrome on Linux", "updated_at": "2026-04-12T01:10:22Z" }, { "additions": 50, "author": "TOMUIV", "changed_files": 2, "created_at": "2026-04-12T11:48:50Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65324/files", "html_url": "https://github.com/openclaw/openclaw/pull/65324", "merged": false, "number": 65324, "state": "open", "title": "fix(browser): set DISPLAY env for Chrome in WSL2", "updated_at": "2026-04-12T11:51:48Z" }, { "additions": 125, "author": "coygeek", "changed_files": 3, "created_at": "2026-04-13T01:32:57Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65639/files", "html_url": "https://github.com/openclaw/openclaw/pull/65639", "merged": false, "number": 65639, "state": "open", "title": "fix: scope browser auth to active gateway mode", "updated_at": "2026-04-13T03:42:08Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.556, "left_pr_number": 64470, "right_pr_number": 64573, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/chrome.ts" ], "similarity": 0.527, "size_similarity": 0.087 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.458, "left_pr_number": 64470, "right_pr_number": 65324, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/chrome.ts" ], "similarity": 0.479, "size_similarity": 0.22 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.252, "left_pr_number": 64573, "right_pr_number": 65639, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.458, "size_similarity": 0.992 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.338, "left_pr_number": 64573, "right_pr_number": 65324, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/chrome.ts" ], "similarity": 0.446, "size_similarity": 0.394 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.258, "left_pr_number": 64573, "right_pr_number": 67748, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.438, "size_similarity": 0.718 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.241, "left_pr_number": 67748, "right_pr_number": 69733, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.438, "size_similarity": 0.903 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.244, "left_pr_number": 65639, "right_pr_number": 67748, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.411, "size_similarity": 0.712 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.235, "left_pr_number": 65639, "right_pr_number": 69733, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.411, "size_similarity": 0.643 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.249, "left_pr_number": 64573, "right_pr_number": 69733, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.405, "size_similarity": 0.648 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.255, "left_pr_number": 65324, "right_pr_number": 67748, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.371, "size_similarity": 0.282 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.248, "left_pr_number": 65324, "right_pr_number": 65639, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.367, "size_similarity": 0.397 }, { "breadth_similarity": 0.168, "concentration_similarity": 0.898, "content_similarity": 0.259, "left_pr_number": 69228, "right_pr_number": 69733, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/chrome.internal.test.ts" ], "similarity": 0.358, "size_similarity": 0.772 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.245, "left_pr_number": 65324, "right_pr_number": 69733, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.343, "size_similarity": 0.255 }, { "breadth_similarity": 0.145, "concentration_similarity": 0.898, "content_similarity": 0.269, "left_pr_number": 64573, "right_pr_number": 69228, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/chrome.ts" ], "similarity": 0.323, "size_similarity": 0.5 }, { "breadth_similarity": 0.145, "concentration_similarity": 0.898, "content_similarity": 0.226, "left_pr_number": 67748, "right_pr_number": 69228, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.322, "size_similarity": 0.697 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.256, "left_pr_number": 64470, "right_pr_number": 67748, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.313, "size_similarity": 0.062 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.249, "left_pr_number": 64470, "right_pr_number": 65639, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.304, "size_similarity": 0.087 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.246, "left_pr_number": 64470, "right_pr_number": 69733, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.297, "size_similarity": 0.056 }, { "breadth_similarity": 0.168, "concentration_similarity": 0.898, "content_similarity": 0.22, "left_pr_number": 65639, "right_pr_number": 69228, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.29, "size_similarity": 0.496 }, { "breadth_similarity": 0.145, "concentration_similarity": 0.898, "content_similarity": 0.237, "left_pr_number": 65324, "right_pr_number": 69228, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/chrome.ts" ], "similarity": 0.255, "size_similarity": 0.197 }, { "breadth_similarity": 0.123, "concentration_similarity": 0.898, "content_similarity": 0.259, "left_pr_number": 64470, "right_pr_number": 69228, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/chrome.ts" ], "similarity": 0.245, "size_similarity": 0.043 } ], "pr_count": 7, "pr_numbers": [ 64470, 64573, 65324, 65639, 67748, 69228, 69733 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67748, 69228, 69733 ], "representative_pr_number": 64573, "representative_title": "fix(browser): inject DISPLAY=:0 fallback when spawning Chrome on Linux", "representative_url": "https://github.com/openclaw/openclaw/pull/64573", "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/chrome.ts", "extensions/browser/src/browser/chrome.internal.test.ts" ], "summary": "7 open PRs share weighted file overlap around `extensions/browser/src/browser/chrome.ts`, `extensions/browser/src/browser/chrome.internal.test.ts`; representative PR #64573.", "title": "Scope: fix(browser): inject DISPLAY=:0 fallback when spawning Chrome on Linux" }, { "authors": [ "alexlomt", "dlebee-agent", "lyfuci" ], "average_similarity": 0.611, "cluster_id": "pr-scope-53807-6", "kind": "pr_scope", "last_activity_at": "2026-04-20T01:03:59Z", "outside_window_prs": [ { "additions": 440, "author": "densmirnov", "changed_files": 5, "created_at": "2026-03-24T16:30:35Z", "deletions": 19, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53807/files", "html_url": "https://github.com/openclaw/openclaw/pull/53807", "merged": false, "number": 53807, "state": "open", "title": "fix: avoid inlining daemon secrets in generated systemd units", "updated_at": "2026-03-24T20:15:28Z" }, { "additions": 158, "author": "MoerAI", "changed_files": 2, "created_at": "2026-04-10T02:10:27Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64020/files", "html_url": "https://github.com/openclaw/openclaw/pull/64020", "merged": false, "number": 64020, "state": "open", "title": "fix(daemon): derive XDG_RUNTIME_DIR/DBUS bus address for systemctl spawns (#63561)", "updated_at": "2026-04-18T08:46:09Z" }, { "additions": 1098, "author": "vincentkoc", "changed_files": 5, "created_at": "2026-04-14T09:14:04Z", "deletions": 262, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66444/files", "html_url": "https://github.com/openclaw/openclaw/pull/66444", "merged": false, "number": 66444, "state": "open", "title": "fix(systemd): reconcile managed-env unit migrations", "updated_at": "2026-04-14T09:19:48Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.84, "left_pr_number": 64020, "right_pr_number": 68293, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.879, "size_similarity": 0.941 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.984, "content_similarity": 0.733, "left_pr_number": 53807, "right_pr_number": 66444, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd-unit.test.ts", "src/daemon/systemd-unit.ts", "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.688, "size_similarity": 0.338 }, { "breadth_similarity": 0.542, "concentration_similarity": 0.767, "content_similarity": 0.648, "left_pr_number": 53807, "right_pr_number": 66735, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.677, "size_similarity": 0.871 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.991, "content_similarity": 0.673, "left_pr_number": 64020, "right_pr_number": 68400, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.67, "size_similarity": 0.692 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.991, "content_similarity": 0.68, "left_pr_number": 68293, "right_pr_number": 68400, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.668, "size_similarity": 0.651 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.611, "left_pr_number": 53807, "right_pr_number": 64020, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.6, "size_similarity": 0.346 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.767, "content_similarity": 0.686, "left_pr_number": 64020, "right_pr_number": 66735, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.593, "size_similarity": 0.302 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.582, "left_pr_number": 53807, "right_pr_number": 68293, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.583, "size_similarity": 0.368 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.767, "content_similarity": 0.64, "left_pr_number": 66735, "right_pr_number": 68293, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.564, "size_similarity": 0.321 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.991, "content_similarity": 0.565, "left_pr_number": 53807, "right_pr_number": 68400, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.556, "size_similarity": 0.24 }, { "breadth_similarity": 0.667, "concentration_similarity": 0.783, "content_similarity": 0.554, "left_pr_number": 66444, "right_pr_number": 66735, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.552, "size_similarity": 0.388 }, { "breadth_similarity": 0.667, "concentration_similarity": 0.776, "content_similarity": 0.575, "left_pr_number": 66735, "right_pr_number": 68400, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.539, "size_similarity": 0.209 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.984, "content_similarity": 0.608, "left_pr_number": 66444, "right_pr_number": 68293, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.538, "size_similarity": 0.124 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.993, "content_similarity": 0.534, "left_pr_number": 66444, "right_pr_number": 68400, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "CHANGELOG.md", "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.535, "size_similarity": 0.081 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.984, "content_similarity": 0.587, "left_pr_number": 64020, "right_pr_number": 66444, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts" ], "similarity": 0.523, "size_similarity": 0.117 } ], "pr_count": 6, "pr_numbers": [ 53807, 64020, 66444, 66735, 68293, 68400 ], "recent_pr_count": 3, "recent_pr_numbers": [ 66735, 68293, 68400 ], "representative_pr_number": 64020, "representative_title": "fix(daemon): derive XDG_RUNTIME_DIR/DBUS bus address for systemctl spawns (#63561)", "representative_url": "https://github.com/openclaw/openclaw/pull/64020", "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/systemd.test.ts", "src/daemon/systemd.ts", "src/daemon/systemd-unit.test.ts", "src/daemon/systemd-unit.ts", "CHANGELOG.md" ], "summary": "6 open PRs share weighted file overlap around `src/daemon/systemd.test.ts`, `src/daemon/systemd.ts`, `src/daemon/systemd-unit.test.ts`; representative PR #64020.", "title": "Scope: fix(daemon): derive XDG_RUNTIME_DIR/DBUS bus address for systemctl spawns (#63561)" }, { "authors": [ "Mlightsnow", "d1rshan", "ztexydt-cqh" ], "average_similarity": 0.434, "cluster_id": "pr-scope-53663-6", "kind": "pr_scope", "last_activity_at": "2026-04-20T03:44:49Z", "outside_window_prs": [ { "additions": 116, "author": "BlocksecPHD", "changed_files": 4, "created_at": "2026-03-24T12:22:08Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53663/files", "html_url": "https://github.com/openclaw/openclaw/pull/53663", "merged": false, "number": 53663, "state": "open", "title": "fix(ui): prevent skills search autofill", "updated_at": "2026-03-24T20:15:29Z" }, { "additions": 114, "author": "Mehulupase01", "changed_files": 2, "created_at": "2026-04-11T23:56:45Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65051/files", "html_url": "https://github.com/openclaw/openclaw/pull/65051", "merged": false, "number": 65051, "state": "open", "title": "Fix workspace skill grouping in Control Panel", "updated_at": "2026-04-12T00:02:43Z" }, { "additions": 47, "author": "TOMUIV", "changed_files": 2, "created_at": "2026-04-12T11:55:53Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65332/files", "html_url": "https://github.com/openclaw/openclaw/pull/65332", "merged": false, "number": 65332, "state": "open", "title": "fix(ui): handle null/undefined value in renderMapField", "updated_at": "2026-04-12T12:36:15Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.67, "left_pr_number": 53663, "right_pr_number": 65051, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/skills.browser.test.ts" ], "similarity": 0.744, "size_similarity": 1.0 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.711, "left_pr_number": 68005, "right_pr_number": 68093, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/config-form.render.ts", "ui/src/ui/views/config.browser.test.ts" ], "similarity": 0.736, "size_similarity": 0.588 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.66, "left_pr_number": 68071, "right_pr_number": 68093, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/config-form.render.ts" ], "similarity": 0.634, "size_similarity": 0.312 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.541, "left_pr_number": 68005, "right_pr_number": 68071, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/config-form.render.ts" ], "similarity": 0.532, "size_similarity": 0.183 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.198, "left_pr_number": 65051, "right_pr_number": 68005, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.423, "size_similarity": 0.893 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.205, "left_pr_number": 53663, "right_pr_number": 68005, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.402, "size_similarity": 0.893 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.198, "left_pr_number": 65051, "right_pr_number": 68093, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.387, "size_similarity": 0.658 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.185, "left_pr_number": 65332, "right_pr_number": 68093, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.377, "size_similarity": 0.649 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.205, "left_pr_number": 53663, "right_pr_number": 68093, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.367, "size_similarity": 0.658 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.179, "left_pr_number": 65051, "right_pr_number": 65332, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.339, "size_similarity": 0.427 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.185, "left_pr_number": 65332, "right_pr_number": 68005, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.337, "size_similarity": 0.382 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.187, "left_pr_number": 65332, "right_pr_number": 68071, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.328, "size_similarity": 0.48 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.185, "left_pr_number": 53663, "right_pr_number": 65332, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.318, "size_similarity": 0.427 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.2, "left_pr_number": 65051, "right_pr_number": 68071, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.296, "size_similarity": 0.205 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.207, "left_pr_number": 53663, "right_pr_number": 68071, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.288, "size_similarity": 0.205 } ], "pr_count": 6, "pr_numbers": [ 53663, 65051, 65332, 68005, 68071, 68093 ], "recent_pr_count": 3, "recent_pr_numbers": [ 68005, 68071, 68093 ], "representative_pr_number": 68093, "representative_title": "Fix: dedupe section title/desc in single-section config view (Resolves #68003)", "representative_url": "https://github.com/openclaw/openclaw/pull/68093", "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/config-form.render.ts", "ui/src/ui/views/skills.browser.test.ts", "ui/src/ui/views/config.browser.test.ts" ], "summary": "6 open PRs share weighted file overlap around `ui/src/ui/views/config-form.render.ts`, `ui/src/ui/views/skills.browser.test.ts`, `ui/src/ui/views/config.browser.test.ts`; representative PR #68093.", "title": "Scope: Fix: dedupe section title/desc in single-section config view (Resolves #68003)" }, { "authors": [ "harinwu-netizen", "longle325", "rarest" ], "average_similarity": 0.395, "cluster_id": "pr-scope-38228-6", "kind": "pr_scope", "last_activity_at": "2026-04-21T09:03:50Z", "outside_window_prs": [ { "additions": 7, "author": "haroldfabla2-hue", "changed_files": 1, "created_at": "2026-03-06T17:36:37Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38228/files", "html_url": "https://github.com/openclaw/openclaw/pull/38228", "merged": false, "number": 38228, "state": "open", "title": "fix: extract text from array content in tool cards", "updated_at": "2026-04-21T04:29:42Z" }, { "additions": 9, "author": "echoito", "changed_files": 1, "created_at": "2026-03-06T18:54:43Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38271/files", "html_url": "https://github.com/openclaw/openclaw/pull/38271", "merged": false, "number": 38271, "state": "open", "title": "fix(webchat): extract text from array-shaped tool result content", "updated_at": "2026-04-21T04:30:13Z" }, { "additions": 5, "author": "WuKongAI-CMU", "changed_files": 1, "created_at": "2026-04-13T06:14:51Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65750/files", "html_url": "https://github.com/openclaw/openclaw/pull/65750", "merged": false, "number": 65750, "state": "open", "title": "fix(control-ui): stop reloading history after clear (#65719)", "updated_at": "2026-04-13T06:16:29Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.997, "left_pr_number": 38228, "right_pr_number": 38271, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/chat/tool-cards.ts" ], "similarity": 0.965, "size_similarity": 0.778 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.442, "left_pr_number": 67259, "right_pr_number": 69634, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/chat/grouped-render.ts" ], "similarity": 0.52, "size_similarity": 0.4 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.193, "left_pr_number": 38228, "right_pr_number": 67259, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.392, "size_similarity": 0.714 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.196, "left_pr_number": 38271, "right_pr_number": 67184, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.383, "size_similarity": 0.643 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.197, "left_pr_number": 38271, "right_pr_number": 67259, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.371, "size_similarity": 0.556 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.128, "left_pr_number": 38228, "right_pr_number": 65750, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.368, "size_similarity": 0.857 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.133, "left_pr_number": 65750, "right_pr_number": 67259, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.368, "size_similarity": 0.833 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.192, "left_pr_number": 38228, "right_pr_number": 67184, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.359, "size_similarity": 0.5 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.201, "left_pr_number": 67184, "right_pr_number": 67259, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.344, "size_similarity": 0.357 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.13, "left_pr_number": 38271, "right_pr_number": 65750, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.341, "size_similarity": 0.667 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.177, "left_pr_number": 38228, "right_pr_number": 69634, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.317, "size_similarity": 0.286 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.181, "left_pr_number": 38271, "right_pr_number": 69634, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.31, "size_similarity": 0.222 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.133, "left_pr_number": 65750, "right_pr_number": 67184, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.307, "size_similarity": 0.429 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.184, "left_pr_number": 67184, "right_pr_number": 69634, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.3, "size_similarity": 0.143 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.122, "left_pr_number": 65750, "right_pr_number": 69634, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.286, "size_similarity": 0.333 } ], "pr_count": 6, "pr_numbers": [ 38228, 38271, 65750, 67184, 67259, 69634 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67184, 67259, 69634 ], "representative_pr_number": 38228, "representative_title": "fix: extract text from array content in tool cards", "representative_url": "https://github.com/openclaw/openclaw/pull/38228", "shared_directories": [ "ui/src/ui", "ui/src", "ui", "ui/src/ui/chat" ], "shared_filenames": [ "ui/src/ui/chat/tool-cards.ts", "ui/src/ui/chat/grouped-render.ts" ], "summary": "6 open PRs share weighted file overlap around `ui/src/ui/chat/tool-cards.ts`, `ui/src/ui/chat/grouped-render.ts`; representative PR #38228.", "title": "Scope: fix: extract text from array content in tool cards" }, { "authors": [ "armorbreak001", "nnish16", "sk7n4k3d" ], "average_similarity": 0.653, "cluster_id": "pr-scope-53383-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T00:45:35Z", "outside_window_prs": [ { "additions": 1, "author": "gigamonster256", "changed_files": 1, "created_at": "2026-03-24T04:36:54Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53383/files", "html_url": "https://github.com/openclaw/openclaw/pull/53383", "merged": false, "number": 53383, "state": "open", "title": "fix: zsh compdef directive on first line", "updated_at": "2026-03-24T20:15:31Z" }, { "additions": 17, "author": "EdenKangdw", "changed_files": 2, "created_at": "2026-04-10T20:20:11Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64490/files", "html_url": "https://github.com/openclaw/openclaw/pull/64490", "merged": false, "number": 64490, "state": "open", "title": "CLI: escape zsh completion descriptions", "updated_at": "2026-04-11T01:16:20Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.981, "left_pr_number": 69305, "right_pr_number": 69352, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/completion-cli.test.ts", "src/cli/completion-cli.ts" ], "similarity": 0.961, "size_similarity": 0.832 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.95, "left_pr_number": 64490, "right_pr_number": 69352, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/completion-cli.test.ts", "src/cli/completion-cli.ts" ], "similarity": 0.852, "size_similarity": 0.245 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.905, "left_pr_number": 64490, "right_pr_number": 69305, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/completion-cli.test.ts", "src/cli/completion-cli.ts" ], "similarity": 0.814, "size_similarity": 0.204 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.724, "left_pr_number": 64490, "right_pr_number": 69509, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/completion-cli.ts" ], "similarity": 0.765, "size_similarity": 0.885 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.742, "left_pr_number": 69305, "right_pr_number": 69509, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/completion-cli.ts" ], "similarity": 0.679, "size_similarity": 0.23 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.731, "left_pr_number": 69352, "right_pr_number": 69509, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/completion-cli.ts" ], "similarity": 0.678, "size_similarity": 0.277 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.484, "left_pr_number": 53383, "right_pr_number": 69509, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/completion-cli.ts" ], "similarity": 0.506, "size_similarity": 0.115 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.491, "left_pr_number": 53383, "right_pr_number": 69305, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/completion-cli.ts" ], "similarity": 0.473, "size_similarity": 0.027 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.399, "left_pr_number": 53383, "right_pr_number": 64490, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/completion-cli.ts" ], "similarity": 0.424, "size_similarity": 0.13 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.361, "left_pr_number": 53383, "right_pr_number": 69352, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/completion-cli.ts" ], "similarity": 0.383, "size_similarity": 0.032 } ], "pr_count": 5, "pr_numbers": [ 53383, 64490, 69305, 69352, 69509 ], "recent_pr_count": 3, "recent_pr_numbers": [ 69305, 69352, 69509 ], "representative_pr_number": 69305, "representative_title": "CLI: complete positional args in zsh completion", "representative_url": "https://github.com/openclaw/openclaw/pull/69305", "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/completion-cli.ts", "src/cli/completion-cli.test.ts" ], "summary": "5 open PRs share weighted file overlap around `src/cli/completion-cli.ts`, `src/cli/completion-cli.test.ts`; representative PR #69305.", "title": "Scope: CLI: complete positional args in zsh completion" }, { "authors": [ "cgdusek", "clemenshelm", "ztexydt-cqh" ], "average_similarity": 0.532, "cluster_id": "pr-scope-19328-5", "kind": "pr_scope", "last_activity_at": "2026-04-20T08:08:54Z", "outside_window_prs": [ { "additions": 660, "author": "CodeReclaimers", "changed_files": 3, "created_at": "2026-02-17T17:50:44Z", "deletions": 84, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/19328/files", "html_url": "https://github.com/openclaw/openclaw/pull/19328", "merged": false, "number": 19328, "state": "open", "title": "Fix: preserve modelOverride in agent handler (#5369)", "updated_at": "2026-04-17T20:29:07Z" }, { "additions": 138, "author": "cds-1993", "changed_files": 3, "created_at": "2026-03-24T08:04:29Z", "deletions": 11, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53538/files", "html_url": "https://github.com/openclaw/openclaw/pull/53538", "merged": false, "number": 53538, "state": "open", "title": "fix(gateway): skip delivery error for bestEffortDeliver when no external channels configured", "updated_at": "2026-03-24T20:15:30Z" } ], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.554, "left_pr_number": 19328, "right_pr_number": 69010, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/agent.test.ts", "src/gateway/server-methods/agent.ts" ], "similarity": 0.621, "size_similarity": 0.667 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.982, "content_similarity": 0.558, "left_pr_number": 67586, "right_pr_number": 69010, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/agent.test.ts", "src/gateway/server-methods/agent.ts" ], "similarity": 0.615, "size_similarity": 0.776 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.918, "content_similarity": 0.57, "left_pr_number": 53538, "right_pr_number": 67586, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/agent.test.ts", "src/gateway/server-methods/agent.ts" ], "similarity": 0.603, "size_similarity": 0.387 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.899, "content_similarity": 0.594, "left_pr_number": 53538, "right_pr_number": 69010, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/agent.test.ts", "src/gateway/server-methods/agent.ts" ], "similarity": 0.564, "size_similarity": 0.3 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.899, "content_similarity": 0.584, "left_pr_number": 19328, "right_pr_number": 53538, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/agent.test.ts", "src/gateway/server-methods/agent.ts" ], "similarity": 0.558, "size_similarity": 0.2 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.982, "content_similarity": 0.467, "left_pr_number": 19328, "right_pr_number": 67586, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/agent.test.ts", "src/gateway/server-methods/agent.ts" ], "similarity": 0.529, "size_similarity": 0.517 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.943, "content_similarity": 0.55, "left_pr_number": 69010, "right_pr_number": 69139, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/agent.test.ts" ], "similarity": 0.518, "size_similarity": 0.071 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.956, "content_similarity": 0.471, "left_pr_number": 53538, "right_pr_number": 69139, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/agent.test.ts" ], "similarity": 0.496, "size_similarity": 0.235 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.961, "content_similarity": 0.434, "left_pr_number": 67586, "right_pr_number": 69139, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/agent.test.ts" ], "similarity": 0.449, "size_similarity": 0.091 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.943, "content_similarity": 0.362, "left_pr_number": 19328, "right_pr_number": 69139, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/agent.test.ts" ], "similarity": 0.366, "size_similarity": 0.047 } ], "pr_count": 5, "pr_numbers": [ 19328, 53538, 67586, 69010, 69139 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67586, 69010, 69139 ], "representative_pr_number": 69010, "representative_title": "fix(gateway): prefer current route delivery context", "representative_url": "https://github.com/openclaw/openclaw/pull/69010", "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/agent.test.ts", "src/gateway/server-methods/agent.ts" ], "summary": "5 open PRs share weighted file overlap around `src/gateway/server-methods/agent.test.ts`, `src/gateway/server-methods/agent.ts`; representative PR #69010.", "title": "Scope: fix(gateway): prefer current route delivery context" }, { "authors": [ "SharkeyDev", "YangManBOBO", "zhouhe-xydt" ], "average_similarity": 0.46, "cluster_id": "pr-scope-65419-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T02:45:07Z", "outside_window_prs": [ { "additions": 46, "author": "ryanngit", "changed_files": 2, "created_at": "2026-04-12T15:15:52Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65419/files", "html_url": "https://github.com/openclaw/openclaw/pull/65419", "merged": false, "number": 65419, "state": "open", "title": "fix(exec): skip script preflight validation when elevated=full", "updated_at": "2026-04-12T15:19:32Z" }, { "additions": 196, "author": "bobgee00001-beep", "changed_files": 2, "created_at": "2026-04-13T18:14:21Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66101/files", "html_url": "https://github.com/openclaw/openclaw/pull/66101", "merged": false, "number": 66101, "state": "open", "title": "Allow main host-level OpenClaw self-inspection", "updated_at": "2026-04-13T18:21:56Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.899, "left_pr_number": 67644, "right_pr_number": 67924, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec.script-preflight.test.ts", "src/agents/bash-tools.exec.ts" ], "similarity": 0.89, "size_similarity": 0.738 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.499, "left_pr_number": 65419, "right_pr_number": 67924, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec.script-preflight.test.ts", "src/agents/bash-tools.exec.ts" ], "similarity": 0.556, "size_similarity": 0.379 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.487, "left_pr_number": 65419, "right_pr_number": 67644, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec.script-preflight.test.ts", "src/agents/bash-tools.exec.ts" ], "similarity": 0.533, "size_similarity": 0.28 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.288, "left_pr_number": 66101, "right_pr_number": 67644, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec.ts" ], "similarity": 0.48, "size_similarity": 0.857 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.272, "left_pr_number": 66101, "right_pr_number": 67924, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec.ts" ], "similarity": 0.435, "size_similarity": 0.633 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.247, "left_pr_number": 67924, "right_pr_number": 69549, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec.ts" ], "similarity": 0.365, "size_similarity": 0.282 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.261, "left_pr_number": 67644, "right_pr_number": 69549, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec.ts" ], "similarity": 0.364, "size_similarity": 0.208 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.128, "left_pr_number": 65419, "right_pr_number": 69549, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec.ts" ], "similarity": 0.351, "size_similarity": 0.745 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.234, "left_pr_number": 66101, "right_pr_number": 69549, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec.ts" ], "similarity": 0.34, "size_similarity": 0.179 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.14, "left_pr_number": 65419, "right_pr_number": 66101, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec.ts" ], "similarity": 0.284, "size_similarity": 0.24 } ], "pr_count": 5, "pr_numbers": [ 65419, 66101, 67644, 67924, 69549 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67644, 67924, 69549 ], "representative_pr_number": 67644, "representative_title": "fix: avoid python preflight false positives for $ tokens in string literals", "representative_url": "https://github.com/openclaw/openclaw/pull/67644", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec.ts", "src/agents/bash-tools.exec.script-preflight.test.ts" ], "summary": "5 open PRs share weighted file overlap around `src/agents/bash-tools.exec.ts`, `src/agents/bash-tools.exec.script-preflight.test.ts`; representative PR #67644.", "title": "Scope: fix: avoid python preflight false positives for $ tokens in string literals" }, { "authors": [ "MonkeyLeeT", "altaywtf", "sk7n4k3d" ], "average_similarity": 0.416, "cluster_id": "pr-scope-53620-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T16:26:35Z", "outside_window_prs": [ { "additions": 42, "author": "lupuletic", "changed_files": 4, "created_at": "2026-03-24T10:41:27Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53620/files", "html_url": "https://github.com/openclaw/openclaw/pull/53620", "merged": false, "number": 53620, "state": "open", "title": "fix(docker): ensure /home/node exists before USER switch", "updated_at": "2026-03-24T20:15:29Z" }, { "additions": 129, "author": "tomcatzh", "changed_files": 5, "created_at": "2026-03-28T06:58:07Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/56242/files", "html_url": "https://github.com/openclaw/openclaw/pull/56242", "merged": false, "number": 56242, "state": "open", "title": "fix: add CJK error patterns to failover classification", "updated_at": "2026-04-20T15:45:53Z" } ], "pairwise": [ { "breadth_similarity": 0.417, "concentration_similarity": 0.822, "content_similarity": 0.646, "left_pr_number": 53620, "right_pr_number": 68700, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/failover-error.test.ts", "src/agents/failover-error.ts" ], "similarity": 0.656, "size_similarity": 0.804 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.96, "content_similarity": 0.593, "left_pr_number": 56242, "right_pr_number": 69677, "shared_directories": [ "src/agents/pi-embedded-helpers", "src/agents", "src" ], "shared_filenames": [ "CHANGELOG.md", "src/agents/pi-embedded-helpers.isbillingerrormessage.test.ts", "src/agents/pi-embedded-helpers/failover-matches.ts" ], "similarity": 0.591, "size_similarity": 0.318 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.841, "content_similarity": 0.63, "left_pr_number": 67024, "right_pr_number": 68700, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/failover-error.test.ts", "src/agents/failover-error.ts" ], "similarity": 0.557, "size_similarity": 0.247 }, { "breadth_similarity": 0.9, "concentration_similarity": 0.981, "content_similarity": 0.526, "left_pr_number": 53620, "right_pr_number": 67024, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/failover-error.test.ts", "src/agents/failover-error.ts" ], "similarity": 0.537, "size_similarity": 0.198 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.802, "content_similarity": 0.291, "left_pr_number": 56242, "right_pr_number": 67024, "shared_directories": [ "src/agents/pi-embedded-helpers", "src/agents", "src" ], "shared_filenames": [ "CHANGELOG.md", "src/agents/failover-error.test.ts", "src/agents/pi-embedded-helpers.isbillingerrormessage.test.ts" ], "similarity": 0.429, "size_similarity": 0.568 }, { "breadth_similarity": 0.9, "concentration_similarity": 0.821, "content_similarity": 0.264, "left_pr_number": 53620, "right_pr_number": 56242, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/failover-error.test.ts" ], "similarity": 0.368, "size_similarity": 0.349 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.861, "content_similarity": 0.023, "left_pr_number": 53620, "right_pr_number": 69677, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [], "similarity": 0.283, "size_similarity": 0.911 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.842, "content_similarity": 0.187, "left_pr_number": 67024, "right_pr_number": 69677, "shared_directories": [ "src/agents/pi-embedded-helpers", "src/agents", "src" ], "shared_filenames": [ "CHANGELOG.md", "src/agents/pi-embedded-helpers.isbillingerrormessage.test.ts" ], "similarity": 0.28, "size_similarity": 0.181 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.643, "content_similarity": 0.167, "left_pr_number": 56242, "right_pr_number": 68700, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/failover-error.test.ts" ], "similarity": 0.251, "size_similarity": 0.434 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.683, "content_similarity": 0.026, "left_pr_number": 68700, "right_pr_number": 69677, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [], "similarity": 0.212, "size_similarity": 0.732 } ], "pr_count": 5, "pr_numbers": [ 53620, 56242, 67024, 68700, 69677 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67024, 68700, 69677 ], "representative_pr_number": 53620, "representative_title": "fix(docker): ensure /home/node exists before USER switch", "representative_url": "https://github.com/openclaw/openclaw/pull/53620", "shared_directories": [ "src/agents", "src", "src/agents/pi-embedded-helpers" ], "shared_filenames": [ "src/agents/failover-error.test.ts", "src/agents/failover-error.ts", "src/agents/pi-embedded-helpers.isbillingerrormessage.test.ts", "CHANGELOG.md", "src/agents/pi-embedded-helpers/failover-matches.ts" ], "summary": "5 open PRs share weighted file overlap around `src/agents/failover-error.test.ts`, `src/agents/failover-error.ts`, `src/agents/pi-embedded-helpers.isbillingerrormessage.test.ts`; representative PR #53620.", "title": "Scope: fix(docker): ensure /home/node exists before USER switch" }, { "authors": [ "haishmg", "liemrich", "masatohoshino" ], "average_similarity": 0.408, "cluster_id": "pr-scope-62305-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T12:22:12Z", "outside_window_prs": [ { "additions": 475, "author": "mcaxtr", "changed_files": 17, "created_at": "2026-04-07T04:56:38Z", "deletions": 47, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/62305/files", "html_url": "https://github.com/openclaw/openclaw/pull/62305", "merged": false, "number": 62305, "state": "open", "title": "feat(whatsapp): wire replyToMode with quoted message delivery", "updated_at": "2026-04-21T17:59:47Z" }, { "additions": 631, "author": "rogerdigital", "changed_files": 6, "created_at": "2026-04-10T05:45:13Z", "deletions": 25, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64120/files", "html_url": "https://github.com/openclaw/openclaw/pull/64120", "merged": false, "number": 64120, "state": "open", "title": "WhatsApp: add preflight audio transcription for DM voice notes", "updated_at": "2026-04-19T08:32:11Z" } ], "pairwise": [ { "breadth_similarity": 0.418, "concentration_similarity": 0.488, "content_similarity": 0.518, "left_pr_number": 62305, "right_pr_number": 67477, "shared_directories": [ "extensions/whatsapp/src/auto-reply/monitor", "extensions/whatsapp/src/auto-reply", "extensions/whatsapp/src", "extensions/whatsapp", "extensions", "src" ], "shared_filenames": [ "extensions/whatsapp/src/auto-reply/deliver-reply.test.ts", "extensions/whatsapp/src/auto-reply/deliver-reply.ts", "extensions/whatsapp/src/auto-reply/monitor/inbound-dispatch.ts" ], "similarity": 0.573, "size_similarity": 0.965 }, { "breadth_similarity": 0.7, "concentration_similarity": 0.396, "content_similarity": 0.476, "left_pr_number": 67477, "right_pr_number": 68744, "shared_directories": [ "extensions/whatsapp/src/auto-reply", "extensions/whatsapp/src", "extensions/whatsapp", "extensions", "src" ], "shared_filenames": [ "extensions/whatsapp/src/auto-reply/deliver-reply.test.ts", "extensions/whatsapp/src/auto-reply/deliver-reply.ts" ], "similarity": 0.536, "size_similarity": 0.755 }, { "breadth_similarity": 0.594, "concentration_similarity": 0.908, "content_similarity": 0.4, "left_pr_number": 62305, "right_pr_number": 68744, "shared_directories": [ "extensions/whatsapp/src/auto-reply", "extensions/whatsapp/src", "extensions/whatsapp", "extensions", "src" ], "shared_filenames": [ "extensions/whatsapp/src/auto-reply/deliver-reply.test.ts", "extensions/whatsapp/src/auto-reply/deliver-reply.ts", "extensions/whatsapp/src/outbound-base.test.ts", "extensions/whatsapp/src/outbound-base.ts", "extensions/whatsapp/src/send.ts" ], "similarity": 0.494, "size_similarity": 0.728 }, { "breadth_similarity": 0.858, "concentration_similarity": 0.834, "content_similarity": 0.219, "left_pr_number": 62305, "right_pr_number": 69297, "shared_directories": [ "extensions/whatsapp/src/auto-reply/monitor", "extensions/whatsapp/src/auto-reply", "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "src/config", "extensions", "src" ], "shared_filenames": [ "src/config/bundled-channel-config-metadata.generated.ts", "src/config/types.whatsapp.ts", "src/config/zod-schema.providers-whatsapp.ts" ], "similarity": 0.418, "size_similarity": 0.916 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.98, "content_similarity": 0.267, "left_pr_number": 64120, "right_pr_number": 67477, "shared_directories": [ "extensions/whatsapp/src/auto-reply/monitor", "extensions/whatsapp/src/auto-reply", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [], "similarity": 0.41, "size_similarity": 0.825 }, { "breadth_similarity": 0.383, "concentration_similarity": 0.654, "content_similarity": 0.204, "left_pr_number": 67477, "right_pr_number": 69297, "shared_directories": [ "extensions/whatsapp/src/auto-reply/monitor", "extensions/whatsapp/src/auto-reply", "extensions/whatsapp/src", "extensions/whatsapp", "extensions", "src" ], "shared_filenames": [], "similarity": 0.356, "size_similarity": 0.949 }, { "breadth_similarity": 0.467, "concentration_similarity": 0.375, "content_similarity": 0.186, "left_pr_number": 64120, "right_pr_number": 68744, "shared_directories": [ "extensions/whatsapp/src/auto-reply", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [], "similarity": 0.333, "size_similarity": 0.915 }, { "breadth_similarity": 0.283, "concentration_similarity": 0.633, "content_similarity": 0.203, "left_pr_number": 64120, "right_pr_number": 69297, "shared_directories": [ "extensions/whatsapp/src/auto-reply/monitor", "extensions/whatsapp/src/auto-reply", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [], "similarity": 0.332, "size_similarity": 0.869 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.742, "content_similarity": 0.156, "left_pr_number": 68744, "right_pr_number": 69297, "shared_directories": [ "extensions/whatsapp/src/auto-reply", "extensions/whatsapp/src", "extensions/whatsapp", "extensions", "src" ], "shared_filenames": [], "similarity": 0.324, "size_similarity": 0.795 }, { "breadth_similarity": 0.276, "concentration_similarity": 0.467, "content_similarity": 0.188, "left_pr_number": 62305, "right_pr_number": 64120, "shared_directories": [ "extensions/whatsapp/src/auto-reply/monitor", "extensions/whatsapp/src/auto-reply", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [], "similarity": 0.302, "size_similarity": 0.796 } ], "pr_count": 5, "pr_numbers": [ 62305, 64120, 67477, 68744, 69297 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67477, 68744, 69297 ], "representative_pr_number": 67477, "representative_title": "fix(whatsapp): emit hooks for auto-replies", "representative_url": "https://github.com/openclaw/openclaw/pull/67477", "shared_directories": [ "extensions/whatsapp/src/auto-reply", "extensions/whatsapp/src", "extensions/whatsapp", "extensions", "extensions/whatsapp/src/auto-reply/monitor", "src", "extensions/whatsapp/src/inbound", "src/config" ], "shared_filenames": [ "extensions/whatsapp/src/auto-reply/deliver-reply.ts", "extensions/whatsapp/src/auto-reply/deliver-reply.test.ts", "extensions/whatsapp/src/outbound-base.test.ts", "extensions/whatsapp/src/outbound-base.ts", "extensions/whatsapp/src/send.ts", "extensions/whatsapp/src/auto-reply/monitor/inbound-dispatch.ts", "src/config/types.whatsapp.ts", "src/config/zod-schema.providers-whatsapp.ts" ], "summary": "5 open PRs share weighted file overlap around `extensions/whatsapp/src/auto-reply/deliver-reply.ts`, `extensions/whatsapp/src/auto-reply/deliver-reply.test.ts`, `extensions/whatsapp/src/outbound-base.test.ts`; representative PR #67477.", "title": "Scope: fix(whatsapp): emit hooks for auto-replies" }, { "authors": [ "a137460387", "laopuhuluwa", "tianhaocui" ], "average_similarity": 0.376, "cluster_id": "pr-scope-53533-5", "kind": "pr_scope", "last_activity_at": "2026-04-20T06:19:28Z", "outside_window_prs": [ { "additions": 438, "author": "allan0509", "changed_files": 7, "created_at": "2026-03-24T08:04:02Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53533/files", "html_url": "https://github.com/openclaw/openclaw/pull/53533", "merged": false, "number": 53533, "state": "open", "title": "feat(feishu): surface connection health state", "updated_at": "2026-03-24T20:15:30Z" }, { "additions": 339, "author": "Ricardo-M-L", "changed_files": 5, "created_at": "2026-04-11T13:26:42Z", "deletions": 67, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64820/files", "html_url": "https://github.com/openclaw/openclaw/pull/64820", "merged": false, "number": 64820, "state": "open", "title": "fix(feishu): break circular module init causing ReferenceError on group mention", "updated_at": "2026-04-11T13:45:22Z" } ], "pairwise": [ { "breadth_similarity": 0.571, "concentration_similarity": 1.0, "content_similarity": 0.621, "left_pr_number": 53533, "right_pr_number": 68865, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/monitor.transport.ts" ], "similarity": 0.581, "size_similarity": 0.262 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.294, "left_pr_number": 64820, "right_pr_number": 67269, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/monitor.account.ts" ], "similarity": 0.439, "size_similarity": 0.759 }, { "breadth_similarity": 0.643, "concentration_similarity": 1.0, "content_similarity": 0.263, "left_pr_number": 53533, "right_pr_number": 67269, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/monitor.account.ts" ], "similarity": 0.423, "size_similarity": 0.828 }, { "breadth_similarity": 0.857, "concentration_similarity": 1.0, "content_similarity": 0.201, "left_pr_number": 53533, "right_pr_number": 64820, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/monitor.account.ts" ], "similarity": 0.414, "size_similarity": 0.916 }, { "breadth_similarity": 0.786, "concentration_similarity": 1.0, "content_similarity": 0.237, "left_pr_number": 53533, "right_pr_number": 67466, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/monitor.ts" ], "similarity": 0.403, "size_similarity": 0.725 }, { "breadth_similarity": 0.9, "concentration_similarity": 1.0, "content_similarity": 0.157, "left_pr_number": 64820, "right_pr_number": 67466, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.368, "size_similarity": 0.791 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.157, "left_pr_number": 67269, "right_pr_number": 67466, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.325, "size_similarity": 0.6 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.16, "left_pr_number": 67466, "right_pr_number": 68865, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.279, "size_similarity": 0.361 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.152, "left_pr_number": 67269, "right_pr_number": 68865, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.264, "size_similarity": 0.217 }, { "breadth_similarity": 0.6, "concentration_similarity": 1.0, "content_similarity": 0.152, "left_pr_number": 64820, "right_pr_number": 68865, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.26, "size_similarity": 0.286 } ], "pr_count": 5, "pr_numbers": [ 53533, 64820, 67269, 67466, 68865 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67269, 67466, 68865 ], "representative_pr_number": 53533, "representative_title": "feat(feishu): surface connection health state", "representative_url": "https://github.com/openclaw/openclaw/pull/53533", "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/monitor.account.ts", "extensions/feishu/src/monitor.transport.ts", "extensions/feishu/src/monitor.ts" ], "summary": "5 open PRs share weighted file overlap around `extensions/feishu/src/monitor.account.ts`, `extensions/feishu/src/monitor.transport.ts`, `extensions/feishu/src/monitor.ts`; representative PR #53533.", "title": "Scope: feat(feishu): surface connection health state" }, { "authors": [ "717986230" ], "average_similarity": 0.647, "cluster_id": "pr-scope-65675-4", "kind": "pr_scope", "last_activity_at": "2026-04-20T07:50:31Z", "outside_window_prs": [ { "additions": 3, "author": "717986230", "changed_files": 2, "created_at": "2026-04-13T03:04:28Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65675/files", "html_url": "https://github.com/openclaw/openclaw/pull/65675", "merged": false, "number": 65675, "state": "open", "title": "docs: add 2MB size limit note for avatar images", "updated_at": "2026-04-20T06:22:05Z" } ], "pairwise": [ { "breadth_similarity": 0.775, "concentration_similarity": 0.921, "content_similarity": 0.924, "left_pr_number": 69257, "right_pr_number": 69259, "shared_directories": [ "docs/cli", "docs/gateway", "skills/gog", "docs", "skills" ], "shared_filenames": [ "docs/cli/agents.md", "docs/cli/config.md", "docs/gateway/configuration-reference.md", "skills/gog/SKILL.md" ], "similarity": 0.904, "size_similarity": 0.894 }, { "breadth_similarity": 0.708, "concentration_similarity": 0.799, "content_similarity": 0.883, "left_pr_number": 69231, "right_pr_number": 69257, "shared_directories": [ "docs/cli", "docs/gateway", "docs" ], "shared_filenames": [ "docs/cli/agents.md", "docs/cli/config.md", "docs/gateway/configuration-reference.md" ], "similarity": 0.847, "size_similarity": 0.786 }, { "breadth_similarity": 0.55, "concentration_similarity": 0.72, "content_similarity": 0.816, "left_pr_number": 69231, "right_pr_number": 69259, "shared_directories": [ "docs/cli", "docs/gateway", "docs" ], "shared_filenames": [ "docs/cli/agents.md", "docs/cli/config.md", "docs/gateway/configuration-reference.md" ], "similarity": 0.768, "size_similarity": 0.702 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.661, "content_similarity": 0.528, "left_pr_number": 65675, "right_pr_number": 69231, "shared_directories": [ "docs/cli", "docs/gateway", "docs" ], "shared_filenames": [ "docs/cli/agents.md", "docs/gateway/configuration-reference.md" ], "similarity": 0.509, "size_similarity": 0.152 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.862, "content_similarity": 0.467, "left_pr_number": 65675, "right_pr_number": 69257, "shared_directories": [ "docs/cli", "docs/gateway", "docs" ], "shared_filenames": [ "docs/cli/agents.md", "docs/gateway/configuration-reference.md" ], "similarity": 0.446, "size_similarity": 0.119 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.94, "content_similarity": 0.431, "left_pr_number": 65675, "right_pr_number": 69259, "shared_directories": [ "docs/cli", "docs/gateway", "docs" ], "shared_filenames": [ "docs/cli/agents.md", "docs/gateway/configuration-reference.md" ], "similarity": 0.41, "size_similarity": 0.106 } ], "pr_count": 4, "pr_numbers": [ 65675, 69231, 69257, 69259 ], "recent_pr_count": 3, "recent_pr_numbers": [ 69231, 69257, 69259 ], "representative_pr_number": 69257, "representative_title": "docs: add gog tasks commands to SKILL.md", "representative_url": "https://github.com/openclaw/openclaw/pull/69257", "shared_directories": [ "docs/cli", "docs/gateway", "docs", "skills/gog", "skills" ], "shared_filenames": [ "docs/cli/agents.md", "docs/gateway/configuration-reference.md", "docs/cli/config.md", "skills/gog/SKILL.md" ], "summary": "4 open PRs share weighted file overlap around `docs/cli/agents.md`, `docs/gateway/configuration-reference.md`, `docs/cli/config.md`; representative PR #69257.", "title": "Scope: docs: add gog tasks commands to SKILL.md" }, { "authors": [ "SimbaKingjoe", "quengh" ], "average_similarity": 0.54, "cluster_id": "pr-scope-66285-4", "kind": "pr_scope", "last_activity_at": "2026-04-19T06:24:54Z", "outside_window_prs": [ { "additions": 65, "author": "Lidang-Jiang", "changed_files": 4, "created_at": "2026-04-14T02:24:39Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66285/files", "html_url": "https://github.com/openclaw/openclaw/pull/66285", "merged": false, "number": 66285, "state": "open", "title": "fix: support explicit active-memory chat types", "updated_at": "2026-04-14T02:29:43Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.542, "left_pr_number": 68773, "right_pr_number": 68837, "shared_directories": [ "extensions/active-memory", "extensions" ], "shared_filenames": [ "extensions/active-memory/index.test.ts", "extensions/active-memory/index.ts" ], "similarity": 0.607, "size_similarity": 0.52 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.591, "left_pr_number": 66285, "right_pr_number": 67977, "shared_directories": [ "extensions/active-memory", "extensions" ], "shared_filenames": [ "extensions/active-memory/index.test.ts", "extensions/active-memory/index.ts", "extensions/active-memory/openclaw.plugin.json" ], "similarity": 0.585, "size_similarity": 0.223 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.532, "left_pr_number": 67977, "right_pr_number": 68837, "shared_directories": [ "extensions/active-memory", "extensions" ], "shared_filenames": [ "extensions/active-memory/index.test.ts", "extensions/active-memory/index.ts" ], "similarity": 0.518, "size_similarity": 0.082 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.514, "left_pr_number": 67977, "right_pr_number": 68773, "shared_directories": [ "extensions/active-memory", "extensions" ], "shared_filenames": [ "extensions/active-memory/index.test.ts", "extensions/active-memory/index.ts" ], "similarity": 0.517, "size_similarity": 0.157 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.468, "left_pr_number": 66285, "right_pr_number": 68837, "shared_directories": [ "extensions/active-memory", "extensions" ], "shared_filenames": [ "extensions/active-memory/index.test.ts", "extensions/active-memory/index.ts" ], "similarity": 0.508, "size_similarity": 0.366 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.395, "left_pr_number": 66285, "right_pr_number": 68773, "shared_directories": [ "extensions/active-memory", "extensions" ], "shared_filenames": [ "extensions/active-memory/index.test.ts", "extensions/active-memory/index.ts" ], "similarity": 0.507, "size_similarity": 0.704 } ], "pr_count": 4, "pr_numbers": [ 66285, 67977, 68773, 68837 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67977, 68773, 68837 ], "representative_pr_number": 68837, "representative_title": "fix(active-memory): skip non-string entries in pluginConfig.agents du\u2026", "representative_url": "https://github.com/openclaw/openclaw/pull/68837", "shared_directories": [ "extensions/active-memory", "extensions" ], "shared_filenames": [ "extensions/active-memory/index.test.ts", "extensions/active-memory/index.ts", "extensions/active-memory/openclaw.plugin.json" ], "summary": "4 open PRs share weighted file overlap around `extensions/active-memory/index.test.ts`, `extensions/active-memory/index.ts`, `extensions/active-memory/openclaw.plugin.json`; representative PR #68837.", "title": "Scope: fix(active-memory): skip non-string entries in pluginConfig.agents du\u2026" }, { "authors": [ "CCcassiusdjs", "chinar-amrutkar", "frankhli843" ], "average_similarity": 0.413, "cluster_id": "pr-scope-66277-4", "kind": "pr_scope", "last_activity_at": "2026-04-20T01:28:54Z", "outside_window_prs": [ { "additions": 250, "author": "neeravmakwana", "changed_files": 3, "created_at": "2026-04-14T02:00:08Z", "deletions": 20, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66277/files", "html_url": "https://github.com/openclaw/openclaw/pull/66277", "merged": false, "number": 66277, "state": "open", "title": "fix(channels): guard broken bundled channel loads", "updated_at": "2026-04-14T02:16:33Z" } ], "pairwise": [ { "breadth_similarity": 0.583, "concentration_similarity": 0.618, "content_similarity": 0.788, "left_pr_number": 69049, "right_pr_number": 69140, "shared_directories": [ "src/channels/plugins", "src/channels", "src" ], "shared_filenames": [ "src/channels/plugins/bundled.null-safe-load.test.ts", "src/channels/plugins/bundled.ts" ], "similarity": 0.738, "size_similarity": 0.648 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.528, "content_similarity": 0.319, "left_pr_number": 66277, "right_pr_number": 67380, "shared_directories": [ "src/channels/plugins", "src/channels", "src" ], "shared_filenames": [ "src/channels/plugins/bundled.ts" ], "similarity": 0.368, "size_similarity": 0.233 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.524, "content_similarity": 0.255, "left_pr_number": 67380, "right_pr_number": 69049, "shared_directories": [ "src/channels/plugins", "src/channels", "src" ], "shared_filenames": [ "src/channels/plugins/bundled.ts" ], "similarity": 0.368, "size_similarity": 0.589 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.622, "content_similarity": 0.18, "left_pr_number": 66277, "right_pr_number": 69140, "shared_directories": [ "src/channels/plugins", "src/channels", "src" ], "shared_filenames": [ "src/channels/plugins/bundled.ts" ], "similarity": 0.349, "size_similarity": 0.611 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.996, "content_similarity": 0.243, "left_pr_number": 66277, "right_pr_number": 69049, "shared_directories": [ "src/channels/plugins", "src/channels", "src" ], "shared_filenames": [ "src/channels/plugins/bundled.ts" ], "similarity": 0.338, "size_similarity": 0.396 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.906, "content_similarity": 0.185, "left_pr_number": 67380, "right_pr_number": 69140, "shared_directories": [ "src/channels/plugins", "src/channels", "src" ], "shared_filenames": [ "src/channels/plugins/bundled.ts" ], "similarity": 0.316, "size_similarity": 0.382 } ], "pr_count": 4, "pr_numbers": [ 66277, 67380, 69049, 69140 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67380, 69049, 69140 ], "representative_pr_number": 69049, "representative_title": "fix(channels): null-check loadChannelPlugin result in bundled loader", "representative_url": "https://github.com/openclaw/openclaw/pull/69049", "shared_directories": [ "src/channels/plugins", "src/channels", "src" ], "shared_filenames": [ "src/channels/plugins/bundled.ts", "src/channels/plugins/bundled.null-safe-load.test.ts" ], "summary": "4 open PRs share weighted file overlap around `src/channels/plugins/bundled.ts`, `src/channels/plugins/bundled.null-safe-load.test.ts`; representative PR #69049.", "title": "Scope: fix(channels): null-check loadChannelPlugin result in bundled loader" }, { "authors": [ "Jimmy-xuzimo", "jacko2bot" ], "average_similarity": 0.404, "cluster_id": "pr-scope-65167-4", "kind": "pr_scope", "last_activity_at": "2026-04-18T14:55:53Z", "outside_window_prs": [ { "additions": 137, "author": "w-sss", "changed_files": 2, "created_at": "2026-04-12T04:16:50Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65167/files", "html_url": "https://github.com/openclaw/openclaw/pull/65167", "merged": false, "number": 65167, "state": "open", "title": "fix: dispatch plugin hooks (before_prompt_build, agent_end) in cli-runner", "updated_at": "2026-04-12T09:37:12Z" } ], "pairwise": [ { "breadth_similarity": 0.708, "concentration_similarity": 0.991, "content_similarity": 0.552, "left_pr_number": 67707, "right_pr_number": 67708, "shared_directories": [ "src/agents", "src/browser", "src" ], "shared_filenames": [ "src/agents/cli-runner.ts", "src/browser/chrome.executables.ts" ], "similarity": 0.588, "size_similarity": 0.545 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.564, "content_similarity": 0.374, "left_pr_number": 65167, "right_pr_number": 67707, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner.ts" ], "similarity": 0.408, "size_similarity": 0.396 }, { "breadth_similarity": 0.236, "concentration_similarity": 0.867, "content_similarity": 0.45, "left_pr_number": 65167, "right_pr_number": 68388, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner.ts" ], "similarity": 0.406, "size_similarity": 0.164 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.554, "content_similarity": 0.277, "left_pr_number": 65167, "right_pr_number": 67708, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner.ts" ], "similarity": 0.372, "size_similarity": 0.727 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.697, "content_similarity": 0.371, "left_pr_number": 67707, "right_pr_number": 68388, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner.ts" ], "similarity": 0.346, "size_similarity": 0.065 }, { "breadth_similarity": 0.597, "concentration_similarity": 0.687, "content_similarity": 0.275, "left_pr_number": 67708, "right_pr_number": 68388, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner.ts" ], "similarity": 0.304, "size_similarity": 0.119 } ], "pr_count": 4, "pr_numbers": [ 65167, 67707, 67708, 68388 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67707, 67708, 68388 ], "representative_pr_number": 67707, "representative_title": "fix(browser): expand tilde in browser.executablePath (fixes #67264)", "representative_url": "https://github.com/openclaw/openclaw/pull/67707", "shared_directories": [ "src/agents", "src", "src/browser" ], "shared_filenames": [ "src/agents/cli-runner.ts", "src/browser/chrome.executables.ts" ], "summary": "4 open PRs share weighted file overlap around `src/agents/cli-runner.ts`, `src/browser/chrome.executables.ts`; representative PR #67707.", "title": "Scope: fix(browser): expand tilde in browser.executablePath (fixes #67264)" }, { "authors": [ "MukundaKatta", "mrlane2k" ], "average_similarity": 0.732, "cluster_id": "pr-scope-66742-3", "kind": "pr_scope", "last_activity_at": "2026-04-18T09:35:19Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.708, "concentration_similarity": 0.974, "content_similarity": 0.936, "left_pr_number": 66742, "right_pr_number": 66770, "shared_directories": [ "src/hooks", "src/plugins", "src" ], "shared_filenames": [ "src/hooks/message-hook-mappers.test.ts", "src/hooks/message-hook-mappers.ts", "src/plugins/hook-message.types.ts" ], "similarity": 0.85, "size_similarity": 0.5 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.895, "content_similarity": 0.71, "left_pr_number": 66742, "right_pr_number": 67884, "shared_directories": [ "src/hooks", "src" ], "shared_filenames": [ "src/hooks/message-hook-mappers.test.ts", "src/hooks/message-hook-mappers.ts" ], "similarity": 0.682, "size_similarity": 0.658 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.921, "content_similarity": 0.728, "left_pr_number": 66770, "right_pr_number": 67884, "shared_directories": [ "src/hooks", "src" ], "shared_filenames": [ "src/hooks/message-hook-mappers.test.ts", "src/hooks/message-hook-mappers.ts" ], "similarity": 0.663, "size_similarity": 0.329 } ], "pr_count": 3, "pr_numbers": [ 66742, 66770, 67884 ], "recent_pr_count": 3, "recent_pr_numbers": [ 66742, 66770, 67884 ], "representative_pr_number": 66742, "representative_title": "Plugins: expose native messageId on message_sent hook event", "representative_url": "https://github.com/openclaw/openclaw/pull/66742", "shared_directories": [ "src/hooks", "src", "src/plugins" ], "shared_filenames": [ "src/hooks/message-hook-mappers.test.ts", "src/hooks/message-hook-mappers.ts", "src/plugins/hook-message.types.ts" ], "summary": "3 open PRs share weighted file overlap around `src/hooks/message-hook-mappers.test.ts`, `src/hooks/message-hook-mappers.ts`, `src/plugins/hook-message.types.ts`; representative PR #66742.", "title": "Scope: Plugins: expose native messageId on message_sent hook event" }, { "authors": [ "chris-yyau", "nikilster", "tobemorelucky" ], "average_similarity": 0.716, "cluster_id": "pr-scope-66882-3", "kind": "pr_scope", "last_activity_at": "2026-04-16T14:52:46Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.9, "concentration_similarity": 0.827, "content_similarity": 0.851, "left_pr_number": 66882, "right_pr_number": 67137, "shared_directories": [ "src/channels/plugins", "src/channels", "src/wizard", "src" ], "shared_filenames": [ "src/channels/plugins/setup-wizard-helpers.ts", "src/channels/plugins/setup-wizard.ts", "src/wizard/clack-prompter.test.ts", "src/wizard/clack-prompter.ts" ], "similarity": 0.875, "size_similarity": 0.985 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.758, "content_similarity": 0.767, "left_pr_number": 66882, "right_pr_number": 67693, "shared_directories": [ "src/wizard", "src" ], "shared_filenames": [ "src/wizard/clack-prompter.test.ts", "src/wizard/clack-prompter.ts" ], "similarity": 0.684, "size_similarity": 0.393 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.585, "content_similarity": 0.654, "left_pr_number": 67137, "right_pr_number": 67693, "shared_directories": [ "src/wizard", "src" ], "shared_filenames": [ "src/wizard/clack-prompter.test.ts", "src/wizard/clack-prompter.ts" ], "similarity": 0.59, "size_similarity": 0.387 } ], "pr_count": 3, "pr_numbers": [ 66882, 67137, 67693 ], "recent_pr_count": 3, "recent_pr_numbers": [ 66882, 67137, 67693 ], "representative_pr_number": 66882, "representative_title": "fix(wizard): guard text-input prompts against undefined clack results", "representative_url": "https://github.com/openclaw/openclaw/pull/66882", "shared_directories": [ "src/wizard", "src", "src/channels/plugins", "src/channels" ], "shared_filenames": [ "src/wizard/clack-prompter.test.ts", "src/wizard/clack-prompter.ts", "src/channels/plugins/setup-wizard.ts", "src/channels/plugins/setup-wizard-helpers.ts" ], "summary": "3 open PRs share weighted file overlap around `src/wizard/clack-prompter.test.ts`, `src/wizard/clack-prompter.ts`, `src/channels/plugins/setup-wizard.ts`; representative PR #66882.", "title": "Scope: fix(wizard): guard text-input prompts against undefined clack results" }, { "authors": [ "Magicray1217", "nnish16", "oliviareid-svg" ], "average_similarity": 0.684, "cluster_id": "pr-scope-66928-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T05:22:12Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.951, "left_pr_number": 66986, "right_pr_number": 69602, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/skills.ts", "src/gateway/server-methods/skills.update.normalizes-api-key.test.ts" ], "similarity": 0.865, "size_similarity": 0.328 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.658, "left_pr_number": 66928, "right_pr_number": 66986, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/skills.ts" ], "similarity": 0.643, "size_similarity": 0.383 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.57, "left_pr_number": 66928, "right_pr_number": 69602, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/skills.ts" ], "similarity": 0.543, "size_similarity": 0.126 } ], "pr_count": 3, "pr_numbers": [ 66928, 66986, 69602 ], "recent_pr_count": 3, "recent_pr_numbers": [ 66928, 66986, 69602 ], "representative_pr_number": 66986, "representative_title": "fix: mask secrets in skills.update response", "representative_url": "https://github.com/openclaw/openclaw/pull/66986", "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/skills.ts", "src/gateway/server-methods/skills.update.normalizes-api-key.test.ts" ], "summary": "3 open PRs share weighted file overlap around `src/gateway/server-methods/skills.ts`, `src/gateway/server-methods/skills.update.normalizes-api-key.test.ts`; representative PR #66986.", "title": "Scope: fix: mask secrets in skills.update response" }, { "authors": [ "OwenYWT", "hyspacex", "neeravmakwana" ], "average_similarity": 0.672, "cluster_id": "pr-scope-69152-3", "kind": "pr_scope", "last_activity_at": "2026-04-20T16:25:48Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.83, "concentration_similarity": 0.965, "content_similarity": 0.803, "left_pr_number": 69152, "right_pr_number": 69222, "shared_directories": [ "extensions/ollama/src", "docs/help", "docs/providers", "docs/tools", "extensions/ollama", "docs", "extensions" ], "shared_filenames": [ "CHANGELOG.md", "docs/help/faq.md", "docs/providers/ollama.md", "docs/tools/ollama-search.md", "docs/tools/web.md", "extensions/ollama/src/web-search-provider.test.ts", "extensions/ollama/src/web-search-provider.ts", "extensions/ollama/web-search-contract-api.ts" ], "similarity": 0.755, "size_similarity": 0.408 }, { "breadth_similarity": 0.174, "concentration_similarity": 0.788, "content_similarity": 0.761, "left_pr_number": 69152, "right_pr_number": 69178, "shared_directories": [ "extensions/ollama/src", "extensions/ollama", "extensions" ], "shared_filenames": [ "extensions/ollama/src/web-search-provider.test.ts", "extensions/ollama/src/web-search-provider.ts" ], "similarity": 0.657, "size_similarity": 0.449 }, { "breadth_similarity": 0.163, "concentration_similarity": 0.753, "content_similarity": 0.749, "left_pr_number": 69178, "right_pr_number": 69222, "shared_directories": [ "extensions/ollama/src", "extensions/ollama", "extensions" ], "shared_filenames": [ "extensions/ollama/src/web-search-provider.test.ts", "extensions/ollama/src/web-search-provider.ts" ], "similarity": 0.606, "size_similarity": 0.183 } ], "pr_count": 3, "pr_numbers": [ 69152, 69178, 69222 ], "recent_pr_count": 3, "recent_pr_numbers": [ 69152, 69178, 69222 ], "representative_pr_number": 69152, "representative_title": "Ollama/web-search: route bundled provider at Ollama Cloud (#69132)", "representative_url": "https://github.com/openclaw/openclaw/pull/69152", "shared_directories": [ "extensions/ollama/src", "extensions/ollama", "extensions", "docs/help", "docs/providers", "docs/tools", "docs" ], "shared_filenames": [ "extensions/ollama/src/web-search-provider.test.ts", "extensions/ollama/src/web-search-provider.ts", "docs/tools/ollama-search.md", "extensions/ollama/web-search-contract-api.ts", "docs/tools/web.md", "docs/providers/ollama.md", "docs/help/faq.md", "CHANGELOG.md" ], "summary": "3 open PRs share weighted file overlap around `extensions/ollama/src/web-search-provider.test.ts`, `extensions/ollama/src/web-search-provider.ts`, `docs/tools/ollama-search.md`; representative PR #69152.", "title": "Scope: Ollama/web-search: route bundled provider at Ollama Cloud (#69132)" }, { "authors": [ "LightDriverCS", "everySympathy", "imadal1n" ], "average_similarity": 0.621, "cluster_id": "pr-scope-68121-3", "kind": "pr_scope", "last_activity_at": "2026-04-19T01:42:32Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.589, "left_pr_number": 68334, "right_pr_number": 68586, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/memory-state.test.ts", "src/plugins/memory-state.ts" ], "similarity": 0.65, "size_similarity": 0.667 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.518, "left_pr_number": 68121, "right_pr_number": 68586, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/memory-state.test.ts", "src/plugins/memory-state.ts" ], "similarity": 0.614, "size_similarity": 0.845 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.544, "left_pr_number": 68121, "right_pr_number": 68334, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/memory-state.test.ts", "src/plugins/memory-state.ts" ], "similarity": 0.599, "size_similarity": 0.563 } ], "pr_count": 3, "pr_numbers": [ 68121, 68334, 68586 ], "recent_pr_count": 3, "recent_pr_numbers": [ 68121, 68334, 68586 ], "representative_pr_number": 68586, "representative_title": "fix(memory-core): resolve runtime artifacts before wiki bridge status", "representative_url": "https://github.com/openclaw/openclaw/pull/68586", "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/memory-state.test.ts", "src/plugins/memory-state.ts" ], "summary": "3 open PRs share weighted file overlap around `src/plugins/memory-state.test.ts`, `src/plugins/memory-state.ts`; representative PR #68586.", "title": "Scope: fix(memory-core): resolve runtime artifacts before wiki bridge status" }, { "authors": [ "Linux2010" ], "average_similarity": 0.554, "cluster_id": "pr-scope-67958-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T15:34:21Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.792, "concentration_similarity": 0.765, "content_similarity": 0.94, "left_pr_number": 67958, "right_pr_number": 68130, "shared_directories": [ "extensions/ollama/src", "extensions/ollama", "src/agents", "extensions", "src" ], "shared_filenames": [ "extensions/ollama/index.test.ts", "extensions/ollama/src/provider-models.ts", "extensions/ollama/src/stream.ts", "src/agents/model-auth-env-vars.test.ts", "src/agents/model-auth-env-vars.ts" ], "similarity": 0.853, "size_similarity": 0.52 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.57, "content_similarity": 0.497, "left_pr_number": 68010, "right_pr_number": 68130, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/model-auth-env-vars.test.ts", "src/agents/model-auth-env-vars.ts" ], "similarity": 0.449, "size_similarity": 0.29 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.805, "content_similarity": 0.372, "left_pr_number": 67958, "right_pr_number": 68010, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/model-auth-env-vars.test.ts", "src/agents/model-auth-env-vars.ts" ], "similarity": 0.36, "size_similarity": 0.151 } ], "pr_count": 3, "pr_numbers": [ 67958, 68010, 68130 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67958, 68010, 68130 ], "representative_pr_number": 68130, "representative_title": "fix: reduce log level for narrative session cleanup scope failures", "representative_url": "https://github.com/openclaw/openclaw/pull/68130", "shared_directories": [ "src/agents", "src", "extensions/ollama/src", "extensions/ollama", "extensions" ], "shared_filenames": [ "src/agents/model-auth-env-vars.test.ts", "src/agents/model-auth-env-vars.ts", "extensions/ollama/index.test.ts", "extensions/ollama/src/provider-models.ts", "extensions/ollama/src/stream.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/model-auth-env-vars.test.ts`, `src/agents/model-auth-env-vars.ts`, `extensions/ollama/index.test.ts`; representative PR #68130.", "title": "Scope: fix: reduce log level for narrative session cleanup scope failures" }, { "authors": [ "mcaxtr" ], "average_similarity": 0.502, "cluster_id": "pr-scope-67816-3", "kind": "pr_scope", "last_activity_at": "2026-04-19T18:10:29Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.746, "concentration_similarity": 0.908, "content_similarity": 0.862, "left_pr_number": 67818, "right_pr_number": 67820, "shared_directories": [ "extensions/whatsapp/src", "src/channels/plugins", "src/gateway/server-methods", "extensions/whatsapp", "src/channels", "src/gateway", "extensions", "src" ], "shared_filenames": [ "extensions/whatsapp/login-qr-runtime.ts", "extensions/whatsapp/src/agent-tools-login.test.ts", "extensions/whatsapp/src/agent-tools-login.ts", "extensions/whatsapp/src/channel.runtime.ts", "extensions/whatsapp/src/channel.ts", "extensions/whatsapp/src/login-qr.ts", "src/channels/plugins/types.adapters.ts", "src/gateway/server-methods/web.test.ts", "src/gateway/server-methods/web.ts" ], "similarity": 0.805, "size_similarity": 0.548 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.607, "content_similarity": 0.242, "left_pr_number": 67816, "right_pr_number": 67820, "shared_directories": [ "extensions/whatsapp/src", "src/channels/plugins", "extensions/whatsapp", "src/channels", "extensions", "src" ], "shared_filenames": [ "extensions/whatsapp/src/channel.ts", "extensions/whatsapp/src/status-issues.test.ts", "extensions/whatsapp/src/status-issues.ts" ], "similarity": 0.403, "size_similarity": 0.823 }, { "breadth_similarity": 0.721, "concentration_similarity": 0.515, "content_similarity": 0.145, "left_pr_number": 67816, "right_pr_number": 67818, "shared_directories": [ "extensions/whatsapp/src", "src/channels/plugins", "extensions/whatsapp", "src/channels", "extensions", "src" ], "shared_filenames": [ "extensions/whatsapp/src/channel.ts" ], "similarity": 0.299, "size_similarity": 0.665 } ], "pr_count": 3, "pr_numbers": [ 67816, 67818, 67820 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67816, 67818, 67820 ], "representative_pr_number": 67820, "representative_title": "fix(whatsapp): reuse active QR and preserve runtime warnings", "representative_url": "https://github.com/openclaw/openclaw/pull/67820", "shared_directories": [ "extensions/whatsapp/src", "src/channels/plugins", "extensions/whatsapp", "src/channels", "extensions", "src", "src/gateway/server-methods", "src/gateway" ], "shared_filenames": [ "extensions/whatsapp/src/channel.ts", "extensions/whatsapp/login-qr-runtime.ts", "extensions/whatsapp/src/agent-tools-login.test.ts", "extensions/whatsapp/src/agent-tools-login.ts", "extensions/whatsapp/src/channel.runtime.ts", "extensions/whatsapp/src/status-issues.test.ts", "extensions/whatsapp/src/status-issues.ts", "src/gateway/server-methods/web.test.ts" ], "summary": "3 open PRs share weighted file overlap around `extensions/whatsapp/src/channel.ts`, `extensions/whatsapp/login-qr-runtime.ts`, `extensions/whatsapp/src/agent-tools-login.test.ts`; representative PR #67820.", "title": "Scope: fix(whatsapp): reuse active QR and preserve runtime warnings" }, { "authors": [ "Kailigithub", "armorbreak001", "gaineyllc" ], "average_similarity": 0.448, "cluster_id": "pr-scope-68711-3", "kind": "pr_scope", "last_activity_at": "2026-04-19T01:05:18Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.546, "left_pr_number": 68711, "right_pr_number": 68749, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-completions-compat.ts" ], "similarity": 0.51, "size_similarity": 0.021 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.8, "content_similarity": 0.551, "left_pr_number": 68711, "right_pr_number": 68742, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-completions-compat.test.ts", "src/agents/openai-completions-compat.ts" ], "similarity": 0.508, "size_similarity": 0.213 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.8, "content_similarity": 0.333, "left_pr_number": 68742, "right_pr_number": 68749, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-completions-compat.ts" ], "similarity": 0.326, "size_similarity": 0.1 } ], "pr_count": 3, "pr_numbers": [ 68711, 68742, 68749 ], "recent_pr_count": 3, "recent_pr_numbers": [ 68711, 68742, 68749 ], "representative_pr_number": 68711, "representative_title": "fix(openai-completions): enable streaming usage for vLLM + local OpenAI-compat servers", "representative_url": "https://github.com/openclaw/openclaw/pull/68711", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/openai-completions-compat.ts", "src/agents/openai-completions-compat.test.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/openai-completions-compat.ts`, `src/agents/openai-completions-compat.test.ts`; representative PR #68711.", "title": "Scope: fix(openai-completions): enable streaming usage for vLLM + local OpenAI-compat servers" }, { "authors": [ "Eruditi", "ImortalMask" ], "average_similarity": 0.433, "cluster_id": "pr-scope-67103-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T15:23:27Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.583, "concentration_similarity": 0.995, "content_similarity": 0.647, "left_pr_number": 67103, "right_pr_number": 69635, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/markdown.test.ts", "ui/src/ui/markdown.ts" ], "similarity": 0.575, "size_similarity": 0.091 }, { "breadth_similarity": 0.268, "concentration_similarity": 0.6, "content_similarity": 0.427, "left_pr_number": 69635, "right_pr_number": 69751, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/markdown.test.ts", "ui/src/ui/markdown.ts" ], "similarity": 0.399, "size_similarity": 0.286 }, { "breadth_similarity": 0.464, "concentration_similarity": 0.605, "content_similarity": 0.286, "left_pr_number": 67103, "right_pr_number": 69751, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/markdown.test.ts", "ui/src/ui/markdown.ts" ], "similarity": 0.324, "size_similarity": 0.318 } ], "pr_count": 3, "pr_numbers": [ 67103, 69635, 69751 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67103, 69635, 69751 ], "representative_pr_number": 69635, "representative_title": "fix(ui): preserve raw code text in code-block copy button", "representative_url": "https://github.com/openclaw/openclaw/pull/69635", "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/markdown.test.ts", "ui/src/ui/markdown.ts" ], "summary": "3 open PRs share weighted file overlap around `ui/src/ui/markdown.test.ts`, `ui/src/ui/markdown.ts`; representative PR #69635.", "title": "Scope: fix(ui): preserve raw code text in code-block copy button" }, { "authors": [ "CYXCAT", "MukundaKatta", "nightq" ], "average_similarity": 0.37, "cluster_id": "pr-scope-66727-3", "kind": "pr_scope", "last_activity_at": "2026-04-18T09:29:02Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.375, "concentration_similarity": 0.667, "content_similarity": 0.469, "left_pr_number": 66754, "right_pr_number": 67007, "shared_directories": [ "src/terminal", "src" ], "shared_filenames": [ "src/terminal/links.test.ts" ], "similarity": 0.412, "size_similarity": 0.083 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.131, "left_pr_number": 66727, "right_pr_number": 66754, "shared_directories": [ "src/terminal", "src" ], "shared_filenames": [], "similarity": 0.354, "size_similarity": 0.75 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.667, "content_similarity": 0.366, "left_pr_number": 66727, "right_pr_number": 67007, "shared_directories": [ "src/terminal", "src" ], "shared_filenames": [ "src/terminal/links.ts" ], "similarity": 0.344, "size_similarity": 0.111 } ], "pr_count": 3, "pr_numbers": [ 66727, 66754, 67007 ], "recent_pr_count": 3, "recent_pr_numbers": [ 66727, 66754, 67007 ], "representative_pr_number": 66754, "representative_title": "fix(terminal): guard formatDocsLink against undefined path", "representative_url": "https://github.com/openclaw/openclaw/pull/66754", "shared_directories": [ "src/terminal", "src" ], "shared_filenames": [ "src/terminal/links.ts", "src/terminal/links.test.ts" ], "summary": "3 open PRs share weighted file overlap around `src/terminal/links.ts`, `src/terminal/links.test.ts`; representative PR #66754.", "title": "Scope: fix(terminal): guard formatDocsLink against undefined path" }, { "authors": [ "iteemoo6", "jarimustonen", "wAnyBug-Com" ], "average_similarity": 0.355, "cluster_id": "pr-scope-67554-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T12:37:10Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.816, "content_similarity": 0.336, "left_pr_number": 69637, "right_pr_number": 69658, "shared_directories": [ "docs/reference/templates", "docs/concepts", "docs/gateway", "docs/reference", "docs" ], "shared_filenames": [ "docs/concepts/agent-workspace.md", "docs/gateway/heartbeat.md" ], "similarity": 0.439, "size_similarity": 0.419 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.865, "content_similarity": 0.148, "left_pr_number": 67554, "right_pr_number": 69637, "shared_directories": [ "docs/reference/templates", "docs/reference", "docs" ], "shared_filenames": [], "similarity": 0.351, "size_similarity": 0.943 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.681, "content_similarity": 0.161, "left_pr_number": 67554, "right_pr_number": 69658, "shared_directories": [ "docs/reference/templates", "docs/reference", "docs" ], "shared_filenames": [], "similarity": 0.277, "size_similarity": 0.445 } ], "pr_count": 3, "pr_numbers": [ 67554, 69637, 69658 ], "recent_pr_count": 3, "recent_pr_numbers": [ 67554, 69637, 69658 ], "representative_pr_number": 69637, "representative_title": "docs: add PENDING.md workspace pattern for durable commitment tracking", "representative_url": "https://github.com/openclaw/openclaw/pull/69637", "shared_directories": [ "docs/reference/templates", "docs/reference", "docs", "docs/concepts", "docs/gateway" ], "shared_filenames": [ "docs/concepts/agent-workspace.md", "docs/gateway/heartbeat.md" ], "summary": "3 open PRs share weighted file overlap around `docs/concepts/agent-workspace.md`, `docs/gateway/heartbeat.md`; representative PR #69637.", "title": "Scope: docs: add PENDING.md workspace pattern for durable commitment tracking" }, { "authors": [ "Magicray1217", "jpruit20" ], "average_similarity": 0.522, "cluster_id": "pr-scope-37593-11", "kind": "pr_scope", "last_activity_at": "2026-04-19T16:54:36Z", "outside_window_prs": [ { "additions": 33, "author": "manusjs", "changed_files": 2, "created_at": "2026-03-06T10:01:09Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37593/files", "html_url": "https://github.com/openclaw/openclaw/pull/37593", "merged": false, "number": 37593, "state": "open", "title": "fix(tui): use case-insensitive session key comparison for chat events", "updated_at": "2026-04-20T04:36:03Z" }, { "additions": 51, "author": "severecold", "changed_files": 2, "created_at": "2026-03-06T16:21:32Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38131/files", "html_url": "https://github.com/openclaw/openclaw/pull/38131", "merged": false, "number": 38131, "state": "open", "title": "fix tui missing live replies when session key is absent", "updated_at": "2026-04-21T04:29:16Z" }, { "additions": 361, "author": "sahilsatralkar", "changed_files": 5, "created_at": "2026-04-07T16:50:21Z", "deletions": 22, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/62602/files", "html_url": "https://github.com/openclaw/openclaw/pull/62602", "merged": false, "number": 62602, "state": "open", "title": "fix:(tui) reset stale streaming state after event gaps", "updated_at": "2026-04-21T08:33:22Z" }, { "additions": 88, "author": "bde1", "changed_files": 3, "created_at": "2026-04-11T14:50:02Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64842/files", "html_url": "https://github.com/openclaw/openclaw/pull/64842", "merged": false, "number": 64842, "state": "open", "title": "fix(tui): clear stale streaming status for completed unbound runs", "updated_at": "2026-04-11T19:46:14Z" }, { "additions": 6, "author": "Yanhu007", "changed_files": 1, "created_at": "2026-04-11T15:17:19Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64862/files", "html_url": "https://github.com/openclaw/openclaw/pull/64862", "merged": false, "number": 64862, "state": "open", "title": "fix(tui): recover activity status when no runs are in flight", "updated_at": "2026-04-11T15:21:23Z" }, { "additions": 253, "author": "joeyfrasier", "changed_files": 3, "created_at": "2026-04-13T19:49:43Z", "deletions": 77, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66146/files", "html_url": "https://github.com/openclaw/openclaw/pull/66146", "merged": false, "number": 66146, "state": "open", "title": "fix(agents): forward model maxTokens as default stream option", "updated_at": "2026-04-13T19:57:34Z" }, { "additions": 99, "author": "jason-zimmer", "changed_files": 2, "created_at": "2026-04-13T22:47:59Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66192/files", "html_url": "https://github.com/openclaw/openclaw/pull/66192", "merged": false, "number": 66192, "state": "open", "title": "fix(tui): reset activity after late terminal events", "updated_at": "2026-04-14T21:36:34Z" }, { "additions": 94, "author": "zrt-ai-lab", "changed_files": 3, "created_at": "2026-04-14T02:47:26Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66289/files", "html_url": "https://github.com/openclaw/openclaw/pull/66289", "merged": false, "number": 66289, "state": "open", "title": "fix(tui): resolve streaming status stuck indefinitely after run completes", "updated_at": "2026-04-14T03:55:46Z" }, { "additions": 15, "author": "g199209", "changed_files": 2, "created_at": "2026-04-14T07:33:12Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66400/files", "html_url": "https://github.com/openclaw/openclaw/pull/66400", "merged": false, "number": 66400, "state": "open", "title": "fix(tui): tool events dropped when arriving before chat delta", "updated_at": "2026-04-14T07:44:42Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.941, "left_pr_number": 64862, "right_pr_number": 67302, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.884, "size_similarity": 0.5 }, { "breadth_similarity": 0.55, "concentration_similarity": 0.945, "content_similarity": 0.744, "left_pr_number": 62602, "right_pr_number": 66146, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.752, "size_similarity": 0.862 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.681, "left_pr_number": 66192, "right_pr_number": 66289, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.749, "size_similarity": 0.931 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.837, "left_pr_number": 62602, "right_pr_number": 66192, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.745, "size_similarity": 0.264 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.989, "content_similarity": 0.617, "left_pr_number": 64842, "right_pr_number": 66192, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.674, "size_similarity": 0.891 }, { "breadth_similarity": 0.8, "concentration_similarity": 1.0, "content_similarity": 0.718, "left_pr_number": 62602, "right_pr_number": 66289, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts", "src/tui/tui.ts" ], "similarity": 0.669, "size_similarity": 0.245 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.945, "content_similarity": 0.721, "left_pr_number": 66146, "right_pr_number": 66192, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.657, "size_similarity": 0.306 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.945, "content_similarity": 0.765, "left_pr_number": 37593, "right_pr_number": 66146, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.656, "size_similarity": 0.103 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.651, "left_pr_number": 64862, "right_pr_number": 69026, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.648, "size_similarity": 0.444 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.989, "content_similarity": 0.536, "left_pr_number": 64842, "right_pr_number": 66289, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.643, "size_similarity": 0.957 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.626, "left_pr_number": 37593, "right_pr_number": 66192, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.638, "size_similarity": 0.337 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.957, "content_similarity": 0.639, "left_pr_number": 64842, "right_pr_number": 66146, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.636, "size_similarity": 0.273 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.989, "content_similarity": 0.627, "left_pr_number": 38131, "right_pr_number": 64842, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.635, "size_similarity": 0.589 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.54, "left_pr_number": 37593, "right_pr_number": 38131, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.624, "size_similarity": 0.642 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.655, "left_pr_number": 67302, "right_pr_number": 69026, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.617, "size_similarity": 0.222 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.553, "left_pr_number": 38131, "right_pr_number": 66192, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.616, "size_similarity": 0.525 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.556, "left_pr_number": 38131, "right_pr_number": 66289, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.607, "size_similarity": 0.564 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.612, "left_pr_number": 66192, "right_pr_number": 69026, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.605, "size_similarity": 0.178 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.945, "content_similarity": 0.624, "left_pr_number": 66146, "right_pr_number": 66289, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.602, "size_similarity": 0.285 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.667, "left_pr_number": 62602, "right_pr_number": 69026, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.594, "size_similarity": 0.047 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.418, "left_pr_number": 66400, "right_pr_number": 69026, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.593, "size_similarity": 1.0 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.989, "content_similarity": 0.606, "left_pr_number": 37593, "right_pr_number": 64842, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.588, "size_similarity": 0.378 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.509, "left_pr_number": 37593, "right_pr_number": 69026, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.586, "size_similarity": 0.529 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.945, "content_similarity": 0.659, "left_pr_number": 66146, "right_pr_number": 69026, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.575, "size_similarity": 0.055 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.945, "content_similarity": 0.628, "left_pr_number": 38131, "right_pr_number": 66146, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.569, "size_similarity": 0.161 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.54, "left_pr_number": 37593, "right_pr_number": 66289, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.566, "size_similarity": 0.362 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.58, "left_pr_number": 38131, "right_pr_number": 62602, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.547, "size_similarity": 0.138 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.494, "left_pr_number": 38131, "right_pr_number": 69026, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.547, "size_similarity": 0.34 }, { "breadth_similarity": 0.55, "concentration_similarity": 0.989, "content_similarity": 0.574, "left_pr_number": 62602, "right_pr_number": 64842, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.542, "size_similarity": 0.235 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.489, "left_pr_number": 64862, "right_pr_number": 66400, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.534, "size_similarity": 0.444 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.554, "left_pr_number": 37593, "right_pr_number": 62602, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.521, "size_similarity": 0.089 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.482, "left_pr_number": 66289, "right_pr_number": 69026, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.499, "size_similarity": 0.191 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.989, "content_similarity": 0.507, "left_pr_number": 64842, "right_pr_number": 69026, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.test.ts", "src/tui/tui-event-handlers.ts" ], "similarity": 0.493, "size_similarity": 0.2 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.431, "left_pr_number": 66400, "right_pr_number": 67302, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.46, "size_similarity": 0.222 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.945, "content_similarity": 0.513, "left_pr_number": 64862, "right_pr_number": 66146, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.451, "size_similarity": 0.024 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.429, "left_pr_number": 38131, "right_pr_number": 64862, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.448, "size_similarity": 0.151 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.341, "left_pr_number": 38131, "right_pr_number": 66400, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.44, "size_similarity": 0.34 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.42, "left_pr_number": 64862, "right_pr_number": 66289, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.423, "size_similarity": 0.085 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.358, "left_pr_number": 37593, "right_pr_number": 64862, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.411, "size_similarity": 0.235 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.365, "left_pr_number": 37593, "right_pr_number": 67302, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.398, "size_similarity": 0.118 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.945, "content_similarity": 0.403, "left_pr_number": 66146, "right_pr_number": 66400, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.396, "size_similarity": 0.055 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.945, "content_similarity": 0.434, "left_pr_number": 66146, "right_pr_number": 67302, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.394, "size_similarity": 0.012 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.214, "left_pr_number": 37593, "right_pr_number": 66400, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.379, "size_similarity": 0.529 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.363, "left_pr_number": 66289, "right_pr_number": 67302, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.377, "size_similarity": 0.043 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.325, "left_pr_number": 64862, "right_pr_number": 66192, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.364, "size_similarity": 0.079 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.328, "left_pr_number": 66192, "right_pr_number": 67302, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.361, "size_similarity": 0.04 }, { "breadth_similarity": 0.6, "concentration_similarity": 1.0, "content_similarity": 0.35, "left_pr_number": 62602, "right_pr_number": 64862, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.358, "size_similarity": 0.021 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.989, "content_similarity": 0.353, "left_pr_number": 64842, "right_pr_number": 64862, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.351, "size_similarity": 0.089 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.989, "content_similarity": 0.354, "left_pr_number": 64842, "right_pr_number": 67302, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.346, "size_similarity": 0.044 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.291, "left_pr_number": 38131, "right_pr_number": 67302, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.34, "size_similarity": 0.075 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.253, "left_pr_number": 66289, "right_pr_number": 66400, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.339, "size_similarity": 0.191 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.278, "left_pr_number": 62602, "right_pr_number": 66400, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.322, "size_similarity": 0.047 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.204, "left_pr_number": 66192, "right_pr_number": 66400, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.319, "size_similarity": 0.178 }, { "breadth_similarity": 0.6, "concentration_similarity": 1.0, "content_similarity": 0.293, "left_pr_number": 62602, "right_pr_number": 67302, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.316, "size_similarity": 0.01 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.989, "content_similarity": 0.229, "left_pr_number": 64842, "right_pr_number": 66400, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts" ], "similarity": 0.298, "size_similarity": 0.2 } ], "pr_count": 11, "pr_numbers": [ 37593, 38131, 62602, 64842, 64862, 66146, 66192, 66289, 66400, 67302, 69026 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67302, 69026 ], "representative_pr_number": 69026, "representative_title": "fix(tui): raise streaming watchdog threshold to 120s and suppress false-positive warning", "representative_url": "https://github.com/openclaw/openclaw/pull/69026", "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-event-handlers.ts", "src/tui/tui-event-handlers.test.ts", "src/tui/tui.ts" ], "summary": "11 open PRs share weighted file overlap around `src/tui/tui-event-handlers.ts`, `src/tui/tui-event-handlers.test.ts`, `src/tui/tui.ts`; representative PR #69026.", "title": "Scope: fix(tui): raise streaming watchdog threshold to 120s and suppress false-positive warning" }, { "authors": [ "claytonlin1110", "neilofneils404" ], "average_similarity": 0.443, "cluster_id": "pr-scope-37418-7", "kind": "pr_scope", "last_activity_at": "2026-04-20T18:32:23Z", "outside_window_prs": [ { "additions": 167, "author": "FuzzyFade", "changed_files": 3, "created_at": "2026-03-06T07:37:51Z", "deletions": 29, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37418/files", "html_url": "https://github.com/openclaw/openclaw/pull/37418", "merged": false, "number": 37418, "state": "open", "title": "feat: enable prompt caching for custom providers using anthropic-mess\u2026", "updated_at": "2026-04-19T04:33:02Z" }, { "additions": 42, "author": "samyzhh", "changed_files": 1, "created_at": "2026-03-24T01:01:35Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53266/files", "html_url": "https://github.com/openclaw/openclaw/pull/53266", "merged": false, "number": 53266, "state": "open", "title": "feat(openai): inject stream_options to enable usage tracking for comp\u2026", "updated_at": "2026-03-24T20:15:32Z" }, { "additions": 72, "author": "stayrascal", "changed_files": 4, "created_at": "2026-03-24T13:43:31Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53717/files", "html_url": "https://github.com/openclaw/openclaw/pull/53717", "merged": false, "number": 53717, "state": "open", "title": "feat: support OpenAI Responses API for non-openai providers", "updated_at": "2026-03-24T20:15:29Z" }, { "additions": 118, "author": "sasan1200", "changed_files": 3, "created_at": "2026-03-24T17:04:06Z", "deletions": 9, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53819/files", "html_url": "https://github.com/openclaw/openclaw/pull/53819", "merged": false, "number": 53819, "state": "open", "title": "Agents: enable Codex parallel tool calls", "updated_at": "2026-03-24T20:15:28Z" }, { "additions": 29, "author": "JanPlessow", "changed_files": 1, "created_at": "2026-04-11T13:03:55Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64813/files", "html_url": "https://github.com/openclaw/openclaw/pull/64813", "merged": false, "number": 64813, "state": "open", "title": "feat: pass `user` field through to API request body", "updated_at": "2026-04-11T13:07:28Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.528, "left_pr_number": 53266, "right_pr_number": 64813, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.624, "size_similarity": 0.69 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.557, "left_pr_number": 53717, "right_pr_number": 53819, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner-extraparams.test.ts", "src/agents/pi-embedded-runner/extra-params.ts", "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.618, "size_similarity": 0.606 }, { "breadth_similarity": 0.667, "concentration_similarity": 0.796, "content_similarity": 0.657, "left_pr_number": 53819, "right_pr_number": 67843, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner-extraparams.test.ts", "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.609, "size_similarity": 0.283 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.944, "content_similarity": 0.505, "left_pr_number": 37418, "right_pr_number": 53819, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner-extraparams.test.ts", "src/agents/pi-embedded-runner/extra-params.ts", "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.598, "size_similarity": 0.648 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.943, "content_similarity": 0.501, "left_pr_number": 37418, "right_pr_number": 53717, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner-extraparams.test.ts", "src/agents/pi-embedded-runner/extra-params.ts", "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.544, "size_similarity": 0.393 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.796, "content_similarity": 0.477, "left_pr_number": 53717, "right_pr_number": 67843, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner-extraparams.test.ts", "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.502, "size_similarity": 0.468 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.849, "content_similarity": 0.444, "left_pr_number": 37418, "right_pr_number": 69342, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner-extraparams.test.ts", "src/agents/pi-embedded-runner/extra-params.ts", "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.501, "size_similarity": 0.649 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.793, "content_similarity": 0.486, "left_pr_number": 53819, "right_pr_number": 69342, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner-extraparams.test.ts", "src/agents/pi-embedded-runner/extra-params.ts", "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.493, "size_similarity": 0.421 }, { "breadth_similarity": 0.667, "concentration_similarity": 0.739, "content_similarity": 0.483, "left_pr_number": 37418, "right_pr_number": 67843, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner-extraparams.test.ts", "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.469, "size_similarity": 0.184 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.74, "content_similarity": 0.442, "left_pr_number": 53266, "right_pr_number": 53819, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.429, "size_similarity": 0.331 }, { "breadth_similarity": 0.542, "concentration_similarity": 0.793, "content_similarity": 0.411, "left_pr_number": 53717, "right_pr_number": 69342, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner-extraparams.test.ts", "src/agents/pi-embedded-runner/extra-params.ts", "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.42, "size_similarity": 0.255 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.74, "content_similarity": 0.376, "left_pr_number": 53717, "right_pr_number": 64813, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.386, "size_similarity": 0.377 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.74, "content_similarity": 0.325, "left_pr_number": 53266, "right_pr_number": 53717, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.375, "size_similarity": 0.545 }, { "breadth_similarity": 0.167, "concentration_similarity": 0.533, "content_similarity": 0.434, "left_pr_number": 53266, "right_pr_number": 69342, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.368, "size_similarity": 0.139 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.74, "content_similarity": 0.375, "left_pr_number": 53819, "right_pr_number": 64813, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.367, "size_similarity": 0.228 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.589, "content_similarity": 0.402, "left_pr_number": 67843, "right_pr_number": 69342, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner-extraparams.test.ts", "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.362, "size_similarity": 0.119 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.684, "content_similarity": 0.358, "left_pr_number": 37418, "right_pr_number": 64813, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.341, "size_similarity": 0.148 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.944, "content_similarity": 0.152, "left_pr_number": 53266, "right_pr_number": 67843, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.332, "size_similarity": 0.857 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.684, "content_similarity": 0.324, "left_pr_number": 37418, "right_pr_number": 53266, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.326, "size_similarity": 0.214 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.944, "content_similarity": 0.144, "left_pr_number": 64813, "right_pr_number": 67843, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.319, "size_similarity": 0.806 }, { "breadth_similarity": 0.167, "concentration_similarity": 0.533, "content_similarity": 0.369, "left_pr_number": 64813, "right_pr_number": 69342, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/extra-params.ts" ], "similarity": 0.316, "size_similarity": 0.096 } ], "pr_count": 7, "pr_numbers": [ 37418, 53266, 53717, 53819, 64813, 67843, 69342 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67843, 69342 ], "representative_pr_number": 53819, "representative_title": "Agents: enable Codex parallel tool calls", "representative_url": "https://github.com/openclaw/openclaw/pull/53819", "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src", "src/agents/pi-embedded-runner/run" ], "shared_filenames": [ "src/agents/pi-embedded-runner/extra-params.ts", "src/agents/pi-embedded-runner-extraparams.test.ts", "src/agents/pi-embedded-runner/run/attempt.ts" ], "summary": "7 open PRs share weighted file overlap around `src/agents/pi-embedded-runner/extra-params.ts`, `src/agents/pi-embedded-runner-extraparams.test.ts`, `src/agents/pi-embedded-runner/run/attempt.ts`; representative PR #53819.", "title": "Scope: Agents: enable Codex parallel tool calls" }, { "authors": [ "KimHyeongRae0", "isopenclaw" ], "average_similarity": 0.44, "cluster_id": "pr-scope-60428-7", "kind": "pr_scope", "last_activity_at": "2026-04-21T10:11:47Z", "outside_window_prs": [ { "additions": 25, "author": "Thom-320", "changed_files": 2, "created_at": "2026-04-03T16:52:27Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/60428/files", "html_url": "https://github.com/openclaw/openclaw/pull/60428", "merged": false, "number": 60428, "state": "open", "title": "fix(tasks): clamp createdAt when startedAt is already known", "updated_at": "2026-04-17T21:23:42Z" }, { "additions": 397, "author": "richardclawbot", "changed_files": 12, "created_at": "2026-04-10T17:07:12Z", "deletions": 14, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64416/files", "html_url": "https://github.com/openclaw/openclaw/pull/64416", "merged": false, "number": 64416, "state": "open", "title": "fix(acp): normalize completion delivery guidance", "updated_at": "2026-04-11T06:50:44Z" }, { "additions": 327, "author": "neofdezf-cloud", "changed_files": 7, "created_at": "2026-04-11T17:14:48Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64934/files", "html_url": "https://github.com/openclaw/openclaw/pull/64934", "merged": false, "number": 64934, "state": "open", "title": "feat(tasks): add intermediate active task states", "updated_at": "2026-04-11T17:48:52Z" }, { "additions": 323, "author": "richardclawbot", "changed_files": 4, "created_at": "2026-04-11T21:19:41Z", "deletions": 23, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65013/files", "html_url": "https://github.com/openclaw/openclaw/pull/65013", "merged": false, "number": 65013, "state": "open", "title": "fix(tasks): silence acp child-session completion banners", "updated_at": "2026-04-12T03:04:11Z" }, { "additions": 938, "author": "richardclawbot", "changed_files": 12, "created_at": "2026-04-12T07:52:20Z", "deletions": 35, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65242/files", "html_url": "https://github.com/openclaw/openclaw/pull/65242", "merged": false, "number": 65242, "state": "open", "title": "fix: CompletionDeliveryGate to prevent duplicate ACP completion delivery", "updated_at": "2026-04-12T11:51:58Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.906, "left_pr_number": 60428, "right_pr_number": 69356, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.838, "size_similarity": 0.356 }, { "breadth_similarity": 0.786, "concentration_similarity": 1.0, "content_similarity": 0.425, "left_pr_number": 64934, "right_pr_number": 65013, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.571, "size_similarity": 0.962 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.588, "content_similarity": 0.609, "left_pr_number": 67463, "right_pr_number": 69356, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.571, "size_similarity": 0.493 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.767, "content_similarity": 0.621, "left_pr_number": 65013, "right_pr_number": 65242, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-executor-policy.test.ts", "src/tasks/task-executor-policy.ts", "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.559, "size_similarity": 0.356 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.588, "content_similarity": 0.637, "left_pr_number": 60428, "right_pr_number": 67463, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.544, "size_similarity": 0.176 }, { "breadth_similarity": 0.643, "concentration_similarity": 1.0, "content_similarity": 0.526, "left_pr_number": 64934, "right_pr_number": 69356, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.515, "size_similarity": 0.219 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.501, "left_pr_number": 65013, "right_pr_number": 69356, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.507, "size_similarity": 0.211 }, { "breadth_similarity": 0.643, "concentration_similarity": 1.0, "content_similarity": 0.528, "left_pr_number": 60428, "right_pr_number": 64934, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.496, "size_similarity": 0.078 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.472, "left_pr_number": 60428, "right_pr_number": 65013, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.467, "size_similarity": 0.075 }, { "breadth_similarity": 0.458, "concentration_similarity": 0.487, "content_similarity": 0.335, "left_pr_number": 64416, "right_pr_number": 64934, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts", "src/tasks/task-registry.types.ts" ], "similarity": 0.426, "size_similarity": 0.81 }, { "breadth_similarity": 0.667, "concentration_similarity": 0.588, "content_similarity": 0.348, "left_pr_number": 65013, "right_pr_number": 67463, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.404, "size_similarity": 0.428 }, { "breadth_similarity": 0.452, "concentration_similarity": 0.588, "content_similarity": 0.374, "left_pr_number": 64934, "right_pr_number": 67463, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.403, "size_similarity": 0.444 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.487, "content_similarity": 0.289, "left_pr_number": 64416, "right_pr_number": 65013, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.386, "size_similarity": 0.842 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.72, "content_similarity": 0.249, "left_pr_number": 64416, "right_pr_number": 65242, "shared_directories": [ "src/agents", "src/tasks", "src" ], "shared_filenames": [ "src/agents/acp-spawn.ts", "src/agents/subagent-announce.ts", "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.374, "size_similarity": 0.422 }, { "breadth_similarity": 0.458, "concentration_similarity": 0.767, "content_similarity": 0.293, "left_pr_number": 64934, "right_pr_number": 65242, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.341, "size_similarity": 0.342 }, { "breadth_similarity": 0.667, "concentration_similarity": 0.899, "content_similarity": 0.237, "left_pr_number": 64416, "right_pr_number": 67463, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.331, "size_similarity": 0.36 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.487, "content_similarity": 0.34, "left_pr_number": 64416, "right_pr_number": 69356, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.314, "size_similarity": 0.178 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.767, "content_similarity": 0.332, "left_pr_number": 65242, "right_pr_number": 69356, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.307, "size_similarity": 0.075 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.487, "content_similarity": 0.341, "left_pr_number": 60428, "right_pr_number": 64416, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.298, "size_similarity": 0.063 }, { "breadth_similarity": 0.667, "concentration_similarity": 0.821, "content_similarity": 0.235, "left_pr_number": 65242, "right_pr_number": 67463, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.295, "size_similarity": 0.152 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.767, "content_similarity": 0.313, "left_pr_number": 60428, "right_pr_number": 65242, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-registry.test.ts", "src/tasks/task-registry.ts" ], "similarity": 0.286, "size_similarity": 0.027 } ], "pr_count": 7, "pr_numbers": [ 60428, 64416, 64934, 65013, 65242, 67463, 69356 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67463, 69356 ], "representative_pr_number": 69356, "representative_title": "fix(tasks): clamp createdAt to startedAt on task creation (#69229)", "representative_url": "https://github.com/openclaw/openclaw/pull/69356", "shared_directories": [ "src/tasks", "src", "src/agents" ], "shared_filenames": [ "src/tasks/task-registry.ts", "src/tasks/task-registry.test.ts", "src/tasks/task-executor-policy.test.ts", "src/tasks/task-executor-policy.ts", "src/tasks/task-registry.types.ts", "src/agents/acp-spawn.ts", "src/agents/subagent-announce.ts" ], "summary": "7 open PRs share weighted file overlap around `src/tasks/task-registry.ts`, `src/tasks/task-registry.test.ts`, `src/tasks/task-executor-policy.test.ts`; representative PR #69356.", "title": "Scope: fix(tasks): clamp createdAt to startedAt on task creation (#69229)" }, { "authors": [ "SARAMALI15792", "kagura-agent" ], "average_similarity": 0.404, "cluster_id": "pr-scope-64597-7", "kind": "pr_scope", "last_activity_at": "2026-04-19T03:25:15Z", "outside_window_prs": [ { "additions": 248, "author": "shad0wca7", "changed_files": 7, "created_at": "2026-04-11T02:17:51Z", "deletions": 12, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64597/files", "html_url": "https://github.com/openclaw/openclaw/pull/64597", "merged": false, "number": 64597, "state": "open", "title": "fix: skip futile overflow truncation retries", "updated_at": "2026-04-13T00:19:08Z" }, { "additions": 301, "author": "nonzeroclaw", "changed_files": 10, "created_at": "2026-04-11T05:17:34Z", "deletions": 194, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64656/files", "html_url": "https://github.com/openclaw/openclaw/pull/64656", "merged": false, "number": 64656, "state": "open", "title": "fix: isolate auto-failover, split /new vs /reset LCM identity, add overflow circuit breaker", "updated_at": "2026-04-11T07:13:08Z" }, { "additions": 88, "author": "shad0wca7", "changed_files": 4, "created_at": "2026-04-11T18:06:38Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64956/files", "html_url": "https://github.com/openclaw/openclaw/pull/64956", "merged": false, "number": 64956, "state": "open", "title": "fix: dedupe session summaries by session id", "updated_at": "2026-04-13T00:22:35Z" }, { "additions": 628, "author": "rubencu", "changed_files": 16, "created_at": "2026-04-14T05:29:39Z", "deletions": 80, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66365/files", "html_url": "https://github.com/openclaw/openclaw/pull/66365", "merged": false, "number": 66365, "state": "open", "title": "fix: keep typing alive through long quiet phases", "updated_at": "2026-04-14T05:52:11Z" }, { "additions": 166, "author": "sahilsatralkar", "changed_files": 3, "created_at": "2026-04-14T12:26:35Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66537/files", "html_url": "https://github.com/openclaw/openclaw/pull/66537", "merged": false, "number": 66537, "state": "open", "title": "Fix: Issue 66397 silent final answer loss", "updated_at": "2026-04-15T09:51:28Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.689, "left_pr_number": 68575, "right_pr_number": 68798, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.674, "size_similarity": 0.445 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.632, "content_similarity": 0.461, "left_pr_number": 64956, "right_pr_number": 68575, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.51, "size_similarity": 0.709 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.566, "content_similarity": 0.428, "left_pr_number": 66537, "right_pr_number": 68575, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts" ], "similarity": 0.507, "size_similarity": 0.807 }, { "breadth_similarity": 0.548, "concentration_similarity": 0.922, "content_similarity": 0.409, "left_pr_number": 64597, "right_pr_number": 66537, "shared_directories": [ "src/agents/pi-embedded-runner", "src/auto-reply/reply", "src/agents", "src/auto-reply", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.ts", "src/auto-reply/reply/agent-runner-execution.test.ts" ], "similarity": 0.483, "size_similarity": 0.638 }, { "breadth_similarity": 0.564, "concentration_similarity": 0.878, "content_similarity": 0.399, "left_pr_number": 64597, "right_pr_number": 64656, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/auto-reply/reply", "src/agents", "src/auto-reply", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.ts", "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.459, "size_similarity": 0.525 }, { "breadth_similarity": 0.31, "concentration_similarity": 0.488, "content_similarity": 0.426, "left_pr_number": 64597, "right_pr_number": 68575, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.431, "size_similarity": 0.515 }, { "breadth_similarity": 0.452, "concentration_similarity": 0.488, "content_similarity": 0.32, "left_pr_number": 64597, "right_pr_number": 68798, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.423, "size_similarity": 0.864 }, { "breadth_similarity": 0.455, "concentration_similarity": 0.83, "content_similarity": 0.3, "left_pr_number": 64656, "right_pr_number": 66365, "shared_directories": [ "src/agents/pi-embedded-runner", "src/auto-reply/reply", "src/agents", "src/auto-reply", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.ts", "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.402, "size_similarity": 0.699 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.935, "content_similarity": 0.256, "left_pr_number": 64956, "right_pr_number": 66537, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts" ], "similarity": 0.399, "size_similarity": 0.572 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.566, "content_similarity": 0.32, "left_pr_number": 66537, "right_pr_number": 68798, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts" ], "similarity": 0.398, "size_similarity": 0.551 }, { "breadth_similarity": 0.343, "concentration_similarity": 0.979, "content_similarity": 0.402, "left_pr_number": 64656, "right_pr_number": 64956, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.393, "size_similarity": 0.192 }, { "breadth_similarity": 0.619, "concentration_similarity": 0.857, "content_similarity": 0.303, "left_pr_number": 64597, "right_pr_number": 64956, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.372, "size_similarity": 0.365 }, { "breadth_similarity": 0.552, "concentration_similarity": 0.709, "content_similarity": 0.32, "left_pr_number": 64597, "right_pr_number": 66365, "shared_directories": [ "src/agents/pi-embedded-runner", "src/auto-reply/reply", "src/agents", "src/auto-reply", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.ts", "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.37, "size_similarity": 0.367 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.632, "content_similarity": 0.302, "left_pr_number": 64956, "right_pr_number": 68798, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.365, "size_similarity": 0.316 }, { "breadth_similarity": 0.594, "concentration_similarity": 0.787, "content_similarity": 0.327, "left_pr_number": 66365, "right_pr_number": 66537, "shared_directories": [ "src/agents/pi-embedded-runner", "src/auto-reply/reply", "src/agents", "src/auto-reply", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.ts", "src/auto-reply/reply/agent-runner-execution.test.ts" ], "similarity": 0.363, "size_similarity": 0.234 }, { "breadth_similarity": 0.271, "concentration_similarity": 0.61, "content_similarity": 0.291, "left_pr_number": 64656, "right_pr_number": 68798, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.352, "size_similarity": 0.608 }, { "breadth_similarity": 0.171, "concentration_similarity": 0.61, "content_similarity": 0.367, "left_pr_number": 64656, "right_pr_number": 68575, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.345, "size_similarity": 0.271 }, { "breadth_similarity": 0.312, "concentration_similarity": 0.78, "content_similarity": 0.322, "left_pr_number": 66365, "right_pr_number": 68575, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.324, "size_similarity": 0.189 }, { "breadth_similarity": 0.293, "concentration_similarity": 0.956, "content_similarity": 0.271, "left_pr_number": 64656, "right_pr_number": 66537, "shared_directories": [ "src/agents/pi-embedded-runner", "src/auto-reply/reply", "src/agents", "src/auto-reply", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.ts", "src/auto-reply/reply/agent-runner-execution.test.ts" ], "similarity": 0.317, "size_similarity": 0.335 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.78, "content_similarity": 0.252, "left_pr_number": 66365, "right_pr_number": 68798, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.317, "size_similarity": 0.425 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.852, "content_similarity": 0.22, "left_pr_number": 64956, "right_pr_number": 66365, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.28, "size_similarity": 0.134 } ], "pr_count": 7, "pr_numbers": [ 64597, 64656, 64956, 66365, 66537, 68575, 68798 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68575, 68798 ], "representative_pr_number": 68575, "representative_title": "fix(telegram): reset sessions after unrecoverable context overflow", "representative_url": "https://github.com/openclaw/openclaw/pull/68575", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src", "src/agents/pi-embedded-runner", "src/agents", "src/agents/pi-embedded-runner/run" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.test.ts", "src/auto-reply/reply/agent-runner-execution.ts", "src/agents/pi-embedded-runner/run.ts" ], "summary": "7 open PRs share weighted file overlap around `src/auto-reply/reply/agent-runner-execution.test.ts`, `src/auto-reply/reply/agent-runner-execution.ts`, `src/agents/pi-embedded-runner/run.ts`; representative PR #68575.", "title": "Scope: fix(telegram): reset sessions after unrecoverable context overflow" }, { "authors": [ "acinader", "nnish16" ], "average_similarity": 0.648, "cluster_id": "pr-scope-62938-6", "kind": "pr_scope", "last_activity_at": "2026-04-21T14:08:35Z", "outside_window_prs": [ { "additions": 138, "author": "allensu0314", "changed_files": 2, "created_at": "2026-04-08T04:54:02Z", "deletions": 25, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/62938/files", "html_url": "https://github.com/openclaw/openclaw/pull/62938", "merged": false, "number": 62938, "state": "open", "title": "fix(exec-approvals): respect OPENCLAW_STATE_DIR for store paths", "updated_at": "2026-04-12T15:00:18Z" }, { "additions": 71, "author": "FunJim", "changed_files": 2, "created_at": "2026-04-11T05:49:55Z", "deletions": 17, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64663/files", "html_url": "https://github.com/openclaw/openclaw/pull/64663", "merged": false, "number": 64663, "state": "open", "title": "fix: allow symlinked OPENCLAW_HOME in exec approvals path check", "updated_at": "2026-04-13T13:46:48Z" }, { "additions": 46, "author": "oinoom", "changed_files": 3, "created_at": "2026-04-13T05:43:01Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65736/files", "html_url": "https://github.com/openclaw/openclaw/pull/65736", "merged": false, "number": 65736, "state": "open", "title": "fix(exec): respect OPENCLAW_STATE_DIR for exec approvals", "updated_at": "2026-04-13T05:52:32Z" }, { "additions": 30, "author": "nighting0615", "changed_files": 3, "created_at": "2026-04-14T07:39:00Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66404/files", "html_url": "https://github.com/openclaw/openclaw/pull/66404", "merged": false, "number": 66404, "state": "open", "title": "fix(exec-approvals): honor OPENCLAW_STATE_DIR for default host paths", "updated_at": "2026-04-14T07:43:47Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.958, "left_pr_number": 64663, "right_pr_number": 68417, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.957, "size_similarity": 0.907 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.897, "left_pr_number": 62938, "right_pr_number": 68417, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.867, "size_similarity": 0.595 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.943, "content_similarity": 0.831, "left_pr_number": 65736, "right_pr_number": 66404, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.816, "size_similarity": 0.745 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.821, "left_pr_number": 62938, "right_pr_number": 64663, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.806, "size_similarity": 0.54 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.943, "content_similarity": 0.784, "left_pr_number": 62938, "right_pr_number": 66404, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.687, "size_similarity": 0.215 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.722, "left_pr_number": 62938, "right_pr_number": 65736, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.682, "size_similarity": 0.288 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.724, "content_similarity": 0.55, "left_pr_number": 68417, "right_pr_number": 69732, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.598, "size_similarity": 0.897 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.724, "content_similarity": 0.611, "left_pr_number": 62938, "right_pr_number": 69732, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.586, "size_similarity": 0.534 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.525, "left_pr_number": 65736, "right_pr_number": 68417, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.574, "size_similarity": 0.485 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.512, "left_pr_number": 64663, "right_pr_number": 65736, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.572, "size_similarity": 0.534 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.943, "content_similarity": 0.555, "left_pr_number": 66404, "right_pr_number": 68417, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.548, "size_similarity": 0.361 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.943, "content_similarity": 0.542, "left_pr_number": 64663, "right_pr_number": 66404, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.544, "size_similarity": 0.398 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.724, "content_similarity": 0.444, "left_pr_number": 64663, "right_pr_number": 69732, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.537, "size_similarity": 0.989 }, { "breadth_similarity": 0.708, "concentration_similarity": 0.781, "content_similarity": 0.446, "left_pr_number": 66404, "right_pr_number": 69732, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.482, "size_similarity": 0.402 }, { "breadth_similarity": 0.542, "concentration_similarity": 0.724, "content_similarity": 0.413, "left_pr_number": 65736, "right_pr_number": 69732, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "similarity": 0.46, "size_similarity": 0.54 } ], "pr_count": 6, "pr_numbers": [ 62938, 64663, 65736, 66404, 68417, 69732 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68417, 69732 ], "representative_pr_number": 62938, "representative_title": "fix(exec-approvals): respect OPENCLAW_STATE_DIR for store paths", "representative_url": "https://github.com/openclaw/openclaw/pull/62938", "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/exec-approvals-store.test.ts", "src/infra/exec-approvals.ts" ], "summary": "6 open PRs share weighted file overlap around `src/infra/exec-approvals-store.test.ts`, `src/infra/exec-approvals.ts`; representative PR #62938.", "title": "Scope: fix(exec-approvals): respect OPENCLAW_STATE_DIR for store paths" }, { "authors": [ "bohell", "hieptuanle" ], "average_similarity": 0.408, "cluster_id": "pr-scope-53604-6", "kind": "pr_scope", "last_activity_at": "2026-04-21T08:37:33Z", "outside_window_prs": [ { "additions": 188, "author": "Qinsam", "changed_files": 4, "created_at": "2026-03-24T10:04:00Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53604/files", "html_url": "https://github.com/openclaw/openclaw/pull/53604", "merged": false, "number": 53604, "state": "open", "title": "fix(mattermost): detect stale websocket after bot disable/enable cycle", "updated_at": "2026-03-24T20:15:30Z" }, { "additions": 106, "author": "coygeek", "changed_files": 9, "created_at": "2026-04-11T00:08:56Z", "deletions": 32, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64546/files", "html_url": "https://github.com/openclaw/openclaw/pull/64546", "merged": false, "number": 64546, "state": "open", "title": "fix: Mattermost interaction token forgeable via hardcoded HMAC...", "updated_at": "2026-04-11T00:12:09Z" }, { "additions": 148, "author": "neeravmakwana", "changed_files": 8, "created_at": "2026-04-13T01:51:26Z", "deletions": 22, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65648/files", "html_url": "https://github.com/openclaw/openclaw/pull/65648", "merged": false, "number": 65648, "state": "open", "title": "fix(mattermost): harden native slash command callbacks", "updated_at": "2026-04-13T02:48:40Z" }, { "additions": 119, "author": "coygeek", "changed_files": 8, "created_at": "2026-04-13T02:08:19Z", "deletions": 32, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65655/files", "html_url": "https://github.com/openclaw/openclaw/pull/65655", "merged": false, "number": 65655, "state": "open", "title": "fix: harden Mattermost slash callback auth", "updated_at": "2026-04-13T02:11:39Z" } ], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 0.92, "content_similarity": 0.889, "left_pr_number": 65648, "right_pr_number": 65655, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [ "extensions/mattermost/src/mattermost/monitor-slash.test.ts", "extensions/mattermost/src/mattermost/monitor-slash.ts", "extensions/mattermost/src/mattermost/slash-http.send-config.test.ts", "extensions/mattermost/src/mattermost/slash-http.test.ts", "extensions/mattermost/src/mattermost/slash-http.ts", "extensions/mattermost/src/mattermost/slash-state.ts" ], "similarity": 0.885, "size_similarity": 0.888 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.629, "left_pr_number": 53604, "right_pr_number": 68737, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [ "extensions/mattermost/src/mattermost/monitor-websocket.ts" ], "similarity": 0.583, "size_similarity": 0.2 }, { "breadth_similarity": 0.944, "concentration_similarity": 0.846, "content_similarity": 0.24, "left_pr_number": 64546, "right_pr_number": 65648, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [], "similarity": 0.426, "size_similarity": 0.812 }, { "breadth_similarity": 0.778, "concentration_similarity": 0.927, "content_similarity": 0.226, "left_pr_number": 64546, "right_pr_number": 65655, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [], "similarity": 0.419, "size_similarity": 0.914 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.994, "content_similarity": 0.261, "left_pr_number": 53604, "right_pr_number": 65648, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [], "similarity": 0.417, "size_similarity": 0.895 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.274, "left_pr_number": 68737, "right_pr_number": 69038, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [], "similarity": 0.409, "size_similarity": 0.447 }, { "breadth_similarity": 0.312, "concentration_similarity": 0.994, "content_similarity": 0.427, "left_pr_number": 65648, "right_pr_number": 69038, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [ "extensions/mattermost/src/mattermost/slash-state.ts" ], "similarity": 0.395, "size_similarity": 0.1 }, { "breadth_similarity": 0.472, "concentration_similarity": 0.841, "content_similarity": 0.272, "left_pr_number": 53604, "right_pr_number": 64546, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [ "extensions/mattermost/src/mattermost/monitor.ts" ], "similarity": 0.388, "size_similarity": 0.726 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.914, "content_similarity": 0.246, "left_pr_number": 53604, "right_pr_number": 65655, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [], "similarity": 0.379, "size_similarity": 0.795 }, { "breadth_similarity": 0.229, "concentration_similarity": 0.914, "content_similarity": 0.413, "left_pr_number": 65655, "right_pr_number": 69038, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [ "extensions/mattermost/src/mattermost/slash-state.ts" ], "similarity": 0.374, "size_similarity": 0.113 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.283, "left_pr_number": 53604, "right_pr_number": 69038, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [], "similarity": 0.324, "size_similarity": 0.089 }, { "breadth_similarity": 0.312, "concentration_similarity": 0.994, "content_similarity": 0.252, "left_pr_number": 65648, "right_pr_number": 68737, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [], "similarity": 0.291, "size_similarity": 0.224 }, { "breadth_similarity": 0.306, "concentration_similarity": 0.841, "content_similarity": 0.24, "left_pr_number": 64546, "right_pr_number": 68737, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [], "similarity": 0.282, "size_similarity": 0.275 }, { "breadth_similarity": 0.306, "concentration_similarity": 0.841, "content_similarity": 0.26, "left_pr_number": 64546, "right_pr_number": 69038, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [], "similarity": 0.273, "size_similarity": 0.123 }, { "breadth_similarity": 0.229, "concentration_similarity": 0.914, "content_similarity": 0.237, "left_pr_number": 65655, "right_pr_number": 68737, "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [], "similarity": 0.272, "size_similarity": 0.252 } ], "pr_count": 6, "pr_numbers": [ 53604, 64546, 65648, 65655, 68737, 69038 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68737, 69038 ], "representative_pr_number": 65648, "representative_title": "fix(mattermost): harden native slash command callbacks", "representative_url": "https://github.com/openclaw/openclaw/pull/65648", "shared_directories": [ "extensions/mattermost/src/mattermost", "extensions/mattermost/src", "extensions/mattermost", "extensions" ], "shared_filenames": [ "extensions/mattermost/src/mattermost/slash-state.ts", "extensions/mattermost/src/mattermost/monitor-slash.ts", "extensions/mattermost/src/mattermost/slash-http.test.ts", "extensions/mattermost/src/mattermost/monitor-slash.test.ts", "extensions/mattermost/src/mattermost/slash-http.send-config.test.ts", "extensions/mattermost/src/mattermost/slash-http.ts", "extensions/mattermost/src/mattermost/monitor-websocket.ts", "extensions/mattermost/src/mattermost/monitor.ts" ], "summary": "6 open PRs share weighted file overlap around `extensions/mattermost/src/mattermost/slash-state.ts`, `extensions/mattermost/src/mattermost/monitor-slash.ts`, `extensions/mattermost/src/mattermost/slash-http.test.ts`; representative PR #65648.", "title": "Scope: fix(mattermost): harden native slash command callbacks" }, { "authors": [ "VACInc", "henkterharmsel" ], "average_similarity": 0.402, "cluster_id": "pr-scope-37863-6", "kind": "pr_scope", "last_activity_at": "2026-04-21T16:02:00Z", "outside_window_prs": [ { "additions": 39, "author": "matt-from-uk", "changed_files": 2, "created_at": "2026-03-06T13:44:27Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37863/files", "html_url": "https://github.com/openclaw/openclaw/pull/37863", "merged": false, "number": 37863, "state": "open", "title": "fix(sessions): preserve idle reset timestamp in updateLastRoute", "updated_at": "2026-04-20T04:38:16Z" }, { "additions": 6, "author": "Erik-Huang", "changed_files": 1, "created_at": "2026-03-06T18:43:17Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38268/files", "html_url": "https://github.com/openclaw/openclaw/pull/38268", "merged": false, "number": 38268, "state": "open", "title": "fix(sessions): updateLastRoute should not bump updatedAt", "updated_at": "2026-04-21T04:30:09Z" }, { "additions": 448, "author": "ryanfrigo", "changed_files": 3, "created_at": "2026-03-06T19:49:50Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38297/files", "html_url": "https://github.com/openclaw/openclaw/pull/38297", "merged": false, "number": 38297, "state": "open", "title": "feat: write-behind session store with optional filesystem lock bypass", "updated_at": "2026-04-21T04:30:27Z" }, { "additions": 86, "author": "rocklobster-ai", "changed_files": 3, "created_at": "2026-04-13T21:52:33Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66174/files", "html_url": "https://github.com/openclaw/openclaw/pull/66174", "merged": false, "number": 66174, "state": "open", "title": "Fix session transcript path canonicalization on save", "updated_at": "2026-04-13T21:59:13Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.509, "left_pr_number": 66174, "right_pr_number": 69772, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.pruning.integration.test.ts", "src/config/sessions/store.ts" ], "similarity": 0.584, "size_similarity": 0.518 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.414, "left_pr_number": 38268, "right_pr_number": 68554, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.571, "size_similarity": 0.875 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.539, "left_pr_number": 37863, "right_pr_number": 38268, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.529, "size_similarity": 0.178 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.489, "left_pr_number": 38297, "right_pr_number": 66174, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.521, "size_similarity": 0.192 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.432, "left_pr_number": 38268, "right_pr_number": 38297, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.422, "size_similarity": 0.018 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.4, "left_pr_number": 38268, "right_pr_number": 66174, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.411, "size_similarity": 0.092 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.284, "left_pr_number": 37863, "right_pr_number": 66174, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.41, "size_similarity": 0.517 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.399, "left_pr_number": 66174, "right_pr_number": 68554, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.408, "size_similarity": 0.08 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.393, "left_pr_number": 38297, "right_pr_number": 68554, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.394, "size_similarity": 0.015 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.291, "left_pr_number": 37863, "right_pr_number": 38297, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.352, "size_similarity": 0.099 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.285, "left_pr_number": 37863, "right_pr_number": 68554, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.348, "size_similarity": 0.156 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.159, "left_pr_number": 38297, "right_pr_number": 69772, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.317, "size_similarity": 0.371 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.17, "left_pr_number": 37863, "right_pr_number": 69772, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.293, "size_similarity": 0.268 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.157, "left_pr_number": 38268, "right_pr_number": 69772, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.233, "size_similarity": 0.048 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.156, "left_pr_number": 68554, "right_pr_number": 69772, "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts" ], "similarity": 0.232, "size_similarity": 0.042 } ], "pr_count": 6, "pr_numbers": [ 37863, 38268, 38297, 66174, 68554, 69772 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68554, 69772 ], "representative_pr_number": 66174, "representative_title": "Fix session transcript path canonicalization on save", "representative_url": "https://github.com/openclaw/openclaw/pull/66174", "shared_directories": [ "src/config/sessions", "src/config", "src" ], "shared_filenames": [ "src/config/sessions/store.ts", "src/config/sessions/store.pruning.integration.test.ts" ], "summary": "6 open PRs share weighted file overlap around `src/config/sessions/store.ts`, `src/config/sessions/store.pruning.integration.test.ts`; representative PR #66174.", "title": "Scope: Fix session transcript path canonicalization on save" }, { "authors": [ "MonkeyLeeT", "mrlane2k" ], "average_similarity": 0.375, "cluster_id": "pr-scope-50200-6", "kind": "pr_scope", "last_activity_at": "2026-04-21T16:25:03Z", "outside_window_prs": [ { "additions": 99, "author": "smartchainark", "changed_files": 5, "created_at": "2026-03-19T04:32:52Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/50200/files", "html_url": "https://github.com/openclaw/openclaw/pull/50200", "merged": false, "number": 50200, "state": "open", "title": "fix(slack): fetch fresh download URL via files.info for DM file attachments", "updated_at": "2026-04-17T16:49:00Z" }, { "additions": 133, "author": "hanamizuki", "changed_files": 7, "created_at": "2026-03-24T06:32:38Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53467/files", "html_url": "https://github.com/openclaw/openclaw/pull/53467", "merged": false, "number": 53467, "state": "open", "title": "feat(slack): add ignoreOtherMentions channel config", "updated_at": "2026-04-17T16:06:02Z" }, { "additions": 176, "author": "yozu", "changed_files": 8, "created_at": "2026-04-13T03:38:55Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65691/files", "html_url": "https://github.com/openclaw/openclaw/pull/65691", "merged": false, "number": 65691, "state": "open", "title": "feat(slack): add message search support via search.messages API", "updated_at": "2026-04-14T11:18:06Z" }, { "additions": 216, "author": "yangxiyucs", "changed_files": 3, "created_at": "2026-04-13T14:23:50Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65980/files", "html_url": "https://github.com/openclaw/openclaw/pull/65980", "merged": false, "number": 65980, "state": "open", "title": "fix(slack): render inbound user mentions in message bodies", "updated_at": "2026-04-14T11:45:14Z" } ], "pairwise": [ { "breadth_similarity": 0.339, "concentration_similarity": 0.816, "content_similarity": 0.525, "left_pr_number": 53467, "right_pr_number": 65980, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.test.ts", "extensions/slack/src/monitor/message-handler/prepare.ts" ], "similarity": 0.535, "size_similarity": 0.621 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.337, "left_pr_number": 65980, "right_pr_number": 67872, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.ts" ], "similarity": 0.494, "size_similarity": 0.831 }, { "breadth_similarity": 0.268, "concentration_similarity": 0.816, "content_similarity": 0.416, "left_pr_number": 53467, "right_pr_number": 67872, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.ts" ], "similarity": 0.471, "size_similarity": 0.747 }, { "breadth_similarity": 0.55, "concentration_similarity": 0.95, "content_similarity": 0.344, "left_pr_number": 50200, "right_pr_number": 65980, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare-content.ts", "extensions/slack/src/monitor/message-handler/prepare.ts" ], "similarity": 0.412, "size_similarity": 0.457 }, { "breadth_similarity": 0.607, "concentration_similarity": 0.866, "content_similarity": 0.259, "left_pr_number": 50200, "right_pr_number": 53467, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.ts" ], "similarity": 0.395, "size_similarity": 0.735 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.144, "left_pr_number": 67872, "right_pr_number": 69429, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.37, "size_similarity": 0.995 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.95, "content_similarity": 0.265, "left_pr_number": 50200, "right_pr_number": 67872, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.ts" ], "similarity": 0.36, "size_similarity": 0.549 }, { "breadth_similarity": 0.8, "concentration_similarity": 1.0, "content_similarity": 0.145, "left_pr_number": 65980, "right_pr_number": 69429, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.356, "size_similarity": 0.826 }, { "breadth_similarity": 0.562, "concentration_similarity": 0.966, "content_similarity": 0.147, "left_pr_number": 65691, "right_pr_number": 69429, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.355, "size_similarity": 0.983 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.966, "content_similarity": 0.137, "left_pr_number": 65691, "right_pr_number": 67872, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.329, "size_similarity": 0.978 }, { "breadth_similarity": 0.688, "concentration_similarity": 0.85, "content_similarity": 0.133, "left_pr_number": 53467, "right_pr_number": 65691, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions", "src" ], "shared_filenames": [], "similarity": 0.319, "size_similarity": 0.764 }, { "breadth_similarity": 0.438, "concentration_similarity": 0.966, "content_similarity": 0.139, "left_pr_number": 65691, "right_pr_number": 65980, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.311, "size_similarity": 0.813 }, { "breadth_similarity": 0.812, "concentration_similarity": 0.984, "content_similarity": 0.134, "left_pr_number": 50200, "right_pr_number": 65691, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.309, "size_similarity": 0.562 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.95, "content_similarity": 0.141, "left_pr_number": 50200, "right_pr_number": 69429, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.304, "size_similarity": 0.552 }, { "breadth_similarity": 0.482, "concentration_similarity": 0.816, "content_similarity": 0.139, "left_pr_number": 53467, "right_pr_number": 69429, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.299, "size_similarity": 0.751 } ], "pr_count": 6, "pr_numbers": [ 50200, 53467, 65691, 65980, 67872, 69429 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67872, 69429 ], "representative_pr_number": 65980, "representative_title": "fix(slack): render inbound user mentions in message bodies", "representative_url": "https://github.com/openclaw/openclaw/pull/65980", "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions", "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "src" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.ts", "extensions/slack/src/monitor/message-handler/prepare-content.ts", "extensions/slack/src/monitor/message-handler/prepare.test.ts" ], "summary": "6 open PRs share weighted file overlap around `extensions/slack/src/monitor/message-handler/prepare.ts`, `extensions/slack/src/monitor/message-handler/prepare-content.ts`, `extensions/slack/src/monitor/message-handler/prepare.test.ts`; representative PR #65980.", "title": "Scope: fix(slack): render inbound user mentions in message bodies" }, { "authors": [ "jack-ra", "joeia26" ], "average_similarity": 0.708, "cluster_id": "pr-scope-63656-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T06:49:58Z", "outside_window_prs": [ { "additions": 89, "author": "eyev0", "changed_files": 5, "created_at": "2026-04-09T09:16:53Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63656/files", "html_url": "https://github.com/openclaw/openclaw/pull/63656", "merged": false, "number": 63656, "state": "open", "title": "fix(acp): route /acp lifecycle commands to local handlers", "updated_at": "2026-04-13T11:51:53Z" }, { "additions": 70, "author": "sercada", "changed_files": 2, "created_at": "2026-04-12T08:11:04Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65248/files", "html_url": "https://github.com/openclaw/openclaw/pull/65248", "merged": false, "number": 65248, "state": "open", "title": "fix(acp): bypass bound slash commands to local handlers", "updated_at": "2026-04-12T14:27:05Z" }, { "additions": 138, "author": "kindomLee", "changed_files": 4, "created_at": "2026-04-14T07:46:43Z", "deletions": 13, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66407/files", "html_url": "https://github.com/openclaw/openclaw/pull/66407", "merged": false, "number": 66407, "state": "open", "title": "fix(acp): bypass ACP dispatch for /acp text commands in bound threads", "updated_at": "2026-04-21T06:49:55Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.977, "left_pr_number": 65248, "right_pr_number": 68407, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-acp-command-bypass.test.ts", "src/auto-reply/reply/dispatch-acp-command-bypass.ts" ], "similarity": 0.899, "size_similarity": 0.436 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.886, "left_pr_number": 65248, "right_pr_number": 66407, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-acp-command-bypass.test.ts", "src/auto-reply/reply/dispatch-acp-command-bypass.ts" ], "similarity": 0.823, "size_similarity": 0.517 }, { "breadth_similarity": 0.65, "concentration_similarity": 0.819, "content_similarity": 0.838, "left_pr_number": 63656, "right_pr_number": 66407, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/commands-acp.test.ts", "src/auto-reply/reply/dispatch-acp-command-bypass.test.ts", "src/auto-reply/reply/dispatch-acp-command-bypass.ts" ], "similarity": 0.786, "size_similarity": 0.623 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.819, "content_similarity": 0.809, "left_pr_number": 63656, "right_pr_number": 65248, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-acp-command-bypass.test.ts", "src/auto-reply/reply/dispatch-acp-command-bypass.ts" ], "similarity": 0.777, "size_similarity": 0.83 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.868, "left_pr_number": 66407, "right_pr_number": 68407, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-acp-command-bypass.test.ts", "src/auto-reply/reply/dispatch-acp-command-bypass.ts" ], "similarity": 0.766, "size_similarity": 0.225 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.819, "content_similarity": 0.804, "left_pr_number": 63656, "right_pr_number": 68407, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-acp-command-bypass.test.ts", "src/auto-reply/reply/dispatch-acp-command-bypass.ts" ], "similarity": 0.703, "size_similarity": 0.362 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.51, "content_similarity": 0.638, "left_pr_number": 68407, "right_pr_number": 68617, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-acp-command-bypass.test.ts", "src/auto-reply/reply/dispatch-acp-command-bypass.ts" ], "similarity": 0.635, "size_similarity": 0.694 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.51, "content_similarity": 0.607, "left_pr_number": 65248, "right_pr_number": 68617, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-acp-command-bypass.test.ts", "src/auto-reply/reply/dispatch-acp-command-bypass.ts" ], "similarity": 0.603, "size_similarity": 0.628 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.691, "content_similarity": 0.522, "left_pr_number": 63656, "right_pr_number": 68617, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-acp-command-bypass.test.ts", "src/auto-reply/reply/dispatch-acp-command-bypass.ts" ], "similarity": 0.558, "size_similarity": 0.521 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.51, "content_similarity": 0.566, "left_pr_number": 66407, "right_pr_number": 68617, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-acp-command-bypass.test.ts", "src/auto-reply/reply/dispatch-acp-command-bypass.ts" ], "similarity": 0.533, "size_similarity": 0.325 } ], "pr_count": 5, "pr_numbers": [ 63656, 65248, 66407, 68407, 68617 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68407, 68617 ], "representative_pr_number": 65248, "representative_title": "fix(acp): bypass bound slash commands to local handlers", "representative_url": "https://github.com/openclaw/openclaw/pull/65248", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-acp-command-bypass.test.ts", "src/auto-reply/reply/dispatch-acp-command-bypass.ts", "src/auto-reply/reply/commands-acp.test.ts" ], "summary": "5 open PRs share weighted file overlap around `src/auto-reply/reply/dispatch-acp-command-bypass.test.ts`, `src/auto-reply/reply/dispatch-acp-command-bypass.ts`, `src/auto-reply/reply/commands-acp.test.ts`; representative PR #65248.", "title": "Scope: fix(acp): bypass bound slash commands to local handlers" }, { "authors": [ "Joel-Claw", "samzong" ], "average_similarity": 0.564, "cluster_id": "pr-scope-63783-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T07:31:02Z", "outside_window_prs": [ { "additions": 277, "author": "helloworldtang", "changed_files": 3, "created_at": "2026-04-09T14:32:28Z", "deletions": 14, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63783/files", "html_url": "https://github.com/openclaw/openclaw/pull/63783", "merged": false, "number": 63783, "state": "open", "title": "fix(webchat): preserve image attachments for text-only models", "updated_at": "2026-04-20T00:25:34Z" }, { "additions": 122, "author": "tars90percent", "changed_files": 2, "created_at": "2026-04-13T11:28:23Z", "deletions": 21, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65911/files", "html_url": "https://github.com/openclaw/openclaw/pull/65911", "merged": false, "number": 65911, "state": "open", "title": "fix(gateway): save web UI images to disk for non-vision models", "updated_at": "2026-04-13T11:36:19Z" }, { "additions": 242, "author": "samzong", "changed_files": 6, "created_at": "2026-04-14T14:40:28Z", "deletions": 53, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66613/files", "html_url": "https://github.com/openclaw/openclaw/pull/66613", "merged": false, "number": 66613, "state": "open", "title": "fix(gateway): fail loud on all attachment parse failures (#48123)", "updated_at": "2026-04-15T01:13:44Z" } ], "pairwise": [ { "breadth_similarity": 0.333, "concentration_similarity": 0.895, "content_similarity": 0.704, "left_pr_number": 65911, "right_pr_number": 66613, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/chat-attachments.test.ts", "src/gateway/chat-attachments.ts" ], "similarity": 0.644, "size_similarity": 0.485 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.612, "content_similarity": 0.676, "left_pr_number": 63783, "right_pr_number": 65911, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/chat-attachments.test.ts", "src/gateway/chat-attachments.ts" ], "similarity": 0.636, "size_similarity": 0.491 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.656, "content_similarity": 0.701, "left_pr_number": 66613, "right_pr_number": 67572, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/chat-attachments.test.ts", "src/gateway/chat-attachments.ts", "src/gateway/server-methods/chat.directive-tags.test.ts", "src/gateway/server-node-events.test.ts", "src/gateway/server-node-events.ts" ], "similarity": 0.604, "size_similarity": 0.207 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.717, "content_similarity": 0.51, "left_pr_number": 63783, "right_pr_number": 66613, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/chat-attachments.test.ts", "src/gateway/chat-attachments.ts" ], "similarity": 0.599, "size_similarity": 0.986 }, { "breadth_similarity": 0.714, "concentration_similarity": 0.965, "content_similarity": 0.52, "left_pr_number": 63783, "right_pr_number": 67634, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/chat-attachments.test.ts", "src/gateway/chat-attachments.ts" ], "similarity": 0.577, "size_similarity": 0.619 }, { "breadth_similarity": 0.762, "concentration_similarity": 0.752, "content_similarity": 0.503, "left_pr_number": 66613, "right_pr_number": 67634, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/chat-attachments.test.ts", "src/gateway/chat-attachments.ts", "src/gateway/server-node-events.ts" ], "similarity": 0.56, "size_similarity": 0.628 }, { "breadth_similarity": 0.393, "concentration_similarity": 0.647, "content_similarity": 0.622, "left_pr_number": 65911, "right_pr_number": 67634, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/chat-attachments.test.ts", "src/gateway/chat-attachments.ts" ], "similarity": 0.552, "size_similarity": 0.304 }, { "breadth_similarity": 0.433, "concentration_similarity": 0.904, "content_similarity": 0.581, "left_pr_number": 67572, "right_pr_number": 67634, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/chat-attachments.test.ts", "src/gateway/chat-attachments.ts", "src/gateway/server-methods/agent.ts", "src/gateway/server-methods/chat.ts", "src/gateway/server-node-events.runtime.ts", "src/gateway/server-node-events.ts" ], "similarity": 0.544, "size_similarity": 0.33 }, { "breadth_similarity": 0.167, "concentration_similarity": 0.551, "content_similarity": 0.598, "left_pr_number": 65911, "right_pr_number": 67572, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/chat-attachments.test.ts", "src/gateway/chat-attachments.ts" ], "similarity": 0.478, "size_similarity": 0.1 }, { "breadth_similarity": 0.3, "concentration_similarity": 0.939, "content_similarity": 0.48, "left_pr_number": 63783, "right_pr_number": 67572, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/chat-attachments.test.ts", "src/gateway/chat-attachments.ts" ], "similarity": 0.443, "size_similarity": 0.204 } ], "pr_count": 5, "pr_numbers": [ 63783, 65911, 66613, 67572, 67634 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67572, 67634 ], "representative_pr_number": 66613, "representative_title": "fix(gateway): fail loud on all attachment parse failures (#48123)", "representative_url": "https://github.com/openclaw/openclaw/pull/66613", "shared_directories": [ "src/gateway", "src", "src/gateway/server-methods" ], "shared_filenames": [ "src/gateway/chat-attachments.test.ts", "src/gateway/chat-attachments.ts", "src/gateway/server-node-events.ts", "src/gateway/server-node-events.runtime.ts", "src/gateway/server-node-events.test.ts", "src/gateway/server-methods/chat.directive-tags.test.ts", "src/gateway/server-methods/agent.ts", "src/gateway/server-methods/chat.ts" ], "summary": "5 open PRs share weighted file overlap around `src/gateway/chat-attachments.test.ts`, `src/gateway/chat-attachments.ts`, `src/gateway/server-node-events.ts`; representative PR #66613.", "title": "Scope: fix(gateway): fail loud on all attachment parse failures (#48123)" }, { "authors": [ "kaseonedge", "richardclawbot" ], "average_similarity": 0.511, "cluster_id": "pr-scope-52747-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T09:13:06Z", "outside_window_prs": [ { "additions": 942, "author": "imwyvern", "changed_files": 41, "created_at": "2026-03-23T09:03:54Z", "deletions": 556, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/52747/files", "html_url": "https://github.com/openclaw/openclaw/pull/52747", "merged": false, "number": 52747, "state": "open", "title": "fix(acp): time out stuck session lane tasks", "updated_at": "2026-04-19T16:38:00Z" }, { "additions": 404, "author": "eyev0", "changed_files": 4, "created_at": "2026-04-09T15:07:18Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63793/files", "html_url": "https://github.com/openclaw/openclaw/pull/63793", "merged": false, "number": 63793, "state": "open", "title": "fix(acp): fail fast on dead spawns and recover stale disconnects", "updated_at": "2026-04-13T11:51:53Z" }, { "additions": 360, "author": "SARAMALI15792", "changed_files": 4, "created_at": "2026-04-13T01:37:11Z", "deletions": 59, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65640/files", "html_url": "https://github.com/openclaw/openclaw/pull/65640", "merged": false, "number": 65640, "state": "open", "title": "fix(acp): persistent session recovery for --bind here sessions", "updated_at": "2026-04-13T02:22:06Z" } ], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 0.994, "content_similarity": 0.596, "left_pr_number": 63793, "right_pr_number": 65640, "shared_directories": [ "src/acp/control-plane", "src/auto-reply/reply", "src/acp", "src/auto-reply", "src" ], "shared_filenames": [ "src/acp/control-plane/manager.core.ts", "src/acp/control-plane/manager.test.ts" ], "similarity": 0.698, "size_similarity": 0.981 }, { "breadth_similarity": 0.536, "concentration_similarity": 0.803, "content_similarity": 0.517, "left_pr_number": 65640, "right_pr_number": 69328, "shared_directories": [ "src/acp/control-plane", "src/acp", "src" ], "shared_filenames": [ "src/acp/control-plane/manager.core.ts", "src/acp/control-plane/manager.test.ts" ], "similarity": 0.555, "size_similarity": 0.661 }, { "breadth_similarity": 0.661, "concentration_similarity": 0.796, "content_similarity": 0.497, "left_pr_number": 63793, "right_pr_number": 69328, "shared_directories": [ "src/acp/control-plane", "src/acp", "src" ], "shared_filenames": [ "src/acp/control-plane/manager.core.ts", "src/acp/control-plane/manager.test.ts" ], "similarity": 0.551, "size_similarity": 0.648 }, { "breadth_similarity": 0.252, "concentration_similarity": 0.989, "content_similarity": 0.622, "left_pr_number": 52747, "right_pr_number": 69542, "shared_directories": [ "src/acp/control-plane", "src/acp", "src/config", "src" ], "shared_filenames": [ "src/acp/control-plane/manager.core.ts", "src/config/schema.base.generated.ts", "src/config/schema.help.ts", "src/config/schema.labels.ts", "src/config/types.acp.ts", "src/config/zod-schema.ts" ], "similarity": 0.527, "size_similarity": 0.111 }, { "breadth_similarity": 0.16, "concentration_similarity": 1.0, "content_similarity": 0.565, "left_pr_number": 52747, "right_pr_number": 65640, "shared_directories": [ "src/acp/control-plane", "src/acp", "src" ], "shared_filenames": [ "src/acp/control-plane/manager.core.ts", "src/acp/control-plane/manager.test.ts" ], "similarity": 0.504, "size_similarity": 0.28 }, { "breadth_similarity": 0.619, "concentration_similarity": 0.99, "content_similarity": 0.456, "left_pr_number": 65640, "right_pr_number": 69542, "shared_directories": [ "src/acp/control-plane", "src/acp", "src" ], "shared_filenames": [ "src/acp/control-plane/manager.core.ts" ], "similarity": 0.49, "size_similarity": 0.399 }, { "breadth_similarity": 0.215, "concentration_similarity": 0.993, "content_similarity": 0.488, "left_pr_number": 52747, "right_pr_number": 63793, "shared_directories": [ "src/acp/control-plane", "src/acp", "src" ], "shared_filenames": [ "src/acp/control-plane/manager.core.ts", "src/acp/control-plane/manager.test.ts" ], "similarity": 0.454, "size_similarity": 0.274 }, { "breadth_similarity": 0.308, "concentration_similarity": 0.803, "content_similarity": 0.454, "left_pr_number": 52747, "right_pr_number": 69328, "shared_directories": [ "src/acp/control-plane", "src/acp", "src" ], "shared_filenames": [ "src/acp/control-plane/manager.core.ts", "src/acp/control-plane/manager.test.ts" ], "similarity": 0.453, "size_similarity": 0.423 }, { "breadth_similarity": 0.786, "concentration_similarity": 0.996, "content_similarity": 0.372, "left_pr_number": 63793, "right_pr_number": 69542, "shared_directories": [ "src/acp/control-plane", "src/acp", "src" ], "shared_filenames": [ "src/acp/control-plane/manager.core.ts" ], "similarity": 0.45, "size_similarity": 0.406 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.793, "content_similarity": 0.373, "left_pr_number": 69328, "right_pr_number": 69542, "shared_directories": [ "src/acp/control-plane", "src/acp", "src" ], "shared_filenames": [ "src/acp/control-plane/manager.core.ts" ], "similarity": 0.428, "size_similarity": 0.263 } ], "pr_count": 5, "pr_numbers": [ 52747, 63793, 65640, 69328, 69542 ], "recent_pr_count": 2, "recent_pr_numbers": [ 69328, 69542 ], "representative_pr_number": 65640, "representative_title": "fix(acp): persistent session recovery for --bind here sessions", "representative_url": "https://github.com/openclaw/openclaw/pull/65640", "shared_directories": [ "src/acp/control-plane", "src/acp", "src", "src/auto-reply/reply", "src/config", "src/auto-reply" ], "shared_filenames": [ "src/acp/control-plane/manager.core.ts", "src/acp/control-plane/manager.test.ts", "src/config/types.acp.ts", "src/config/zod-schema.ts", "src/config/schema.labels.ts", "src/config/schema.help.ts", "src/config/schema.base.generated.ts" ], "summary": "5 open PRs share weighted file overlap around `src/acp/control-plane/manager.core.ts`, `src/acp/control-plane/manager.test.ts`, `src/config/types.acp.ts`; representative PR #65640.", "title": "Scope: fix(acp): persistent session recovery for --bind here sessions" }, { "authors": [ "ggzeng", "hxy91819" ], "average_similarity": 0.439, "cluster_id": "pr-scope-63679-5", "kind": "pr_scope", "last_activity_at": "2026-04-15T11:39:33Z", "outside_window_prs": [ { "additions": 52, "author": "ggzeng", "changed_files": 6, "created_at": "2026-04-09T09:58:18Z", "deletions": 13, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63679/files", "html_url": "https://github.com/openclaw/openclaw/pull/63679", "merged": false, "number": 63679, "state": "open", "title": "fix: make readQaScenarioPack return null instead of throwing when files are missing", "updated_at": "2026-04-10T17:15:30Z" }, { "additions": 111, "author": "LiuHuaize", "changed_files": 2, "created_at": "2026-04-10T05:26:49Z", "deletions": 12, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64109/files", "html_url": "https://github.com/openclaw/openclaw/pull/64109", "merged": false, "number": 64109, "state": "open", "title": "fix(qa-lab): avoid completion-cache install crash", "updated_at": "2026-04-11T03:49:59Z" }, { "additions": 69, "author": "navarrotech", "changed_files": 2, "created_at": "2026-04-11T02:16:08Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64594/files", "html_url": "https://github.com/openclaw/openclaw/pull/64594", "merged": false, "number": 64594, "state": "open", "title": "fix(qa-lab): do not crash CLI startup when qa scenario pack is absent", "updated_at": "2026-04-12T01:10:17Z" } ], "pairwise": [ { "breadth_similarity": 0.625, "concentration_similarity": 0.73, "content_similarity": 0.892, "left_pr_number": 63679, "right_pr_number": 66749, "shared_directories": [ "extensions/qa-lab/src", "extensions/qa-lab", "extensions" ], "shared_filenames": [ "extensions/qa-lab/src/lab-server.ts", "extensions/qa-lab/src/qa-agent-bootstrap.ts", "extensions/qa-lab/src/qa-agent-workspace.ts", "extensions/qa-lab/src/scenario-catalog.test.ts", "extensions/qa-lab/src/scenario-catalog.ts", "extensions/qa-lab/src/suite.ts" ], "similarity": 0.833, "size_similarity": 0.73 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.505, "left_pr_number": 63679, "right_pr_number": 64594, "shared_directories": [ "extensions/qa-lab/src", "extensions/qa-lab", "extensions" ], "shared_filenames": [ "extensions/qa-lab/src/scenario-catalog.test.ts", "extensions/qa-lab/src/scenario-catalog.ts" ], "similarity": 0.609, "size_similarity": 0.929 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.73, "content_similarity": 0.45, "left_pr_number": 64594, "right_pr_number": 66749, "shared_directories": [ "extensions/qa-lab/src", "extensions/qa-lab", "extensions" ], "shared_filenames": [ "extensions/qa-lab/src/scenario-catalog.test.ts", "extensions/qa-lab/src/scenario-catalog.ts" ], "similarity": 0.507, "size_similarity": 0.787 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.193, "left_pr_number": 64594, "right_pr_number": 67142, "shared_directories": [ "extensions/qa-lab/src", "extensions/qa-lab", "extensions" ], "shared_filenames": [], "similarity": 0.403, "size_similarity": 0.787 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.183, "left_pr_number": 64109, "right_pr_number": 67142, "shared_directories": [ "extensions/qa-lab/src", "extensions/qa-lab", "extensions" ], "shared_filenames": [], "similarity": 0.387, "size_similarity": 0.724 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.196, "left_pr_number": 64109, "right_pr_number": 64594, "shared_directories": [ "extensions/qa-lab/src", "extensions/qa-lab", "extensions" ], "shared_filenames": [], "similarity": 0.373, "size_similarity": 0.569 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.169, "left_pr_number": 63679, "right_pr_number": 67142, "shared_directories": [ "extensions/qa-lab/src", "extensions/qa-lab", "extensions" ], "shared_filenames": [], "similarity": 0.345, "size_similarity": 0.73 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.73, "content_similarity": 0.151, "left_pr_number": 66749, "right_pr_number": 67142, "shared_directories": [ "extensions/qa-lab/src", "extensions/qa-lab", "extensions" ], "shared_filenames": [], "similarity": 0.33, "size_similarity": 1.0 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.172, "left_pr_number": 63679, "right_pr_number": 64109, "shared_directories": [ "extensions/qa-lab/src", "extensions/qa-lab", "extensions" ], "shared_filenames": [], "similarity": 0.316, "size_similarity": 0.528 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.73, "content_similarity": 0.153, "left_pr_number": 64109, "right_pr_number": 66749, "shared_directories": [ "extensions/qa-lab/src", "extensions/qa-lab", "extensions" ], "shared_filenames": [], "similarity": 0.29, "size_similarity": 0.724 } ], "pr_count": 5, "pr_numbers": [ 63679, 64109, 64594, 66749, 67142 ], "recent_pr_count": 2, "recent_pr_numbers": [ 66749, 67142 ], "representative_pr_number": 63679, "representative_title": "fix: make readQaScenarioPack return null instead of throwing when files are missing", "representative_url": "https://github.com/openclaw/openclaw/pull/63679", "shared_directories": [ "extensions/qa-lab/src", "extensions/qa-lab", "extensions" ], "shared_filenames": [ "extensions/qa-lab/src/scenario-catalog.ts", "extensions/qa-lab/src/scenario-catalog.test.ts", "extensions/qa-lab/src/qa-agent-bootstrap.ts", "extensions/qa-lab/src/qa-agent-workspace.ts", "extensions/qa-lab/src/lab-server.ts", "extensions/qa-lab/src/suite.ts" ], "summary": "5 open PRs share weighted file overlap around `extensions/qa-lab/src/scenario-catalog.ts`, `extensions/qa-lab/src/scenario-catalog.test.ts`, `extensions/qa-lab/src/qa-agent-bootstrap.ts`; representative PR #63679.", "title": "Scope: fix: make readQaScenarioPack return null instead of throwing when files are missing" }, { "authors": [ "EpaL", "stainlu" ], "average_similarity": 0.425, "cluster_id": "pr-scope-64380-5", "kind": "pr_scope", "last_activity_at": "2026-04-20T18:12:59Z", "outside_window_prs": [ { "additions": 149, "author": "liaoyupeng", "changed_files": 4, "created_at": "2026-04-10T15:22:56Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64380/files", "html_url": "https://github.com/openclaw/openclaw/pull/64380", "merged": false, "number": 64380, "state": "open", "title": "Agents/CLI backends: exclude inbound-meta from CLI session-reuse hash", "updated_at": "2026-04-10T15:27:32Z" }, { "additions": 486, "author": "zomars", "changed_files": 5, "created_at": "2026-04-10T15:58:48Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64393/files", "html_url": "https://github.com/openclaw/openclaw/pull/64393", "merged": false, "number": 64393, "state": "open", "title": "fix(cli): exclude loopback overlay from mcpConfigHash", "updated_at": "2026-04-10T17:30:12Z" }, { "additions": 282, "author": "marinosabijan", "changed_files": 6, "created_at": "2026-04-12T14:52:36Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65409/files", "html_url": "https://github.com/openclaw/openclaw/pull/65409", "merged": false, "number": 65409, "state": "open", "title": "Populate codex-cli tool entries in system prompt report", "updated_at": "2026-04-13T05:32:52Z" } ], "pairwise": [ { "breadth_similarity": 0.917, "concentration_similarity": 0.785, "content_similarity": 0.639, "left_pr_number": 64393, "right_pr_number": 65409, "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/bundle-mcp.test.ts", "src/agents/cli-runner/bundle-mcp.ts", "src/agents/cli-runner/prepare.ts" ], "similarity": 0.667, "size_similarity": 0.592 }, { "breadth_similarity": 0.708, "concentration_similarity": 0.691, "content_similarity": 0.649, "left_pr_number": 64380, "right_pr_number": 69236, "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/prepare.ts", "src/agents/cli-session.test.ts" ], "similarity": 0.657, "size_similarity": 0.649 }, { "breadth_similarity": 0.708, "concentration_similarity": 0.944, "content_similarity": 0.625, "left_pr_number": 64380, "right_pr_number": 68686, "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/prepare.ts", "src/agents/cli-session.test.ts", "src/agents/cli-session.ts" ], "similarity": 0.624, "size_similarity": 0.457 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.635, "content_similarity": 0.422, "left_pr_number": 68686, "right_pr_number": 69236, "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/prepare.ts", "src/agents/cli-session.test.ts" ], "similarity": 0.483, "size_similarity": 0.704 }, { "breadth_similarity": 0.733, "concentration_similarity": 0.968, "content_similarity": 0.312, "left_pr_number": 64380, "right_pr_number": 64393, "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/prepare.ts", "src/agents/cli-session.test.ts", "src/agents/cli-session.ts" ], "similarity": 0.387, "size_similarity": 0.309 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.912, "content_similarity": 0.34, "left_pr_number": 64393, "right_pr_number": 68686, "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/prepare.ts", "src/agents/cli-session.test.ts", "src/agents/cli-session.ts" ], "similarity": 0.385, "size_similarity": 0.141 }, { "breadth_similarity": 0.667, "concentration_similarity": 0.723, "content_similarity": 0.273, "left_pr_number": 64393, "right_pr_number": 69236, "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/prepare.ts", "src/agents/cli-session.test.ts" ], "similarity": 0.324, "size_similarity": 0.201 }, { "breadth_similarity": 0.667, "concentration_similarity": 0.753, "content_similarity": 0.112, "left_pr_number": 64380, "right_pr_number": 65409, "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/prepare.ts" ], "similarity": 0.261, "size_similarity": 0.522 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.938, "content_similarity": 0.109, "left_pr_number": 65409, "right_pr_number": 69236, "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/prepare.ts" ], "similarity": 0.249, "size_similarity": 0.339 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.697, "content_similarity": 0.097, "left_pr_number": 65409, "right_pr_number": 68686, "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/prepare.ts" ], "similarity": 0.213, "size_similarity": 0.239 } ], "pr_count": 5, "pr_numbers": [ 64380, 64393, 65409, 68686, 69236 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68686, 69236 ], "representative_pr_number": 64380, "representative_title": "Agents/CLI backends: exclude inbound-meta from CLI session-reuse hash", "representative_url": "https://github.com/openclaw/openclaw/pull/64380", "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/prepare.ts", "src/agents/cli-session.test.ts", "src/agents/cli-session.ts", "src/agents/cli-runner/bundle-mcp.test.ts", "src/agents/cli-runner/bundle-mcp.ts" ], "summary": "5 open PRs share weighted file overlap around `src/agents/cli-runner/prepare.ts`, `src/agents/cli-session.test.ts`, `src/agents/cli-session.ts`; representative PR #64380.", "title": "Scope: Agents/CLI backends: exclude inbound-meta from CLI session-reuse hash" }, { "authors": [ "MoerAI", "huangzynn" ], "average_similarity": 0.414, "cluster_id": "pr-scope-59219-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T10:56:19Z", "outside_window_prs": [ { "additions": 197, "author": "luoxiao6645", "changed_files": 6, "created_at": "2026-04-01T19:24:36Z", "deletions": 46, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/59219/files", "html_url": "https://github.com/openclaw/openclaw/pull/59219", "merged": false, "number": 59219, "state": "open", "title": "fix[Bug]: [skills] Skipping skill path error triggered on officially installed skills via clawhub (WSL Environment)", "updated_at": "2026-04-17T05:08:55Z" }, { "additions": 43, "author": "Bartok9", "changed_files": 2, "created_at": "2026-04-10T08:38:06Z", "deletions": 25, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64198/files", "html_url": "https://github.com/openclaw/openclaw/pull/64198", "merged": false, "number": 64198, "state": "open", "title": "fix(skills): sort available_skills alphabetically for prompt cache stability", "updated_at": "2026-04-11T08:37:29Z" }, { "additions": 29, "author": "MoerAI", "changed_files": 2, "created_at": "2026-04-10T09:27:41Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64215/files", "html_url": "https://github.com/openclaw/openclaw/pull/64215", "merged": false, "number": 64215, "state": "open", "title": "fix(skills): sort available_skills alphabetically for deterministic prompt ordering (#64167)", "updated_at": "2026-04-10T09:33:20Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.666, "left_pr_number": 64198, "right_pr_number": 64215, "shared_directories": [ "src/agents/skills", "src/agents", "src" ], "shared_filenames": [ "src/agents/skills/compact-format.test.ts", "src/agents/skills/workspace.ts" ], "similarity": 0.693, "size_similarity": 0.515 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.837, "content_similarity": 0.468, "left_pr_number": 64198, "right_pr_number": 69663, "shared_directories": [ "src/agents/skills", "src/agents", "src" ], "shared_filenames": [ "src/agents/skills/workspace.ts" ], "similarity": 0.507, "size_similarity": 0.527 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.71, "content_similarity": 0.465, "left_pr_number": 59219, "right_pr_number": 69663, "shared_directories": [ "src/agents/skills", "src/agents", "src" ], "shared_filenames": [ "src/agents/skills.loadworkspaceskillentries.test.ts", "src/agents/skills/workspace.ts" ], "similarity": 0.491, "size_similarity": 0.531 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.593, "content_similarity": 0.344, "left_pr_number": 64198, "right_pr_number": 67480, "shared_directories": [ "src/agents/skills", "src/agents", "src" ], "shared_filenames": [ "src/agents/skills/workspace.ts" ], "similarity": 0.465, "size_similarity": 0.794 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.547, "content_similarity": 0.52, "left_pr_number": 59219, "right_pr_number": 64198, "shared_directories": [ "src/agents/skills", "src/agents", "src" ], "shared_filenames": [ "src/agents/skills/workspace.ts" ], "similarity": 0.462, "size_similarity": 0.28 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.955, "content_similarity": 0.385, "left_pr_number": 59219, "right_pr_number": 67480, "shared_directories": [ "src/agents/skills", "src/agents", "src" ], "shared_filenames": [ "src/agents/skills/workspace.ts" ], "similarity": 0.392, "size_similarity": 0.222 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.755, "content_similarity": 0.237, "left_pr_number": 67480, "right_pr_number": 69663, "shared_directories": [ "src/agents/skills", "src/agents", "src" ], "shared_filenames": [ "src/agents/skills/workspace.ts" ], "similarity": 0.35, "size_similarity": 0.419 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.593, "content_similarity": 0.159, "left_pr_number": 64215, "right_pr_number": 67480, "shared_directories": [ "src/agents/skills", "src/agents", "src" ], "shared_filenames": [ "src/agents/skills/workspace.ts" ], "similarity": 0.313, "size_similarity": 0.648 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.837, "content_similarity": 0.178, "left_pr_number": 64215, "right_pr_number": 69663, "shared_directories": [ "src/agents/skills", "src/agents", "src" ], "shared_filenames": [ "src/agents/skills/workspace.ts" ], "similarity": 0.266, "size_similarity": 0.271 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.547, "content_similarity": 0.177, "left_pr_number": 59219, "right_pr_number": 64215, "shared_directories": [ "src/agents/skills", "src/agents", "src" ], "shared_filenames": [ "src/agents/skills/workspace.ts" ], "similarity": 0.202, "size_similarity": 0.144 } ], "pr_count": 5, "pr_numbers": [ 59219, 64198, 64215, 67480, 69663 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67480, 69663 ], "representative_pr_number": 64198, "representative_title": "fix(skills): sort available_skills alphabetically for prompt cache stability", "representative_url": "https://github.com/openclaw/openclaw/pull/64198", "shared_directories": [ "src/agents/skills", "src/agents", "src" ], "shared_filenames": [ "src/agents/skills/workspace.ts", "src/agents/skills.loadworkspaceskillentries.test.ts", "src/agents/skills/compact-format.test.ts" ], "summary": "5 open PRs share weighted file overlap around `src/agents/skills/workspace.ts`, `src/agents/skills.loadworkspaceskillentries.test.ts`, `src/agents/skills/compact-format.test.ts`; representative PR #64198.", "title": "Scope: fix(skills): sort available_skills alphabetically for prompt cache stability" }, { "authors": [ "obviyus", "stainlu" ], "average_similarity": 0.403, "cluster_id": "pr-scope-58992-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T15:44:10Z", "outside_window_prs": [ { "additions": 73, "author": "Starhappysh", "changed_files": 2, "created_at": "2026-04-01T12:04:36Z", "deletions": 35, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/58992/files", "html_url": "https://github.com/openclaw/openclaw/pull/58992", "merged": false, "number": 58992, "state": "open", "title": "fix(cron): clear stale model state on new isolated sessions", "updated_at": "2026-04-17T20:53:36Z" }, { "additions": 31, "author": "addelh", "changed_files": 2, "created_at": "2026-04-11T07:50:02Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64708/files", "html_url": "https://github.com/openclaw/openclaw/pull/64708", "merged": false, "number": 64708, "state": "open", "title": "fix: preserve Telegram topic thread IDs for cron delivery", "updated_at": "2026-04-11T07:57:57Z" }, { "additions": 69, "author": "srinivaspavan9", "changed_files": 2, "created_at": "2026-04-13T01:31:31Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65638/files", "html_url": "https://github.com/openclaw/openclaw/pull/65638", "merged": false, "number": 65638, "state": "open", "title": "fix(cron): preserve all fields in announce delivery by removing summarization instruction", "updated_at": "2026-04-13T01:33:58Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.575, "left_pr_number": 65638, "right_pr_number": 69771, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/run.message-tool-policy.test.ts", "src/cron/isolated-agent/run.ts" ], "similarity": 0.689, "size_similarity": 0.914 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.672, "left_pr_number": 58992, "right_pr_number": 64708, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-target.ts" ], "similarity": 0.665, "size_similarity": 0.296 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.139, "left_pr_number": 58992, "right_pr_number": 69276, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [], "similarity": 0.393, "size_similarity": 0.972 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.148, "left_pr_number": 58992, "right_pr_number": 65638, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [], "similarity": 0.351, "size_similarity": 0.648 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.143, "left_pr_number": 65638, "right_pr_number": 69276, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [], "similarity": 0.35, "size_similarity": 0.667 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.141, "left_pr_number": 58992, "right_pr_number": 69771, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [], "similarity": 0.337, "size_similarity": 0.593 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.136, "left_pr_number": 69276, "right_pr_number": 69771, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [], "similarity": 0.337, "size_similarity": 0.61 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.128, "left_pr_number": 64708, "right_pr_number": 69771, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [], "similarity": 0.314, "size_similarity": 0.5 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.134, "left_pr_number": 64708, "right_pr_number": 65638, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [], "similarity": 0.312, "size_similarity": 0.457 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.126, "left_pr_number": 64708, "right_pr_number": 69276, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [], "similarity": 0.284, "size_similarity": 0.305 } ], "pr_count": 5, "pr_numbers": [ 58992, 64708, 65638, 69276, 69771 ], "recent_pr_count": 2, "recent_pr_numbers": [ 69276, 69771 ], "representative_pr_number": 58992, "representative_title": "fix(cron): clear stale model state on new isolated sessions", "representative_url": "https://github.com/openclaw/openclaw/pull/58992", "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/delivery-target.ts", "src/cron/isolated-agent/run.message-tool-policy.test.ts", "src/cron/isolated-agent/run.ts" ], "summary": "5 open PRs share weighted file overlap around `src/cron/isolated-agent/delivery-target.ts`, `src/cron/isolated-agent/run.message-tool-policy.test.ts`, `src/cron/isolated-agent/run.ts`; representative PR #58992.", "title": "Scope: fix(cron): clear stale model state on new isolated sessions" }, { "authors": [ "Ittiz", "mmy4shadow" ], "average_similarity": 0.391, "cluster_id": "pr-scope-37708-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T15:38:31Z", "outside_window_prs": [ { "additions": 524, "author": "dongguacute", "changed_files": 17, "created_at": "2026-03-06T11:29:01Z", "deletions": 30, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37708/files", "html_url": "https://github.com/openclaw/openclaw/pull/37708", "merged": false, "number": 37708, "state": "open", "title": "feat(ui): add browser-side offline speech-to-text (STT) using Vosk Wasm", "updated_at": "2026-04-20T04:37:10Z" }, { "additions": 597, "author": "yanmwisa", "changed_files": 9, "created_at": "2026-03-24T18:38:38Z", "deletions": 152, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53884/files", "html_url": "https://github.com/openclaw/openclaw/pull/53884", "merged": false, "number": 53884, "state": "open", "title": "feat(ui): redesign chat layout and update modal", "updated_at": "2026-03-24T20:15:28Z" }, { "additions": 2134, "author": "aayushprsingh", "changed_files": 32, "created_at": "2026-04-12T08:37:49Z", "deletions": 142, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65258/files", "html_url": "https://github.com/openclaw/openclaw/pull/65258", "merged": false, "number": 65258, "state": "open", "title": "Improve control UI chat and task UX", "updated_at": "2026-04-12T12:19:42Z" } ], "pairwise": [ { "breadth_similarity": 0.9, "concentration_similarity": 0.794, "content_similarity": 0.464, "left_pr_number": 65258, "right_pr_number": 69585, "shared_directories": [ "ui/src/styles/chat", "ui/src/ui/chat", "ui/src/ui/views", "ui/src/styles", "ui/src/ui", "src/commands", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/styles/chat/layout.css", "ui/src/ui/app-gateway.node.test.ts", "ui/src/ui/app-gateway.ts", "ui/src/ui/app-render.helpers.ts", "ui/src/ui/app-render.ts", "ui/src/ui/app-tool-stream.node.test.ts", "ui/src/ui/app-tool-stream.ts", "ui/src/ui/app-view-state.ts", "ui/src/ui/app.ts", "ui/src/ui/views/chat.test.ts" ], "similarity": 0.531, "size_similarity": 0.505 }, { "breadth_similarity": 0.891, "concentration_similarity": 0.797, "content_similarity": 0.441, "left_pr_number": 69500, "right_pr_number": 69585, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui/controllers", "ui/src/ui/views", "ui/src/ui", "src/gateway", "ui/src", "src", "ui" ], "shared_filenames": [ "src/gateway/server-http.ts", "ui/src/ui/app-render.helpers.node.test.ts", "ui/src/ui/app-render.helpers.ts", "ui/src/ui/app-render.ts", "ui/src/ui/controllers/control-ui-bootstrap.test.ts", "ui/src/ui/controllers/control-ui-bootstrap.ts", "ui/src/ui/views/chat.test.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.53, "size_similarity": 0.62 }, { "breadth_similarity": 0.598, "concentration_similarity": 0.896, "content_similarity": 0.357, "left_pr_number": 37708, "right_pr_number": 53884, "shared_directories": [ "ui/src/styles/chat", "ui/src/ui/views", "ui/src/styles", "ui/src/ui", "ui/public", "ui/src", "ui" ], "shared_filenames": [ "ui/src/styles/chat/layout.css", "ui/src/ui/app-render.ts", "ui/src/ui/icons.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.466, "size_similarity": 0.741 }, { "breadth_similarity": 0.441, "concentration_similarity": 0.982, "content_similarity": 0.414, "left_pr_number": 53884, "right_pr_number": 65258, "shared_directories": [ "ui/src/styles/chat", "ui/src/ui/chat", "ui/src/ui/views", "ui/src/styles", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/styles/chat/grouped.css", "ui/src/styles/chat/layout.css", "ui/src/styles/components.css", "ui/src/ui/app-render.ts", "ui/src/ui/chat/grouped-render.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.432, "size_similarity": 0.329 }, { "breadth_similarity": 0.791, "concentration_similarity": 0.997, "content_similarity": 0.346, "left_pr_number": 65258, "right_pr_number": 69500, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui/views", "ui/src/ui", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.ts", "ui/src/ui/app-render.ts", "ui/src/ui/chat/grouped-render.ts", "ui/src/ui/views/chat.test.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.418, "size_similarity": 0.313 }, { "breadth_similarity": 0.716, "concentration_similarity": 0.915, "content_similarity": 0.339, "left_pr_number": 37708, "right_pr_number": 65258, "shared_directories": [ "ui/src/styles/chat", "ui/src/ui/views", "ui/src/styles", "ui/src/ui", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/styles/chat/layout.css", "ui/src/ui/app-render.ts", "ui/src/ui/app-view-state.ts", "ui/src/ui/app.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.391, "size_similarity": 0.244 }, { "breadth_similarity": 0.71, "concentration_similarity": 0.879, "content_similarity": 0.321, "left_pr_number": 37708, "right_pr_number": 69585, "shared_directories": [ "ui/src/styles/chat", "ui/src/ui/views", "ui/src/styles", "ui/src/ui", "src/gateway", "ui/src", "src", "ui" ], "shared_filenames": [ "src/gateway/control-ui.http.test.ts", "ui/src/styles/chat/layout.css", "ui/src/ui/app-render.ts", "ui/src/ui/app-view-state.ts", "ui/src/ui/app.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.358, "size_similarity": 0.123 }, { "breadth_similarity": 0.516, "concentration_similarity": 0.775, "content_similarity": 0.249, "left_pr_number": 53884, "right_pr_number": 69585, "shared_directories": [ "ui/src/styles/chat", "ui/src/ui/chat", "ui/src/ui/views", "ui/src/styles", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/styles/chat/layout.css", "ui/src/ui/app-render.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.289, "size_similarity": 0.166 }, { "breadth_similarity": 0.784, "concentration_similarity": 0.918, "content_similarity": 0.185, "left_pr_number": 37708, "right_pr_number": 69500, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "src/gateway", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.265, "size_similarity": 0.076 }, { "breadth_similarity": 0.555, "concentration_similarity": 0.978, "content_similarity": 0.162, "left_pr_number": 53884, "right_pr_number": 69500, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.ts", "ui/src/ui/chat/grouped-render.ts", "ui/src/ui/views/chat.ts" ], "similarity": 0.233, "size_similarity": 0.103 } ], "pr_count": 5, "pr_numbers": [ 37708, 53884, 65258, 69500, 69585 ], "recent_pr_count": 2, "recent_pr_numbers": [ 69500, 69585 ], "representative_pr_number": 65258, "representative_title": "Improve control UI chat and task UX", "representative_url": "https://github.com/openclaw/openclaw/pull/65258", "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui", "ui/src/styles/chat", "ui/src/ui/chat", "ui/src/styles", "src" ], "shared_filenames": [ "ui/src/ui/views/chat.ts", "ui/src/ui/app-render.ts", "ui/src/styles/chat/layout.css", "ui/src/ui/views/chat.test.ts", "ui/src/ui/chat/grouped-render.ts", "ui/src/ui/app-view-state.ts", "ui/src/ui/app.ts", "ui/src/ui/app-render.helpers.ts" ], "summary": "5 open PRs share weighted file overlap around `ui/src/ui/views/chat.ts`, `ui/src/ui/app-render.ts`, `ui/src/styles/chat/layout.css`; representative PR #65258.", "title": "Scope: Improve control UI chat and task UX" }, { "authors": [ "CCcassiusdjs", "abacha" ], "average_similarity": 0.55, "cluster_id": "pr-scope-66067-4", "kind": "pr_scope", "last_activity_at": "2026-04-20T14:08:03Z", "outside_window_prs": [ { "additions": 48, "author": "Rohan5commit", "changed_files": 3, "created_at": "2026-04-13T16:47:45Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66067/files", "html_url": "https://github.com/openclaw/openclaw/pull/66067", "merged": false, "number": 66067, "state": "open", "title": "fix(tui): preserve spaces between thinking fragments", "updated_at": "2026-04-13T16:50:19Z" }, { "additions": 25, "author": "xinmotlanthua", "changed_files": 2, "created_at": "2026-04-14T03:56:20Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66322/files", "html_url": "https://github.com/openclaw/openclaw/pull/66322", "merged": false, "number": 66322, "state": "open", "title": "fix: add paragraph spacing between thinking blocks", "updated_at": "2026-04-14T04:11:20Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.808, "left_pr_number": 66322, "right_pr_number": 69344, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-formatters.test.ts", "src/tui/tui-formatters.ts" ], "similarity": 0.86, "size_similarity": 0.963 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.66, "left_pr_number": 66067, "right_pr_number": 66322, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-formatters.test.ts", "src/tui/tui-formatters.ts" ], "similarity": 0.675, "size_similarity": 0.529 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.671, "left_pr_number": 69340, "right_pr_number": 69344, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-formatters.ts" ], "similarity": 0.606, "size_similarity": 0.077 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.552, "left_pr_number": 66067, "right_pr_number": 69344, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-formatters.test.ts", "src/tui/tui-formatters.ts" ], "similarity": 0.596, "size_similarity": 0.51 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.256, "left_pr_number": 66067, "right_pr_number": 69340, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-formatters.ts" ], "similarity": 0.302, "size_similarity": 0.039 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.178, "left_pr_number": 66322, "right_pr_number": 69340, "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-formatters.ts" ], "similarity": 0.261, "size_similarity": 0.074 } ], "pr_count": 4, "pr_numbers": [ 66067, 66322, 69340, 69344 ], "recent_pr_count": 2, "recent_pr_numbers": [ 69340, 69344 ], "representative_pr_number": 69344, "representative_title": "fix(tui): increase token chunking limit and preserve code-like fragments", "representative_url": "https://github.com/openclaw/openclaw/pull/69344", "shared_directories": [ "src/tui", "src" ], "shared_filenames": [ "src/tui/tui-formatters.ts", "src/tui/tui-formatters.test.ts" ], "summary": "4 open PRs share weighted file overlap around `src/tui/tui-formatters.ts`, `src/tui/tui-formatters.test.ts`; representative PR #69344.", "title": "Scope: fix(tui): increase token chunking limit and preserve code-like fragments" }, { "authors": [ "MukundaKatta", "drakulavich" ], "average_similarity": 0.52, "cluster_id": "pr-scope-37547-4", "kind": "pr_scope", "last_activity_at": "2026-04-18T09:31:36Z", "outside_window_prs": [ { "additions": 40, "author": "aleksesipenko", "changed_files": 2, "created_at": "2026-03-06T09:18:28Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37547/files", "html_url": "https://github.com/openclaw/openclaw/pull/37547", "merged": false, "number": 37547, "state": "open", "title": "Guard known Whisper subtitle-credit hallucinations in audio transcripts", "updated_at": "2026-04-19T04:33:53Z" }, { "additions": 35, "author": "dmiv", "changed_files": 1, "created_at": "2026-03-07T01:06:37Z", "deletions": 14, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38446/files", "html_url": "https://github.com/openclaw/openclaw/pull/38446", "merged": false, "number": 38446, "state": "open", "title": "feat(media): auto-convert non-WAV audio to WAV for whisper-cli transcription", "updated_at": "2026-04-21T04:32:05Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.665, "left_pr_number": 38446, "right_pr_number": 67571, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/runner.entries.ts" ], "similarity": 0.729, "size_similarity": 0.755 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.621, "left_pr_number": 37547, "right_pr_number": 38446, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/runner.entries.ts" ], "similarity": 0.688, "size_similarity": 0.857 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.518, "left_pr_number": 37547, "right_pr_number": 67571, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/runner.entries.ts" ], "similarity": 0.62, "size_similarity": 0.881 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.827, "content_similarity": 0.237, "left_pr_number": 38446, "right_pr_number": 66777, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/runner.entries.ts" ], "similarity": 0.39, "size_similarity": 0.942 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.827, "content_similarity": 0.229, "left_pr_number": 66777, "right_pr_number": 67571, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/runner.entries.ts" ], "similarity": 0.35, "size_similarity": 0.712 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.827, "content_similarity": 0.178, "left_pr_number": 37547, "right_pr_number": 66777, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/runner.entries.ts" ], "similarity": 0.346, "size_similarity": 0.808 } ], "pr_count": 4, "pr_numbers": [ 37547, 38446, 66777, 67571 ], "recent_pr_count": 2, "recent_pr_numbers": [ 66777, 67571 ], "representative_pr_number": 38446, "representative_title": "feat(media): auto-convert non-WAV audio to WAV for whisper-cli transcription", "representative_url": "https://github.com/openclaw/openclaw/pull/38446", "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/runner.entries.ts" ], "summary": "4 open PRs share weighted file overlap around `src/media-understanding/runner.entries.ts`; representative PR #38446.", "title": "Scope: feat(media): auto-convert non-WAV audio to WAV for whisper-cli transcription" }, { "authors": [ "plgonzalezrx8" ], "average_similarity": 0.485, "cluster_id": "pr-scope-65124-4", "kind": "pr_scope", "last_activity_at": "2026-04-17T02:23:56Z", "outside_window_prs": [ { "additions": 1, "author": "mr-kelly", "changed_files": 1, "created_at": "2026-04-12T02:56:34Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65124/files", "html_url": "https://github.com/openclaw/openclaw/pull/65124", "merged": false, "number": 65124, "state": "open", "title": "fix: [Bug]: Completion cache update failed due to missing qa/scenarios/index.md in npm package", "updated_at": "2026-04-12T03:02:38Z" }, { "additions": 1, "author": "mr-kelly", "changed_files": 1, "created_at": "2026-04-12T02:58:12Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65128/files", "html_url": "https://github.com/openclaw/openclaw/pull/65128", "merged": false, "number": 65128, "state": "open", "title": "fix: [Bug]: Browser tool SSRF policy blocks all hostname URLs", "updated_at": "2026-04-12T03:01:28Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.986, "left_pr_number": 65124, "right_pr_number": 65128, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/navigation-guard.ts" ], "similarity": 0.915, "size_similarity": 0.5 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.857, "content_similarity": 0.621, "left_pr_number": 67654, "right_pr_number": 67862, "shared_directories": [ "extensions/browser/src/browser/routes", "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/navigation-guard.test.ts", "extensions/browser/src/browser/navigation-guard.ts", "extensions/browser/src/browser/routes/tabs.attach-only.test.ts" ], "similarity": 0.583, "size_similarity": 0.286 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.857, "content_similarity": 0.491, "left_pr_number": 65128, "right_pr_number": 67654, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/navigation-guard.ts" ], "similarity": 0.45, "size_similarity": 0.143 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.857, "content_similarity": 0.457, "left_pr_number": 65124, "right_pr_number": 67654, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/navigation-guard.ts" ], "similarity": 0.415, "size_similarity": 0.071 }, { "breadth_similarity": 0.267, "concentration_similarity": 0.714, "content_similarity": 0.307, "left_pr_number": 65128, "right_pr_number": 67862, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/navigation-guard.ts" ], "similarity": 0.284, "size_similarity": 0.041 }, { "breadth_similarity": 0.267, "concentration_similarity": 0.714, "content_similarity": 0.286, "left_pr_number": 65124, "right_pr_number": 67862, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [ "extensions/browser/src/browser/navigation-guard.ts" ], "similarity": 0.265, "size_similarity": 0.02 } ], "pr_count": 4, "pr_numbers": [ 65124, 65128, 67654, 67862 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67654, 67862 ], "representative_pr_number": 65128, "representative_title": "fix: [Bug]: Browser tool SSRF policy blocks all hostname URLs", "representative_url": "https://github.com/openclaw/openclaw/pull/65128", "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions", "extensions/browser/src/browser/routes" ], "shared_filenames": [ "extensions/browser/src/browser/navigation-guard.ts", "extensions/browser/src/browser/navigation-guard.test.ts", "extensions/browser/src/browser/routes/tabs.attach-only.test.ts" ], "summary": "4 open PRs share weighted file overlap around `extensions/browser/src/browser/navigation-guard.ts`, `extensions/browser/src/browser/navigation-guard.test.ts`, `extensions/browser/src/browser/routes/tabs.attach-only.test.ts`; representative PR #65128.", "title": "Scope: fix: [Bug]: Browser tool SSRF policy blocks all hostname URLs" }, { "authors": [ "hyamie", "imadal1n" ], "average_similarity": 0.446, "cluster_id": "pr-scope-64494-4", "kind": "pr_scope", "last_activity_at": "2026-04-18T13:08:21Z", "outside_window_prs": [ { "additions": 158, "author": "bek91", "changed_files": 2, "created_at": "2026-04-10T20:34:48Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64494/files", "html_url": "https://github.com/openclaw/openclaw/pull/64494", "merged": false, "number": 64494, "state": "open", "title": "fix: Wrap pathological session export lines", "updated_at": "2026-04-20T12:40:17Z" }, { "additions": 253, "author": "zqchris", "changed_files": 5, "created_at": "2026-04-14T12:52:41Z", "deletions": 24, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66548/files", "html_url": "https://github.com/openclaw/openclaw/pull/66548", "merged": false, "number": 66548, "state": "open", "title": "memory: strip inbound metadata envelopes from user messages in session corpus", "updated_at": "2026-04-15T22:16:35Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.808, "left_pr_number": 64494, "right_pr_number": 68559, "shared_directories": [ "src/memory-host-sdk/host", "src/memory-host-sdk", "src" ], "shared_filenames": [ "src/memory-host-sdk/host/session-files.test.ts", "src/memory-host-sdk/host/session-files.ts" ], "similarity": 0.732, "size_similarity": 0.109 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.523, "content_similarity": 0.59, "left_pr_number": 64494, "right_pr_number": 66548, "shared_directories": [ "src/memory-host-sdk/host", "src/memory-host-sdk", "src" ], "shared_filenames": [ "src/memory-host-sdk/host/session-files.test.ts", "src/memory-host-sdk/host/session-files.ts" ], "similarity": 0.565, "size_similarity": 0.596 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.523, "content_similarity": 0.521, "left_pr_number": 66548, "right_pr_number": 68559, "shared_directories": [ "src/memory-host-sdk/host", "src/memory-host-sdk", "src" ], "shared_filenames": [ "src/memory-host-sdk/host/session-files.test.ts", "src/memory-host-sdk/host/session-files.ts" ], "similarity": 0.437, "size_similarity": 0.065 }, { "breadth_similarity": 0.226, "concentration_similarity": 0.289, "content_similarity": 0.317, "left_pr_number": 64494, "right_pr_number": 67697, "shared_directories": [ "src/memory-host-sdk/host", "src/memory-host-sdk", "src" ], "shared_filenames": [ "src/memory-host-sdk/host/session-files.ts" ], "similarity": 0.375, "size_similarity": 0.776 }, { "breadth_similarity": 0.607, "concentration_similarity": 0.766, "content_similarity": 0.223, "left_pr_number": 66548, "right_pr_number": 67697, "shared_directories": [ "src/memory-host-sdk/host", "src/memory-host-sdk", "src" ], "shared_filenames": [ "src/memory-host-sdk/host/session-files.ts" ], "similarity": 0.324, "size_similarity": 0.462 }, { "breadth_similarity": 0.226, "concentration_similarity": 0.289, "content_similarity": 0.266, "left_pr_number": 67697, "right_pr_number": 68559, "shared_directories": [ "src/memory-host-sdk/host", "src/memory-host-sdk", "src" ], "shared_filenames": [ "src/memory-host-sdk/host/session-files.ts" ], "similarity": 0.244, "size_similarity": 0.141 } ], "pr_count": 4, "pr_numbers": [ 64494, 66548, 67697, 68559 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67697, 68559 ], "representative_pr_number": 64494, "representative_title": "fix: Wrap pathological session export lines", "representative_url": "https://github.com/openclaw/openclaw/pull/64494", "shared_directories": [ "src/memory-host-sdk/host", "src/memory-host-sdk", "src" ], "shared_filenames": [ "src/memory-host-sdk/host/session-files.ts", "src/memory-host-sdk/host/session-files.test.ts" ], "summary": "4 open PRs share weighted file overlap around `src/memory-host-sdk/host/session-files.ts`, `src/memory-host-sdk/host/session-files.test.ts`; representative PR #64494.", "title": "Scope: fix: Wrap pathological session export lines" }, { "authors": [ "jinon86", "lyfuci" ], "average_similarity": 0.431, "cluster_id": "pr-scope-38322-4", "kind": "pr_scope", "last_activity_at": "2026-04-19T18:17:46Z", "outside_window_prs": [ { "additions": 195, "author": "heyAyushh", "changed_files": 5, "created_at": "2026-03-06T20:27:36Z", "deletions": 72, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38322/files", "html_url": "https://github.com/openclaw/openclaw/pull/38322", "merged": false, "number": 38322, "state": "open", "title": "fix: preserve requester context in outbound send paths", "updated_at": "2026-04-21T04:30:42Z" }, { "additions": 131, "author": "duqaXxX", "changed_files": 2, "created_at": "2026-04-12T04:21:06Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65171/files", "html_url": "https://github.com/openclaw/openclaw/pull/65171", "merged": false, "number": 65171, "state": "open", "title": "fix(sessions-send): isolate announce deadlock", "updated_at": "2026-04-12T04:26:42Z" } ], "pairwise": [ { "breadth_similarity": 0.7, "concentration_similarity": 0.918, "content_similarity": 0.627, "left_pr_number": 38322, "right_pr_number": 65171, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/openclaw-tools.sessions.test.ts", "src/agents/tools/sessions-send-tool.a2a.ts" ], "similarity": 0.632, "size_similarity": 0.513 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.689, "content_similarity": 0.312, "left_pr_number": 38322, "right_pr_number": 68483, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/openclaw-tools.sessions.test.ts" ], "similarity": 0.441, "size_similarity": 0.753 }, { "breadth_similarity": 0.617, "concentration_similarity": 0.686, "content_similarity": 0.347, "left_pr_number": 38322, "right_pr_number": 68622, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/openclaw-tools.sessions.test.ts" ], "similarity": 0.418, "size_similarity": 0.527 }, { "breadth_similarity": 0.45, "concentration_similarity": 0.606, "content_similarity": 0.342, "left_pr_number": 65171, "right_pr_number": 68483, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/openclaw-tools.sessions.test.ts" ], "similarity": 0.417, "size_similarity": 0.682 }, { "breadth_similarity": 0.817, "concentration_similarity": 0.998, "content_similarity": 0.222, "left_pr_number": 68483, "right_pr_number": 68622, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/openclaw-tools.sessions.test.ts" ], "similarity": 0.346, "size_similarity": 0.396 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.604, "content_similarity": 0.321, "left_pr_number": 65171, "right_pr_number": 68622, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/openclaw-tools.sessions.test.ts" ], "similarity": 0.332, "size_similarity": 0.27 } ], "pr_count": 4, "pr_numbers": [ 38322, 65171, 68483, 68622 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68483, 68622 ], "representative_pr_number": 38322, "representative_title": "fix: preserve requester context in outbound send paths", "representative_url": "https://github.com/openclaw/openclaw/pull/38322", "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/openclaw-tools.sessions.test.ts", "src/agents/tools/sessions-send-tool.a2a.ts" ], "summary": "4 open PRs share weighted file overlap around `src/agents/openclaw-tools.sessions.test.ts`, `src/agents/tools/sessions-send-tool.a2a.ts`; representative PR #38322.", "title": "Scope: fix: preserve requester context in outbound send paths" }, { "authors": [ "hoyanhan", "mikaeldiakhate-cell" ], "average_similarity": 0.414, "cluster_id": "pr-scope-47994-4", "kind": "pr_scope", "last_activity_at": "2026-04-20T15:08:54Z", "outside_window_prs": [ { "additions": 433, "author": "Jerry-Xin", "changed_files": 20, "created_at": "2026-03-16T07:32:59Z", "deletions": 26, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/47994/files", "html_url": "https://github.com/openclaw/openclaw/pull/47994", "merged": false, "number": 47994, "state": "open", "title": "fix(agent): prevent fallback model from permanently overwriting agent config", "updated_at": "2026-04-21T16:13:17Z" }, { "additions": 427, "author": "zqchris", "changed_files": 16, "created_at": "2026-04-12T14:14:26Z", "deletions": 32, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65386/files", "html_url": "https://github.com/openclaw/openclaw/pull/65386", "merged": false, "number": 65386, "state": "open", "title": "fix(sessions): system events no longer prevent daily/idle session resets", "updated_at": "2026-04-20T13:04:32Z" } ], "pairwise": [ { "breadth_similarity": 0.621, "concentration_similarity": 0.899, "content_similarity": 0.37, "left_pr_number": 67664, "right_pr_number": 68991, "shared_directories": [ "src/agents/command", "src/agents", "src" ], "shared_filenames": [ "src/agents/command/session-store.test.ts", "src/agents/command/session-store.ts" ], "similarity": 0.501, "size_similarity": 0.901 }, { "breadth_similarity": 0.613, "concentration_similarity": 0.881, "content_similarity": 0.341, "left_pr_number": 65386, "right_pr_number": 68991, "shared_directories": [ "src/agents/command", "src/auto-reply/reply", "src/agents", "src/auto-reply", "src" ], "shared_filenames": [ "src/agents/command/session-store.test.ts", "src/agents/command/session-store.ts", "src/auto-reply/reply/session.test.ts" ], "similarity": 0.493, "size_similarity": 0.991 }, { "breadth_similarity": 0.622, "concentration_similarity": 0.78, "content_similarity": 0.334, "left_pr_number": 65386, "right_pr_number": 67664, "shared_directories": [ "src/agents/command", "src/agents", "src" ], "shared_filenames": [ "src/agents/command/session-store.test.ts", "src/agents/command/session-store.ts" ], "similarity": 0.469, "size_similarity": 0.893 }, { "breadth_similarity": 0.757, "concentration_similarity": 0.743, "content_similarity": 0.17, "left_pr_number": 47994, "right_pr_number": 65386, "shared_directories": [ "src/agents/command", "src/auto-reply/reply", "src/config/sessions", "src/agents", "src/auto-reply", "src/config", "src" ], "shared_filenames": [ "src/agents/agent-command.ts", "src/agents/command/session-store.ts", "src/config/sessions/sessions.test.ts", "src/config/sessions/types.ts" ], "similarity": 0.382, "size_similarity": 1.0 }, { "breadth_similarity": 0.464, "concentration_similarity": 0.624, "content_similarity": 0.22, "left_pr_number": 47994, "right_pr_number": 68991, "shared_directories": [ "src/agents/command", "src/auto-reply/reply", "src/cron/isolated-agent", "src/agents", "src/auto-reply", "src/cron", "src" ], "shared_filenames": [ "src/agents/command/session-store.ts", "src/auto-reply/reply/agent-runner.ts", "src/auto-reply/reply/followup-runner.ts", "src/auto-reply/reply/session-usage.ts", "src/cron/isolated-agent/run.ts" ], "similarity": 0.38, "size_similarity": 0.991 }, { "breadth_similarity": 0.664, "concentration_similarity": 0.523, "content_similarity": 0.046, "left_pr_number": 47994, "right_pr_number": 67664, "shared_directories": [ "src/agents/command", "src/agents", "src" ], "shared_filenames": [ "src/agents/command/session-store.ts" ], "similarity": 0.258, "size_similarity": 0.893 } ], "pr_count": 4, "pr_numbers": [ 47994, 65386, 67664, 68991 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67664, 68991 ], "representative_pr_number": 68991, "representative_title": "fix(auto-reply): don't persist automatic fallback runtime as next-turn selected model", "representative_url": "https://github.com/openclaw/openclaw/pull/68991", "shared_directories": [ "src/agents/command", "src/agents", "src", "src/auto-reply/reply", "src/auto-reply", "src/config/sessions", "src/cron/isolated-agent", "src/cron" ], "shared_filenames": [ "src/agents/command/session-store.ts", "src/agents/command/session-store.test.ts", "src/auto-reply/reply/session-usage.ts", "src/auto-reply/reply/session.test.ts", "src/config/sessions/sessions.test.ts", "src/agents/agent-command.ts", "src/auto-reply/reply/followup-runner.ts", "src/cron/isolated-agent/run.ts" ], "summary": "4 open PRs share weighted file overlap around `src/agents/command/session-store.ts`, `src/agents/command/session-store.test.ts`, `src/auto-reply/reply/session-usage.ts`; representative PR #68991.", "title": "Scope: fix(auto-reply): don't persist automatic fallback runtime as next-turn selected model" }, { "authors": [ "CHE10X", "moorsecopers99" ], "average_similarity": 0.408, "cluster_id": "pr-scope-53445-4", "kind": "pr_scope", "last_activity_at": "2026-04-21T02:54:08Z", "outside_window_prs": [ { "additions": 61, "author": "dingtao416", "changed_files": 3, "created_at": "2026-03-24T06:02:53Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53445/files", "html_url": "https://github.com/openclaw/openclaw/pull/53445", "merged": false, "number": 53445, "state": "open", "title": "Control UI: show full date-time in session list (fixes #53088)", "updated_at": "2026-03-24T20:15:31Z" }, { "additions": 175, "author": "coder999999999", "changed_files": 4, "created_at": "2026-04-12T06:09:57Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65199/files", "html_url": "https://github.com/openclaw/openclaw/pull/65199", "merged": false, "number": 65199, "state": "open", "title": "fix(ui): humanize cron expressions in dreaming phase and cron job displays", "updated_at": "2026-04-12T06:48:14Z" } ], "pairwise": [ { "breadth_similarity": 0.875, "concentration_similarity": 0.977, "content_similarity": 0.691, "left_pr_number": 53445, "right_pr_number": 65199, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/format.test.ts", "ui/src/ui/format.ts" ], "similarity": 0.674, "size_similarity": 0.355 }, { "breadth_similarity": 0.458, "concentration_similarity": 0.483, "content_similarity": 0.498, "left_pr_number": 67155, "right_pr_number": 69552, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.helpers.node.test.ts", "ui/src/ui/chat/session-controls.ts" ], "similarity": 0.508, "size_similarity": 0.596 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.928, "content_similarity": 0.158, "left_pr_number": 53445, "right_pr_number": 69552, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.369, "size_similarity": 0.862 }, { "breadth_similarity": 0.521, "concentration_similarity": 0.555, "content_similarity": 0.249, "left_pr_number": 53445, "right_pr_number": 67155, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/sessions.ts" ], "similarity": 0.358, "size_similarity": 0.691 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.905, "content_similarity": 0.161, "left_pr_number": 65199, "right_pr_number": 69552, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.279, "size_similarity": 0.306 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.578, "content_similarity": 0.135, "left_pr_number": 65199, "right_pr_number": 67155, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.259, "size_similarity": 0.514 } ], "pr_count": 4, "pr_numbers": [ 53445, 65199, 67155, 69552 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67155, 69552 ], "representative_pr_number": 53445, "representative_title": "Control UI: show full date-time in session list (fixes #53088)", "representative_url": "https://github.com/openclaw/openclaw/pull/53445", "shared_directories": [ "ui/src/ui", "ui/src", "ui", "ui/src/ui/views", "ui/src/ui/chat" ], "shared_filenames": [ "ui/src/ui/format.test.ts", "ui/src/ui/format.ts", "ui/src/ui/chat/session-controls.ts", "ui/src/ui/views/sessions.ts", "ui/src/ui/app-render.helpers.node.test.ts" ], "summary": "4 open PRs share weighted file overlap around `ui/src/ui/format.test.ts`, `ui/src/ui/format.ts`, `ui/src/ui/chat/session-controls.ts`; representative PR #53445.", "title": "Scope: Control UI: show full date-time in session list (fixes #53088)" }, { "authors": [ "1aifanatic", "YoungMoneyInvestments" ], "average_similarity": 0.405, "cluster_id": "pr-scope-53635-4", "kind": "pr_scope", "last_activity_at": "2026-04-18T19:26:06Z", "outside_window_prs": [ { "additions": 82, "author": "w-sss", "changed_files": 7, "created_at": "2026-03-24T11:06:49Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53635/files", "html_url": "https://github.com/openclaw/openclaw/pull/53635", "merged": true, "number": 53635, "state": "open", "title": "fix(telegram): improve error messages for 403 bot not member errors", "updated_at": "2026-03-24T20:15:29Z" }, { "additions": 36, "author": "web3blind", "changed_files": 2, "created_at": "2026-04-11T08:30:07Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64717/files", "html_url": "https://github.com/openclaw/openclaw/pull/64717", "merged": false, "number": 64717, "state": "open", "title": "fix(telegram): respect configured text chunk limit", "updated_at": "2026-04-11T08:43:53Z" } ], "pairwise": [ { "breadth_similarity": 0.243, "concentration_similarity": 0.94, "content_similarity": 0.507, "left_pr_number": 53635, "right_pr_number": 64717, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/send.test.ts", "extensions/telegram/src/send.ts" ], "similarity": 0.499, "size_similarity": 0.482 }, { "breadth_similarity": 0.171, "concentration_similarity": 0.895, "content_similarity": 0.538, "left_pr_number": 64717, "right_pr_number": 68350, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/send.test.ts", "extensions/telegram/src/send.ts" ], "similarity": 0.445, "size_similarity": 0.045 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.407, "left_pr_number": 64717, "right_pr_number": 68304, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/send.ts" ], "similarity": 0.433, "size_similarity": 0.15 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.955, "content_similarity": 0.405, "left_pr_number": 53635, "right_pr_number": 68350, "shared_directories": [ "extensions/telegram/src", "src/infra/outbound", "extensions/telegram", "src/infra", "extensions", "src" ], "shared_filenames": [ "extensions/telegram/src/send.test.ts", "extensions/telegram/src/send.ts" ], "similarity": 0.42, "size_similarity": 0.094 }, { "breadth_similarity": 0.136, "concentration_similarity": 0.895, "content_similarity": 0.459, "left_pr_number": 68304, "right_pr_number": 68350, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/send.ts" ], "similarity": 0.38, "size_similarity": 0.007 }, { "breadth_similarity": 0.171, "concentration_similarity": 0.94, "content_similarity": 0.252, "left_pr_number": 53635, "right_pr_number": 68304, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/send.ts" ], "similarity": 0.252, "size_similarity": 0.072 } ], "pr_count": 4, "pr_numbers": [ 53635, 64717, 68304, 68350 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68304, 68350 ], "representative_pr_number": 64717, "representative_title": "fix(telegram): respect configured text chunk limit", "representative_url": "https://github.com/openclaw/openclaw/pull/64717", "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions", "src/infra/outbound", "src/infra", "src" ], "shared_filenames": [ "extensions/telegram/src/send.ts", "extensions/telegram/src/send.test.ts" ], "summary": "4 open PRs share weighted file overlap around `extensions/telegram/src/send.ts`, `extensions/telegram/src/send.test.ts`; representative PR #64717.", "title": "Scope: fix(telegram): respect configured text chunk limit" }, { "authors": [ "Takhoffman", "alexlomt" ], "average_similarity": 0.398, "cluster_id": "pr-scope-57582-4", "kind": "pr_scope", "last_activity_at": "2026-04-21T12:54:02Z", "outside_window_prs": [ { "additions": 176, "author": "WZBbiao", "changed_files": 4, "created_at": "2026-03-30T08:17:20Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/57582/files", "html_url": "https://github.com/openclaw/openclaw/pull/57582", "merged": false, "number": 57582, "state": "open", "title": "fix: release gateway lock on shutdown timeout (#57052)", "updated_at": "2026-04-20T10:17:31Z" }, { "additions": 145, "author": "pppan2003", "changed_files": 2, "created_at": "2026-04-10T00:10:14Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63981/files", "html_url": "https://github.com/openclaw/openclaw/pull/63981", "merged": false, "number": 63981, "state": "open", "title": "fix(gateway): add startup timeout to prevent indefinite hang on macOS sleep/wake", "updated_at": "2026-04-11T13:11:16Z" } ], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.608, "content_similarity": 0.578, "left_pr_number": 57582, "right_pr_number": 63981, "shared_directories": [ "src/cli/gateway-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/gateway-cli/run-loop.test.ts", "src/cli/gateway-cli/run-loop.ts" ], "similarity": 0.61, "size_similarity": 0.83 }, { "breadth_similarity": 0.124, "concentration_similarity": 0.657, "content_similarity": 0.518, "left_pr_number": 63981, "right_pr_number": 69706, "shared_directories": [ "src/cli/gateway-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/gateway-cli/run-loop.test.ts", "src/cli/gateway-cli/run-loop.ts" ], "similarity": 0.426, "size_similarity": 0.119 }, { "breadth_similarity": 0.31, "concentration_similarity": 0.781, "content_similarity": 0.368, "left_pr_number": 63981, "right_pr_number": 69121, "shared_directories": [ "src/cli/gateway-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/gateway-cli/run-loop.test.ts", "src/cli/gateway-cli/run-loop.ts" ], "similarity": 0.368, "size_similarity": 0.273 }, { "breadth_similarity": 0.619, "concentration_similarity": 0.827, "content_similarity": 0.259, "left_pr_number": 57582, "right_pr_number": 69121, "shared_directories": [ "src/cli/gateway-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/gateway-cli/run-loop.test.ts", "src/cli/gateway-cli/run-loop.ts" ], "similarity": 0.334, "size_similarity": 0.33 }, { "breadth_similarity": 0.248, "concentration_similarity": 0.951, "content_similarity": 0.337, "left_pr_number": 57582, "right_pr_number": 69706, "shared_directories": [ "src/cli/gateway-cli", "src/cli", "src/infra", "src" ], "shared_filenames": [ "src/cli/gateway-cli/run-loop.test.ts", "src/cli/gateway-cli/run-loop.ts" ], "similarity": 0.33, "size_similarity": 0.144 }, { "breadth_similarity": 0.398, "concentration_similarity": 0.877, "content_similarity": 0.244, "left_pr_number": 69121, "right_pr_number": 69706, "shared_directories": [ "src/cli/gateway-cli", "src/agents", "src/cli", "src/gateway", "src" ], "shared_filenames": [ "src/cli/gateway-cli/run-loop.test.ts", "src/cli/gateway-cli/run-loop.ts", "src/gateway/server.impl.ts" ], "similarity": 0.32, "size_similarity": 0.436 } ], "pr_count": 4, "pr_numbers": [ 57582, 63981, 69121, 69706 ], "recent_pr_count": 2, "recent_pr_numbers": [ 69121, 69706 ], "representative_pr_number": 63981, "representative_title": "fix(gateway): add startup timeout to prevent indefinite hang on macOS sleep/wake", "representative_url": "https://github.com/openclaw/openclaw/pull/63981", "shared_directories": [ "src/cli/gateway-cli", "src/cli", "src", "src/infra", "src/gateway", "src/agents" ], "shared_filenames": [ "src/cli/gateway-cli/run-loop.test.ts", "src/cli/gateway-cli/run-loop.ts", "src/gateway/server.impl.ts" ], "summary": "4 open PRs share weighted file overlap around `src/cli/gateway-cli/run-loop.test.ts`, `src/cli/gateway-cli/run-loop.ts`, `src/gateway/server.impl.ts`; representative PR #63981.", "title": "Scope: fix(gateway): add startup timeout to prevent indefinite hang on macOS sleep/wake" }, { "authors": [ "novajune", "thesomewhatyou" ], "average_similarity": 0.398, "cluster_id": "pr-scope-57843-4", "kind": "pr_scope", "last_activity_at": "2026-04-21T15:14:59Z", "outside_window_prs": [ { "additions": 383, "author": "Kaspre", "changed_files": 9, "created_at": "2026-03-30T16:48:40Z", "deletions": 50, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/57843/files", "html_url": "https://github.com/openclaw/openclaw/pull/57843", "merged": false, "number": 57843, "state": "open", "title": "fix(delivery): disambiguate hook cancellations from delivery failures", "updated_at": "2026-04-21T00:46:15Z" }, { "additions": 405, "author": "HOYALIM", "changed_files": 13, "created_at": "2026-04-09T06:43:07Z", "deletions": 64, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63596/files", "html_url": "https://github.com/openclaw/openclaw/pull/63596", "merged": false, "number": 63596, "state": "open", "title": "fix(gateway): canonicalize outbound message send semantics", "updated_at": "2026-04-14T01:05:52Z" } ], "pairwise": [ { "breadth_similarity": 0.522, "concentration_similarity": 0.646, "content_similarity": 0.403, "left_pr_number": 63596, "right_pr_number": 68341, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/send.test.ts", "src/gateway/server-methods/send.ts" ], "similarity": 0.516, "size_similarity": 0.998 }, { "breadth_similarity": 0.703, "concentration_similarity": 0.964, "content_similarity": 0.356, "left_pr_number": 57843, "right_pr_number": 63596, "shared_directories": [ "src/gateway/server-methods", "src/infra/outbound", "src/gateway", "src/infra", "src" ], "shared_filenames": [ "src/gateway/server-methods/send.test.ts", "src/gateway/server-methods/send.ts", "src/infra/outbound/deliver.test.ts", "src/infra/outbound/deliver.ts", "src/infra/outbound/message.ts" ], "similarity": 0.506, "size_similarity": 0.923 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.806, "content_similarity": 0.442, "left_pr_number": 68341, "right_pr_number": 69752, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/send.test.ts", "src/gateway/server-methods/send.ts" ], "similarity": 0.432, "size_similarity": 0.165 }, { "breadth_similarity": 0.744, "concentration_similarity": 0.682, "content_similarity": 0.178, "left_pr_number": 57843, "right_pr_number": 68341, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/send.test.ts", "src/gateway/server-methods/send.ts" ], "similarity": 0.372, "size_similarity": 0.925 }, { "breadth_similarity": 0.297, "concentration_similarity": 0.841, "content_similarity": 0.335, "left_pr_number": 63596, "right_pr_number": 69752, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "extensions", "src" ], "shared_filenames": [ "src/gateway/server-methods/send.test.ts", "src/gateway/server-methods/send.ts" ], "similarity": 0.331, "size_similarity": 0.164 }, { "breadth_similarity": 0.422, "concentration_similarity": 0.877, "content_similarity": 0.167, "left_pr_number": 57843, "right_pr_number": 69752, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/send.test.ts", "src/gateway/server-methods/send.ts" ], "similarity": 0.23, "size_similarity": 0.178 } ], "pr_count": 4, "pr_numbers": [ 57843, 63596, 68341, 69752 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68341, 69752 ], "representative_pr_number": 63596, "representative_title": "fix(gateway): canonicalize outbound message send semantics", "representative_url": "https://github.com/openclaw/openclaw/pull/63596", "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src", "src/infra/outbound", "src/infra", "extensions" ], "shared_filenames": [ "src/gateway/server-methods/send.test.ts", "src/gateway/server-methods/send.ts", "src/infra/outbound/message.ts", "src/infra/outbound/deliver.test.ts", "src/infra/outbound/deliver.ts" ], "summary": "4 open PRs share weighted file overlap around `src/gateway/server-methods/send.test.ts`, `src/gateway/server-methods/send.ts`, `src/infra/outbound/message.ts`; representative PR #63596.", "title": "Scope: fix(gateway): canonicalize outbound message send semantics" }, { "authors": [ "AstronautGumbo", "skylee-01" ], "average_similarity": 0.861, "cluster_id": "pr-scope-66447-3", "kind": "pr_scope", "last_activity_at": "2026-04-18T13:11:18Z", "outside_window_prs": [ { "additions": 102, "author": "vincentkoc", "changed_files": 3, "created_at": "2026-04-14T09:20:57Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66447/files", "html_url": "https://github.com/openclaw/openclaw/pull/66447", "merged": false, "number": 66447, "state": "open", "title": "fix(replay): preserve synthetic tool repair aliases", "updated_at": "2026-04-14T09:51:21Z" } ], "pairwise": [ { "breadth_similarity": 0.583, "concentration_similarity": 0.995, "content_similarity": 0.953, "left_pr_number": 68072, "right_pr_number": 68565, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/transport-message-transform.test.ts", "src/agents/transport-message-transform.ts" ], "similarity": 0.883, "size_similarity": 0.716 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.991, "content_similarity": 0.927, "left_pr_number": 66447, "right_pr_number": 68072, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/transport-message-transform.test.ts", "src/agents/transport-message-transform.ts" ], "similarity": 0.866, "size_similarity": 0.725 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.996, "content_similarity": 0.866, "left_pr_number": 66447, "right_pr_number": 68565, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "CHANGELOG.md", "src/agents/transport-message-transform.test.ts", "src/agents/transport-message-transform.ts" ], "similarity": 0.834, "size_similarity": 0.519 } ], "pr_count": 3, "pr_numbers": [ 66447, 68072, 68565 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68072, 68565 ], "representative_pr_number": 68072, "representative_title": "fix(agents): normalize assistant content before transport iteration", "representative_url": "https://github.com/openclaw/openclaw/pull/68072", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/transport-message-transform.test.ts", "src/agents/transport-message-transform.ts", "CHANGELOG.md" ], "summary": "3 open PRs share weighted file overlap around `src/agents/transport-message-transform.test.ts`, `src/agents/transport-message-transform.ts`, `CHANGELOG.md`; representative PR #68072.", "title": "Scope: fix(agents): normalize assistant content before transport iteration" }, { "authors": [ "Jerry-Xin", "evgyur" ], "average_similarity": 0.655, "cluster_id": "pr-scope-66471-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T12:17:46Z", "outside_window_prs": [ { "additions": 358, "author": "vincentkoc", "changed_files": 4, "created_at": "2026-04-14T09:50:40Z", "deletions": 11, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66471/files", "html_url": "https://github.com/openclaw/openclaw/pull/66471", "merged": false, "number": 66471, "state": "open", "title": "fix(reply): parse markdown image replies as media", "updated_at": "2026-04-14T10:16:10Z" } ], "pairwise": [ { "breadth_similarity": 0.417, "concentration_similarity": 0.881, "content_similarity": 0.812, "left_pr_number": 66471, "right_pr_number": 68338, "shared_directories": [ "src/media", "src" ], "shared_filenames": [ "src/media/parse.test.ts", "src/media/parse.ts" ], "similarity": 0.681, "size_similarity": 0.182 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.89, "content_similarity": 0.595, "left_pr_number": 66471, "right_pr_number": 69312, "shared_directories": [ "src/media", "src" ], "shared_filenames": [ "src/media/parse.test.ts", "src/media/parse.ts" ], "similarity": 0.663, "size_similarity": 0.791 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.771, "content_similarity": 0.709, "left_pr_number": 68338, "right_pr_number": 69312, "shared_directories": [ "src/media", "src" ], "shared_filenames": [ "src/media/parse.test.ts", "src/media/parse.ts" ], "similarity": 0.619, "size_similarity": 0.229 } ], "pr_count": 3, "pr_numbers": [ 66471, 68338, 69312 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68338, 69312 ], "representative_pr_number": 66471, "representative_title": "fix(reply): parse markdown image replies as media", "representative_url": "https://github.com/openclaw/openclaw/pull/66471", "shared_directories": [ "src/media", "src" ], "shared_filenames": [ "src/media/parse.test.ts", "src/media/parse.ts" ], "summary": "3 open PRs share weighted file overlap around `src/media/parse.test.ts`, `src/media/parse.ts`; representative PR #66471.", "title": "Scope: fix(reply): parse markdown image replies as media" }, { "authors": [ "Kailigithub", "tianhaocui" ], "average_similarity": 0.623, "cluster_id": "pr-scope-53682-3", "kind": "pr_scope", "last_activity_at": "2026-04-19T05:04:56Z", "outside_window_prs": [ { "additions": 2, "author": "jarvisgebbie79-prog", "changed_files": 1, "created_at": "2026-03-24T12:53:35Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53682/files", "html_url": "https://github.com/openclaw/openclaw/pull/53682", "merged": false, "number": 53682, "state": "open", "title": "fix: preserve approved heredoc commands on gateway exec", "updated_at": "2026-03-24T20:15:29Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.998, "left_pr_number": 68754, "right_pr_number": 68824, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec-host-gateway.ts" ], "similarity": 0.959, "size_similarity": 0.733 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.394, "left_pr_number": 53682, "right_pr_number": 68754, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec-host-gateway.ts" ], "similarity": 0.456, "size_similarity": 0.2 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.376, "left_pr_number": 53682, "right_pr_number": 68824, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec-host-gateway.ts" ], "similarity": 0.454, "size_similarity": 0.273 } ], "pr_count": 3, "pr_numbers": [ 53682, 68754, 68824 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68754, 68824 ], "representative_pr_number": 68754, "representative_title": "fix: remove unconditional heredoc approval in allowlist mode", "representative_url": "https://github.com/openclaw/openclaw/pull/68754", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec-host-gateway.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/bash-tools.exec-host-gateway.ts`; representative PR #68754.", "title": "Scope: fix: remove unconditional heredoc approval in allowlist mode" }, { "authors": [ "kylejfrost", "mraleko" ], "average_similarity": 0.582, "cluster_id": "pr-scope-66081-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T16:48:44Z", "outside_window_prs": [ { "additions": 158, "author": "Rohan5commit", "changed_files": 4, "created_at": "2026-04-13T17:17:10Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66081/files", "html_url": "https://github.com/openclaw/openclaw/pull/66081", "merged": false, "number": 66081, "state": "open", "title": "feat(codex-cli): prefer output-last-message artifacts", "updated_at": "2026-04-13T17:22:42Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.886, "left_pr_number": 66819, "right_pr_number": 69363, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-output.test.ts", "src/agents/cli-output.ts" ], "similarity": 0.905, "size_similarity": 0.899 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.711, "content_similarity": 0.279, "left_pr_number": 66081, "right_pr_number": 69363, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-output.test.ts", "src/agents/cli-output.ts" ], "similarity": 0.431, "size_similarity": 1.0 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.711, "content_similarity": 0.272, "left_pr_number": 66081, "right_pr_number": 66819, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-output.test.ts", "src/agents/cli-output.ts" ], "similarity": 0.411, "size_similarity": 0.899 } ], "pr_count": 3, "pr_numbers": [ 66081, 66819, 69363 ], "recent_pr_count": 2, "recent_pr_numbers": [ 66819, 69363 ], "representative_pr_number": 69363, "representative_title": "fix(agents): ignore SessionStart hook session_ids when resuming claude-cli", "representative_url": "https://github.com/openclaw/openclaw/pull/69363", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-output.test.ts", "src/agents/cli-output.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/cli-output.test.ts`, `src/agents/cli-output.ts`; representative PR #69363.", "title": "Scope: fix(agents): ignore SessionStart hook session_ids when resuming claude-cli" }, { "authors": [ "Joel-Claw", "sk7n4k3d" ], "average_similarity": 0.57, "cluster_id": "pr-scope-65433-3", "kind": "pr_scope", "last_activity_at": "2026-04-20T19:21:10Z", "outside_window_prs": [ { "additions": 133, "author": "Tianworld", "changed_files": 7, "created_at": "2026-04-12T15:46:33Z", "deletions": 19, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65433/files", "html_url": "https://github.com/openclaw/openclaw/pull/65433", "merged": false, "number": 65433, "state": "open", "title": "fix: inbound NUL safety, Gemini 3.1 CLI templates, Sonnet 4.6 default 1M context", "updated_at": "2026-04-12T15:51:10Z" } ], "pairwise": [ { "breadth_similarity": 0.583, "concentration_similarity": 0.985, "content_similarity": 0.822, "left_pr_number": 66862, "right_pr_number": 69426, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/context.test.ts", "src/agents/context.ts" ], "similarity": 0.789, "size_similarity": 0.706 }, { "breadth_similarity": 0.464, "concentration_similarity": 0.436, "content_similarity": 0.481, "left_pr_number": 65433, "right_pr_number": 69426, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/context.test.ts", "src/agents/context.ts" ], "similarity": 0.472, "size_similarity": 0.447 }, { "breadth_similarity": 0.268, "concentration_similarity": 0.421, "content_similarity": 0.507, "left_pr_number": 65433, "right_pr_number": 66862, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/context.test.ts", "src/agents/context.ts" ], "similarity": 0.45, "size_similarity": 0.316 } ], "pr_count": 3, "pr_numbers": [ 65433, 66862, 69426 ], "recent_pr_count": 2, "recent_pr_numbers": [ 66862, 69426 ], "representative_pr_number": 69426, "representative_title": "agents/context: unlock context1m on proxied Anthropic 1M-capable models (#69353)", "representative_url": "https://github.com/openclaw/openclaw/pull/69426", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/context.test.ts", "src/agents/context.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/context.test.ts`, `src/agents/context.ts`; representative PR #69426.", "title": "Scope: agents/context: unlock context1m on proxied Anthropic 1M-capable models (#69353)" }, { "authors": [ "alchip" ], "average_similarity": 0.544, "cluster_id": "pr-scope-63666-3", "kind": "pr_scope", "last_activity_at": "2026-04-17T02:50:22Z", "outside_window_prs": [ { "additions": 27, "author": "alchip", "changed_files": 1, "created_at": "2026-04-09T09:39:38Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63666/files", "html_url": "https://github.com/openclaw/openclaw/pull/63666", "merged": false, "number": 63666, "state": "open", "title": "test(imessage): cover reflected assistant-content inbound drop", "updated_at": "2026-04-14T07:35:11Z" } ], "pairwise": [ { "breadth_similarity": 0.292, "concentration_similarity": 0.516, "content_similarity": 0.659, "left_pr_number": 63666, "right_pr_number": 67929, "shared_directories": [ "extensions/imessage/src/monitor", "extensions/imessage/src", "extensions/imessage", "extensions" ], "shared_filenames": [ "extensions/imessage/src/monitor/inbound-processing.test.ts" ], "similarity": 0.579, "size_similarity": 0.422 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.69, "content_similarity": 0.61, "left_pr_number": 63666, "right_pr_number": 67923, "shared_directories": [ "extensions/imessage/src/monitor", "extensions/imessage/src", "extensions/imessage", "extensions" ], "shared_filenames": [ "extensions/imessage/src/monitor/inbound-processing.test.ts" ], "similarity": 0.55, "size_similarity": 0.31 }, { "breadth_similarity": 0.708, "concentration_similarity": 0.826, "content_similarity": 0.402, "left_pr_number": 67923, "right_pr_number": 67929, "shared_directories": [ "extensions/imessage/src/monitor", "extensions/imessage/src", "extensions/imessage", "extensions" ], "shared_filenames": [ "extensions/imessage/src/monitor/inbound-processing.test.ts" ], "similarity": 0.504, "size_similarity": 0.736 } ], "pr_count": 3, "pr_numbers": [ 63666, 67923, 67929 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67923, 67929 ], "representative_pr_number": 63666, "representative_title": "test(imessage): cover reflected assistant-content inbound drop", "representative_url": "https://github.com/openclaw/openclaw/pull/63666", "shared_directories": [ "extensions/imessage/src/monitor", "extensions/imessage/src", "extensions/imessage", "extensions" ], "shared_filenames": [ "extensions/imessage/src/monitor/inbound-processing.test.ts" ], "summary": "3 open PRs share weighted file overlap around `extensions/imessage/src/monitor/inbound-processing.test.ts`; representative PR #63666.", "title": "Scope: test(imessage): cover reflected assistant-content inbound drop" }, { "authors": [ "bottenbenny", "sparkeros" ], "average_similarity": 0.543, "cluster_id": "pr-scope-38500-3", "kind": "pr_scope", "last_activity_at": "2026-04-19T21:07:47Z", "outside_window_prs": [ { "additions": 29, "author": "xiwan", "changed_files": 2, "created_at": "2026-03-07T02:49:51Z", "deletions": 24, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38500/files", "html_url": "https://github.com/openclaw/openclaw/pull/38500", "merged": false, "number": 38500, "state": "open", "title": "build: inject package version via __OPENCLAW_VERSION__ define in tsdown", "updated_at": "2026-04-21T04:32:42Z" } ], "pairwise": [ { "breadth_similarity": 0.667, "concentration_similarity": 0.808, "content_similarity": 0.589, "left_pr_number": 38500, "right_pr_number": 69089, "shared_directories": [ "src" ], "shared_filenames": [ "tsdown.config.ts" ], "similarity": 0.624, "size_similarity": 0.698 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.899, "content_similarity": 0.528, "left_pr_number": 68176, "right_pr_number": 69089, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/git-commit.ts", "tsdown.config.ts" ], "similarity": 0.552, "size_similarity": 0.359 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.909, "content_similarity": 0.355, "left_pr_number": 38500, "right_pr_number": 68176, "shared_directories": [ "src" ], "shared_filenames": [ "tsdown.config.ts" ], "similarity": 0.454, "size_similarity": 0.515 } ], "pr_count": 3, "pr_numbers": [ 38500, 68176, 69089 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68176, 69089 ], "representative_pr_number": 69089, "representative_title": "fix(update): move refreshGatewayServiceEnv assignment outside isLoaded() check", "representative_url": "https://github.com/openclaw/openclaw/pull/69089", "shared_directories": [ "src", "src/infra" ], "shared_filenames": [ "tsdown.config.ts", "src/infra/git-commit.ts" ], "summary": "3 open PRs share weighted file overlap around `tsdown.config.ts`, `src/infra/git-commit.ts`; representative PR #69089.", "title": "Scope: fix(update): move refreshGatewayServiceEnv assignment outside isLoaded() check" }, { "authors": [ "nightq", "shaun0927" ], "average_similarity": 0.53, "cluster_id": "pr-scope-65841-3", "kind": "pr_scope", "last_activity_at": "2026-04-17T10:55:56Z", "outside_window_prs": [ { "additions": 148, "author": "steipete", "changed_files": 10, "created_at": "2026-04-13T09:42:46Z", "deletions": 12, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65841/files", "html_url": "https://github.com/openclaw/openclaw/pull/65841", "merged": false, "number": 65841, "state": "open", "title": "fix(msteams): harden security-sensitive flows", "updated_at": "2026-04-13T09:51:10Z" } ], "pairwise": [ { "breadth_similarity": 0.875, "concentration_similarity": 0.805, "content_similarity": 0.698, "left_pr_number": 67660, "right_pr_number": 68077, "shared_directories": [ "extensions/msteams/src", "extensions/msteams", "extensions" ], "shared_filenames": [ "extensions/msteams/src/setup-surface.test.ts", "extensions/msteams/src/setup-surface.ts" ], "similarity": 0.664, "size_similarity": 0.32 }, { "breadth_similarity": 0.65, "concentration_similarity": 0.751, "content_similarity": 0.438, "left_pr_number": 65841, "right_pr_number": 67660, "shared_directories": [ "extensions/msteams/src", "extensions/msteams", "extensions" ], "shared_filenames": [ "extensions/msteams/src/setup-surface.test.ts", "extensions/msteams/src/setup-surface.ts" ], "similarity": 0.479, "size_similarity": 0.469 }, { "breadth_similarity": 0.7, "concentration_similarity": 0.946, "content_similarity": 0.437, "left_pr_number": 65841, "right_pr_number": 68077, "shared_directories": [ "extensions/msteams/src", "extensions/msteams", "extensions" ], "shared_filenames": [ "extensions/msteams/src/setup-surface.test.ts", "extensions/msteams/src/setup-surface.ts" ], "similarity": 0.446, "size_similarity": 0.15 } ], "pr_count": 3, "pr_numbers": [ 65841, 67660, 68077 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67660, 68077 ], "representative_pr_number": 67660, "representative_title": "fix(msteams): use explorer.exe for delegated OAuth on win32", "representative_url": "https://github.com/openclaw/openclaw/pull/67660", "shared_directories": [ "extensions/msteams/src", "extensions/msteams", "extensions" ], "shared_filenames": [ "extensions/msteams/src/setup-surface.test.ts", "extensions/msteams/src/setup-surface.ts" ], "summary": "3 open PRs share weighted file overlap around `extensions/msteams/src/setup-surface.test.ts`, `extensions/msteams/src/setup-surface.ts`; representative PR #67660.", "title": "Scope: fix(msteams): use explorer.exe for delegated OAuth on win32" }, { "authors": [ "draix" ], "average_similarity": 0.529, "cluster_id": "pr-scope-40574-3", "kind": "pr_scope", "last_activity_at": "2026-04-15T13:40:47Z", "outside_window_prs": [ { "additions": 421, "author": "imwyvern", "changed_files": 2, "created_at": "2026-03-09T04:17:12Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/40574/files", "html_url": "https://github.com/openclaw/openclaw/pull/40574", "merged": false, "number": 40574, "state": "open", "title": "feat(write): add append mode to prevent silent data loss", "updated_at": "2026-04-21T07:12:12Z" } ], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.809, "content_similarity": 0.866, "left_pr_number": 67202, "right_pr_number": 67207, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-tools.read.ts", "src/agents/pi-tools.write-verification.test.ts" ], "similarity": 0.818, "size_similarity": 0.809 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.247, "left_pr_number": 40574, "right_pr_number": 67202, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-tools.read.ts" ], "similarity": 0.415, "size_similarity": 0.612 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.809, "content_similarity": 0.214, "left_pr_number": 40574, "right_pr_number": 67207, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-tools.read.ts" ], "similarity": 0.354, "size_similarity": 0.757 } ], "pr_count": 3, "pr_numbers": [ 40574, 67202, 67207 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67202, 67207 ], "representative_pr_number": 67202, "representative_title": "fix: add post-write verification to prevent false success reports", "representative_url": "https://github.com/openclaw/openclaw/pull/67202", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-tools.read.ts", "src/agents/pi-tools.write-verification.test.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/pi-tools.read.ts`, `src/agents/pi-tools.write-verification.test.ts`; representative PR #67202.", "title": "Scope: fix: add post-write verification to prevent false success reports" }, { "authors": [ "iamlukethedev", "likewen-tech" ], "average_similarity": 0.521, "cluster_id": "pr-scope-62789-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T03:50:58Z", "outside_window_prs": [ { "additions": 1107, "author": "rocdesu", "changed_files": 16, "created_at": "2026-04-08T00:58:09Z", "deletions": 18, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/62789/files", "html_url": "https://github.com/openclaw/openclaw/pull/62789", "merged": false, "number": 62789, "state": "open", "title": "cron: add command payload execution engine", "updated_at": "2026-04-11T23:57:32Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 0.812, "content_similarity": 0.605, "left_pr_number": 68535, "right_pr_number": 69562, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server.cron.test.ts" ], "similarity": 0.565, "size_similarity": 0.171 }, { "breadth_similarity": 0.229, "concentration_similarity": 0.873, "content_similarity": 0.559, "left_pr_number": 62789, "right_pr_number": 69562, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server.cron.test.ts" ], "similarity": 0.518, "size_similarity": 0.406 }, { "breadth_similarity": 0.146, "concentration_similarity": 0.684, "content_similarity": 0.599, "left_pr_number": 62789, "right_pr_number": 68535, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-cron.ts", "src/gateway/server.cron.test.ts" ], "similarity": 0.478, "size_similarity": 0.069 } ], "pr_count": 3, "pr_numbers": [ 62789, 68535, 69562 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68535, 69562 ], "representative_pr_number": 69562, "representative_title": "fix: validate cron announce account ids", "representative_url": "https://github.com/openclaw/openclaw/pull/69562", "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server.cron.test.ts", "src/gateway/server-cron.ts" ], "summary": "3 open PRs share weighted file overlap around `src/gateway/server.cron.test.ts`, `src/gateway/server-cron.ts`; representative PR #69562.", "title": "Scope: fix: validate cron announce account ids" }, { "authors": [ "Bartok9", "zoneblaze" ], "average_similarity": 0.52, "cluster_id": "pr-scope-64518-3", "kind": "pr_scope", "last_activity_at": "2026-04-18T17:58:17Z", "outside_window_prs": [ { "additions": 57, "author": "cedillarack", "changed_files": 2, "created_at": "2026-04-10T22:18:01Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64518/files", "html_url": "https://github.com/openclaw/openclaw/pull/64518", "merged": false, "number": 64518, "state": "open", "title": "fix: clear model/provider override on /new and /reset", "updated_at": "2026-04-10T22:39:06Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.56, "left_pr_number": 64518, "right_pr_number": 68202, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/session.test.ts", "src/auto-reply/reply/session.ts" ], "similarity": 0.665, "size_similarity": 0.824 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.409, "left_pr_number": 67591, "right_pr_number": 68202, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/session.ts" ], "similarity": 0.466, "size_similarity": 0.365 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.338, "left_pr_number": 64518, "right_pr_number": 67591, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/session.ts" ], "similarity": 0.428, "size_similarity": 0.443 } ], "pr_count": 3, "pr_numbers": [ 64518, 67591, 68202 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67591, 68202 ], "representative_pr_number": 68202, "representative_title": "fix(session): only persist user-selected auth profile overrides across /new and /reset", "representative_url": "https://github.com/openclaw/openclaw/pull/68202", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/session.ts", "src/auto-reply/reply/session.test.ts" ], "summary": "3 open PRs share weighted file overlap around `src/auto-reply/reply/session.ts`, `src/auto-reply/reply/session.test.ts`; representative PR #68202.", "title": "Scope: fix(session): only persist user-selected auth profile overrides across /new and /reset" }, { "authors": [ "1sh-date", "rarest" ], "average_similarity": 0.498, "cluster_id": "pr-scope-63864-3", "kind": "pr_scope", "last_activity_at": "2026-04-15T16:52:06Z", "outside_window_prs": [ { "additions": 97, "author": "SweetSophia", "changed_files": 6, "created_at": "2026-04-09T17:20:32Z", "deletions": 274, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63864/files", "html_url": "https://github.com/openclaw/openclaw/pull/63864", "merged": false, "number": 63864, "state": "open", "title": "feat: configurable session lane concurrency", "updated_at": "2026-04-20T17:37:31Z" } ], "pairwise": [ { "breadth_similarity": 0.667, "concentration_similarity": 0.951, "content_similarity": 0.578, "left_pr_number": 63864, "right_pr_number": 67098, "shared_directories": [ "src/config", "src/gateway", "src" ], "shared_filenames": [ "src/config/agent-limits.ts", "src/config/types.agent-defaults.ts", "src/gateway/server-lanes.ts", "src/gateway/server-reload-handlers.ts" ], "similarity": 0.533, "size_similarity": 0.097 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.814, "content_similarity": 0.609, "left_pr_number": 63864, "right_pr_number": 67292, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-reload-handlers.ts" ], "similarity": 0.514, "size_similarity": 0.035 }, { "breadth_similarity": 0.7, "concentration_similarity": 0.765, "content_similarity": 0.405, "left_pr_number": 67098, "right_pr_number": 67292, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-reload-handlers.ts" ], "similarity": 0.446, "size_similarity": 0.361 } ], "pr_count": 3, "pr_numbers": [ 63864, 67098, 67292 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67098, 67292 ], "representative_pr_number": 63864, "representative_title": "feat: configurable session lane concurrency", "representative_url": "https://github.com/openclaw/openclaw/pull/63864", "shared_directories": [ "src/gateway", "src", "src/config" ], "shared_filenames": [ "src/gateway/server-reload-handlers.ts", "src/config/agent-limits.ts", "src/gateway/server-lanes.ts", "src/config/types.agent-defaults.ts" ], "summary": "3 open PRs share weighted file overlap around `src/gateway/server-reload-handlers.ts`, `src/config/agent-limits.ts`, `src/gateway/server-lanes.ts`; representative PR #63864.", "title": "Scope: feat: configurable session lane concurrency" }, { "authors": [ "patl4588", "wnlen" ], "average_similarity": 0.469, "cluster_id": "pr-scope-53348-3", "kind": "pr_scope", "last_activity_at": "2026-04-20T20:28:51Z", "outside_window_prs": [ { "additions": 27, "author": "yangming0506", "changed_files": 5, "created_at": "2026-03-24T03:24:29Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53348/files", "html_url": "https://github.com/openclaw/openclaw/pull/53348", "merged": false, "number": 53348, "state": "open", "title": "Merge pull request #1 from yangming0506/main", "updated_at": "2026-03-24T20:15:31Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.562, "left_pr_number": 67227, "right_pr_number": 69452, "shared_directories": [ "docs/concepts", "docs" ], "shared_filenames": [ "docs/concepts/model-providers.md" ], "similarity": 0.679, "size_similarity": 0.907 }, { "breadth_similarity": 0.2, "concentration_similarity": 0.387, "content_similarity": 0.294, "left_pr_number": 53348, "right_pr_number": 67227, "shared_directories": [ "docs/concepts", "docs" ], "shared_filenames": [ "docs/concepts/model-providers.md" ], "similarity": 0.364, "size_similarity": 0.795 }, { "breadth_similarity": 0.2, "concentration_similarity": 0.387, "content_similarity": 0.307, "left_pr_number": 53348, "right_pr_number": 69452, "shared_directories": [ "docs/concepts", "docs" ], "shared_filenames": [ "docs/concepts/model-providers.md" ], "similarity": 0.362, "size_similarity": 0.721 } ], "pr_count": 3, "pr_numbers": [ 53348, 67227, 69452 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67227, 69452 ], "representative_pr_number": 67227, "representative_title": "docs: clarify provider request proxy configuration", "representative_url": "https://github.com/openclaw/openclaw/pull/67227", "shared_directories": [ "docs/concepts", "docs" ], "shared_filenames": [ "docs/concepts/model-providers.md" ], "summary": "3 open PRs share weighted file overlap around `docs/concepts/model-providers.md`; representative PR #67227.", "title": "Scope: docs: clarify provider request proxy configuration" }, { "authors": [ "bluesky6868", "ymaxgit" ], "average_similarity": 0.462, "cluster_id": "pr-scope-49131-3", "kind": "pr_scope", "last_activity_at": "2026-04-18T07:38:01Z", "outside_window_prs": [ { "additions": 172, "author": "eulicesl", "changed_files": 3, "created_at": "2026-03-17T16:26:28Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/49131/files", "html_url": "https://github.com/openclaw/openclaw/pull/49131", "merged": false, "number": 49131, "state": "open", "title": "fix: add placeholder transcript for silent voice notes", "updated_at": "2026-04-17T14:02:32Z" } ], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.528, "left_pr_number": 49131, "right_pr_number": 68456, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/apply.test.ts", "src/media-understanding/apply.ts" ], "similarity": 0.542, "size_similarity": 0.261 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.27, "left_pr_number": 68225, "right_pr_number": 68456, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/apply.ts" ], "similarity": 0.483, "size_similarity": 0.958 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.266, "left_pr_number": 49131, "right_pr_number": 68225, "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/apply.ts" ], "similarity": 0.36, "size_similarity": 0.273 } ], "pr_count": 3, "pr_numbers": [ 49131, 68225, 68456 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68225, 68456 ], "representative_pr_number": 68456, "representative_title": "security(media): anchor sanitizeMimeType regex to reject malformed input", "representative_url": "https://github.com/openclaw/openclaw/pull/68456", "shared_directories": [ "src/media-understanding", "src" ], "shared_filenames": [ "src/media-understanding/apply.ts", "src/media-understanding/apply.test.ts" ], "summary": "3 open PRs share weighted file overlap around `src/media-understanding/apply.ts`, `src/media-understanding/apply.test.ts`; representative PR #68456.", "title": "Scope: security(media): anchor sanitizeMimeType regex to reject malformed input" }, { "authors": [ "safrano9999", "swotvibe" ], "average_similarity": 0.459, "cluster_id": "pr-scope-62431-3", "kind": "pr_scope", "last_activity_at": "2026-04-20T01:29:02Z", "outside_window_prs": [ { "additions": 98, "author": "urtabajev", "changed_files": 8, "created_at": "2026-04-07T10:23:56Z", "deletions": 24, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/62431/files", "html_url": "https://github.com/openclaw/openclaw/pull/62431", "merged": false, "number": 62431, "state": "open", "title": "infra: prefer OPENCLAW_IMAGE_APT_PACKAGES over OPENCLAW_DOCKER_APT_PACKAGES", "updated_at": "2026-04-11T06:54:11Z" } ], "pairwise": [ { "breadth_similarity": 0.402, "concentration_similarity": 0.897, "content_similarity": 0.63, "left_pr_number": 62431, "right_pr_number": 69143, "shared_directories": [ "docs/install", "scripts/docker", "docs", "scripts", "src" ], "shared_filenames": [ "docs/install/docker.md", "scripts/docker/setup.sh", "src/docker-setup.e2e.test.ts" ], "similarity": 0.602, "size_similarity": 0.508 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.847, "content_similarity": 0.357, "left_pr_number": 68994, "right_pr_number": 69143, "shared_directories": [ "scripts/docker", "scripts", "src" ], "shared_filenames": [ "scripts/docker/setup.sh" ], "similarity": 0.464, "size_similarity": 0.564 }, { "breadth_similarity": 0.464, "concentration_similarity": 0.95, "content_similarity": 0.116, "left_pr_number": 62431, "right_pr_number": 68994, "shared_directories": [ "scripts/docker", "scripts", "src" ], "shared_filenames": [ "scripts/docker/setup.sh" ], "similarity": 0.31, "size_similarity": 0.902 } ], "pr_count": 3, "pr_numbers": [ 62431, 68994, 69143 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68994, 69143 ], "representative_pr_number": 69143, "representative_title": "Docker: add OPENCLAW_DOCKER_PLATFORM for cross-platform image builds", "representative_url": "https://github.com/openclaw/openclaw/pull/69143", "shared_directories": [ "scripts/docker", "scripts", "src", "docs/install", "docs" ], "shared_filenames": [ "scripts/docker/setup.sh", "docs/install/docker.md", "src/docker-setup.e2e.test.ts" ], "summary": "3 open PRs share weighted file overlap around `scripts/docker/setup.sh`, `docs/install/docker.md`, `src/docker-setup.e2e.test.ts`; representative PR #69143.", "title": "Scope: Docker: add OPENCLAW_DOCKER_PLATFORM for cross-platform image builds" }, { "authors": [ "haobaicai", "nightq" ], "average_similarity": 0.456, "cluster_id": "pr-scope-54686-3", "kind": "pr_scope", "last_activity_at": "2026-04-17T05:40:49Z", "outside_window_prs": [ { "additions": 52, "author": "juliabush", "changed_files": 3, "created_at": "2026-03-25T20:20:15Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/54686/files", "html_url": "https://github.com/openclaw/openclaw/pull/54686", "merged": false, "number": 54686, "state": "open", "title": "Fix for hooks and bluebubbles webhook 404 (closes #52605 and others)", "updated_at": "2026-04-19T16:27:32Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.551, "left_pr_number": 66726, "right_pr_number": 67921, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-channels.ts" ], "similarity": 0.555, "size_similarity": 0.293 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.667, "content_similarity": 0.299, "left_pr_number": 54686, "right_pr_number": 67921, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-channels.ts" ], "similarity": 0.409, "size_similarity": 0.719 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.667, "content_similarity": 0.425, "left_pr_number": 54686, "right_pr_number": 66726, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-channels.ts" ], "similarity": 0.404, "size_similarity": 0.211 } ], "pr_count": 3, "pr_numbers": [ 54686, 66726, 67921 ], "recent_pr_count": 2, "recent_pr_numbers": [ 66726, 67921 ], "representative_pr_number": 67921, "representative_title": "refactor: make channel startup non-blocking to improve gateway readiness", "representative_url": "https://github.com/openclaw/openclaw/pull/67921", "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-channels.ts" ], "summary": "3 open PRs share weighted file overlap around `src/gateway/server-channels.ts`; representative PR #67921.", "title": "Scope: refactor: make channel startup non-blocking to improve gateway readiness" }, { "authors": [ "Magicray1217", "xilin2157-bot" ], "average_similarity": 0.456, "cluster_id": "pr-scope-53872-3", "kind": "pr_scope", "last_activity_at": "2026-04-18T10:13:42Z", "outside_window_prs": [ { "additions": 286, "author": "VACInc", "changed_files": 4, "created_at": "2026-03-24T18:14:05Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53872/files", "html_url": "https://github.com/openclaw/openclaw/pull/53872", "merged": false, "number": 53872, "state": "open", "title": "fix(gateway): emit before_reset on session reset", "updated_at": "2026-03-24T20:15:28Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.742, "left_pr_number": 67049, "right_pr_number": 67567, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-reset-service.ts" ], "similarity": 0.674, "size_similarity": 0.194 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.775, "content_similarity": 0.409, "left_pr_number": 53872, "right_pr_number": 67049, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-reset-service.ts" ], "similarity": 0.366, "size_similarity": 0.024 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.775, "content_similarity": 0.317, "left_pr_number": 53872, "right_pr_number": 67567, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-reset-service.ts" ], "similarity": 0.329, "size_similarity": 0.123 } ], "pr_count": 3, "pr_numbers": [ 53872, 67049, 67567 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67049, 67567 ], "representative_pr_number": 67049, "representative_title": "fix: drain system events on /new session reset", "representative_url": "https://github.com/openclaw/openclaw/pull/67049", "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-reset-service.ts" ], "summary": "3 open PRs share weighted file overlap around `src/gateway/session-reset-service.ts`; representative PR #67049.", "title": "Scope: fix: drain system events on /new session reset" }, { "authors": [ "mpz4life", "tianhaocui" ], "average_similarity": 0.446, "cluster_id": "pr-scope-36696-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T14:57:05Z", "outside_window_prs": [ { "additions": 346, "author": "Youyou972", "changed_files": 4, "created_at": "2026-03-05T21:07:14Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/36696/files", "html_url": "https://github.com/openclaw/openclaw/pull/36696", "merged": false, "number": 36696, "state": "open", "title": "fix: require tool use when a run explicitly depends on tools", "updated_at": "2026-04-18T04:23:20Z" } ], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.986, "content_similarity": 0.743, "left_pr_number": 36696, "right_pr_number": 68863, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.ts", "src/agents/pi-embedded-runner/usage-reporting.test.ts" ], "similarity": 0.633, "size_similarity": 0.09 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.217, "left_pr_number": 67706, "right_pr_number": 68863, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.ts" ], "similarity": 0.383, "size_similarity": 0.71 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.986, "content_similarity": 0.323, "left_pr_number": 36696, "right_pr_number": 67706, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.ts" ], "similarity": 0.322, "size_similarity": 0.064 } ], "pr_count": 3, "pr_numbers": [ 36696, 67706, 68863 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67706, 68863 ], "representative_pr_number": 68863, "representative_title": "fix: prevent prompt token double-counting in tool-use loops", "representative_url": "https://github.com/openclaw/openclaw/pull/68863", "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run.ts", "src/agents/pi-embedded-runner/usage-reporting.test.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/pi-embedded-runner/run.ts`, `src/agents/pi-embedded-runner/usage-reporting.test.ts`; representative PR #68863.", "title": "Scope: fix: prevent prompt token double-counting in tool-use loops" }, { "authors": [ "akinshaywai", "patricklee001" ], "average_similarity": 0.428, "cluster_id": "pr-scope-53630-3", "kind": "pr_scope", "last_activity_at": "2026-04-17T14:40:40Z", "outside_window_prs": [ { "additions": 1, "author": "w-sss", "changed_files": 1, "created_at": "2026-03-24T11:05:51Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53630/files", "html_url": "https://github.com/openclaw/openclaw/pull/53630", "merged": true, "number": 53630, "state": "open", "title": "Fix/UI context notice icon overflow", "updated_at": "2026-03-24T20:15:29Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.304, "left_pr_number": 53630, "right_pr_number": 67424, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/chat.ts" ], "similarity": 0.513, "size_similarity": 1.0 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.135, "left_pr_number": 53630, "right_pr_number": 68152, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.394, "size_similarity": 1.0 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.108, "left_pr_number": 67424, "right_pr_number": 68152, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.375, "size_similarity": 1.0 } ], "pr_count": 3, "pr_numbers": [ 53630, 67424, 68152 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67424, 68152 ], "representative_pr_number": 53630, "representative_title": "Fix/UI context notice icon overflow", "representative_url": "https://github.com/openclaw/openclaw/pull/53630", "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/views/chat.ts" ], "summary": "3 open PRs share weighted file overlap around `ui/src/ui/views/chat.ts`; representative PR #53630.", "title": "Scope: Fix/UI context notice icon overflow" }, { "authors": [ "Ante042", "iubns" ], "average_similarity": 0.427, "cluster_id": "pr-scope-53346-3", "kind": "pr_scope", "last_activity_at": "2026-04-18T13:20:49Z", "outside_window_prs": [ { "additions": 440, "author": "leemgs", "changed_files": 12, "created_at": "2026-03-24T03:20:38Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53346/files", "html_url": "https://github.com/openclaw/openclaw/pull/53346", "merged": false, "number": 53346, "state": "open", "title": " feat: add Korean language support to Control UI and AI agent", "updated_at": "2026-03-24T20:15:31Z" } ], "pairwise": [ { "breadth_similarity": 0.692, "concentration_similarity": 0.808, "content_similarity": 0.703, "left_pr_number": 67290, "right_pr_number": 68557, "shared_directories": [ "ui/src/i18n/.i18n", "ui/src/i18n/locales", "ui/src/ui/views", "ui/src/i18n", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/i18n/.i18n/de.meta.json", "ui/src/i18n/.i18n/es.meta.json", "ui/src/i18n/.i18n/fr.meta.json", "ui/src/i18n/.i18n/id.meta.json", "ui/src/i18n/.i18n/ja-JP.meta.json", "ui/src/i18n/.i18n/ko.meta.json", "ui/src/i18n/.i18n/pl.meta.json", "ui/src/i18n/.i18n/pt-BR.meta.json", "ui/src/i18n/.i18n/tr.meta.json", "ui/src/i18n/.i18n/uk.meta.json" ], "similarity": 0.653, "size_similarity": 0.343 }, { "breadth_similarity": 0.554, "concentration_similarity": 0.76, "content_similarity": 0.299, "left_pr_number": 53346, "right_pr_number": 67290, "shared_directories": [ "ui/src/i18n/locales", "ui/src/i18n", "ui/src", "ui" ], "shared_filenames": [ "ui/src/i18n/locales/de.ts", "ui/src/i18n/locales/en.ts", "ui/src/i18n/locales/es.ts", "ui/src/i18n/locales/ko.ts", "ui/src/i18n/locales/pt-BR.ts", "ui/src/i18n/locales/zh-CN.ts", "ui/src/i18n/locales/zh-TW.ts" ], "similarity": 0.358, "size_similarity": 0.371 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.951, "content_similarity": 0.176, "left_pr_number": 53346, "right_pr_number": 68557, "shared_directories": [ "ui/src/i18n/locales", "ui/src/i18n", "ui/src", "ui" ], "shared_filenames": [ "ui/src/i18n/locales/en.ts" ], "similarity": 0.27, "size_similarity": 0.127 } ], "pr_count": 3, "pr_numbers": [ 53346, 67290, 68557 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67290, 68557 ], "representative_pr_number": 67290, "representative_title": "fix(ui): remove duplicate usage page header", "representative_url": "https://github.com/openclaw/openclaw/pull/67290", "shared_directories": [ "ui/src/i18n/locales", "ui/src/i18n", "ui/src", "ui", "ui/src/i18n/.i18n", "ui/src/ui/views", "ui/src/ui" ], "shared_filenames": [ "ui/src/i18n/locales/en.ts", "ui/src/i18n/.i18n/de.meta.json", "ui/src/i18n/.i18n/es.meta.json", "ui/src/i18n/.i18n/fr.meta.json", "ui/src/i18n/.i18n/id.meta.json", "ui/src/i18n/.i18n/ja-JP.meta.json", "ui/src/i18n/.i18n/ko.meta.json", "ui/src/i18n/.i18n/pl.meta.json" ], "summary": "3 open PRs share weighted file overlap around `ui/src/i18n/locales/en.ts`, `ui/src/i18n/.i18n/de.meta.json`, `ui/src/i18n/.i18n/es.meta.json`; representative PR #67290.", "title": "Scope: fix(ui): remove duplicate usage page header" }, { "authors": [ "DevInvestor", "soloclz" ], "average_similarity": 0.419, "cluster_id": "pr-scope-37590-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T14:51:12Z", "outside_window_prs": [ { "additions": 199, "author": "kimgyu", "changed_files": 10, "created_at": "2026-03-06T09:57:06Z", "deletions": 10, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37590/files", "html_url": "https://github.com/openclaw/openclaw/pull/37590", "merged": false, "number": 37590, "state": "open", "title": "fix(agents): surface silent exec failures", "updated_at": "2026-04-20T04:35:58Z" } ], "pairwise": [ { "breadth_similarity": 0.225, "concentration_similarity": 0.579, "content_similarity": 0.588, "left_pr_number": 37590, "right_pr_number": 67276, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/payloads.test.ts", "src/agents/pi-embedded-runner/run/payloads.ts" ], "similarity": 0.506, "size_similarity": 0.287 }, { "breadth_similarity": 0.955, "concentration_similarity": 0.973, "content_similarity": 0.215, "left_pr_number": 37590, "right_pr_number": 67448, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/payloads.test.ts", "src/agents/pi-embedded-runner/run/payloads.ts" ], "similarity": 0.413, "size_similarity": 0.789 }, { "breadth_similarity": 0.216, "concentration_similarity": 0.606, "content_similarity": 0.33, "left_pr_number": 67276, "right_pr_number": 67448, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/payloads.test.ts", "src/agents/pi-embedded-runner/run/payloads.ts" ], "similarity": 0.338, "size_similarity": 0.364 } ], "pr_count": 3, "pr_numbers": [ 37590, 67276, 67448 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67276, 67448 ], "representative_pr_number": 37590, "representative_title": "fix(agents): surface silent exec failures", "representative_url": "https://github.com/openclaw/openclaw/pull/37590", "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/payloads.test.ts", "src/agents/pi-embedded-runner/run/payloads.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/pi-embedded-runner/run/payloads.test.ts`, `src/agents/pi-embedded-runner/run/payloads.ts`; representative PR #37590.", "title": "Scope: fix(agents): surface silent exec failures" }, { "authors": [ "adapepper", "bluesky6868" ], "average_similarity": 0.397, "cluster_id": "pr-scope-55761-3", "kind": "pr_scope", "last_activity_at": "2026-04-19T12:43:47Z", "outside_window_prs": [ { "additions": 292, "author": "EffortlessSteven", "changed_files": 5, "created_at": "2026-03-27T11:56:04Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/55761/files", "html_url": "https://github.com/openclaw/openclaw/pull/55761", "merged": false, "number": 55761, "state": "open", "title": "fix(hooks): suppress silent shared-hook fallback while preserving error surfacing", "updated_at": "2026-04-19T10:45:04Z" } ], "pairwise": [ { "breadth_similarity": 0.733, "concentration_similarity": 0.972, "content_similarity": 0.491, "left_pr_number": 55761, "right_pr_number": 68667, "shared_directories": [ "src/gateway/server", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server.hooks.test.ts", "src/gateway/server/hooks.agent-trust.test.ts", "src/gateway/server/hooks.ts" ], "similarity": 0.509, "size_similarity": 0.294 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.937, "content_similarity": 0.213, "left_pr_number": 55761, "right_pr_number": 67433, "shared_directories": [ "src/gateway/server", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server/hooks.ts" ], "similarity": 0.355, "size_similarity": 0.559 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.965, "content_similarity": 0.243, "left_pr_number": 67433, "right_pr_number": 68667, "shared_directories": [ "src/gateway/server", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server/hooks.ts" ], "similarity": 0.326, "size_similarity": 0.164 } ], "pr_count": 3, "pr_numbers": [ 55761, 67433, 68667 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67433, 68667 ], "representative_pr_number": 55761, "representative_title": "fix(hooks): suppress silent shared-hook fallback while preserving error surfacing", "representative_url": "https://github.com/openclaw/openclaw/pull/55761", "shared_directories": [ "src/gateway/server", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server/hooks.ts", "src/gateway/server/hooks.agent-trust.test.ts", "src/gateway/server.hooks.test.ts" ], "summary": "3 open PRs share weighted file overlap around `src/gateway/server/hooks.ts`, `src/gateway/server/hooks.agent-trust.test.ts`, `src/gateway/server.hooks.test.ts`; representative PR #55761.", "title": "Scope: fix(hooks): suppress silent shared-hook fallback while preserving error surfacing" }, { "authors": [ "hxy91819", "shaun0927" ], "average_similarity": 0.389, "cluster_id": "pr-scope-66321-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T04:04:21Z", "outside_window_prs": [ { "additions": 177, "author": "xinmotlanthua", "changed_files": 2, "created_at": "2026-04-14T03:55:46Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66321/files", "html_url": "https://github.com/openclaw/openclaw/pull/66321", "merged": false, "number": 66321, "state": "open", "title": "fix: macOS app stays on 'Health check pending' even when gateway is healthy", "updated_at": "2026-04-14T04:44:29Z" } ], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.963, "content_similarity": 0.265, "left_pr_number": 68186, "right_pr_number": 68835, "shared_directories": [ "apps/macos/Sources/OpenClaw", "apps/macos/Tests/OpenClawIPCTests", "apps/macos/Sources", "apps/macos/Tests", "apps/macos", "apps" ], "shared_filenames": [], "similarity": 0.406, "size_similarity": 0.821 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.972, "content_similarity": 0.268, "left_pr_number": 66321, "right_pr_number": 68835, "shared_directories": [ "apps/macos/Sources/OpenClaw", "apps/macos/Tests/OpenClawIPCTests", "apps/macos/Sources", "apps/macos/Tests", "apps/macos", "apps" ], "shared_filenames": [], "similarity": 0.398, "size_similarity": 0.414 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.991, "content_similarity": 0.304, "left_pr_number": 66321, "right_pr_number": 68186, "shared_directories": [ "apps/macos/Sources/OpenClaw", "apps/macos/Tests/OpenClawIPCTests", "apps/macos/Sources", "apps/macos/Tests", "apps/macos", "apps" ], "shared_filenames": [], "similarity": 0.363, "size_similarity": 0.34 } ], "pr_count": 3, "pr_numbers": [ 66321, 68186, 68835 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68186, 68835 ], "representative_pr_number": 68835, "representative_title": "fix(macos): stop evaluating model catalogs as JS", "representative_url": "https://github.com/openclaw/openclaw/pull/68835", "shared_directories": [ "apps/macos/Tests/OpenClawIPCTests", "apps/macos/Sources/OpenClaw", "apps/macos/Tests", "apps/macos/Sources", "apps/macos", "apps" ], "shared_filenames": [], "summary": "3 open PRs cluster in `apps/macos/Tests/OpenClawIPCTests`, `apps/macos/Sources/OpenClaw`, `apps/macos/Tests` with similar change breadth; representative PR #68835.", "title": "Scope: fix(macos): stop evaluating model catalogs as JS" }, { "authors": [ "kamusis", "sebykrueger" ], "average_similarity": 0.383, "cluster_id": "pr-scope-65785-3", "kind": "pr_scope", "last_activity_at": "2026-04-17T04:27:31Z", "outside_window_prs": [ { "additions": 15, "author": "zhouhe-xydt", "changed_files": 2, "created_at": "2026-04-13T07:38:16Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65785/files", "html_url": "https://github.com/openclaw/openclaw/pull/65785", "merged": false, "number": 65785, "state": "open", "title": "fix(minimax): allow web_search to use MINIMAX_OAUTH_TOKEN", "updated_at": "2026-04-13T07:51:20Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.235, "left_pr_number": 67195, "right_pr_number": 67967, "shared_directories": [ "extensions/minimax", "extensions" ], "shared_filenames": [ "extensions/minimax/index.test.ts" ], "similarity": 0.45, "size_similarity": 0.905 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.091, "left_pr_number": 65785, "right_pr_number": 67195, "shared_directories": [ "extensions/minimax", "extensions" ], "shared_filenames": [], "similarity": 0.355, "size_similarity": 0.947 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.092, "left_pr_number": 65785, "right_pr_number": 67967, "shared_directories": [ "extensions/minimax", "extensions" ], "shared_filenames": [], "similarity": 0.343, "size_similarity": 0.857 } ], "pr_count": 3, "pr_numbers": [ 65785, 67195, 67967 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67195, 67967 ], "representative_pr_number": 67195, "representative_title": "fix(minimax): add provider auth aliases to manifest (fixes #63823)", "representative_url": "https://github.com/openclaw/openclaw/pull/67195", "shared_directories": [ "extensions/minimax", "extensions" ], "shared_filenames": [ "extensions/minimax/index.test.ts" ], "summary": "3 open PRs share weighted file overlap around `extensions/minimax/index.test.ts`; representative PR #67195.", "title": "Scope: fix(minimax): add provider auth aliases to manifest (fixes #63823)" }, { "authors": [ "Conan-Scott", "drobison00" ], "average_similarity": 0.382, "cluster_id": "pr-scope-37670-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T18:00:45Z", "outside_window_prs": [ { "additions": 71, "author": "sonwr", "changed_files": 9, "created_at": "2026-03-06T10:58:32Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37670/files", "html_url": "https://github.com/openclaw/openclaw/pull/37670", "merged": false, "number": 37670, "state": "open", "title": "fix(control-ui): avoid cron jobs/new job panel overlap on medium widths", "updated_at": "2026-04-20T04:36:47Z" } ], "pairwise": [ { "breadth_similarity": 0.653, "concentration_similarity": 0.926, "content_similarity": 0.25, "left_pr_number": 37670, "right_pr_number": 67916, "shared_directories": [ "src/gateway", "ui/src", "src", "ui" ], "shared_filenames": [ "src/gateway/control-ui.http.test.ts", "src/gateway/control-ui.ts" ], "similarity": 0.418, "size_similarity": 0.872 }, { "breadth_similarity": 0.746, "concentration_similarity": 0.762, "content_similarity": 0.351, "left_pr_number": 37670, "right_pr_number": 69775, "shared_directories": [ "src/gateway", "ui/src", "src", "ui" ], "shared_filenames": [ "src/gateway/control-ui.http.test.ts", "src/gateway/control-ui.ts" ], "similarity": 0.38, "size_similarity": 0.141 }, { "breadth_similarity": 0.492, "concentration_similarity": 0.688, "content_similarity": 0.353, "left_pr_number": 67916, "right_pr_number": 69775, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "src/gateway", "ui/src", "src", "ui" ], "shared_filenames": [ "src/gateway/control-ui.http.test.ts", "src/gateway/control-ui.ts", "ui/src/ui/chat/grouped-render.ts" ], "similarity": 0.349, "size_similarity": 0.123 } ], "pr_count": 3, "pr_numbers": [ 37670, 67916, 69775 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67916, 69775 ], "representative_pr_number": 37670, "representative_title": "fix(control-ui): avoid cron jobs/new job panel overlap on medium widths", "representative_url": "https://github.com/openclaw/openclaw/pull/37670", "shared_directories": [ "ui/src", "src/gateway", "ui", "src", "ui/src/ui/chat", "ui/src/ui" ], "shared_filenames": [ "src/gateway/control-ui.http.test.ts", "src/gateway/control-ui.ts", "ui/src/ui/chat/grouped-render.ts" ], "summary": "3 open PRs share weighted file overlap around `src/gateway/control-ui.http.test.ts`, `src/gateway/control-ui.ts`, `ui/src/ui/chat/grouped-render.ts`; representative PR #37670.", "title": "Scope: fix(control-ui): avoid cron jobs/new job panel overlap on medium widths" }, { "authors": [ "fangguisheng520", "michaelhughes2501" ], "average_similarity": 0.379, "cluster_id": "pr-scope-65739-3", "kind": "pr_scope", "last_activity_at": "2026-04-18T01:52:23Z", "outside_window_prs": [ { "additions": 1613, "author": "yananli199307-dev", "changed_files": 19, "created_at": "2026-04-13T05:52:54Z", "deletions": 44, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65739/files", "html_url": "https://github.com/openclaw/openclaw/pull/65739", "merged": false, "number": 65739, "state": "open", "title": "feat: Add Agent P2P channel plugin", "updated_at": "2026-04-13T12:43:15Z" } ], "pairwise": [ { "breadth_similarity": 0.852, "concentration_similarity": 0.862, "content_similarity": 0.277, "left_pr_number": 65739, "right_pr_number": 68345, "shared_directories": [], "shared_filenames": [ "pnpm-lock.yaml" ], "similarity": 0.442, "size_similarity": 0.795 }, { "breadth_similarity": 0.63, "concentration_similarity": 0.898, "content_similarity": 0.299, "left_pr_number": 66960, "right_pr_number": 68345, "shared_directories": [ "ui" ], "shared_filenames": [ "pnpm-lock.yaml" ], "similarity": 0.378, "size_similarity": 0.404 }, { "breadth_similarity": 0.684, "concentration_similarity": 0.76, "content_similarity": 0.234, "left_pr_number": 65739, "right_pr_number": 66960, "shared_directories": [], "shared_filenames": [ "pnpm-lock.yaml" ], "similarity": 0.318, "size_similarity": 0.322 } ], "pr_count": 3, "pr_numbers": [ 65739, 66960, 68345 ], "recent_pr_count": 2, "recent_pr_numbers": [ 66960, 68345 ], "representative_pr_number": 68345, "representative_title": "Modify several web pages by hard-coding the language into multiple la\u2026", "representative_url": "https://github.com/openclaw/openclaw/pull/68345", "shared_directories": [ "ui" ], "shared_filenames": [ "pnpm-lock.yaml" ], "summary": "3 open PRs share weighted file overlap around `pnpm-lock.yaml`; representative PR #68345.", "title": "Scope: Modify several web pages by hard-coding the language into multiple la\u2026" }, { "authors": [ "altierac", "neo1027144-creator" ], "average_similarity": 0.371, "cluster_id": "pr-scope-65992-3", "kind": "pr_scope", "last_activity_at": "2026-04-20T05:25:07Z", "outside_window_prs": [ { "additions": 414, "author": "sqsge", "changed_files": 2, "created_at": "2026-04-13T14:48:07Z", "deletions": 11, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65992/files", "html_url": "https://github.com/openclaw/openclaw/pull/65992", "merged": false, "number": 65992, "state": "open", "title": "fix(memory-wiki): prevent ingested source page collisions", "updated_at": "2026-04-20T08:12:52Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.223, "left_pr_number": 67711, "right_pr_number": 68852, "shared_directories": [ "extensions/memory-wiki/src", "extensions/memory-wiki", "extensions" ], "shared_filenames": [], "similarity": 0.406, "size_similarity": 0.665 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.218, "left_pr_number": 65992, "right_pr_number": 67711, "shared_directories": [ "extensions/memory-wiki/src", "extensions/memory-wiki", "extensions" ], "shared_filenames": [], "similarity": 0.366, "size_similarity": 0.421 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.213, "left_pr_number": 65992, "right_pr_number": 68852, "shared_directories": [ "extensions/memory-wiki/src", "extensions/memory-wiki", "extensions" ], "shared_filenames": [], "similarity": 0.341, "size_similarity": 0.28 } ], "pr_count": 3, "pr_numbers": [ 65992, 67711, 68852 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67711, 68852 ], "representative_pr_number": 67711, "representative_title": "fix(memory-wiki): skip bridge prune when capability unavailable but sources intact [AI-assisted]", "representative_url": "https://github.com/openclaw/openclaw/pull/67711", "shared_directories": [ "extensions/memory-wiki/src", "extensions/memory-wiki", "extensions" ], "shared_filenames": [], "summary": "3 open PRs cluster in `extensions/memory-wiki/src`, `extensions/memory-wiki`, `extensions` with similar change breadth; representative PR #67711.", "title": "Scope: fix(memory-wiki): skip bridge prune when capability unavailable but sources intact [AI-assisted]" }, { "authors": [ "infocentr", "xialonglee" ], "average_similarity": 0.362, "cluster_id": "pr-scope-65174-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T12:43:15Z", "outside_window_prs": [ { "additions": 121, "author": "web3blind", "changed_files": 8, "created_at": "2026-04-12T04:33:32Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65174/files", "html_url": "https://github.com/openclaw/openclaw/pull/65174", "merged": false, "number": 65174, "state": "open", "title": "Improve subagent start notices with resolved model info", "updated_at": "2026-04-13T04:15:18Z" } ], "pairwise": [ { "breadth_similarity": 0.838, "concentration_similarity": 0.775, "content_similarity": 0.185, "left_pr_number": 65174, "right_pr_number": 68495, "shared_directories": [ "src/auto-reply/reply", "src/agents", "src/auto-reply", "src" ], "shared_filenames": [ "src/agents/pi-embedded-utils.ts" ], "similarity": 0.389, "size_similarity": 0.915 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.729, "content_similarity": 0.382, "left_pr_number": 65174, "right_pr_number": 69288, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-utils.test.ts", "src/agents/pi-embedded-utils.ts" ], "similarity": 0.376, "size_similarity": 0.233 }, { "breadth_similarity": 0.386, "concentration_similarity": 0.504, "content_similarity": 0.32, "left_pr_number": 68495, "right_pr_number": 69288, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-utils.ts" ], "similarity": 0.32, "size_similarity": 0.213 } ], "pr_count": 3, "pr_numbers": [ 65174, 68495, 69288 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68495, 69288 ], "representative_pr_number": 65174, "representative_title": "Improve subagent start notices with resolved model info", "representative_url": "https://github.com/openclaw/openclaw/pull/65174", "shared_directories": [ "src/agents", "src", "src/auto-reply/reply", "src/auto-reply" ], "shared_filenames": [ "src/agents/pi-embedded-utils.ts", "src/agents/pi-embedded-utils.test.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/pi-embedded-utils.ts`, `src/agents/pi-embedded-utils.test.ts`; representative PR #65174.", "title": "Scope: Improve subagent start notices with resolved model info" }, { "authors": [ "MukundaKatta", "pdd-cli" ], "average_similarity": 0.927, "cluster_id": "pr-scope-66755-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T21:28:33Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.958, "left_pr_number": 66755, "right_pr_number": 69472, "shared_directories": [ "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/tokens.test.ts", "src/auto-reply/tokens.ts" ], "similarity": 0.927, "size_similarity": 0.707 } ], "pr_count": 2, "pr_numbers": [ 66755, 69472 ], "recent_pr_count": 2, "recent_pr_numbers": [ 66755, 69472 ], "representative_pr_number": 66755, "representative_title": "fix(auto-reply): detect silent NO_REPLY wrapped in model reasoning", "representative_url": "https://github.com/openclaw/openclaw/pull/66755", "shared_directories": [ "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/tokens.test.ts", "src/auto-reply/tokens.ts" ], "summary": "2 open PRs share weighted file overlap around `src/auto-reply/tokens.test.ts`, `src/auto-reply/tokens.ts`; representative PR #66755.", "title": "Scope: fix(auto-reply): detect silent NO_REPLY wrapped in model reasoning" }, { "authors": [ "chrisabad" ], "average_similarity": 0.856, "cluster_id": "pr-scope-68381-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T02:58:18Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.9, "left_pr_number": 68381, "right_pr_number": 68785, "shared_directories": [ "src/process", "src" ], "shared_filenames": [ "src/process/command-queue.test.ts", "src/process/command-queue.ts" ], "similarity": 0.856, "size_similarity": 0.509 } ], "pr_count": 2, "pr_numbers": [ 68381, 68785 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68381, 68785 ], "representative_pr_number": 68381, "representative_title": "feat: add maxExecutionMs per-task timeout to command lane", "representative_url": "https://github.com/openclaw/openclaw/pull/68381", "shared_directories": [ "src/process", "src" ], "shared_filenames": [ "src/process/command-queue.test.ts", "src/process/command-queue.ts" ], "summary": "2 open PRs share weighted file overlap around `src/process/command-queue.test.ts`, `src/process/command-queue.ts`; representative PR #68381.", "title": "Scope: feat: add maxExecutionMs per-task timeout to command lane" }, { "authors": [ "Tianworld", "briandevans" ], "average_similarity": 0.825, "cluster_id": "pr-scope-67175-2", "kind": "pr_scope", "last_activity_at": "2026-04-15T14:24:25Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.583, "concentration_similarity": 0.932, "content_similarity": 0.885, "left_pr_number": 67175, "right_pr_number": 67209, "shared_directories": [ "src/logging", "src" ], "shared_filenames": [ "src/logging/config.test.ts", "src/logging/config.ts" ], "similarity": 0.825, "size_similarity": 0.667 } ], "pr_count": 2, "pr_numbers": [ 67175, 67209 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67175, 67209 ], "representative_pr_number": 67175, "representative_title": "fix(logging): honor logging.file in bundled gateway runtime", "representative_url": "https://github.com/openclaw/openclaw/pull/67175", "shared_directories": [ "src/logging", "src" ], "shared_filenames": [ "src/logging/config.test.ts", "src/logging/config.ts" ], "summary": "2 open PRs share weighted file overlap around `src/logging/config.test.ts`, `src/logging/config.ts`; representative PR #67175.", "title": "Scope: fix(logging): honor logging.file in bundled gateway runtime" }, { "authors": [ "drobison00" ], "average_similarity": 0.8, "cluster_id": "pr-scope-69797-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T18:00:30Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.992, "content_similarity": 0.846, "left_pr_number": 69797, "right_pr_number": 69798, "shared_directories": [ "extensions/openshell/src", "extensions/openshell", "extensions" ], "shared_filenames": [ "CHANGELOG.md", "extensions/openshell/src/fs-bridge.ts", "extensions/openshell/src/openshell-core.test.ts" ], "similarity": 0.8, "size_similarity": 0.387 } ], "pr_count": 2, "pr_numbers": [ 69797, 69798 ], "recent_pr_count": 2, "recent_pr_numbers": [ 69797, 69798 ], "representative_pr_number": 69797, "representative_title": "fix(openshell): pin host writes to sandbox root", "representative_url": "https://github.com/openclaw/openclaw/pull/69797", "shared_directories": [ "extensions/openshell/src", "extensions/openshell", "extensions" ], "shared_filenames": [ "extensions/openshell/src/openshell-core.test.ts", "extensions/openshell/src/fs-bridge.ts", "CHANGELOG.md" ], "summary": "2 open PRs share weighted file overlap around `extensions/openshell/src/openshell-core.test.ts`, `extensions/openshell/src/fs-bridge.ts`, `CHANGELOG.md`; representative PR #69797.", "title": "Scope: fix(openshell): pin host writes to sandbox root" }, { "authors": [ "slepybear" ], "average_similarity": 0.797, "cluster_id": "pr-scope-69262-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T08:05:27Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.847, "content_similarity": 0.841, "left_pr_number": 69262, "right_pr_number": 69263, "shared_directories": [ "extensions/kimi-coding", "extensions/qianfan", "extensions" ], "shared_filenames": [ "extensions/kimi-coding/onboard.test.ts", "extensions/kimi-coding/replay-policy.test.ts", "extensions/qianfan/index.test.ts" ], "similarity": 0.797, "size_similarity": 0.775 } ], "pr_count": 2, "pr_numbers": [ 69262, 69263 ], "recent_pr_count": 2, "recent_pr_numbers": [ 69262, 69263 ], "representative_pr_number": 69262, "representative_title": "fix(qqbot): allow outbound and inbound media paths in resolveQQBotPayloadLocalFilePath", "representative_url": "https://github.com/openclaw/openclaw/pull/69262", "shared_directories": [ "extensions/qianfan", "extensions/kimi-coding", "extensions" ], "shared_filenames": [ "extensions/kimi-coding/onboard.test.ts", "extensions/kimi-coding/replay-policy.test.ts", "extensions/qianfan/index.test.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/kimi-coding/onboard.test.ts`, `extensions/kimi-coding/replay-policy.test.ts`, `extensions/qianfan/index.test.ts`; representative PR #69262.", "title": "Scope: fix(qqbot): allow outbound and inbound media paths in resolveQQBotPayloadLocalFilePath" }, { "authors": [ "wucm667", "zhengyuliu047-rgb" ], "average_similarity": 0.774, "cluster_id": "pr-scope-67234-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T11:34:13Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.723, "left_pr_number": 67234, "right_pr_number": 69691, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/minimax-vlm.normalizes-api-key.test.ts", "src/agents/minimax-vlm.ts" ], "similarity": 0.774, "size_similarity": 0.786 } ], "pr_count": 2, "pr_numbers": [ 67234, 69691 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67234, 69691 ], "representative_pr_number": 67234, "representative_title": "fix: extend isMinimaxVlmModel to support M2.5/M2.7/M2.7-highspeed", "representative_url": "https://github.com/openclaw/openclaw/pull/67234", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/minimax-vlm.normalizes-api-key.test.ts", "src/agents/minimax-vlm.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/minimax-vlm.normalizes-api-key.test.ts`, `src/agents/minimax-vlm.ts`; representative PR #67234.", "title": "Scope: fix: extend isMinimaxVlmModel to support M2.5/M2.7/M2.7-highspeed" }, { "authors": [ "ajfonthemove", "tianhaocui" ], "average_similarity": 0.771, "cluster_id": "pr-scope-68286-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T05:11:11Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.875, "concentration_similarity": 0.786, "content_similarity": 0.797, "left_pr_number": 68286, "right_pr_number": 68830, "shared_directories": [ "extensions/memory-core/src/memory", "packages/memory-host-sdk/src/host", "extensions/memory-core/src", "packages/memory-host-sdk/src", "src/memory-host-sdk/host", "extensions/memory-core", "packages/memory-host-sdk", "src/memory-host-sdk", "extensions", "packages" ], "shared_filenames": [ "extensions/memory-core/src/memory/hybrid.ts", "packages/memory-host-sdk/src/host/types.ts", "src/memory-host-sdk/host/types.ts" ], "similarity": 0.771, "size_similarity": 0.571 } ], "pr_count": 2, "pr_numbers": [ 68286, 68830 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68286, 68830 ], "representative_pr_number": 68286, "representative_title": "feat(memory-core): expose vectorScore and textScore in hybrid search results", "representative_url": "https://github.com/openclaw/openclaw/pull/68286", "shared_directories": [ "packages/memory-host-sdk/src/host", "extensions/memory-core/src/memory", "packages/memory-host-sdk/src", "src/memory-host-sdk/host", "extensions/memory-core/src", "packages/memory-host-sdk", "src/memory-host-sdk", "extensions/memory-core" ], "shared_filenames": [ "extensions/memory-core/src/memory/hybrid.ts", "packages/memory-host-sdk/src/host/types.ts", "src/memory-host-sdk/host/types.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/memory-core/src/memory/hybrid.ts`, `packages/memory-host-sdk/src/host/types.ts`, `src/memory-host-sdk/host/types.ts`; representative PR #68286.", "title": "Scope: feat(memory-core): expose vectorScore and textScore in hybrid search results" }, { "authors": [ "mujiannan", "soloclz" ], "average_similarity": 0.769, "cluster_id": "pr-scope-66985-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T13:51:32Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.994, "content_similarity": 0.795, "left_pr_number": 66985, "right_pr_number": 69725, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec-host-node.test.ts", "src/agents/bash-tools.exec-host-node.ts" ], "similarity": 0.769, "size_similarity": 0.751 } ], "pr_count": 2, "pr_numbers": [ 66985, 69725 ], "recent_pr_count": 2, "recent_pr_numbers": [ 66985, 69725 ], "representative_pr_number": 66985, "representative_title": "fix(agents): resolve requestedNode to canonical ID before boundNode comparison", "representative_url": "https://github.com/openclaw/openclaw/pull/66985", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/bash-tools.exec-host-node.test.ts", "src/agents/bash-tools.exec-host-node.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/bash-tools.exec-host-node.test.ts`, `src/agents/bash-tools.exec-host-node.ts`; representative PR #66985.", "title": "Scope: fix(agents): resolve requestedNode to canonical ID before boundNode comparison" }, { "authors": [ "jasonmakr", "tianhaocui" ], "average_similarity": 0.75, "cluster_id": "pr-scope-68473-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T06:19:21Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.769, "left_pr_number": 68473, "right_pr_number": 68870, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/concept-vocabulary.ts" ], "similarity": 0.75, "size_similarity": 0.577 } ], "pr_count": 2, "pr_numbers": [ 68473, 68870 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68473, 68870 ], "representative_pr_number": 68473, "representative_title": "fix(memory-core): expand concept stopword list to filter transcript noise", "representative_url": "https://github.com/openclaw/openclaw/pull/68473", "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/concept-vocabulary.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/memory-core/src/concept-vocabulary.ts`; representative PR #68473.", "title": "Scope: fix(memory-core): expand concept stopword list to filter transcript noise" }, { "authors": [ "Joel-Claw", "oliviareid-svg" ], "average_similarity": 0.739, "cluster_id": "pr-scope-67254-2", "kind": "pr_scope", "last_activity_at": "2026-04-15T19:14:09Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.55, "concentration_similarity": 0.968, "content_similarity": 0.86, "left_pr_number": 67254, "right_pr_number": 67344, "shared_directories": [ "extensions/google", "extensions" ], "shared_filenames": [ "extensions/google/api.test.ts", "extensions/google/api.ts", "extensions/google/image-generation-provider.ts" ], "similarity": 0.739, "size_similarity": 0.226 } ], "pr_count": 2, "pr_numbers": [ 67254, 67344 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67254, 67344 ], "representative_pr_number": 67254, "representative_title": "fix(google): respect allowPrivateNetwork config for SSRF policy", "representative_url": "https://github.com/openclaw/openclaw/pull/67254", "shared_directories": [ "extensions/google", "extensions" ], "shared_filenames": [ "extensions/google/api.test.ts", "extensions/google/api.ts", "extensions/google/image-generation-provider.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/google/api.test.ts`, `extensions/google/api.ts`, `extensions/google/image-generation-provider.ts`; representative PR #67254.", "title": "Scope: fix(google): respect allowPrivateNetwork config for SSRF policy" }, { "authors": [ "cesararevalo", "chrisabad" ], "average_similarity": 0.73, "cluster_id": "pr-scope-68523-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T16:56:27Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.792, "left_pr_number": 68523, "right_pr_number": 68745, "shared_directories": [ "extensions/slack/src/http", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/http/registry.ts" ], "similarity": 0.73, "size_similarity": 0.341 } ], "pr_count": 2, "pr_numbers": [ 68523, 68745 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68523, 68745 ], "representative_pr_number": 68523, "representative_title": "Fix to Slack HTTP Registry", "representative_url": "https://github.com/openclaw/openclaw/pull/68523", "shared_directories": [ "extensions/slack/src/http", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/http/registry.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/slack/src/http/registry.ts`; representative PR #68523.", "title": "Scope: Fix to Slack HTTP Registry" }, { "authors": [ "drobison00", "parasol-aser" ], "average_similarity": 0.693, "cluster_id": "pr-scope-67376-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T17:33:41Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.518, "concentration_similarity": 0.956, "content_similarity": 0.795, "left_pr_number": 67376, "right_pr_number": 69796, "shared_directories": [ "src/agents/cli-runner", "src/agents", "src/gateway", "src" ], "shared_filenames": [ "src/agents/cli-runner/bundle-mcp.test.ts", "src/agents/cli-runner/prepare.ts", "src/gateway/mcp-http.loopback-runtime.ts", "src/gateway/mcp-http.request.ts", "src/gateway/mcp-http.test.ts", "src/gateway/mcp-http.ts" ], "similarity": 0.693, "size_similarity": 0.25 } ], "pr_count": 2, "pr_numbers": [ 67376, 69796 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67376, 69796 ], "representative_pr_number": 67376, "representative_title": "fix(gateway): bind loopback MCP scope to per-backend bearer token (#64993)", "representative_url": "https://github.com/openclaw/openclaw/pull/67376", "shared_directories": [ "src/agents/cli-runner", "src/gateway", "src/agents", "src" ], "shared_filenames": [ "src/gateway/mcp-http.loopback-runtime.ts", "src/gateway/mcp-http.ts", "src/gateway/mcp-http.request.ts", "src/gateway/mcp-http.test.ts", "src/agents/cli-runner/bundle-mcp.test.ts", "src/agents/cli-runner/prepare.ts" ], "summary": "2 open PRs share weighted file overlap around `src/gateway/mcp-http.loopback-runtime.ts`, `src/gateway/mcp-http.ts`, `src/gateway/mcp-http.request.ts`; representative PR #67376.", "title": "Scope: fix(gateway): bind loopback MCP scope to per-backend bearer token (#64993)" }, { "authors": [ "martingarramon", "taosiyuan163" ], "average_similarity": 0.655, "cluster_id": "pr-scope-68161-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T13:10:43Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.625, "concentration_similarity": 0.637, "content_similarity": 0.709, "left_pr_number": 68161, "right_pr_number": 68227, "shared_directories": [ "apps/shared/OpenClawKit/Sources/OpenClawKit", "apps/shared/OpenClawKit/Sources/OpenClawProtocol", "apps/macos/Sources/OpenClawProtocol", "apps/macos/Tests/OpenClawIPCTests", "apps/shared/OpenClawKit/Sources", "src/gateway/protocol/schema", "apps/macos/Sources", "apps/macos/Tests", "apps/shared/OpenClawKit", "src/gateway/protocol" ], "shared_filenames": [ "apps/macos/Sources/OpenClawProtocol/GatewayModels.swift", "apps/macos/Tests/OpenClawIPCTests/MacGatewayChatTransportMappingTests.swift", "apps/shared/OpenClawKit/Sources/OpenClawKit/GatewayChannel.swift", "apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift", "src/gateway/protocol/schema/frames.ts" ], "similarity": 0.655, "size_similarity": 0.424 } ], "pr_count": 2, "pr_numbers": [ 68161, 68227 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68161, 68227 ], "representative_pr_number": 68161, "representative_title": "fix(gateway/schema): drop stale Type.Optional wrapper on hello-ok auth", "representative_url": "https://github.com/openclaw/openclaw/pull/68161", "shared_directories": [ "apps/shared/OpenClawKit/Sources/OpenClawKit", "apps/shared/OpenClawKit/Sources/OpenClawProtocol", "apps/macos/Tests/OpenClawIPCTests", "apps/macos/Sources/OpenClawProtocol", "apps/shared/OpenClawKit/Sources", "src/gateway/protocol/schema", "apps/macos/Tests", "apps/macos/Sources" ], "shared_filenames": [ "apps/macos/Tests/OpenClawIPCTests/MacGatewayChatTransportMappingTests.swift", "src/gateway/protocol/schema/frames.ts", "apps/shared/OpenClawKit/Sources/OpenClawKit/GatewayChannel.swift", "apps/macos/Sources/OpenClawProtocol/GatewayModels.swift", "apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift" ], "summary": "2 open PRs share weighted file overlap around `apps/macos/Tests/OpenClawIPCTests/MacGatewayChatTransportMappingTests.swift`, `src/gateway/protocol/schema/frames.ts`, `apps/shared/OpenClawKit/Sources/OpenClawKit/GatewayChannel.swift`; representative PR #68161.", "title": "Scope: fix(gateway/schema): drop stale Type.Optional wrapper on hello-ok auth" }, { "authors": [ "TinyTb", "skylee-01" ], "average_similarity": 0.624, "cluster_id": "pr-scope-67731-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T05:58:27Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.875, "concentration_similarity": 0.599, "content_similarity": 0.65, "left_pr_number": 67731, "right_pr_number": 68416, "shared_directories": [ "extensions/anthropic", "src/agents", "extensions", "src" ], "shared_filenames": [ "extensions/anthropic/index.test.ts", "extensions/anthropic/register.runtime.ts" ], "similarity": 0.624, "size_similarity": 0.342 } ], "pr_count": 2, "pr_numbers": [ 67731, 68416 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67731, 68416 ], "representative_pr_number": 67731, "representative_title": "fix(anthropic): add Claude Sonnet 4.7 forward-compat support", "representative_url": "https://github.com/openclaw/openclaw/pull/67731", "shared_directories": [ "extensions/anthropic", "src/agents", "extensions", "src" ], "shared_filenames": [ "extensions/anthropic/index.test.ts", "extensions/anthropic/register.runtime.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/anthropic/index.test.ts`, `extensions/anthropic/register.runtime.ts`; representative PR #67731.", "title": "Scope: fix(anthropic): add Claude Sonnet 4.7 forward-compat support" }, { "authors": [ "1aifanatic", "nightq" ], "average_similarity": 0.621, "cluster_id": "pr-scope-68311-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T01:39:56Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.5, "content_similarity": 0.673, "left_pr_number": 68311, "right_pr_number": 68317, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/directive-handling.impl.ts" ], "similarity": 0.621, "size_similarity": 0.5 } ], "pr_count": 2, "pr_numbers": [ 68311, 68317 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68311, 68317 ], "representative_pr_number": 68311, "representative_title": "fix: update reasoning stream message to include Feishu support", "representative_url": "https://github.com/openclaw/openclaw/pull/68311", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/directive-handling.impl.ts" ], "summary": "2 open PRs share weighted file overlap around `src/auto-reply/reply/directive-handling.impl.ts`; representative PR #68311.", "title": "Scope: fix: update reasoning stream message to include Feishu support" }, { "authors": [ "iubns", "neo1027144-creator" ], "average_similarity": 0.577, "cluster_id": "pr-scope-67346-2", "kind": "pr_scope", "last_activity_at": "2026-04-16T20:02:34Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.667, "content_similarity": 0.624, "left_pr_number": 67346, "right_pr_number": 67694, "shared_directories": [ "scripts" ], "shared_filenames": [ "scripts/ui.js" ], "similarity": 0.577, "size_similarity": 0.375 } ], "pr_count": 2, "pr_numbers": [ 67346, 67694 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67346, 67694 ], "representative_pr_number": 67346, "representative_title": "Scripts: use path.basename for pnpm to fix shell execution on Windows", "representative_url": "https://github.com/openclaw/openclaw/pull/67346", "shared_directories": [ "scripts" ], "shared_filenames": [ "scripts/ui.js" ], "summary": "2 open PRs share weighted file overlap around `scripts/ui.js`; representative PR #67346.", "title": "Scope: Scripts: use path.basename for pnpm to fix shell execution on Windows" }, { "authors": [ "kiote", "sk7n4k3d" ], "average_similarity": 0.563, "cluster_id": "pr-scope-69244-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T11:55:56Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.583, "left_pr_number": 69244, "right_pr_number": 69318, "shared_directories": [ "extensions/github-copilot", "extensions" ], "shared_filenames": [ "extensions/github-copilot/models-defaults.ts" ], "similarity": 0.563, "size_similarity": 0.2 } ], "pr_count": 2, "pr_numbers": [ 69244, 69318 ], "recent_pr_count": 2, "recent_pr_numbers": [ 69244, 69318 ], "representative_pr_number": 69244, "representative_title": "feat(github-copilot): add missing Copilot models to defaults", "representative_url": "https://github.com/openclaw/openclaw/pull/69244", "shared_directories": [ "extensions/github-copilot", "extensions" ], "shared_filenames": [ "extensions/github-copilot/models-defaults.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/github-copilot/models-defaults.ts`; representative PR #69244.", "title": "Scope: feat(github-copilot): add missing Copilot models to defaults" }, { "authors": [ "dlebee-agent" ], "average_similarity": 0.559, "cluster_id": "pr-scope-68240-2", "kind": "pr_scope", "last_activity_at": "2026-04-17T22:38:50Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.55, "concentration_similarity": 0.983, "content_similarity": 0.449, "left_pr_number": 68240, "right_pr_number": 68301, "shared_directories": [ "src/cli", "src/commands", "src" ], "shared_filenames": [ "src/commands/daemon-install-helpers.ts" ], "similarity": 0.559, "size_similarity": 0.94 } ], "pr_count": 2, "pr_numbers": [ 68240, 68301 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68240, 68301 ], "representative_pr_number": 68240, "representative_title": "feat(onboard): add --daemon-env flag to openclaw onboard --install-daemon", "representative_url": "https://github.com/openclaw/openclaw/pull/68240", "shared_directories": [ "src/cli", "src/commands", "src" ], "shared_filenames": [ "src/commands/daemon-install-helpers.ts" ], "summary": "2 open PRs share weighted file overlap around `src/commands/daemon-install-helpers.ts`; representative PR #68240.", "title": "Scope: feat(onboard): add --daemon-env flag to openclaw onboard --install-daemon" }, { "authors": [ "ly85206559", "mkoslacz" ], "average_similarity": 0.557, "cluster_id": "pr-scope-67589-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T10:37:15Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.582, "left_pr_number": 67589, "right_pr_number": 68257, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/config-reload-plan.ts", "src/gateway/config-reload.test.ts" ], "similarity": 0.557, "size_similarity": 0.109 } ], "pr_count": 2, "pr_numbers": [ 67589, 68257 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67589, 68257 ], "representative_pr_number": 67589, "representative_title": "Gateway: ignore plugins.installs timestamp-only paths for reload (#49474)", "representative_url": "https://github.com/openclaw/openclaw/pull/67589", "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/config-reload-plan.ts", "src/gateway/config-reload.test.ts" ], "summary": "2 open PRs share weighted file overlap around `src/gateway/config-reload-plan.ts`, `src/gateway/config-reload.test.ts`; representative PR #67589.", "title": "Scope: Gateway: ignore plugins.installs timestamp-only paths for reload (#49474)" }, { "authors": [ "chinar-amrutkar", "gumadeiras" ], "average_similarity": 0.543, "cluster_id": "pr-scope-67360-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T17:56:31Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.536, "concentration_similarity": 0.67, "content_similarity": 0.557, "left_pr_number": 67360, "right_pr_number": 69791, "shared_directories": [ "src/plugin-sdk", "src/plugins", "src" ], "shared_filenames": [ "src/plugin-sdk/channel-entry-contract.test.ts", "src/plugin-sdk/channel-entry-contract.ts" ], "similarity": 0.543, "size_similarity": 0.442 } ], "pr_count": 2, "pr_numbers": [ 67360, 69791 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67360, 69791 ], "representative_pr_number": 67360, "representative_title": "Fix/telegram config read bug", "representative_url": "https://github.com/openclaw/openclaw/pull/67360", "shared_directories": [ "src/plugin-sdk", "src/plugins", "src" ], "shared_filenames": [ "src/plugin-sdk/channel-entry-contract.test.ts", "src/plugin-sdk/channel-entry-contract.ts" ], "summary": "2 open PRs share weighted file overlap around `src/plugin-sdk/channel-entry-contract.test.ts`, `src/plugin-sdk/channel-entry-contract.ts`; representative PR #67360.", "title": "Scope: Fix/telegram config read bug" }, { "authors": [ "tianhaocui", "vvitovec" ], "average_similarity": 0.535, "cluster_id": "pr-scope-68792-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T06:19:42Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.559, "left_pr_number": 68792, "right_pr_number": 68849, "shared_directories": [ "src/process/supervisor/adapters", "src/process/supervisor", "src/process", "src" ], "shared_filenames": [ "src/process/supervisor/adapters/child.ts" ], "similarity": 0.535, "size_similarity": 0.125 } ], "pr_count": 2, "pr_numbers": [ 68792, 68849 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68792, 68849 ], "representative_pr_number": 68792, "representative_title": "fix(process): shim claude on Windows child spawns", "representative_url": "https://github.com/openclaw/openclaw/pull/68792", "shared_directories": [ "src/process/supervisor/adapters", "src/process/supervisor", "src/process", "src" ], "shared_filenames": [ "src/process/supervisor/adapters/child.ts" ], "summary": "2 open PRs share weighted file overlap around `src/process/supervisor/adapters/child.ts`; representative PR #68792.", "title": "Scope: fix(process): shim claude on Windows child spawns" }, { "authors": [ "Aobing-code", "anniesurla" ], "average_similarity": 0.524, "cluster_id": "pr-scope-68103-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T00:31:28Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.857, "concentration_similarity": 0.815, "content_similarity": 0.521, "left_pr_number": 68103, "right_pr_number": 68339, "shared_directories": [ "docs/providers", "extensions/nvidia", "docs", "extensions" ], "shared_filenames": [ "docs/providers/nvidia.md", "extensions/nvidia/index.ts", "extensions/nvidia/provider-catalog.test.ts", "extensions/nvidia/provider-catalog.ts" ], "similarity": 0.524, "size_similarity": 0.217 } ], "pr_count": 2, "pr_numbers": [ 68103, 68339 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68103, 68339 ], "representative_pr_number": 68103, "representative_title": "Add nvidia api support", "representative_url": "https://github.com/openclaw/openclaw/pull/68103", "shared_directories": [ "extensions/nvidia", "docs/providers", "docs", "extensions" ], "shared_filenames": [ "docs/providers/nvidia.md", "extensions/nvidia/index.ts", "extensions/nvidia/provider-catalog.test.ts", "extensions/nvidia/provider-catalog.ts" ], "summary": "2 open PRs share weighted file overlap around `docs/providers/nvidia.md`, `extensions/nvidia/index.ts`, `extensions/nvidia/provider-catalog.test.ts`; representative PR #68103.", "title": "Scope: Add nvidia api support" }, { "authors": [ "name5566", "tianhaocui" ], "average_similarity": 0.472, "cluster_id": "pr-scope-68859-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T08:54:14Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.25, "concentration_similarity": 0.4, "content_similarity": 0.524, "left_pr_number": 68859, "right_pr_number": 68887, "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/cron.ts" ], "similarity": 0.472, "size_similarity": 0.4 } ], "pr_count": 2, "pr_numbers": [ 68859, 68887 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68859, 68887 ], "representative_pr_number": 68859, "representative_title": "feat(exec): inject OPENCLAW_SESSION_KEY env var for child processes", "representative_url": "https://github.com/openclaw/openclaw/pull/68859", "shared_directories": [ "ui/src/ui/controllers", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/controllers/cron.ts" ], "summary": "2 open PRs share weighted file overlap around `ui/src/ui/controllers/cron.ts`; representative PR #68859.", "title": "Scope: feat(exec): inject OPENCLAW_SESSION_KEY env var for child processes" }, { "authors": [ "MoeJaberr" ], "average_similarity": 0.464, "cluster_id": "pr-scope-67452-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T01:21:22Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.129, "concentration_similarity": 0.77, "content_similarity": 0.519, "left_pr_number": 67452, "right_pr_number": 67460, "shared_directories": [ "test/scripts", "scripts", "test" ], "shared_filenames": [ "scripts/postinstall-bundled-plugins.mjs", "test/scripts/postinstall-bundled-plugins.test.ts" ], "similarity": 0.464, "size_similarity": 0.328 } ], "pr_count": 2, "pr_numbers": [ 67452, 67460 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67452, 67460 ], "representative_pr_number": 67452, "representative_title": "fix(postinstall): prune stale dist plugin node_modules before dist traversal", "representative_url": "https://github.com/openclaw/openclaw/pull/67452", "shared_directories": [ "test/scripts", "test", "scripts" ], "shared_filenames": [ "test/scripts/postinstall-bundled-plugins.test.ts", "scripts/postinstall-bundled-plugins.mjs" ], "summary": "2 open PRs share weighted file overlap around `test/scripts/postinstall-bundled-plugins.test.ts`, `scripts/postinstall-bundled-plugins.mjs`; representative PR #67452.", "title": "Scope: fix(postinstall): prune stale dist plugin node_modules before dist traversal" }, { "authors": [ "jackson-jia-914", "ttomiczek" ], "average_similarity": 0.459, "cluster_id": "pr-scope-67073-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T08:20:13Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.333, "concentration_similarity": 0.4, "content_similarity": 0.547, "left_pr_number": 67073, "right_pr_number": 69548, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming.ts" ], "similarity": 0.459, "size_similarity": 0.15 } ], "pr_count": 2, "pr_numbers": [ 67073, 69548 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67073, 69548 ], "representative_pr_number": 67073, "representative_title": "fix(dreaming): use isolated sessionTarget instead of main (#67021)", "representative_url": "https://github.com/openclaw/openclaw/pull/67073", "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/dreaming.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/memory-core/src/dreaming.ts`; representative PR #67073.", "title": "Scope: fix(dreaming): use isolated sessionTarget instead of main (#67021)" }, { "authors": [ "Ante042", "hoyanhan" ], "average_similarity": 0.451, "cluster_id": "pr-scope-67647-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T15:09:03Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.318, "left_pr_number": 67647, "right_pr_number": 68558, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/commands-compact.ts" ], "similarity": 0.451, "size_similarity": 0.687 } ], "pr_count": 2, "pr_numbers": [ 67647, 68558 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67647, 68558 ], "representative_pr_number": 67647, "representative_title": "fix(compact): use resolved context tokens in summary", "representative_url": "https://github.com/openclaw/openclaw/pull/67647", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/commands-compact.ts" ], "summary": "2 open PRs share weighted file overlap around `src/auto-reply/reply/commands-compact.ts`; representative PR #67647.", "title": "Scope: fix(compact): use resolved context tokens in summary" }, { "authors": [ "Fl0rencess720" ], "average_similarity": 0.445, "cluster_id": "pr-scope-66943-2", "kind": "pr_scope", "last_activity_at": "2026-04-15T03:48:05Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 0.982, "content_similarity": 0.341, "left_pr_number": 66943, "right_pr_number": 66955, "shared_directories": [ "src/plugins/contracts", "test/helpers/plugins", "extensions/senseaudio", "src/plugins", "test/helpers", "extensions", "src", "test" ], "shared_filenames": [ "extensions/senseaudio/index.ts", "extensions/senseaudio/openclaw.plugin.json", "extensions/senseaudio/package.json", "pnpm-lock.yaml", "src/plugins/contracts/plugin-registration.senseaudio.contract.test.ts", "test/helpers/plugins/plugin-registration-contract-cases.ts" ], "similarity": 0.445, "size_similarity": 0.49 } ], "pr_count": 2, "pr_numbers": [ 66943, 66955 ], "recent_pr_count": 2, "recent_pr_numbers": [ 66943, 66955 ], "representative_pr_number": 66943, "representative_title": "feat: add SenseAudio audio transcription provider", "representative_url": "https://github.com/openclaw/openclaw/pull/66943", "shared_directories": [ "test/helpers/plugins", "src/plugins/contracts", "extensions/senseaudio", "test/helpers", "src/plugins", "test", "extensions", "src" ], "shared_filenames": [ "extensions/senseaudio/index.ts", "extensions/senseaudio/openclaw.plugin.json", "extensions/senseaudio/package.json", "src/plugins/contracts/plugin-registration.senseaudio.contract.test.ts", "test/helpers/plugins/plugin-registration-contract-cases.ts", "pnpm-lock.yaml" ], "summary": "2 open PRs share weighted file overlap around `extensions/senseaudio/index.ts`, `extensions/senseaudio/openclaw.plugin.json`, `extensions/senseaudio/package.json`; representative PR #66943.", "title": "Scope: feat: add SenseAudio audio transcription provider" }, { "authors": [ "alexlomt", "hxy91819" ], "average_similarity": 0.443, "cluster_id": "pr-scope-66884-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T10:59:50Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.333, "concentration_similarity": 0.585, "content_similarity": 0.476, "left_pr_number": 66884, "right_pr_number": 67920, "shared_directories": [ ".github/workflows", ".github" ], "shared_filenames": [ ".github/workflows/openclaw-cross-os-release-checks-reusable.yml" ], "similarity": 0.443, "size_similarity": 0.311 } ], "pr_count": 2, "pr_numbers": [ 66884, 67920 ], "recent_pr_count": 2, "recent_pr_numbers": [ 66884, 67920 ], "representative_pr_number": 66884, "representative_title": "fix(ci): harden release checks workflow inputs", "representative_url": "https://github.com/openclaw/openclaw/pull/66884", "shared_directories": [ ".github/workflows", ".github" ], "shared_filenames": [ ".github/workflows/openclaw-cross-os-release-checks-reusable.yml" ], "summary": "2 open PRs share weighted file overlap around `.github/workflows/openclaw-cross-os-release-checks-reusable.yml`; representative PR #66884.", "title": "Scope: fix(ci): harden release checks workflow inputs" }, { "authors": [ "AstronautGumbo", "ademczuk" ], "average_similarity": 0.44, "cluster_id": "pr-scope-67077-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T13:17:27Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 0.837, "content_similarity": 0.391, "left_pr_number": 67077, "right_pr_number": 68566, "shared_directories": [ "src/agents/auth-profiles", "src/agents", "src" ], "shared_filenames": [ "CHANGELOG.md", "src/agents/auth-profiles/usage.ts" ], "similarity": 0.44, "size_similarity": 0.273 } ], "pr_count": 2, "pr_numbers": [ 67077, 68566 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67077, 68566 ], "representative_pr_number": 67077, "representative_title": "fix(auth-profiles): make post-success bookkeeping saves non-fatal", "representative_url": "https://github.com/openclaw/openclaw/pull/67077", "shared_directories": [ "src/agents/auth-profiles", "src/agents", "src" ], "shared_filenames": [ "src/agents/auth-profiles/usage.ts", "CHANGELOG.md" ], "summary": "2 open PRs share weighted file overlap around `src/agents/auth-profiles/usage.ts`, `CHANGELOG.md`; representative PR #67077.", "title": "Scope: fix(auth-profiles): make post-success bookkeeping saves non-fatal" }, { "authors": [ "lucasheriques", "swotvibe" ], "average_similarity": 0.429, "cluster_id": "pr-scope-67723-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T03:46:17Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.431, "left_pr_number": 67723, "right_pr_number": 69577, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/images.ts" ], "similarity": 0.429, "size_similarity": 0.018 } ], "pr_count": 2, "pr_numbers": [ 67723, 69577 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67723, 69577 ], "representative_pr_number": 67723, "representative_title": "fix(agents): allow workspaceOnly inbound image loads from managed media dir", "representative_url": "https://github.com/openclaw/openclaw/pull/67723", "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/images.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/pi-embedded-runner/run/images.ts`; representative PR #67723.", "title": "Scope: fix(agents): allow workspaceOnly inbound image loads from managed media dir" }, { "authors": [ "fraction12", "sudhindrat" ], "average_similarity": 0.427, "cluster_id": "pr-scope-68673-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T13:09:15Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.423, "left_pr_number": 68673, "right_pr_number": 69697, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/tool-loop-detection.ts" ], "similarity": 0.427, "size_similarity": 0.04 } ], "pr_count": 2, "pr_numbers": [ 68673, 69697 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68673, 69697 ], "representative_pr_number": 68673, "representative_title": "fix: collapse no-progress update_plan churn (AI-assisted)", "representative_url": "https://github.com/openclaw/openclaw/pull/68673", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/tool-loop-detection.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/tool-loop-detection.ts`; representative PR #68673.", "title": "Scope: fix: collapse no-progress update_plan churn (AI-assisted)" }, { "authors": [ "Lucenx9", "mjdacs" ], "average_similarity": 0.414, "cluster_id": "pr-scope-66795-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T10:53:48Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.45, "concentration_similarity": 0.667, "content_similarity": 0.379, "left_pr_number": 66795, "right_pr_number": 68918, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot.test.ts" ], "similarity": 0.414, "size_similarity": 0.469 } ], "pr_count": 2, "pr_numbers": [ 66795, 68918 ], "recent_pr_count": 2, "recent_pr_numbers": [ 66795, 68918 ], "representative_pr_number": 66795, "representative_title": "fix(telegram): honor agent defaults in model picker", "representative_url": "https://github.com/openclaw/openclaw/pull/66795", "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot.test.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/telegram/src/bot.test.ts`; representative PR #66795.", "title": "Scope: fix(telegram): honor agent defaults in model picker" }, { "authors": [ "GaosCode", "jasonmakr" ], "average_similarity": 0.404, "cluster_id": "pr-scope-68408-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T01:47:30Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.667, "concentration_similarity": 0.971, "content_similarity": 0.229, "left_pr_number": 68408, "right_pr_number": 68597, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "similarity": 0.404, "size_similarity": 0.858 } ], "pr_count": 2, "pr_numbers": [ 68408, 68597 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68408, 68597 ], "representative_pr_number": 68408, "representative_title": "fix(memory-core): strip dreaming managed blocks from daily memory reads", "representative_url": "https://github.com/openclaw/openclaw/pull/68408", "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/src/memory/qmd-manager.test.ts", "extensions/memory-core/src/memory/qmd-manager.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/memory-core/src/memory/qmd-manager.test.ts`, `extensions/memory-core/src/memory/qmd-manager.ts`; representative PR #68408.", "title": "Scope: fix(memory-core): strip dreaming managed blocks from daily memory reads" }, { "authors": [ "altierac", "imadal1n" ], "average_similarity": 0.401, "cluster_id": "pr-scope-67403-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T05:25:07Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.392, "left_pr_number": 67403, "right_pr_number": 68639, "shared_directories": [ "extensions/memory-wiki/src", "extensions/memory-wiki", "extensions" ], "shared_filenames": [ "extensions/memory-wiki/src/query.ts" ], "similarity": 0.401, "size_similarity": 0.006 } ], "pr_count": 2, "pr_numbers": [ 67403, 68639 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67403, 68639 ], "representative_pr_number": 67403, "representative_title": "fix(memory-wiki): support token-overlap search for multi-term queries", "representative_url": "https://github.com/openclaw/openclaw/pull/67403", "shared_directories": [ "extensions/memory-wiki/src", "extensions/memory-wiki", "extensions" ], "shared_filenames": [ "extensions/memory-wiki/src/query.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/memory-wiki/src/query.ts`; representative PR #67403.", "title": "Scope: fix(memory-wiki): support token-overlap search for multi-term queries" }, { "authors": [ "Eruditi", "JinluZhang" ], "average_similarity": 0.401, "cluster_id": "pr-scope-69716-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T14:54:26Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 0.938, "content_similarity": 0.368, "left_pr_number": 69716, "right_pr_number": 69734, "shared_directories": [ "src/agents/skills", "src/auto-reply/reply", "src/agents", "src/auto-reply", "src" ], "shared_filenames": [ "src/agents/skills/refresh.ts", "src/auto-reply/reply/session-updates.ts" ], "similarity": 0.401, "size_similarity": 0.14 } ], "pr_count": 2, "pr_numbers": [ 69716, 69734 ], "recent_pr_count": 2, "recent_pr_numbers": [ 69716, 69734 ], "representative_pr_number": 69716, "representative_title": "fix(skills): refresh stale session skill snapshots after restart", "representative_url": "https://github.com/openclaw/openclaw/pull/69716", "shared_directories": [ "src/agents/skills", "src/auto-reply/reply", "src/auto-reply", "src/agents", "src" ], "shared_filenames": [ "src/agents/skills/refresh.ts", "src/auto-reply/reply/session-updates.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/skills/refresh.ts`, `src/auto-reply/reply/session-updates.ts`; representative PR #69716.", "title": "Scope: fix(skills): refresh stale session skill snapshots after restart" }, { "authors": [ "BKF-Gitty", "jalehman" ], "average_similarity": 0.397, "cluster_id": "pr-scope-67833-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T19:19:06Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.389, "concentration_similarity": 0.899, "content_similarity": 0.38, "left_pr_number": 67833, "right_pr_number": 67846, "shared_directories": [ "extensions/memory-core/src", "extensions/memory-core", "src/memory-host-sdk", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/src/dreaming.test.ts", "extensions/memory-core/src/dreaming.ts" ], "similarity": 0.397, "size_similarity": 0.312 } ], "pr_count": 2, "pr_numbers": [ 67833, 67846 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67833, 67846 ], "representative_pr_number": 67833, "representative_title": "fix(memory-core): run managed dreaming cron in isolated agent turns", "representative_url": "https://github.com/openclaw/openclaw/pull/67833", "shared_directories": [ "extensions/memory-core/src", "src/memory-host-sdk", "extensions/memory-core", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/src/dreaming.test.ts", "extensions/memory-core/src/dreaming.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/memory-core/src/dreaming.test.ts`, `extensions/memory-core/src/dreaming.ts`; representative PR #67833.", "title": "Scope: fix(memory-core): run managed dreaming cron in isolated agent turns" }, { "authors": [ "kesslerio", "wangshu94" ], "average_similarity": 0.382, "cluster_id": "pr-scope-67692-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T02:25:43Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 0.996, "content_similarity": 0.268, "left_pr_number": 67692, "right_pr_number": 68843, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-acp.test.ts", "src/auto-reply/reply/dispatch-acp.ts" ], "similarity": 0.382, "size_similarity": 0.407 } ], "pr_count": 2, "pr_numbers": [ 67692, 68843 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67692, 68843 ], "representative_pr_number": 67692, "representative_title": "Feat/acp tui lazy init", "representative_url": "https://github.com/openclaw/openclaw/pull/67692", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-acp.test.ts", "src/auto-reply/reply/dispatch-acp.ts" ], "summary": "2 open PRs share weighted file overlap around `src/auto-reply/reply/dispatch-acp.test.ts`, `src/auto-reply/reply/dispatch-acp.ts`; representative PR #67692.", "title": "Scope: Feat/acp tui lazy init" }, { "authors": [ "pfrederiksen", "zoneblaze" ], "average_similarity": 0.363, "cluster_id": "pr-scope-67871-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T07:53:22Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.119, "left_pr_number": 67871, "right_pr_number": 68278, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.363, "size_similarity": 0.868 } ], "pr_count": 2, "pr_numbers": [ 67871, 68278 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67871, 68278 ], "representative_pr_number": 67871, "representative_title": "fix(discord): narrow message tool component block schema", "representative_url": "https://github.com/openclaw/openclaw/pull/67871", "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "summary": "2 open PRs cluster in `extensions/discord/src`, `extensions/discord`, `extensions` with similar change breadth; representative PR #67871.", "title": "Scope: fix(discord): narrow message tool component block schema" }, { "authors": [ "1aifanatic", "p3nchan" ], "average_similarity": 0.358, "cluster_id": "pr-scope-67782-2", "kind": "pr_scope", "last_activity_at": "2026-04-17T22:37:16Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.128, "left_pr_number": 67782, "right_pr_number": 68306, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [], "similarity": 0.358, "size_similarity": 0.791 } ], "pr_count": 2, "pr_numbers": [ 67782, 68306 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67782, 68306 ], "representative_pr_number": 67782, "representative_title": "fix(telegram): skip delete before non-empty command sync", "representative_url": "https://github.com/openclaw/openclaw/pull/67782", "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [], "summary": "2 open PRs cluster in `extensions/telegram/src`, `extensions/telegram`, `extensions` with similar change breadth; representative PR #67782.", "title": "Scope: fix(telegram): skip delete before non-empty command sync" }, { "authors": [ "lazyeo", "neo1027144-creator" ], "average_similarity": 0.356, "cluster_id": "pr-scope-67751-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T10:52:07Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.287, "left_pr_number": 67751, "right_pr_number": 69684, "shared_directories": [ "extensions/slack/src/monitor/events", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.356, "size_similarity": 0.034 } ], "pr_count": 2, "pr_numbers": [ 67751, 69684 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67751, 69684 ], "representative_pr_number": 67751, "representative_title": "fix(slack): wake agent session on interactive reply button clicks [AI-assisted]", "representative_url": "https://github.com/openclaw/openclaw/pull/67751", "shared_directories": [ "extensions/slack/src/monitor/events", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "summary": "2 open PRs cluster in `extensions/slack/src/monitor/events`, `extensions/slack/src/monitor`, `extensions/slack/src` with similar change breadth; representative PR #67751.", "title": "Scope: fix(slack): wake agent session on interactive reply button clicks [AI-assisted]" }, { "authors": [ "Takhoffman", "acwilan" ], "average_similarity": 0.355, "cluster_id": "pr-scope-67421-2", "kind": "pr_scope", "last_activity_at": "2026-04-17T23:51:11Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.762, "concentration_similarity": 0.822, "content_similarity": 0.163, "left_pr_number": 67421, "right_pr_number": 68331, "shared_directories": [ "src/agents", "src/config", "src" ], "shared_filenames": [ "src/config/schema.base.generated.ts", "src/config/schema.help.ts", "src/config/schema.labels.ts", "src/config/zod-schema.agent-runtime.ts" ], "similarity": 0.355, "size_similarity": 0.826 } ], "pr_count": 2, "pr_numbers": [ 67421, 68331 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67421, 68331 ], "representative_pr_number": 67421, "representative_title": "feat: add per-agent web_fetch ssrf overrides", "representative_url": "https://github.com/openclaw/openclaw/pull/67421", "shared_directories": [ "src/config", "src/agents", "src" ], "shared_filenames": [ "src/config/zod-schema.agent-runtime.ts", "src/config/schema.labels.ts", "src/config/schema.help.ts", "src/config/schema.base.generated.ts" ], "summary": "2 open PRs share weighted file overlap around `src/config/zod-schema.agent-runtime.ts`, `src/config/schema.labels.ts`, `src/config/schema.help.ts`; representative PR #67421.", "title": "Scope: feat: add per-agent web_fetch ssrf overrides" }, { "authors": [ "1aifanatic", "nightq" ], "average_similarity": 0.354, "cluster_id": "pr-scope-68308-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T19:01:59Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.22, "left_pr_number": 68308, "right_pr_number": 68469, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.354, "size_similarity": 0.5 } ], "pr_count": 2, "pr_numbers": [ 68308, 68469 ], "recent_pr_count": 2, "recent_pr_numbers": [ 68308, 68469 ], "representative_pr_number": 68308, "representative_title": "fix(browser): return undefined ssrfPolicy when browser.ssrfPolicy is unset", "representative_url": "https://github.com/openclaw/openclaw/pull/68308", "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "summary": "2 open PRs cluster in `extensions/browser/src/browser`, `extensions/browser/src`, `extensions/browser` with similar change breadth; representative PR #68308.", "title": "Scope: fix(browser): return undefined ssrfPolicy when browser.ssrfPolicy is unset" }, { "authors": [ "aalekh-sarvam", "oliviareid-svg" ], "average_similarity": 0.347, "cluster_id": "pr-scope-66931-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T12:54:51Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.186, "left_pr_number": 66931, "right_pr_number": 69680, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [], "similarity": 0.347, "size_similarity": 0.444 } ], "pr_count": 2, "pr_numbers": [ 66931, 69680 ], "recent_pr_count": 2, "recent_pr_numbers": [ 66931, 69680 ], "representative_pr_number": 66931, "representative_title": "fix(memory): respect user batch.concurrency even when batch mode is disabled", "representative_url": "https://github.com/openclaw/openclaw/pull/66931", "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [], "summary": "2 open PRs cluster in `extensions/memory-core/src/memory`, `extensions/memory-core/src`, `extensions/memory-core` with similar change breadth; representative PR #66931.", "title": "Scope: fix(memory): respect user batch.concurrency even when batch mode is disabled" }, { "authors": [ "insomnius", "yuaiccc" ], "average_similarity": 0.344, "cluster_id": "pr-scope-67650-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T08:58:55Z", "outside_window_prs": [], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.095, "left_pr_number": 67650, "right_pr_number": 69643, "shared_directories": [ "docs/channels", "docs" ], "shared_filenames": [], "similarity": 0.344, "size_similarity": 0.85 } ], "pr_count": 2, "pr_numbers": [ 67650, 69643 ], "recent_pr_count": 2, "recent_pr_numbers": [ 67650, 69643 ], "representative_pr_number": 67650, "representative_title": "doc: add assistant_view in features", "representative_url": "https://github.com/openclaw/openclaw/pull/67650", "shared_directories": [ "docs/channels", "docs" ], "shared_filenames": [], "summary": "2 open PRs cluster in `docs/channels`, `docs` with similar change breadth; representative PR #67650.", "title": "Scope: doc: add assistant_view in features" }, { "authors": [ "Noor-ul-ain001" ], "average_similarity": 0.546, "cluster_id": "pr-scope-35887-7", "kind": "pr_scope", "last_activity_at": "2026-04-21T13:56:59Z", "outside_window_prs": [ { "additions": 11, "author": "zhangxue1985122219", "changed_files": 1, "created_at": "2026-03-05T10:01:41Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/35887/files", "html_url": "https://github.com/openclaw/openclaw/pull/35887", "merged": false, "number": 35887, "state": "open", "title": "docs: improve installation and development instructions", "updated_at": "2026-04-17T04:31:17Z" }, { "additions": 4, "author": "mattqdev", "changed_files": 1, "created_at": "2026-03-06T23:34:57Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38400/files", "html_url": "https://github.com/openclaw/openclaw/pull/38400", "merged": false, "number": 38400, "state": "open", "title": "docs: added tech stack to the README", "updated_at": "2026-04-21T04:31:33Z" }, { "additions": 6, "author": "jacksonbgraham", "changed_files": 1, "created_at": "2026-03-07T00:07:51Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38415/files", "html_url": "https://github.com/openclaw/openclaw/pull/38415", "merged": false, "number": 38415, "state": "open", "title": "docs: add third-party package marketplaces section to README", "updated_at": "2026-04-21T04:31:47Z" }, { "additions": 1, "author": "behnam354", "changed_files": 1, "created_at": "2026-04-05T00:07:14Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/61091/files", "html_url": "https://github.com/openclaw/openclaw/pull/61091", "merged": false, "number": 61091, "state": "open", "title": "Docs: use --target in README message send example (instead of outdated --to argument)", "updated_at": "2026-04-17T06:16:17Z" }, { "additions": 23, "author": "hongzexin", "changed_files": 1, "created_at": "2026-04-10T12:50:17Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64307/files", "html_url": "https://github.com/openclaw/openclaw/pull/64307", "merged": false, "number": 64307, "state": "open", "title": "README: add Feishu quick-start section", "updated_at": "2026-04-10T14:00:04Z" }, { "additions": 1, "author": "soumikbhatta", "changed_files": 1, "created_at": "2026-04-12T15:58:54Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65439/files", "html_url": "https://github.com/openclaw/openclaw/pull/65439", "merged": false, "number": 65439, "state": "open", "title": "Add avatar link for soumikbhatta to README", "updated_at": "2026-04-12T16:00:23Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.997, "left_pr_number": 38400, "right_pr_number": 61091, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.923, "size_similarity": 0.5 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.814, "left_pr_number": 35887, "right_pr_number": 38400, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.751, "size_similarity": 0.211 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.801, "left_pr_number": 35887, "right_pr_number": 61091, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.726, "size_similarity": 0.105 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.759, "left_pr_number": 35887, "right_pr_number": 69644, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.686, "size_similarity": 0.029 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.701, "left_pr_number": 38415, "right_pr_number": 69644, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.642, "size_similarity": 0.009 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.682, "left_pr_number": 38400, "right_pr_number": 69644, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.628, "size_similarity": 0.006 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.639, "left_pr_number": 61091, "right_pr_number": 69644, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.598, "size_similarity": 0.003 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.602, "left_pr_number": 64307, "right_pr_number": 69644, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.577, "size_similarity": 0.035 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.403, "left_pr_number": 35887, "right_pr_number": 64307, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.556, "size_similarity": 0.826 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.372, "left_pr_number": 38400, "right_pr_number": 38415, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.511, "size_similarity": 0.667 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.284, "left_pr_number": 61091, "right_pr_number": 65439, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.499, "size_similarity": 1.0 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.415, "left_pr_number": 38415, "right_pr_number": 64307, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.48, "size_similarity": 0.261 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.409, "left_pr_number": 38400, "right_pr_number": 64307, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.462, "size_similarity": 0.174 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.367, "left_pr_number": 35887, "right_pr_number": 38415, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.454, "size_similarity": 0.316 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.429, "left_pr_number": 65439, "right_pr_number": 69644, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.451, "size_similarity": 0.003 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.318, "left_pr_number": 38400, "right_pr_number": 65439, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.448, "size_similarity": 0.5 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.332, "left_pr_number": 38415, "right_pr_number": 61091, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.433, "size_similarity": 0.333 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.323, "left_pr_number": 38415, "right_pr_number": 65439, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.426, "size_similarity": 0.333 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.365, "left_pr_number": 61091, "right_pr_number": 64307, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.419, "size_similarity": 0.087 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.355, "left_pr_number": 64307, "right_pr_number": 65439, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.411, "size_similarity": 0.087 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.313, "left_pr_number": 35887, "right_pr_number": 65439, "shared_directories": [], "shared_filenames": [ "README.md" ], "similarity": 0.385, "size_similarity": 0.105 } ], "pr_count": 7, "pr_numbers": [ 35887, 38400, 38415, 61091, 64307, 65439, 69644 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69644 ], "representative_pr_number": 38400, "representative_title": "docs: added tech stack to the README", "representative_url": "https://github.com/openclaw/openclaw/pull/38400", "shared_directories": [], "shared_filenames": [ "README.md" ], "summary": "7 open PRs share weighted file overlap around `README.md`; representative PR #38400.", "title": "Scope: docs: added tech stack to the README" }, { "authors": [ "ericyoshida" ], "average_similarity": 0.462, "cluster_id": "pr-scope-53369-7", "kind": "pr_scope", "last_activity_at": "2026-04-16T22:33:48Z", "outside_window_prs": [ { "additions": 298, "author": "joe2643", "changed_files": 5, "created_at": "2026-03-24T03:51:24Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53369/files", "html_url": "https://github.com/openclaw/openclaw/pull/53369", "merged": false, "number": 53369, "state": "open", "title": "feat(whatsapp): support native @mentions in outbound group replies", "updated_at": "2026-03-24T20:15:31Z" }, { "additions": 70, "author": "joe2643", "changed_files": 4, "created_at": "2026-03-24T18:05:58Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53867/files", "html_url": "https://github.com/openclaw/openclaw/pull/53867", "merged": false, "number": 53867, "state": "open", "title": "fix(whatsapp): reply-to-bot detection with WhatsApp LID identifiers", "updated_at": "2026-03-24T20:15:28Z" }, { "additions": 519, "author": "joe2643", "changed_files": 14, "created_at": "2026-03-24T18:17:29Z", "deletions": 24, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53874/files", "html_url": "https://github.com/openclaw/openclaw/pull/53874", "merged": false, "number": 53874, "state": "open", "title": "feat(whatsapp): outbound @mentions, reply media injection, and LID reply-to-bot E164 fix", "updated_at": "2026-03-24T20:15:28Z" }, { "additions": 268, "author": "AytuncYildizli", "changed_files": 2, "created_at": "2026-03-24T22:38:42Z", "deletions": 16, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/54038/files", "html_url": "https://github.com/openclaw/openclaw/pull/54038", "merged": false, "number": 54038, "state": "open", "title": "fix(whatsapp): pre-transcribe inbound voice notes before bootstrap", "updated_at": "2026-03-24T22:42:34Z" }, { "additions": 227, "author": "nxmxbbd", "changed_files": 4, "created_at": "2026-04-13T06:41:59Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65759/files", "html_url": "https://github.com/openclaw/openclaw/pull/65759", "merged": false, "number": 65759, "state": "open", "title": "fix(whatsapp): add application-level health probe to inbound monitor", "updated_at": "2026-04-18T07:31:24Z" }, { "additions": 8, "author": "stanleeyY", "changed_files": 1, "created_at": "2026-04-13T16:40:17Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66061/files", "html_url": "https://github.com/openclaw/openclaw/pull/66061", "merged": false, "number": 66061, "state": "open", "title": "fix(whatsapp): narrow inbound dedupe keys", "updated_at": "2026-04-13T16:42:16Z" } ], "pairwise": [ { "breadth_similarity": 0.345, "concentration_similarity": 0.777, "content_similarity": 0.759, "left_pr_number": 53369, "right_pr_number": 53874, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "src/auto-reply/reply", "extensions/whatsapp", "src/auto-reply", "extensions", "src" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts", "extensions/whatsapp/src/inbound/outbound-mentions.test.ts", "extensions/whatsapp/src/inbound/outbound-mentions.ts", "extensions/whatsapp/src/inbound/send-api.ts", "src/auto-reply/reply/groups.ts" ], "similarity": 0.689, "size_similarity": 0.56 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.69, "content_similarity": 0.594, "left_pr_number": 54038, "right_pr_number": 67842, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.598, "size_similarity": 0.655 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.9, "content_similarity": 0.477, "left_pr_number": 65759, "right_pr_number": 67842, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.577, "size_similarity": 0.819 }, { "breadth_similarity": 0.65, "concentration_similarity": 0.907, "content_similarity": 0.458, "left_pr_number": 53369, "right_pr_number": 67842, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "src/auto-reply/reply", "extensions/whatsapp", "src/auto-reply", "extensions", "src" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.522, "size_similarity": 0.612 }, { "breadth_similarity": 0.7, "concentration_similarity": 0.597, "content_similarity": 0.37, "left_pr_number": 53369, "right_pr_number": 54038, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.499, "size_similarity": 0.934 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.998, "content_similarity": 0.441, "left_pr_number": 53867, "right_pr_number": 67842, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.496, "size_similarity": 0.419 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.887, "content_similarity": 0.598, "left_pr_number": 66061, "right_pr_number": 67842, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.495, "size_similarity": 0.048 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.591, "content_similarity": 0.385, "left_pr_number": 54038, "right_pr_number": 65759, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.494, "size_similarity": 0.799 }, { "breadth_similarity": 0.9, "concentration_similarity": 0.993, "content_similarity": 0.336, "left_pr_number": 53369, "right_pr_number": 65759, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.487, "size_similarity": 0.747 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.885, "content_similarity": 0.532, "left_pr_number": 53867, "right_pr_number": 66061, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.471, "size_similarity": 0.115 }, { "breadth_similarity": 0.476, "concentration_similarity": 0.87, "content_similarity": 0.45, "left_pr_number": 53874, "right_pr_number": 67842, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "src/auto-reply/reply", "extensions/whatsapp", "src/auto-reply", "extensions", "src" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.457, "size_similarity": 0.343 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.898, "content_similarity": 0.341, "left_pr_number": 53867, "right_pr_number": 65759, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.435, "size_similarity": 0.344 }, { "breadth_similarity": 0.35, "concentration_similarity": 0.98, "content_similarity": 0.486, "left_pr_number": 53369, "right_pr_number": 66061, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.429, "size_similarity": 0.03 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.987, "content_similarity": 0.468, "left_pr_number": 65759, "right_pr_number": 66061, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.42, "size_similarity": 0.04 }, { "breadth_similarity": 0.9, "concentration_similarity": 0.904, "content_similarity": 0.338, "left_pr_number": 53369, "right_pr_number": 53867, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.411, "size_similarity": 0.257 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.577, "content_similarity": 0.466, "left_pr_number": 54038, "right_pr_number": 66061, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.409, "size_similarity": 0.032 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.693, "content_similarity": 0.364, "left_pr_number": 53867, "right_pr_number": 54038, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.405, "size_similarity": 0.275 }, { "breadth_similarity": 0.238, "concentration_similarity": 0.821, "content_similarity": 0.348, "left_pr_number": 53874, "right_pr_number": 54038, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.387, "size_similarity": 0.523 }, { "breadth_similarity": 0.31, "concentration_similarity": 0.872, "content_similarity": 0.368, "left_pr_number": 53867, "right_pr_number": 53874, "shared_directories": [ "extensions/whatsapp/src/auto-reply/monitor", "extensions/whatsapp/src/auto-reply", "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/extract.ts", "extensions/whatsapp/src/inbound/monitor.ts", "extensions/whatsapp/src/inbound/types.ts" ], "similarity": 0.354, "size_similarity": 0.144 }, { "breadth_similarity": 0.31, "concentration_similarity": 0.77, "content_similarity": 0.302, "left_pr_number": 53874, "right_pr_number": 65759, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.343, "size_similarity": 0.418 }, { "breadth_similarity": 0.119, "concentration_similarity": 0.757, "content_similarity": 0.399, "left_pr_number": 53874, "right_pr_number": 66061, "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts" ], "similarity": 0.332, "size_similarity": 0.017 } ], "pr_count": 7, "pr_numbers": [ 53369, 53867, 53874, 54038, 65759, 66061, 67842 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67842 ], "representative_pr_number": 67842, "representative_title": "Fix/message tool description user facing", "representative_url": "https://github.com/openclaw/openclaw/pull/67842", "shared_directories": [ "extensions/whatsapp/src/inbound", "extensions/whatsapp/src", "extensions/whatsapp", "extensions", "src/auto-reply/reply", "src/auto-reply", "src", "extensions/whatsapp/src/auto-reply/monitor" ], "shared_filenames": [ "extensions/whatsapp/src/inbound/monitor.ts", "extensions/whatsapp/src/inbound/outbound-mentions.test.ts", "extensions/whatsapp/src/inbound/outbound-mentions.ts", "src/auto-reply/reply/groups.ts", "extensions/whatsapp/src/inbound/extract.ts", "extensions/whatsapp/src/inbound/send-api.ts", "extensions/whatsapp/src/inbound/types.ts" ], "summary": "7 open PRs share weighted file overlap around `extensions/whatsapp/src/inbound/monitor.ts`, `extensions/whatsapp/src/inbound/outbound-mentions.test.ts`, `extensions/whatsapp/src/inbound/outbound-mentions.ts`; representative PR #67842.", "title": "Scope: Fix/message tool description user facing" }, { "authors": [ "zoneblaze" ], "average_similarity": 0.45, "cluster_id": "pr-scope-38328-7", "kind": "pr_scope", "last_activity_at": "2026-04-18T17:57:29Z", "outside_window_prs": [ { "additions": 18, "author": "anshkohli88", "changed_files": 3, "created_at": "2026-03-06T20:37:15Z", "deletions": 17, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38328/files", "html_url": "https://github.com/openclaw/openclaw/pull/38328", "merged": false, "number": 38328, "state": "open", "title": "fix(android): Enable screen recording on Android 14+", "updated_at": "2026-04-21T04:30:46Z" }, { "additions": 209, "author": "MuRongPIG", "changed_files": 4, "created_at": "2026-03-07T03:19:27Z", "deletions": 64, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38526/files", "html_url": "https://github.com/openclaw/openclaw/pull/38526", "merged": false, "number": 38526, "state": "open", "title": "android: align MediaProjection recording with service and capture lifecycle", "updated_at": "2026-04-21T04:33:02Z" }, { "additions": 36, "author": "lixuankai", "changed_files": 2, "created_at": "2026-03-24T14:55:52Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53752/files", "html_url": "https://github.com/openclaw/openclaw/pull/53752", "merged": false, "number": 53752, "state": "open", "title": "feat(android): Multiple nodes session context isolated from each other", "updated_at": "2026-03-24T20:15:29Z" }, { "additions": 39, "author": "MayankSharma-ops", "changed_files": 2, "created_at": "2026-04-10T18:02:08Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64440/files", "html_url": "https://github.com/openclaw/openclaw/pull/64440", "merged": false, "number": 64440, "state": "open", "title": "fix(android): normalize IPv6 host input in manual gateway URLs", "updated_at": "2026-04-10T18:04:24Z" }, { "additions": 110, "author": "IshanDaga", "changed_files": 8, "created_at": "2026-04-13T19:01:38Z", "deletions": 17, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66123/files", "html_url": "https://github.com/openclaw/openclaw/pull/66123", "merged": false, "number": 66123, "state": "open", "title": "fix(android): preserve websocket transport and reduce pairing churn", "updated_at": "2026-04-13T19:55:00Z" }, { "additions": 102, "author": "alex-latitude", "changed_files": 5, "created_at": "2026-04-13T22:11:34Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66179/files", "html_url": "https://github.com/openclaw/openclaw/pull/66179", "merged": false, "number": 66179, "state": "open", "title": "Android: expose Talk Mode in UI + foreground microphone permission", "updated_at": "2026-04-14T01:25:34Z" } ], "pairwise": [ { "breadth_similarity": 0.875, "concentration_similarity": 0.863, "content_similarity": 0.729, "left_pr_number": 38328, "right_pr_number": 38526, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw/android/node", "apps/android/app/src/main/java/ai/openclaw/android", "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [ "apps/android/app/src/main/java/ai/openclaw/android/NodeForegroundService.kt", "apps/android/app/src/main/java/ai/openclaw/android/node/ScreenRecordManager.kt" ], "similarity": 0.66, "size_similarity": 0.128 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.755, "content_similarity": 0.724, "left_pr_number": 64440, "right_pr_number": 66123, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw/app/ui", "apps/android/app/src/test/java/ai/openclaw/app/ui", "apps/android/app/src/main/java/ai/openclaw/app", "apps/android/app/src/test/java/ai/openclaw/app", "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/test/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/test/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/test/java" ], "shared_filenames": [ "apps/android/app/src/main/java/ai/openclaw/app/ui/GatewayConfigResolver.kt", "apps/android/app/src/test/java/ai/openclaw/app/ui/GatewayConfigResolverTest.kt" ], "similarity": 0.629, "size_similarity": 0.315 }, { "breadth_similarity": 0.533, "concentration_similarity": 0.632, "content_similarity": 0.587, "left_pr_number": 53752, "right_pr_number": 66179, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw/app", "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [ "apps/android/app/src/main/java/ai/openclaw/app/NodeRuntime.kt" ], "similarity": 0.556, "size_similarity": 0.4 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.823, "content_similarity": 0.432, "left_pr_number": 38328, "right_pr_number": 53752, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.546, "size_similarity": 0.795 }, { "breadth_similarity": 0.688, "concentration_similarity": 0.871, "content_similarity": 0.396, "left_pr_number": 66123, "right_pr_number": 66179, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw/app/ui", "apps/android/app/src/main/java/ai/openclaw/app", "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.519, "size_similarity": 0.866 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.748, "content_similarity": 0.34, "left_pr_number": 53752, "right_pr_number": 64440, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw/app", "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.511, "size_similarity": 0.909 }, { "breadth_similarity": 0.733, "concentration_similarity": 0.946, "content_similarity": 0.445, "left_pr_number": 38526, "right_pr_number": 66179, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.493, "size_similarity": 0.403 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.925, "content_similarity": 0.311, "left_pr_number": 38328, "right_pr_number": 64440, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.479, "size_similarity": 0.875 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.977, "content_similarity": 0.495, "left_pr_number": 53752, "right_pr_number": 68276, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw/app/chat", "apps/android/app/src/main/java/ai/openclaw/app", "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [ "apps/android/app/src/main/java/ai/openclaw/app/chat/ChatController.kt" ], "similarity": 0.479, "size_similarity": 0.227 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.809, "content_similarity": 0.436, "left_pr_number": 38328, "right_pr_number": 66179, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.457, "size_similarity": 0.318 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.686, "content_similarity": 0.441, "left_pr_number": 38526, "right_pr_number": 53752, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.442, "size_similarity": 0.161 }, { "breadth_similarity": 0.533, "concentration_similarity": 0.884, "content_similarity": 0.365, "left_pr_number": 64440, "right_pr_number": 66179, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw/app/ui", "apps/android/app/src/main/java/ai/openclaw/app", "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.408, "size_similarity": 0.364 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.8, "content_similarity": 0.399, "left_pr_number": 38328, "right_pr_number": 68276, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.404, "size_similarity": 0.286 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.817, "content_similarity": 0.336, "left_pr_number": 38526, "right_pr_number": 66123, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.396, "size_similarity": 0.465 }, { "breadth_similarity": 0.267, "concentration_similarity": 0.609, "content_similarity": 0.457, "left_pr_number": 66179, "right_pr_number": 68276, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw/app", "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.39, "size_similarity": 0.091 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.503, "content_similarity": 0.365, "left_pr_number": 53752, "right_pr_number": 66123, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw/app", "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.37, "size_similarity": 0.346 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.938, "content_similarity": 0.318, "left_pr_number": 38526, "right_pr_number": 64440, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.366, "size_similarity": 0.147 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.663, "content_similarity": 0.407, "left_pr_number": 38526, "right_pr_number": 68276, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.361, "size_similarity": 0.037 }, { "breadth_similarity": 0.438, "concentration_similarity": 0.68, "content_similarity": 0.329, "left_pr_number": 38328, "right_pr_number": 66123, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.349, "size_similarity": 0.276 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.725, "content_similarity": 0.314, "left_pr_number": 64440, "right_pr_number": 68276, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw/app", "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.344, "size_similarity": 0.25 }, { "breadth_similarity": 0.188, "concentration_similarity": 0.48, "content_similarity": 0.337, "left_pr_number": 66123, "right_pr_number": 68276, "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw/app", "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [], "similarity": 0.291, "size_similarity": 0.079 } ], "pr_count": 7, "pr_numbers": [ 38328, 38526, 53752, 64440, 66123, 66179, 68276 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68276 ], "representative_pr_number": 53752, "representative_title": "feat(android): Multiple nodes session context isolated from each other", "representative_url": "https://github.com/openclaw/openclaw/pull/53752", "shared_directories": [ "apps/android/app/src/main/java/ai/openclaw", "apps/android/app/src/main/java/ai", "apps/android/app/src/main/java", "apps/android/app/src/main", "apps/android/app/src", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [ "apps/android/app/src/main/java/ai/openclaw/android/NodeForegroundService.kt", "apps/android/app/src/main/java/ai/openclaw/android/node/ScreenRecordManager.kt", "apps/android/app/src/main/java/ai/openclaw/app/NodeRuntime.kt", "apps/android/app/src/main/java/ai/openclaw/app/chat/ChatController.kt", "apps/android/app/src/main/java/ai/openclaw/app/ui/GatewayConfigResolver.kt", "apps/android/app/src/test/java/ai/openclaw/app/ui/GatewayConfigResolverTest.kt" ], "summary": "7 open PRs share weighted file overlap around `apps/android/app/src/main/java/ai/openclaw/android/NodeForegroundService.kt`, `apps/android/app/src/main/java/ai/openclaw/android/node/ScreenRecordManager.kt`, `apps/android/app/src/main/java/ai/openclaw/app/NodeRuntime.kt`; representative PR #53752.", "title": "Scope: feat(android): Multiple nodes session context isolated from each other" }, { "authors": [ "danicuki" ], "average_similarity": 0.439, "cluster_id": "pr-scope-49145-6", "kind": "pr_scope", "last_activity_at": "2026-04-20T20:49:32Z", "outside_window_prs": [ { "additions": 229, "author": "ebeuvaliers", "changed_files": 8, "created_at": "2026-03-17T16:48:40Z", "deletions": 15, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/49145/files", "html_url": "https://github.com/openclaw/openclaw/pull/49145", "merged": false, "number": 49145, "state": "open", "title": "feat(signal): reliable reply context, reaction wake, and quoted replies (v2)", "updated_at": "2026-04-19T07:48:20Z" }, { "additions": 16, "author": "svv2014", "changed_files": 3, "created_at": "2026-03-29T04:14:49Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/56791/files", "html_url": "https://github.com/openclaw/openclaw/pull/56791", "merged": false, "number": 56791, "state": "open", "title": "fix(signal): forward quote metadata to agent context", "updated_at": "2026-04-18T13:55:16Z" }, { "additions": 539, "author": "pritchie", "changed_files": 6, "created_at": "2026-03-30T15:59:52Z", "deletions": 22, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/57806/files", "html_url": "https://github.com/openclaw/openclaw/pull/57806", "merged": false, "number": 57806, "state": "open", "title": "Signal quote reply", "updated_at": "2026-04-18T17:29:22Z" }, { "additions": 9, "author": "defonota3box", "changed_files": 1, "created_at": "2026-04-13T22:55:21Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66198/files", "html_url": "https://github.com/openclaw/openclaw/pull/66198", "merged": false, "number": 66198, "state": "open", "title": "security: wrap Signal inbound DM body via wrapExternalContent", "updated_at": "2026-04-13T23:05:49Z" }, { "additions": 13, "author": "liuchuanjie", "changed_files": 1, "created_at": "2026-04-14T11:48:46Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66521/files", "html_url": "https://github.com/openclaw/openclaw/pull/66521", "merged": false, "number": 66521, "state": "open", "title": "fix(signal): send early typing indicator before dispatch", "updated_at": "2026-04-14T11:51:42Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.642, "left_pr_number": 66198, "right_pr_number": 66521, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts" ], "similarity": 0.75, "size_similarity": 1.0 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.613, "left_pr_number": 56791, "right_pr_number": 66198, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts" ], "similarity": 0.654, "size_similarity": 0.722 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.593, "left_pr_number": 56791, "right_pr_number": 66521, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts" ], "similarity": 0.64, "size_similarity": 0.722 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.932, "content_similarity": 0.463, "left_pr_number": 56791, "right_pr_number": 57806, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts", "extensions/signal/src/monitor/event-handler.types.ts", "extensions/signal/src/monitor/inbound-context.ts" ], "similarity": 0.417, "size_similarity": 0.032 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.412, "left_pr_number": 66198, "right_pr_number": 69413, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts" ], "similarity": 0.414, "size_similarity": 0.063 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.406, "left_pr_number": 66521, "right_pr_number": 69413, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts" ], "similarity": 0.41, "size_similarity": 0.063 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.912, "content_similarity": 0.295, "left_pr_number": 49145, "right_pr_number": 57806, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions", "src" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts", "extensions/signal/src/monitor/event-handler.types.ts" ], "similarity": 0.392, "size_similarity": 0.435 }, { "breadth_similarity": 0.312, "concentration_similarity": 0.844, "content_similarity": 0.264, "left_pr_number": 49145, "right_pr_number": 69413, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts" ], "similarity": 0.386, "size_similarity": 0.848 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.301, "left_pr_number": 56791, "right_pr_number": 69413, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts" ], "similarity": 0.374, "size_similarity": 0.087 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.932, "content_similarity": 0.418, "left_pr_number": 57806, "right_pr_number": 66198, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts" ], "similarity": 0.367, "size_similarity": 0.023 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.932, "content_similarity": 0.318, "left_pr_number": 57806, "right_pr_number": 69413, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts" ], "similarity": 0.367, "size_similarity": 0.369 }, { "breadth_similarity": 0.188, "concentration_similarity": 0.844, "content_similarity": 0.414, "left_pr_number": 49145, "right_pr_number": 66198, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts" ], "similarity": 0.359, "size_similarity": 0.053 }, { "breadth_similarity": 0.312, "concentration_similarity": 0.844, "content_similarity": 0.385, "left_pr_number": 49145, "right_pr_number": 56791, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts", "extensions/signal/src/monitor/event-handler.types.ts" ], "similarity": 0.354, "size_similarity": 0.074 }, { "breadth_similarity": 0.188, "concentration_similarity": 0.844, "content_similarity": 0.407, "left_pr_number": 49145, "right_pr_number": 66521, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts" ], "similarity": 0.354, "size_similarity": 0.053 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.932, "content_similarity": 0.396, "left_pr_number": 57806, "right_pr_number": 66521, "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts" ], "similarity": 0.352, "size_similarity": 0.023 } ], "pr_count": 6, "pr_numbers": [ 49145, 56791, 57806, 66198, 66521, 69413 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69413 ], "representative_pr_number": 66198, "representative_title": "security: wrap Signal inbound DM body via wrapExternalContent", "representative_url": "https://github.com/openclaw/openclaw/pull/66198", "shared_directories": [ "extensions/signal/src/monitor", "extensions/signal/src", "extensions/signal", "extensions", "src" ], "shared_filenames": [ "extensions/signal/src/monitor/event-handler.ts", "extensions/signal/src/monitor/event-handler.types.ts", "extensions/signal/src/monitor/inbound-context.ts" ], "summary": "6 open PRs share weighted file overlap around `extensions/signal/src/monitor/event-handler.ts`, `extensions/signal/src/monitor/event-handler.types.ts`, `extensions/signal/src/monitor/inbound-context.ts`; representative PR #66198.", "title": "Scope: security: wrap Signal inbound DM body via wrapExternalContent" }, { "authors": [ "nir-insuretax" ], "average_similarity": 0.419, "cluster_id": "pr-scope-63840-6", "kind": "pr_scope", "last_activity_at": "2026-04-20T12:55:19Z", "outside_window_prs": [ { "additions": 61, "author": "zozo123", "changed_files": 3, "created_at": "2026-04-09T16:30:50Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63840/files", "html_url": "https://github.com/openclaw/openclaw/pull/63840", "merged": false, "number": 63840, "state": "open", "title": "fix(slack): preserve thread context for Agents & Assistants DM root messages", "updated_at": "2026-04-12T08:04:11Z" }, { "additions": 19, "author": "mjamiv", "changed_files": 3, "created_at": "2026-04-10T02:14:14Z", "deletions": 9, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64022/files", "html_url": "https://github.com/openclaw/openclaw/pull/64022", "merged": false, "number": 64022, "state": "open", "title": "fix(slack): strip SSRF dispatcher from media fetch to prevent undici version conflict", "updated_at": "2026-04-13T23:16:25Z" }, { "additions": 52, "author": "Angfr95", "changed_files": 2, "created_at": "2026-04-14T04:39:29Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66342/files", "html_url": "https://github.com/openclaw/openclaw/pull/66342", "merged": false, "number": 66342, "state": "open", "title": "fix(slack): stop provider gracefully on auth errors instead of crashing gateway", "updated_at": "2026-04-14T11:52:21Z" }, { "additions": 53, "author": "Angfr95", "changed_files": 3, "created_at": "2026-04-14T07:08:55Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66395/files", "html_url": "https://github.com/openclaw/openclaw/pull/66395", "merged": false, "number": 66395, "state": "open", "title": "Fix/disable refresh during active turn", "updated_at": "2026-04-14T07:13:44Z" }, { "additions": 94, "author": "Angfr95", "changed_files": 5, "created_at": "2026-04-14T07:56:51Z", "deletions": 11, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66413/files", "html_url": "https://github.com/openclaw/openclaw/pull/66413", "merged": false, "number": 66413, "state": "open", "title": "fix(secrets): extract last non-empty stdout line for single-value exec secret refs", "updated_at": "2026-04-14T11:52:45Z" } ], "pairwise": [ { "breadth_similarity": 0.583, "concentration_similarity": 0.967, "content_similarity": 0.983, "left_pr_number": 66342, "right_pr_number": 66395, "shared_directories": [ "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/provider.gateway-crash.test.ts", "extensions/slack/src/monitor/provider.ts" ], "similarity": 0.94, "size_similarity": 0.967 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.586, "content_similarity": 0.765, "left_pr_number": 66395, "right_pr_number": 66413, "shared_directories": [ "extensions/slack/src/monitor", "extensions/slack/src", "ui/src/ui", "extensions/slack", "ui/src", "extensions", "ui" ], "shared_filenames": [ "extensions/slack/src/monitor/provider.gateway-crash.test.ts", "extensions/slack/src/monitor/provider.ts", "ui/src/ui/app-render.helpers.ts" ], "similarity": 0.714, "size_similarity": 0.571 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.552, "content_similarity": 0.751, "left_pr_number": 66342, "right_pr_number": 66413, "shared_directories": [ "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/provider.gateway-crash.test.ts", "extensions/slack/src/monitor/provider.ts" ], "similarity": 0.673, "size_similarity": 0.552 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.975, "content_similarity": 0.233, "left_pr_number": 66395, "right_pr_number": 67672, "shared_directories": [ "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/provider.ts" ], "similarity": 0.397, "size_similarity": 0.567 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.845, "content_similarity": 0.185, "left_pr_number": 64022, "right_pr_number": 67672, "shared_directories": [ "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.395, "size_similarity": 0.824 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.998, "content_similarity": 0.141, "left_pr_number": 63840, "right_pr_number": 66395, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.389, "size_similarity": 0.938 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.941, "content_similarity": 0.238, "left_pr_number": 66342, "right_pr_number": 67672, "shared_directories": [ "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/provider.ts" ], "similarity": 0.36, "size_similarity": 0.586 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.819, "content_similarity": 0.211, "left_pr_number": 64022, "right_pr_number": 66395, "shared_directories": [ "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.358, "size_similarity": 0.467 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.969, "content_similarity": 0.143, "left_pr_number": 63840, "right_pr_number": 66342, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.343, "size_similarity": 0.906 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.786, "content_similarity": 0.214, "left_pr_number": 64022, "right_pr_number": 66342, "shared_directories": [ "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.32, "size_similarity": 0.483 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.972, "content_similarity": 0.125, "left_pr_number": 63840, "right_pr_number": 67672, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.316, "size_similarity": 0.531 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.817, "content_similarity": 0.129, "left_pr_number": 63840, "right_pr_number": 64022, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.297, "size_similarity": 0.438 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.611, "content_similarity": 0.178, "left_pr_number": 66413, "right_pr_number": 67672, "shared_directories": [ "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/provider.ts" ], "similarity": 0.267, "size_similarity": 0.324 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.584, "content_similarity": 0.108, "left_pr_number": 63840, "right_pr_number": 66413, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions", "src" ], "shared_filenames": [], "similarity": 0.26, "size_similarity": 0.61 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.767, "content_similarity": 0.161, "left_pr_number": 64022, "right_pr_number": 66413, "shared_directories": [ "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.254, "size_similarity": 0.267 } ], "pr_count": 6, "pr_numbers": [ 63840, 64022, 66342, 66395, 66413, 67672 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67672 ], "representative_pr_number": 66395, "representative_title": "Fix/disable refresh during active turn", "representative_url": "https://github.com/openclaw/openclaw/pull/66395", "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions", "extensions/slack/src/monitor", "ui/src/ui", "ui/src", "ui", "src" ], "shared_filenames": [ "extensions/slack/src/monitor/provider.ts", "extensions/slack/src/monitor/provider.gateway-crash.test.ts", "ui/src/ui/app-render.helpers.ts" ], "summary": "6 open PRs share weighted file overlap around `extensions/slack/src/monitor/provider.ts`, `extensions/slack/src/monitor/provider.gateway-crash.test.ts`, `ui/src/ui/app-render.helpers.ts`; representative PR #66395.", "title": "Scope: Fix/disable refresh during active turn" }, { "authors": [ "stroupaloop" ], "average_similarity": 0.368, "cluster_id": "pr-scope-18860-6", "kind": "pr_scope", "last_activity_at": "2026-04-21T13:11:43Z", "outside_window_prs": [ { "additions": 160, "author": "lan17", "changed_files": 6, "created_at": "2026-02-17T04:32:32Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/18860/files", "html_url": "https://github.com/openclaw/openclaw/pull/18860", "merged": false, "number": 18860, "state": "open", "title": "feat(agents): expose tools and their schemas via new after_tools_resolved hook [AI-assisted]", "updated_at": "2026-04-18T04:13:48Z" }, { "additions": 15, "author": "dt-chenwenxiong", "changed_files": 2, "created_at": "2026-03-05T10:14:13Z", "deletions": 12, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/35916/files", "html_url": "https://github.com/openclaw/openclaw/pull/35916", "merged": false, "number": 35916, "state": "open", "title": "fix Null handling error after LLM timeout", "updated_at": "2026-04-17T04:31:21Z" }, { "additions": 154, "author": "0xlin2023", "changed_files": 2, "created_at": "2026-03-06T09:34:59Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37561/files", "html_url": "https://github.com/openclaw/openclaw/pull/37561", "merged": false, "number": 37561, "state": "open", "title": "fix: properly import ModelProviderConfig type", "updated_at": "2026-04-19T04:34:00Z" }, { "additions": 10, "author": "tonyzorin", "changed_files": 1, "created_at": "2026-03-06T11:03:00Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37671/files", "html_url": "https://github.com/openclaw/openclaw/pull/37671", "merged": false, "number": 37671, "state": "open", "title": "fix(agents): re-run tool_use/tool_result pairing repair after late me\u2026", "updated_at": "2026-04-20T04:36:49Z" }, { "additions": 10, "author": "laindream", "changed_files": 1, "created_at": "2026-03-06T20:39:36Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38329/files", "html_url": "https://github.com/openclaw/openclaw/pull/38329", "merged": false, "number": 38329, "state": "open", "title": "fix: pass API key to custom OpenAI-compatible providers", "updated_at": "2026-04-21T04:30:47Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.468, "left_pr_number": 37671, "right_pr_number": 38329, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.614, "size_similarity": 0.909 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.496, "left_pr_number": 37561, "right_pr_number": 38329, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.483, "size_similarity": 0.071 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.521, "content_similarity": 0.404, "left_pr_number": 18860, "right_pr_number": 37561, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.test.ts", "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.482, "size_similarity": 0.933 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.355, "left_pr_number": 35916, "right_pr_number": 38329, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.435, "size_similarity": 0.407 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.772, "content_similarity": 0.289, "left_pr_number": 18860, "right_pr_number": 68734, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src/plugins", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.test.ts", "src/agents/pi-embedded-runner/run/attempt.ts", "src/plugins/hooks.ts" ], "similarity": 0.425, "size_similarity": 0.647 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.35, "left_pr_number": 35916, "right_pr_number": 37671, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.425, "size_similarity": 0.37 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.749, "content_similarity": 0.315, "left_pr_number": 37561, "right_pr_number": 68734, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.test.ts", "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.378, "size_similarity": 0.604 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.343, "left_pr_number": 37561, "right_pr_number": 37671, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.375, "size_similarity": 0.065 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.267, "left_pr_number": 35916, "right_pr_number": 37561, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.363, "size_similarity": 0.175 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.749, "content_similarity": 0.325, "left_pr_number": 35916, "right_pr_number": 68734, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.31, "size_similarity": 0.106 }, { "breadth_similarity": 0.229, "concentration_similarity": 0.749, "content_similarity": 0.296, "left_pr_number": 38329, "right_pr_number": 68734, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.274, "size_similarity": 0.043 }, { "breadth_similarity": 0.229, "concentration_similarity": 0.749, "content_similarity": 0.291, "left_pr_number": 37671, "right_pr_number": 68734, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.27, "size_similarity": 0.039 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.521, "content_similarity": 0.252, "left_pr_number": 18860, "right_pr_number": 38329, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.237, "size_similarity": 0.067 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.521, "content_similarity": 0.248, "left_pr_number": 18860, "right_pr_number": 37671, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.233, "size_similarity": 0.061 }, { "breadth_similarity": 0.333, "concentration_similarity": 0.521, "content_similarity": 0.19, "left_pr_number": 18860, "right_pr_number": 35916, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts" ], "similarity": 0.217, "size_similarity": 0.164 } ], "pr_count": 6, "pr_numbers": [ 18860, 35916, 37561, 37671, 38329, 68734 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68734 ], "representative_pr_number": 37561, "representative_title": "fix: properly import ModelProviderConfig type", "representative_url": "https://github.com/openclaw/openclaw/pull/37561", "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src", "src/plugins" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.ts", "src/agents/pi-embedded-runner/run/attempt.test.ts", "src/plugins/hooks.ts" ], "summary": "6 open PRs share weighted file overlap around `src/agents/pi-embedded-runner/run/attempt.ts`, `src/agents/pi-embedded-runner/run/attempt.test.ts`, `src/plugins/hooks.ts`; representative PR #37561.", "title": "Scope: fix: properly import ModelProviderConfig type" }, { "authors": [ "wangshu94" ], "average_similarity": 0.461, "cluster_id": "pr-scope-37185-5", "kind": "pr_scope", "last_activity_at": "2026-04-21T16:10:11Z", "outside_window_prs": [ { "additions": 5, "author": "wang2-lat", "changed_files": 1, "created_at": "2026-03-06T04:43:24Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37185/files", "html_url": "https://github.com/openclaw/openclaw/pull/37185", "merged": false, "number": 37185, "state": "open", "title": "fix: use canonical sessionKey in chat broadcasts to fix TUI filtering", "updated_at": "2026-04-19T04:31:49Z" }, { "additions": 7, "author": "wang2-lat", "changed_files": 2, "created_at": "2026-03-06T06:13:11Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37279/files", "html_url": "https://github.com/openclaw/openclaw/pull/37279", "merged": false, "number": 37279, "state": "open", "title": "fix: update web_search schema to support multi-char language codes", "updated_at": "2026-04-19T04:32:21Z" }, { "additions": 23, "author": "wang2-lat", "changed_files": 2, "created_at": "2026-03-06T10:51:54Z", "deletions": 10, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37663/files", "html_url": "https://github.com/openclaw/openclaw/pull/37663", "merged": false, "number": 37663, "state": "open", "title": "fix: log file rotation at midnight", "updated_at": "2026-04-20T04:36:44Z" }, { "additions": 14, "author": "MumuTW", "changed_files": 1, "created_at": "2026-03-06T15:56:38Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38075/files", "html_url": "https://github.com/openclaw/openclaw/pull/38075", "merged": false, "number": 38075, "state": "open", "title": "fix(gateway): filter delivery-mirror entries from chat.history", "updated_at": "2026-04-21T04:28:57Z" } ], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.769, "content_similarity": 0.882, "left_pr_number": 37185, "right_pr_number": 37279, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts" ], "similarity": 0.821, "size_similarity": 0.769 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.928, "content_similarity": 0.521, "left_pr_number": 37279, "right_pr_number": 37663, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts" ], "similarity": 0.57, "size_similarity": 0.394 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.697, "content_similarity": 0.591, "left_pr_number": 37185, "right_pr_number": 37663, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts" ], "similarity": 0.544, "size_similarity": 0.303 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.336, "left_pr_number": 37185, "right_pr_number": 38075, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts" ], "similarity": 0.493, "size_similarity": 0.714 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.769, "content_similarity": 0.297, "left_pr_number": 37279, "right_pr_number": 38075, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts" ], "similarity": 0.436, "size_similarity": 0.929 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.236, "left_pr_number": 37185, "right_pr_number": 69747, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts" ], "similarity": 0.425, "size_similarity": 0.9 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.278, "left_pr_number": 38075, "right_pr_number": 69747, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts" ], "similarity": 0.416, "size_similarity": 0.643 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.769, "content_similarity": 0.208, "left_pr_number": 37279, "right_pr_number": 69747, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts" ], "similarity": 0.363, "size_similarity": 0.692 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.697, "content_similarity": 0.201, "left_pr_number": 37663, "right_pr_number": 38075, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts" ], "similarity": 0.289, "size_similarity": 0.424 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.697, "content_similarity": 0.141, "left_pr_number": 37663, "right_pr_number": 69747, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts" ], "similarity": 0.249, "size_similarity": 0.273 } ], "pr_count": 5, "pr_numbers": [ 37185, 37279, 37663, 38075, 69747 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69747 ], "representative_pr_number": 37185, "representative_title": "fix: use canonical sessionKey in chat broadcasts to fix TUI filtering", "representative_url": "https://github.com/openclaw/openclaw/pull/37185", "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/chat.ts" ], "summary": "5 open PRs share weighted file overlap around `src/gateway/server-methods/chat.ts`; representative PR #37185.", "title": "Scope: fix: use canonical sessionKey in chat broadcasts to fix TUI filtering" }, { "authors": [ "Tianworld" ], "average_similarity": 0.399, "cluster_id": "pr-scope-64734-5", "kind": "pr_scope", "last_activity_at": "2026-04-15T13:52:10Z", "outside_window_prs": [ { "additions": 16, "author": "hanamizuki", "changed_files": 2, "created_at": "2026-04-11T09:20:29Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64734/files", "html_url": "https://github.com/openclaw/openclaw/pull/64734", "merged": false, "number": 64734, "state": "open", "title": "fix(discord): raise thread title timeout and tokens to fit reasoning models", "updated_at": "2026-04-11T09:26:39Z" }, { "additions": 11, "author": "Yanhu007", "changed_files": 1, "created_at": "2026-04-11T15:17:30Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64863/files", "html_url": "https://github.com/openclaw/openclaw/pull/64863", "merged": false, "number": 64863, "state": "open", "title": "fix(discord): recognize voice messages as audio by filename extension", "updated_at": "2026-04-11T15:18:39Z" }, { "additions": 10, "author": "devsehyeon", "changed_files": 1, "created_at": "2026-04-13T15:13:44Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66005/files", "html_url": "https://github.com/openclaw/openclaw/pull/66005", "merged": false, "number": 66005, "state": "open", "title": "fix(discord): resolve channelId for ACP thread binding from guild channels", "updated_at": "2026-04-14T00:59:48Z" }, { "additions": 19, "author": "stanleeyY", "changed_files": 2, "created_at": "2026-04-13T16:38:19Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66059/files", "html_url": "https://github.com/openclaw/openclaw/pull/66059", "merged": false, "number": 66059, "state": "open", "title": "fix(discord): narrow batched replay and message ids", "updated_at": "2026-04-13T16:41:14Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.722, "left_pr_number": 64863, "right_pr_number": 67215, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/message-utils.ts" ], "similarity": 0.702, "size_similarity": 0.478 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.187, "left_pr_number": 64734, "right_pr_number": 67215, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.431, "size_similarity": 1.0 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.199, "left_pr_number": 64863, "right_pr_number": 66005, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.426, "size_similarity": 0.909 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.18, "left_pr_number": 64734, "right_pr_number": 66059, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.409, "size_similarity": 0.885 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.177, "left_pr_number": 66059, "right_pr_number": 67215, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.407, "size_similarity": 0.885 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.191, "left_pr_number": 64734, "right_pr_number": 64863, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.331, "size_similarity": 0.478 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.198, "left_pr_number": 64734, "right_pr_number": 66005, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.329, "size_similarity": 0.435 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.194, "left_pr_number": 66005, "right_pr_number": 67215, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.326, "size_similarity": 0.435 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.182, "left_pr_number": 64863, "right_pr_number": 66059, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.316, "size_similarity": 0.423 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.188, "left_pr_number": 66005, "right_pr_number": 66059, "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [], "similarity": 0.314, "size_similarity": 0.385 } ], "pr_count": 5, "pr_numbers": [ 64734, 64863, 66005, 66059, 67215 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67215 ], "representative_pr_number": 67215, "representative_title": "fix(discord): preserve embed URLs when message content is empty", "representative_url": "https://github.com/openclaw/openclaw/pull/67215", "shared_directories": [ "extensions/discord/src/monitor", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/monitor/message-utils.ts" ], "summary": "5 open PRs share weighted file overlap around `extensions/discord/src/monitor/message-utils.ts`; representative PR #67215.", "title": "Scope: fix(discord): preserve embed URLs when message content is empty" }, { "authors": [ "skolez" ], "average_similarity": 0.602, "cluster_id": "pr-scope-53459-4", "kind": "pr_scope", "last_activity_at": "2026-04-18T22:20:44Z", "outside_window_prs": [ { "additions": 4, "author": "nathandrewes", "changed_files": 1, "created_at": "2026-03-24T06:22:34Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53459/files", "html_url": "https://github.com/openclaw/openclaw/pull/53459", "merged": false, "number": 53459, "state": "open", "title": "fix(config): replace hardcoded API keys with env var substitution", "updated_at": "2026-03-24T20:15:30Z" }, { "additions": 5, "author": "jlapenna", "changed_files": 2, "created_at": "2026-04-10T20:04:49Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64485/files", "html_url": "https://github.com/openclaw/openclaw/pull/64485", "merged": false, "number": 64485, "state": "open", "title": "fix(docker): add config dir defaults to prevent broken volume mounts", "updated_at": "2026-04-21T01:21:26Z" }, { "additions": 1, "author": "imanewstudent", "changed_files": 1, "created_at": "2026-04-13T10:48:11Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65894/files", "html_url": "https://github.com/openclaw/openclaw/pull/65894", "merged": false, "number": 65894, "state": "open", "title": "fix: add local build context to docker-compose", "updated_at": "2026-04-13T10:49:45Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.973, "left_pr_number": 53459, "right_pr_number": 65894, "shared_directories": [], "shared_filenames": [ "docker-compose.yml" ], "similarity": 0.868, "size_similarity": 0.25 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.913, "left_pr_number": 53459, "right_pr_number": 64485, "shared_directories": [], "shared_filenames": [ "docker-compose.yml" ], "similarity": 0.831, "size_similarity": 0.444 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.876, "left_pr_number": 64485, "right_pr_number": 65894, "shared_directories": [], "shared_filenames": [ "docker-compose.yml" ], "similarity": 0.755, "size_similarity": 0.111 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.788, "content_similarity": 0.384, "left_pr_number": 64485, "right_pr_number": 68702, "shared_directories": [], "shared_filenames": [ "CHANGELOG.md", "docker-compose.yml" ], "similarity": 0.407, "size_similarity": 0.273 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.788, "content_similarity": 0.41, "left_pr_number": 53459, "right_pr_number": 68702, "shared_directories": [], "shared_filenames": [ "docker-compose.yml" ], "similarity": 0.386, "size_similarity": 0.121 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.788, "content_similarity": 0.394, "left_pr_number": 65894, "right_pr_number": 68702, "shared_directories": [], "shared_filenames": [ "docker-compose.yml" ], "similarity": 0.361, "size_similarity": 0.03 } ], "pr_count": 4, "pr_numbers": [ 53459, 64485, 65894, 68702 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68702 ], "representative_pr_number": 53459, "representative_title": "fix(config): replace hardcoded API keys with env var substitution", "representative_url": "https://github.com/openclaw/openclaw/pull/53459", "shared_directories": [], "shared_filenames": [ "docker-compose.yml", "CHANGELOG.md" ], "summary": "4 open PRs share weighted file overlap around `docker-compose.yml`, `CHANGELOG.md`; representative PR #53459.", "title": "Scope: fix(config): replace hardcoded API keys with env var substitution" }, { "authors": [ "ayeshakhalid192007-dev" ], "average_similarity": 0.576, "cluster_id": "pr-scope-64539-4", "kind": "pr_scope", "last_activity_at": "2026-04-17T12:37:18Z", "outside_window_prs": [ { "additions": 100, "author": "ShionEria", "changed_files": 2, "created_at": "2026-04-10T23:44:38Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64539/files", "html_url": "https://github.com/openclaw/openclaw/pull/64539", "merged": false, "number": 64539, "state": "open", "title": "fix(reply): allow OpenClaw tmp media in normalizer", "updated_at": "2026-04-11T00:34:49Z" }, { "additions": 160, "author": "Ricardo-M-L", "changed_files": 2, "created_at": "2026-04-11T15:29:20Z", "deletions": 16, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64872/files", "html_url": "https://github.com/openclaw/openclaw/pull/64872", "merged": false, "number": 64872, "state": "open", "title": "fix: convert local media paths to gateway URLs in WhatsApp reply pipeline", "updated_at": "2026-04-11T15:34:43Z" }, { "additions": 202, "author": "coder999999999", "changed_files": 3, "created_at": "2026-04-13T17:29:12Z", "deletions": 34, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66085/files", "html_url": "https://github.com/openclaw/openclaw/pull/66085", "merged": false, "number": 66085, "state": "open", "title": "fix(reply): harden preferred tmp media allowlist", "updated_at": "2026-04-14T18:17:18Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.886, "left_pr_number": 64539, "right_pr_number": 64872, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/reply-media-paths.test.ts", "src/auto-reply/reply/reply-media-paths.ts" ], "similarity": 0.857, "size_similarity": 0.58 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.692, "left_pr_number": 64872, "right_pr_number": 66085, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/reply-media-paths.test.ts", "src/auto-reply/reply/reply-media-paths.ts" ], "similarity": 0.73, "size_similarity": 0.746 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.662, "left_pr_number": 64539, "right_pr_number": 66085, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/reply-media-paths.test.ts", "src/auto-reply/reply/reply-media-paths.ts" ], "similarity": 0.661, "size_similarity": 0.432 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.519, "left_pr_number": 66085, "right_pr_number": 68111, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner.media-paths.test.ts" ], "similarity": 0.584, "size_similarity": 0.47 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.091, "left_pr_number": 64539, "right_pr_number": 68111, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [], "similarity": 0.335, "size_similarity": 0.919 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.09, "left_pr_number": 64872, "right_pr_number": 68111, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [], "similarity": 0.291, "size_similarity": 0.631 } ], "pr_count": 4, "pr_numbers": [ 64539, 64872, 66085, 68111 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68111 ], "representative_pr_number": 66085, "representative_title": "fix(reply): harden preferred tmp media allowlist", "representative_url": "https://github.com/openclaw/openclaw/pull/66085", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/reply-media-paths.ts", "src/auto-reply/reply/reply-media-paths.test.ts", "src/auto-reply/reply/agent-runner.media-paths.test.ts" ], "summary": "4 open PRs share weighted file overlap around `src/auto-reply/reply/reply-media-paths.ts`, `src/auto-reply/reply/reply-media-paths.test.ts`, `src/auto-reply/reply/agent-runner.media-paths.test.ts`; representative PR #66085.", "title": "Scope: fix(reply): harden preferred tmp media allowlist" }, { "authors": [ "neeravmakwana" ], "average_similarity": 0.548, "cluster_id": "pr-scope-37937-4", "kind": "pr_scope", "last_activity_at": "2026-04-20T12:08:22Z", "outside_window_prs": [ { "additions": 30, "author": "Clauber", "changed_files": 2, "created_at": "2026-03-06T14:45:38Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37937/files", "html_url": "https://github.com/openclaw/openclaw/pull/37937", "merged": false, "number": 37937, "state": "open", "title": "fix: treat undefined/null rejection reasons as non-fatal", "updated_at": "2026-04-20T04:38:41Z" }, { "additions": 8, "author": "p697", "changed_files": 2, "created_at": "2026-03-07T01:38:26Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38459/files", "html_url": "https://github.com/openclaw/openclaw/pull/38459", "merged": false, "number": 38459, "state": "open", "title": "Fix gateway crash loop on wrapped fetch-failed errors", "updated_at": "2026-04-21T04:32:16Z" }, { "additions": 101, "author": "openperf", "changed_files": 4, "created_at": "2026-04-12T11:41:48Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65323/files", "html_url": "https://github.com/openclaw/openclaw/pull/65323", "merged": false, "number": 65323, "state": "open", "title": "fix(gateway): prevent crash on late tool_execution_update after agent run teardown", "updated_at": "2026-04-12T16:16:20Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.981, "content_similarity": 0.847, "left_pr_number": 65323, "right_pr_number": 69148, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "CHANGELOG.md", "src/infra/unhandled-rejections.fatal-detection.test.ts", "src/infra/unhandled-rejections.test.ts", "src/infra/unhandled-rejections.ts" ], "similarity": 0.794, "size_similarity": 0.347 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.971, "content_similarity": 0.765, "left_pr_number": 37937, "right_pr_number": 69148, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/unhandled-rejections.fatal-detection.test.ts", "src/infra/unhandled-rejections.ts" ], "similarity": 0.763, "size_similarity": 0.857 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.99, "content_similarity": 0.517, "left_pr_number": 37937, "right_pr_number": 65323, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/unhandled-rejections.fatal-detection.test.ts", "src/infra/unhandled-rejections.ts" ], "similarity": 0.506, "size_similarity": 0.297 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.99, "content_similarity": 0.458, "left_pr_number": 38459, "right_pr_number": 65323, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/unhandled-rejections.test.ts", "src/infra/unhandled-rejections.ts" ], "similarity": 0.436, "size_similarity": 0.109 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.294, "left_pr_number": 37937, "right_pr_number": 38459, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/unhandled-rejections.ts" ], "similarity": 0.411, "size_similarity": 0.367 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.971, "content_similarity": 0.335, "left_pr_number": 38459, "right_pr_number": 69148, "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/unhandled-rejections.test.ts", "src/infra/unhandled-rejections.ts" ], "similarity": 0.38, "size_similarity": 0.314 } ], "pr_count": 4, "pr_numbers": [ 37937, 38459, 65323, 69148 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69148 ], "representative_pr_number": 69148, "representative_title": "Gateway/runtime: classify reasonless promise rejections as transient", "representative_url": "https://github.com/openclaw/openclaw/pull/69148", "shared_directories": [ "src/infra", "src" ], "shared_filenames": [ "src/infra/unhandled-rejections.ts", "src/infra/unhandled-rejections.fatal-detection.test.ts", "src/infra/unhandled-rejections.test.ts", "CHANGELOG.md" ], "summary": "4 open PRs share weighted file overlap around `src/infra/unhandled-rejections.ts`, `src/infra/unhandled-rejections.fatal-detection.test.ts`, `src/infra/unhandled-rejections.test.ts`; representative PR #69148.", "title": "Scope: Gateway/runtime: classify reasonless promise rejections as transient" }, { "authors": [ "zhonghe0615" ], "average_similarity": 0.535, "cluster_id": "pr-scope-63871-4", "kind": "pr_scope", "last_activity_at": "2026-04-21T06:39:22Z", "outside_window_prs": [ { "additions": 388, "author": "sharkqwy", "changed_files": 4, "created_at": "2026-04-09T18:08:23Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63871/files", "html_url": "https://github.com/openclaw/openclaw/pull/63871", "merged": false, "number": 63871, "state": "open", "title": "fix(cron): honor deleteAfterRun for recurring jobs", "updated_at": "2026-04-21T14:14:59Z" }, { "additions": 100, "author": "jackjin1997", "changed_files": 2, "created_at": "2026-04-10T15:14:52Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64375/files", "html_url": "https://github.com/openclaw/openclaw/pull/64375", "merged": false, "number": 64375, "state": "open", "title": "fix(cron): honor deleteAfterRun for every and cron schedule kinds", "updated_at": "2026-04-11T03:50:52Z" }, { "additions": 697, "author": "WuKongAI-CMU", "changed_files": 8, "created_at": "2026-04-13T17:05:12Z", "deletions": 49, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66076/files", "html_url": "https://github.com/openclaw/openclaw/pull/66076", "merged": false, "number": 66076, "state": "open", "title": "fix(cron): promote silent-undefined schedule to error, break spin loop (#66019)", "updated_at": "2026-04-15T08:50:52Z" } ], "pairwise": [ { "breadth_similarity": 0.417, "concentration_similarity": 0.964, "content_similarity": 0.807, "left_pr_number": 63871, "right_pr_number": 64375, "shared_directories": [ "src/cron/service", "src/cron", "src" ], "shared_filenames": [ "src/cron/service/timer.regression.test.ts", "src/cron/service/timer.ts" ], "similarity": 0.694, "size_similarity": 0.26 }, { "breadth_similarity": 0.404, "concentration_similarity": 0.73, "content_similarity": 0.641, "left_pr_number": 63871, "right_pr_number": 69252, "shared_directories": [ "src/cron/service", "src/cron", "src" ], "shared_filenames": [ "src/cron/service/timer.regression.test.ts", "src/cron/service/timer.ts" ], "similarity": 0.625, "size_similarity": 0.659 }, { "breadth_similarity": 0.558, "concentration_similarity": 0.722, "content_similarity": 0.445, "left_pr_number": 66076, "right_pr_number": 69252, "shared_directories": [ "src/cron/service", "src/cli", "src/cron", "src" ], "shared_filenames": [ "src/cron/service/timer.regression.test.ts", "src/cron/service/timer.ts" ], "similarity": 0.523, "size_similarity": 0.798 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.992, "content_similarity": 0.454, "left_pr_number": 63871, "right_pr_number": 66076, "shared_directories": [ "src/cron/service", "src/cron", "src/infra", "src" ], "shared_filenames": [ "src/cron/service/timer.regression.test.ts", "src/cron/service/timer.ts" ], "similarity": 0.521, "size_similarity": 0.525 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.972, "content_similarity": 0.466, "left_pr_number": 64375, "right_pr_number": 66076, "shared_directories": [ "src/cron/service", "src/cron", "src" ], "shared_filenames": [ "src/cron/service/timer.regression.test.ts", "src/cron/service/timer.ts" ], "similarity": 0.424, "size_similarity": 0.137 }, { "breadth_similarity": 0.16, "concentration_similarity": 0.694, "content_similarity": 0.497, "left_pr_number": 64375, "right_pr_number": 69252, "shared_directories": [ "src/cron/service", "src/cron", "src" ], "shared_filenames": [ "src/cron/service/timer.regression.test.ts", "src/cron/service/timer.ts" ], "similarity": 0.424, "size_similarity": 0.171 } ], "pr_count": 4, "pr_numbers": [ 63871, 64375, 66076, 69252 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69252 ], "representative_pr_number": 63871, "representative_title": "fix(cron): honor deleteAfterRun for recurring jobs", "representative_url": "https://github.com/openclaw/openclaw/pull/63871", "shared_directories": [ "src/cron/service", "src/cron", "src", "src/cli", "src/infra" ], "shared_filenames": [ "src/cron/service/timer.regression.test.ts", "src/cron/service/timer.ts" ], "summary": "4 open PRs share weighted file overlap around `src/cron/service/timer.regression.test.ts`, `src/cron/service/timer.ts`; representative PR #63871.", "title": "Scope: fix(cron): honor deleteAfterRun for recurring jobs" }, { "authors": [ "pandego" ], "average_similarity": 0.515, "cluster_id": "pr-scope-50483-4", "kind": "pr_scope", "last_activity_at": "2026-04-19T08:16:43Z", "outside_window_prs": [ { "additions": 403, "author": "eulicesl", "changed_files": 6, "created_at": "2026-03-19T15:11:39Z", "deletions": 17, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/50483/files", "html_url": "https://github.com/openclaw/openclaw/pull/50483", "merged": false, "number": 50483, "state": "open", "title": "fix(ios): stabilize chat streaming layout and session flow", "updated_at": "2026-04-17T17:08:24Z" }, { "additions": 1690, "author": "kakahu2015", "changed_files": 17, "created_at": "2026-04-09T10:47:43Z", "deletions": 504, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63697/files", "html_url": "https://github.com/openclaw/openclaw/pull/63697", "merged": false, "number": 63697, "state": "open", "title": "[codex] iOS Chat: route slash commands through gateway", "updated_at": "2026-04-11T14:40:53Z" }, { "additions": 92, "author": "javierdici", "changed_files": 4, "created_at": "2026-04-13T03:33:17Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65689/files", "html_url": "https://github.com/openclaw/openclaw/pull/65689", "merged": false, "number": 65689, "state": "open", "title": "Render provider errors in chat history", "updated_at": "2026-04-13T03:37:25Z" } ], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 0.908, "content_similarity": 0.694, "left_pr_number": 50483, "right_pr_number": 65689, "shared_directories": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI", "apps/shared/OpenClawKit/Tests/OpenClawKitTests", "apps/shared/OpenClawKit/Sources", "apps/shared/OpenClawKit/Tests", "apps/shared/OpenClawKit", "apps/shared", "apps" ], "shared_filenames": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatModels.swift", "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatView.swift", "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel.swift", "apps/shared/OpenClawKit/Tests/OpenClawKitTests/ChatViewModelTests.swift" ], "similarity": 0.65, "size_similarity": 0.236 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.817, "content_similarity": 0.546, "left_pr_number": 65689, "right_pr_number": 68641, "shared_directories": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI", "apps/shared/OpenClawKit/Tests/OpenClawKitTests", "apps/shared/OpenClawKit/Sources", "apps/shared/OpenClawKit/Tests", "apps/shared/OpenClawKit", "apps/shared", "apps" ], "shared_filenames": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatModels.swift", "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel.swift" ], "similarity": 0.57, "size_similarity": 0.311 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.909, "content_similarity": 0.411, "left_pr_number": 50483, "right_pr_number": 68641, "shared_directories": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI", "apps/shared/OpenClawKit/Tests/OpenClawKitTests", "apps/shared/OpenClawKit/Sources", "apps/shared/OpenClawKit/Tests", "apps/shared/OpenClawKit", "apps/shared", "apps" ], "shared_filenames": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatModels.swift", "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel.swift" ], "similarity": 0.53, "size_similarity": 0.757 }, { "breadth_similarity": 0.343, "concentration_similarity": 0.905, "content_similarity": 0.564, "left_pr_number": 50483, "right_pr_number": 63697, "shared_directories": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI", "apps/shared/OpenClawKit/Tests/OpenClawKitTests", "apps/shared/OpenClawKit/Sources", "apps/shared/OpenClawKit/Tests", "apps/shared/OpenClawKit", "apps/shared", "apps" ], "shared_filenames": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatView.swift", "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel.swift", "apps/shared/OpenClawKit/Tests/OpenClawKitTests/ChatViewModelTests.swift" ], "similarity": 0.503, "size_similarity": 0.191 }, { "breadth_similarity": 0.284, "concentration_similarity": 0.996, "content_similarity": 0.473, "left_pr_number": 63697, "right_pr_number": 68641, "shared_directories": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI", "apps/shared/OpenClawKit/Tests/OpenClawKitTests", "apps/shared/OpenClawKit/Sources", "apps/shared/OpenClawKit/Tests", "apps/shared/OpenClawKit", "apps/shared", "apps" ], "shared_filenames": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatMessageViews.swift", "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel.swift" ], "similarity": 0.431, "size_similarity": 0.145 }, { "breadth_similarity": 0.284, "concentration_similarity": 0.813, "content_similarity": 0.474, "left_pr_number": 63697, "right_pr_number": 65689, "shared_directories": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI", "apps/shared/OpenClawKit/Tests/OpenClawKitTests", "apps/shared/OpenClawKit/Sources", "apps/shared/OpenClawKit/Tests", "apps/shared/OpenClawKit", "apps/shared", "apps" ], "shared_filenames": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatView.swift", "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel.swift", "apps/shared/OpenClawKit/Tests/OpenClawKitTests/ChatViewModelTests.swift" ], "similarity": 0.408, "size_similarity": 0.045 } ], "pr_count": 4, "pr_numbers": [ 50483, 63697, 65689, 68641 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68641 ], "representative_pr_number": 50483, "representative_title": "fix(ios): stabilize chat streaming layout and session flow", "representative_url": "https://github.com/openclaw/openclaw/pull/50483", "shared_directories": [ "apps/shared/OpenClawKit/Tests/OpenClawKitTests", "apps/shared/OpenClawKit/Sources/OpenClawChatUI", "apps/shared/OpenClawKit/Tests", "apps/shared/OpenClawKit/Sources", "apps/shared/OpenClawKit", "apps/shared", "apps" ], "shared_filenames": [ "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel.swift", "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatModels.swift", "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatView.swift", "apps/shared/OpenClawKit/Tests/OpenClawKitTests/ChatViewModelTests.swift", "apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatMessageViews.swift" ], "summary": "4 open PRs share weighted file overlap around `apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatViewModel.swift`, `apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatModels.swift`, `apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatView.swift`; representative PR #50483.", "title": "Scope: fix(ios): stabilize chat streaming layout and session flow" }, { "authors": [ "evgyur" ], "average_similarity": 0.498, "cluster_id": "pr-scope-64059-4", "kind": "pr_scope", "last_activity_at": "2026-04-18T20:17:12Z", "outside_window_prs": [ { "additions": 41, "author": "bek91", "changed_files": 2, "created_at": "2026-04-10T03:35:23Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64059/files", "html_url": "https://github.com/openclaw/openclaw/pull/64059", "merged": false, "number": 64059, "state": "open", "title": "Align system prompt messaging and subagent routing guidance", "updated_at": "2026-04-21T03:27:57Z" }, { "additions": 19, "author": "yozu", "changed_files": 2, "created_at": "2026-04-13T07:26:01Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65777/files", "html_url": "https://github.com/openclaw/openclaw/pull/65777", "merged": false, "number": 65777, "state": "open", "title": "fix(prompt): preserve IDENTITY defaults in system prompt", "updated_at": "2026-04-14T08:11:28Z" }, { "additions": 42, "author": "johnturek", "changed_files": 5, "created_at": "2026-04-14T03:38:04Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66312/files", "html_url": "https://github.com/openclaw/openclaw/pull/66312", "merged": false, "number": 66312, "state": "open", "title": "feat(system-prompt): inject sessionKey into Runtime line", "updated_at": "2026-04-14T03:40:00Z" } ], "pairwise": [ { "breadth_similarity": 0.583, "concentration_similarity": 0.912, "content_similarity": 0.563, "left_pr_number": 65777, "right_pr_number": 68687, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/system-prompt.test.ts", "src/agents/system-prompt.ts" ], "similarity": 0.582, "size_similarity": 0.559 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.52, "left_pr_number": 64059, "right_pr_number": 65777, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/system-prompt.test.ts", "src/agents/system-prompt.ts" ], "similarity": 0.58, "size_similarity": 0.442 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.952, "content_similarity": 0.373, "left_pr_number": 64059, "right_pr_number": 66312, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/system-prompt.test.ts", "src/agents/system-prompt.ts" ], "similarity": 0.492, "size_similarity": 0.977 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.912, "content_similarity": 0.375, "left_pr_number": 64059, "right_pr_number": 68687, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/system-prompt.test.ts", "src/agents/system-prompt.ts" ], "similarity": 0.485, "size_similarity": 0.791 }, { "breadth_similarity": 0.633, "concentration_similarity": 0.959, "content_similarity": 0.317, "left_pr_number": 66312, "right_pr_number": 68687, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/system-prompt.test.ts", "src/agents/system-prompt.ts" ], "similarity": 0.455, "size_similarity": 0.81 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.952, "content_similarity": 0.348, "left_pr_number": 65777, "right_pr_number": 66312, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/system-prompt.test.ts", "src/agents/system-prompt.ts" ], "similarity": 0.396, "size_similarity": 0.452 } ], "pr_count": 4, "pr_numbers": [ 64059, 65777, 66312, 68687 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68687 ], "representative_pr_number": 65777, "representative_title": "fix(prompt): preserve IDENTITY defaults in system prompt", "representative_url": "https://github.com/openclaw/openclaw/pull/65777", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/system-prompt.test.ts", "src/agents/system-prompt.ts" ], "summary": "4 open PRs share weighted file overlap around `src/agents/system-prompt.test.ts`, `src/agents/system-prompt.ts`; representative PR #65777.", "title": "Scope: fix(prompt): preserve IDENTITY defaults in system prompt" }, { "authors": [ "silas-dandelion-cult" ], "average_similarity": 0.476, "cluster_id": "pr-scope-37904-4", "kind": "pr_scope", "last_activity_at": "2026-04-20T17:56:11Z", "outside_window_prs": [ { "additions": 78, "author": "kaiwangleo", "changed_files": 2, "created_at": "2026-03-06T14:24:20Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37904/files", "html_url": "https://github.com/openclaw/openclaw/pull/37904", "merged": false, "number": 37904, "state": "open", "title": "fix(reply): suppress JSON/channelData NO_REPLY action payloads", "updated_at": "2026-04-20T04:38:31Z" }, { "additions": 17, "author": "jakepresent", "changed_files": 2, "created_at": "2026-04-12T20:29:41Z", "deletions": 21, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65541/files", "html_url": "https://github.com/openclaw/openclaw/pull/65541", "merged": false, "number": 65541, "state": "open", "title": "fix: deliver text blocks progressively when block streaming is disabled", "updated_at": "2026-04-14T18:02:32Z" }, { "additions": 75, "author": "asakir44", "changed_files": 3, "created_at": "2026-04-13T14:53:54Z", "deletions": 9, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65995/files", "html_url": "https://github.com/openclaw/openclaw/pull/65995", "merged": false, "number": 65995, "state": "open", "title": "fix(reply): sanitize assistant text in block and final delivery paths", "updated_at": "2026-04-13T15:03:23Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.848, "left_pr_number": 37904, "right_pr_number": 69394, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/normalize-reply.ts", "src/auto-reply/reply/reply-utils.test.ts" ], "similarity": 0.794, "size_similarity": 0.337 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.652, "left_pr_number": 65541, "right_pr_number": 65995, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/reply-delivery.test.ts", "src/auto-reply/reply/reply-delivery.ts" ], "similarity": 0.657, "size_similarity": 0.452 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.274, "left_pr_number": 37904, "right_pr_number": 65995, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/normalize-reply.ts" ], "similarity": 0.474, "size_similarity": 0.988 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.211, "left_pr_number": 65995, "right_pr_number": 69394, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/normalize-reply.ts" ], "similarity": 0.331, "size_similarity": 0.333 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.088, "left_pr_number": 65541, "right_pr_number": 69394, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [], "similarity": 0.322, "size_similarity": 0.737 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.087, "left_pr_number": 37904, "right_pr_number": 65541, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [], "similarity": 0.279, "size_similarity": 0.458 } ], "pr_count": 4, "pr_numbers": [ 37904, 65541, 65995, 69394 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69394 ], "representative_pr_number": 37904, "representative_title": "fix(reply): suppress JSON/channelData NO_REPLY action payloads", "representative_url": "https://github.com/openclaw/openclaw/pull/37904", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/normalize-reply.ts", "src/auto-reply/reply/reply-delivery.test.ts", "src/auto-reply/reply/reply-delivery.ts", "src/auto-reply/reply/reply-utils.test.ts" ], "summary": "4 open PRs share weighted file overlap around `src/auto-reply/reply/normalize-reply.ts`, `src/auto-reply/reply/reply-delivery.test.ts`, `src/auto-reply/reply/reply-delivery.ts`; representative PR #37904.", "title": "Scope: fix(reply): suppress JSON/channelData NO_REPLY action payloads" }, { "authors": [ "tianhaocui" ], "average_similarity": 0.46, "cluster_id": "pr-scope-37412-4", "kind": "pr_scope", "last_activity_at": "2026-04-20T06:19:42Z", "outside_window_prs": [ { "additions": 45, "author": "0xlin2023", "changed_files": 3, "created_at": "2026-03-06T07:26:56Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37412/files", "html_url": "https://github.com/openclaw/openclaw/pull/37412", "merged": false, "number": 37412, "state": "open", "title": "fix(ui): support output_text content type in message extractor", "updated_at": "2026-04-19T04:33:00Z" }, { "additions": 4, "author": "hijzy", "changed_files": 2, "created_at": "2026-03-24T09:41:21Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53588/files", "html_url": "https://github.com/openclaw/openclaw/pull/53588", "merged": false, "number": 53588, "state": "open", "title": "fix: strip tags from user messages in WebChat UI", "updated_at": "2026-03-24T20:15:30Z" }, { "additions": 33, "author": "w-sss", "changed_files": 1, "created_at": "2026-04-12T05:19:25Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65187/files", "html_url": "https://github.com/openclaw/openclaw/pull/65187", "merged": false, "number": 65187, "state": "open", "title": "test: add regression tests for tag stripping in UI message extraction", "updated_at": "2026-04-12T14:41:16Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.767, "content_similarity": 0.719, "left_pr_number": 53588, "right_pr_number": 68855, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "src", "ui" ], "shared_filenames": [ "ui/src/ui/chat/message-extract.ts" ], "similarity": 0.687, "size_similarity": 0.3 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.646, "content_similarity": 0.56, "left_pr_number": 37412, "right_pr_number": 65187, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/chat/message-extract.test.ts" ], "similarity": 0.569, "size_similarity": 0.688 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.746, "content_similarity": 0.503, "left_pr_number": 37412, "right_pr_number": 68855, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/chat/message-extract.ts" ], "similarity": 0.535, "size_similarity": 0.417 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.979, "content_similarity": 0.391, "left_pr_number": 37412, "right_pr_number": 53588, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/chat/message-extract.ts" ], "similarity": 0.425, "size_similarity": 0.125 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.9, "content_similarity": 0.214, "left_pr_number": 65187, "right_pr_number": 68855, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.336, "size_similarity": 0.606 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.667, "content_similarity": 0.14, "left_pr_number": 53588, "right_pr_number": 65187, "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.208, "size_similarity": 0.182 } ], "pr_count": 4, "pr_numbers": [ 37412, 53588, 65187, 68855 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68855 ], "representative_pr_number": 68855, "representative_title": "fix: guard against non-string content delta and thinking blocks", "representative_url": "https://github.com/openclaw/openclaw/pull/68855", "shared_directories": [ "ui/src/ui/chat", "ui/src/ui", "ui/src", "ui", "src" ], "shared_filenames": [ "ui/src/ui/chat/message-extract.ts", "ui/src/ui/chat/message-extract.test.ts" ], "summary": "4 open PRs share weighted file overlap around `ui/src/ui/chat/message-extract.ts`, `ui/src/ui/chat/message-extract.test.ts`; representative PR #68855.", "title": "Scope: fix: guard against non-string content delta and thinking blocks" }, { "authors": [ "nightq" ], "average_similarity": 0.437, "cluster_id": "pr-scope-63644-4", "kind": "pr_scope", "last_activity_at": "2026-04-18T05:47:09Z", "outside_window_prs": [ { "additions": 10, "author": "macdao", "changed_files": 3, "created_at": "2026-04-09T08:45:01Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63644/files", "html_url": "https://github.com/openclaw/openclaw/pull/63644", "merged": false, "number": 63644, "state": "open", "title": "fix(ui): fix iPhone Safari chat layout and input zoom", "updated_at": "2026-04-10T09:35:37Z" }, { "additions": 7, "author": "NianJiuZst", "changed_files": 2, "created_at": "2026-04-11T06:14:28Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64673/files", "html_url": "https://github.com/openclaw/openclaw/pull/64673", "merged": false, "number": 64673, "state": "open", "title": "fix(ui): set input font-size to 16px to prevent iOS Safari auto-zoom on focus", "updated_at": "2026-04-11T06:43:05Z" }, { "additions": 2, "author": "xinmotlanthua", "changed_files": 1, "created_at": "2026-04-14T03:34:55Z", "deletions": 9, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66311/files", "html_url": "https://github.com/openclaw/openclaw/pull/66311", "merged": false, "number": 66311, "state": "open", "title": "fix: remove max-height truncation on webchat tool-call cards", "updated_at": "2026-04-14T04:12:44Z" } ], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 0.722, "content_similarity": 0.49, "left_pr_number": 63644, "right_pr_number": 64673, "shared_directories": [ "ui/src/styles/chat", "ui/src/styles", "ui/src", "ui" ], "shared_filenames": [ "ui/src/styles/chat/layout.css" ], "similarity": 0.575, "size_similarity": 0.75 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.778, "content_similarity": 0.391, "left_pr_number": 64673, "right_pr_number": 68422, "shared_directories": [ "ui/src/styles/chat", "ui/src/styles", "ui/src", "ui" ], "shared_filenames": [ "ui/src/styles/chat/layout.css" ], "similarity": 0.486, "size_similarity": 0.818 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.5, "content_similarity": 0.367, "left_pr_number": 63644, "right_pr_number": 68422, "shared_directories": [ "ui/src/styles/chat", "ui/src/styles", "ui/src", "ui" ], "shared_filenames": [ "ui/src/styles/chat/layout.css" ], "similarity": 0.461, "size_similarity": 0.917 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.204, "left_pr_number": 66311, "right_pr_number": 68422, "shared_directories": [ "ui/src/styles/chat", "ui/src/styles", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.443, "size_similarity": 1.0 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.778, "content_similarity": 0.173, "left_pr_number": 64673, "right_pr_number": 66311, "shared_directories": [ "ui/src/styles/chat", "ui/src/styles", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.333, "size_similarity": 0.818 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.5, "content_similarity": 0.175, "left_pr_number": 63644, "right_pr_number": 66311, "shared_directories": [ "ui/src/styles/chat", "ui/src/styles", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.327, "size_similarity": 0.917 } ], "pr_count": 4, "pr_numbers": [ 63644, 64673, 66311, 68422 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68422 ], "representative_pr_number": 64673, "representative_title": "fix(ui): set input font-size to 16px to prevent iOS Safari auto-zoom on focus", "representative_url": "https://github.com/openclaw/openclaw/pull/64673", "shared_directories": [ "ui/src/styles/chat", "ui/src/styles", "ui/src", "ui" ], "shared_filenames": [ "ui/src/styles/chat/layout.css" ], "summary": "4 open PRs share weighted file overlap around `ui/src/styles/chat/layout.css`; representative PR #64673.", "title": "Scope: fix(ui): set input font-size to 16px to prevent iOS Safari auto-zoom on focus" }, { "authors": [ "Lucenx9" ], "average_similarity": 0.431, "cluster_id": "pr-scope-53332-4", "kind": "pr_scope", "last_activity_at": "2026-04-18T21:22:50Z", "outside_window_prs": [ { "additions": 65, "author": "omarshahine", "changed_files": 1, "created_at": "2026-03-24T02:59:40Z", "deletions": 47, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53332/files", "html_url": "https://github.com/openclaw/openclaw/pull/53332", "merged": false, "number": 53332, "state": "open", "title": "fix: sendPolicy deny should suppress delivery, not inbound processing", "updated_at": "2026-03-24T20:15:31Z" }, { "additions": 190, "author": "hongzexin", "changed_files": 4, "created_at": "2026-04-10T07:52:21Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64182/files", "html_url": "https://github.com/openclaw/openclaw/pull/64182", "merged": false, "number": 64182, "state": "open", "title": "Reply: allow authorized group command sessions to receive tool updates", "updated_at": "2026-04-10T12:46:35Z" }, { "additions": 270, "author": "qualiobra", "changed_files": 4, "created_at": "2026-04-11T00:50:10Z", "deletions": 33, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64559/files", "html_url": "https://github.com/openclaw/openclaw/pull/64559", "merged": false, "number": 64559, "state": "open", "title": "fix(plugins): emit message_received hook for queued inbound messages (#64525)", "updated_at": "2026-04-11T16:32:15Z" } ], "pairwise": [ { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.571, "left_pr_number": 53332, "right_pr_number": 68698, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-from-config.ts" ], "similarity": 0.63, "size_similarity": 0.757 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.804, "content_similarity": 0.302, "left_pr_number": 64182, "right_pr_number": 68698, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-from-config.test.ts", "src/auto-reply/reply/dispatch-from-config.ts" ], "similarity": 0.428, "size_similarity": 0.763 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.804, "content_similarity": 0.282, "left_pr_number": 64182, "right_pr_number": 64559, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-from-config.test.ts", "src/auto-reply/reply/dispatch-from-config.ts" ], "similarity": 0.409, "size_similarity": 0.64 }, { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.254, "left_pr_number": 64559, "right_pr_number": 68698, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-from-config.test.ts", "src/auto-reply/reply/dispatch-from-config.ts" ], "similarity": 0.389, "size_similarity": 0.488 }, { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.282, "left_pr_number": 53332, "right_pr_number": 64559, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-from-config.ts" ], "similarity": 0.366, "size_similarity": 0.37 }, { "breadth_similarity": 0.375, "concentration_similarity": 0.804, "content_similarity": 0.286, "left_pr_number": 53332, "right_pr_number": 64182, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-from-config.ts" ], "similarity": 0.364, "size_similarity": 0.577 } ], "pr_count": 4, "pr_numbers": [ 53332, 64182, 64559, 68698 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68698 ], "representative_pr_number": 68698, "representative_title": "fix(auto-reply): commit inbound dedupe on handled exits", "representative_url": "https://github.com/openclaw/openclaw/pull/68698", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/dispatch-from-config.ts", "src/auto-reply/reply/dispatch-from-config.test.ts" ], "summary": "4 open PRs share weighted file overlap around `src/auto-reply/reply/dispatch-from-config.ts`, `src/auto-reply/reply/dispatch-from-config.test.ts`; representative PR #68698.", "title": "Scope: fix(auto-reply): commit inbound dedupe on handled exits" }, { "authors": [ "armorbreak001" ], "average_similarity": 0.417, "cluster_id": "pr-scope-65425-4", "kind": "pr_scope", "last_activity_at": "2026-04-19T06:42:33Z", "outside_window_prs": [ { "additions": 129, "author": "samrusani", "changed_files": 6, "created_at": "2026-04-12T15:24:41Z", "deletions": 17, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65425/files", "html_url": "https://github.com/openclaw/openclaw/pull/65425", "merged": false, "number": 65425, "state": "open", "title": "Allow zero group chat history limit", "updated_at": "2026-04-12T16:11:14Z" }, { "additions": 218, "author": "samrusani", "changed_files": 6, "created_at": "2026-04-12T15:48:23Z", "deletions": 44, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65435/files", "html_url": "https://github.com/openclaw/openclaw/pull/65435", "merged": false, "number": 65435, "state": "open", "title": "[codex] add memory text-search fallback", "updated_at": "2026-04-12T17:26:44Z" }, { "additions": 170, "author": "nxmxbbd", "changed_files": 6, "created_at": "2026-04-13T06:31:55Z", "deletions": 13, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65755/files", "html_url": "https://github.com/openclaw/openclaw/pull/65755", "merged": false, "number": 65755, "state": "open", "title": "fix(memory): add watcher error handling and non-zero default intervalMinutes", "updated_at": "2026-04-13T06:51:45Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 0.7, "content_similarity": 0.697, "left_pr_number": 65425, "right_pr_number": 65435, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/src/memory/index.test.ts", "extensions/memory-core/src/memory/manager-search.test.ts", "extensions/memory-core/src/memory/manager.ts" ], "similarity": 0.681, "size_similarity": 0.557 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.83, "content_similarity": 0.258, "left_pr_number": 65425, "right_pr_number": 68822, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/manager.ts" ], "similarity": 0.42, "size_similarity": 0.825 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.872, "content_similarity": 0.173, "left_pr_number": 65425, "right_pr_number": 65755, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions", "src" ], "shared_filenames": [], "similarity": 0.384, "size_similarity": 0.798 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.958, "content_similarity": 0.121, "left_pr_number": 65755, "right_pr_number": 68822, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [], "similarity": 0.353, "size_similarity": 0.967 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.87, "content_similarity": 0.21, "left_pr_number": 65435, "right_pr_number": 68822, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/manager.ts" ], "similarity": 0.342, "size_similarity": 0.676 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.828, "content_similarity": 0.14, "left_pr_number": 65435, "right_pr_number": 65755, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions", "src" ], "shared_filenames": [], "similarity": 0.319, "size_similarity": 0.698 } ], "pr_count": 4, "pr_numbers": [ 65425, 65435, 65755, 68822 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68822 ], "representative_pr_number": 65425, "representative_title": "Allow zero group chat history limit", "representative_url": "https://github.com/openclaw/openclaw/pull/65425", "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions", "src" ], "shared_filenames": [ "extensions/memory-core/src/memory/manager.ts", "extensions/memory-core/src/memory/manager-search.test.ts", "extensions/memory-core/src/memory/index.test.ts" ], "summary": "4 open PRs share weighted file overlap around `extensions/memory-core/src/memory/manager.ts`, `extensions/memory-core/src/memory/manager-search.test.ts`, `extensions/memory-core/src/memory/index.test.ts`; representative PR #65425.", "title": "Scope: Allow zero group chat history limit" }, { "authors": [ "draix" ], "average_similarity": 0.408, "cluster_id": "pr-scope-37549-4", "kind": "pr_scope", "last_activity_at": "2026-04-15T13:40:21Z", "outside_window_prs": [ { "additions": 56, "author": "lishuaigit", "changed_files": 4, "created_at": "2026-03-06T09:19:25Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37549/files", "html_url": "https://github.com/openclaw/openclaw/pull/37549", "merged": false, "number": 37549, "state": "open", "title": "fix(logging): subsystem loggers now follow root logger rotation", "updated_at": "2026-04-19T04:33:57Z" }, { "additions": 137, "author": "monsonego", "changed_files": 3, "created_at": "2026-04-07T12:27:51Z", "deletions": 9, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/62482/files", "html_url": "https://github.com/openclaw/openclaw/pull/62482", "merged": false, "number": 62482, "state": "open", "title": "fix: refresh subsystem file loggers across daily log rollovers [AI-assisted]", "updated_at": "2026-04-12T13:28:19Z" }, { "additions": 12, "author": "wyyis", "changed_files": 1, "created_at": "2026-04-13T08:29:43Z", "deletions": 9, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65804/files", "html_url": "https://github.com/openclaw/openclaw/pull/65804", "merged": false, "number": 65804, "state": "open", "title": "fix: refresh SubsystemLogger file child on rolling log rotation", "updated_at": "2026-04-13T09:29:46Z" } ], "pairwise": [ { "breadth_similarity": 0.625, "concentration_similarity": 1.0, "content_similarity": 0.497, "left_pr_number": 37549, "right_pr_number": 65804, "shared_directories": [ "src/logging", "src" ], "shared_filenames": [ "src/logging/subsystem.ts" ], "similarity": 0.512, "size_similarity": 0.344 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.918, "content_similarity": 0.471, "left_pr_number": 62482, "right_pr_number": 65804, "shared_directories": [ "src/logging", "src" ], "shared_filenames": [ "src/logging/subsystem.ts" ], "similarity": 0.439, "size_similarity": 0.144 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.931, "content_similarity": 0.193, "left_pr_number": 62482, "right_pr_number": 67206, "shared_directories": [ "src/logging", "src" ], "shared_filenames": [ "src/logging/subsystem.ts" ], "similarity": 0.401, "size_similarity": 0.93 }, { "breadth_similarity": 0.65, "concentration_similarity": 0.987, "content_similarity": 0.314, "left_pr_number": 37549, "right_pr_number": 67206, "shared_directories": [ "src/logging", "src" ], "shared_filenames": [ "src/logging/logger.ts", "src/logging/state.ts", "src/logging/subsystem.ts" ], "similarity": 0.392, "size_similarity": 0.389 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.918, "content_similarity": 0.285, "left_pr_number": 37549, "right_pr_number": 62482, "shared_directories": [ "src/logging", "src" ], "shared_filenames": [ "src/logging/subsystem.ts" ], "similarity": 0.371, "size_similarity": 0.418 }, { "breadth_similarity": 0.35, "concentration_similarity": 0.987, "content_similarity": 0.329, "left_pr_number": 65804, "right_pr_number": 67206, "shared_directories": [ "src/logging", "src" ], "shared_filenames": [ "src/logging/subsystem.ts" ], "similarity": 0.335, "size_similarity": 0.134 } ], "pr_count": 4, "pr_numbers": [ 37549, 62482, 65804, 67206 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67206 ], "representative_pr_number": 65804, "representative_title": "fix: refresh SubsystemLogger file child on rolling log rotation", "representative_url": "https://github.com/openclaw/openclaw/pull/65804", "shared_directories": [ "src/logging", "src" ], "shared_filenames": [ "src/logging/subsystem.ts", "src/logging/state.ts", "src/logging/logger.ts" ], "summary": "4 open PRs share weighted file overlap around `src/logging/subsystem.ts`, `src/logging/state.ts`, `src/logging/logger.ts`; representative PR #65804.", "title": "Scope: fix: refresh SubsystemLogger file child on rolling log rotation" }, { "authors": [ "nightq" ], "average_similarity": 0.406, "cluster_id": "pr-scope-65286-4", "kind": "pr_scope", "last_activity_at": "2026-04-21T12:02:34Z", "outside_window_prs": [ { "additions": 13, "author": "lightning-openclaw", "changed_files": 2, "created_at": "2026-04-12T09:57:06Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65286/files", "html_url": "https://github.com/openclaw/openclaw/pull/65286", "merged": false, "number": 65286, "state": "open", "title": "fix(slack): resolve DM thread delivery failure (channel_not_found)", "updated_at": "2026-04-12T12:36:03Z" }, { "additions": 9, "author": "zhouhe-xydt", "changed_files": 2, "created_at": "2026-04-13T07:10:35Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65773/files", "html_url": "https://github.com/openclaw/openclaw/pull/65773", "merged": false, "number": 65773, "state": "open", "title": "fix(slack): print manifest JSON without box-drawing borders", "updated_at": "2026-04-13T07:14:54Z" }, { "additions": 22, "author": "Bartok9", "changed_files": 2, "created_at": "2026-04-13T08:37:29Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65809/files", "html_url": "https://github.com/openclaw/openclaw/pull/65809", "merged": false, "number": 65809, "state": "open", "title": "fix(slack): print manifest JSON outside framed note for easy copying", "updated_at": "2026-04-13T08:41:54Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.772, "left_pr_number": 65773, "right_pr_number": 65809, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/setup-core.ts", "extensions/slack/src/shared.ts" ], "similarity": 0.768, "size_similarity": 0.52 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.112, "left_pr_number": 65773, "right_pr_number": 69105, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.378, "size_similarity": 1.0 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.857, "content_similarity": 0.125, "left_pr_number": 65286, "right_pr_number": 69105, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.344, "size_similarity": 0.929 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.857, "content_similarity": 0.116, "left_pr_number": 65286, "right_pr_number": 65773, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.338, "size_similarity": 0.929 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.126, "left_pr_number": 65809, "right_pr_number": 69105, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.316, "size_similarity": 0.52 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.857, "content_similarity": 0.131, "left_pr_number": 65286, "right_pr_number": 65809, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.293, "size_similarity": 0.56 } ], "pr_count": 4, "pr_numbers": [ 65286, 65773, 65809, 69105 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69105 ], "representative_pr_number": 65773, "representative_title": "fix(slack): print manifest JSON without box-drawing borders", "representative_url": "https://github.com/openclaw/openclaw/pull/65773", "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/setup-core.ts", "extensions/slack/src/shared.ts" ], "summary": "4 open PRs share weighted file overlap around `extensions/slack/src/setup-core.ts`, `extensions/slack/src/shared.ts`; representative PR #65773.", "title": "Scope: fix(slack): print manifest JSON without box-drawing borders" }, { "authors": [ "monasprox" ], "average_similarity": 0.388, "cluster_id": "pr-scope-37707-4", "kind": "pr_scope", "last_activity_at": "2026-04-18T10:03:07Z", "outside_window_prs": [ { "additions": 27, "author": "flychicken067", "changed_files": 1, "created_at": "2026-03-06T11:27:17Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37707/files", "html_url": "https://github.com/openclaw/openclaw/pull/37707", "merged": false, "number": 37707, "state": "open", "title": "fix(feishu): warn users when dmPolicy default changed from open to pa\u2026", "updated_at": "2026-04-20T04:37:08Z" }, { "additions": 45, "author": "RichardCao", "changed_files": 2, "created_at": "2026-03-24T04:21:36Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53377/files", "html_url": "https://github.com/openclaw/openclaw/pull/53377", "merged": false, "number": 53377, "state": "open", "title": "fix(feishu): make message-tool card schema optional", "updated_at": "2026-03-24T20:15:31Z" }, { "additions": 103, "author": "MoerAI", "changed_files": 3, "created_at": "2026-04-14T10:01:29Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66478/files", "html_url": "https://github.com/openclaw/openclaw/pull/66478", "merged": false, "number": 66478, "state": "open", "title": "fix(feishu): normalize unicode emojis to Feishu emoji type strings for reactions API (#66406)", "updated_at": "2026-04-18T08:43:33Z" } ], "pairwise": [ { "breadth_similarity": 0.333, "concentration_similarity": 0.981, "content_similarity": 0.424, "left_pr_number": 53377, "right_pr_number": 68443, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/channel.test.ts", "extensions/feishu/src/channel.ts" ], "similarity": 0.447, "size_similarity": 0.452 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.323, "left_pr_number": 37707, "right_pr_number": 53377, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/channel.ts" ], "similarity": 0.437, "size_similarity": 0.574 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.344, "left_pr_number": 37707, "right_pr_number": 66478, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/channel.ts" ], "similarity": 0.396, "size_similarity": 0.26 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.981, "content_similarity": 0.173, "left_pr_number": 66478, "right_pr_number": 68443, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/channel.ts" ], "similarity": 0.362, "size_similarity": 1.0 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.981, "content_similarity": 0.345, "left_pr_number": 37707, "right_pr_number": 68443, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/channel.ts" ], "similarity": 0.355, "size_similarity": 0.26 }, { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.184, "left_pr_number": 53377, "right_pr_number": 66478, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/channel.ts" ], "similarity": 0.33, "size_similarity": 0.452 } ], "pr_count": 4, "pr_numbers": [ 37707, 53377, 66478, 68443 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68443 ], "representative_pr_number": 53377, "representative_title": "fix(feishu): make message-tool card schema optional", "representative_url": "https://github.com/openclaw/openclaw/pull/53377", "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/channel.ts", "extensions/feishu/src/channel.test.ts" ], "summary": "4 open PRs share weighted file overlap around `extensions/feishu/src/channel.ts`, `extensions/feishu/src/channel.test.ts`; representative PR #53377.", "title": "Scope: fix(feishu): make message-tool card schema optional" }, { "authors": [ "JeevaByte" ], "average_similarity": 0.383, "cluster_id": "pr-scope-64650-4", "kind": "pr_scope", "last_activity_at": "2026-04-17T23:56:30Z", "outside_window_prs": [ { "additions": 222, "author": "chen-zhang-cs-code", "changed_files": 11, "created_at": "2026-04-11T05:01:08Z", "deletions": 21, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64650/files", "html_url": "https://github.com/openclaw/openclaw/pull/64650", "merged": false, "number": 64650, "state": "open", "title": "fix(telegram): honor channel-level topic prompts in multi-account mode", "updated_at": "2026-04-21T11:45:02Z" }, { "additions": 36, "author": "Rohan5commit", "changed_files": 3, "created_at": "2026-04-13T16:10:41Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66041/files", "html_url": "https://github.com/openclaw/openclaw/pull/66041", "merged": false, "number": 66041, "state": "open", "title": "fix(telegram): keep ack reactions without mentions", "updated_at": "2026-04-13T16:14:05Z" }, { "additions": 364, "author": "VACInc", "changed_files": 8, "created_at": "2026-04-14T01:17:18Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66247/files", "html_url": "https://github.com/openclaw/openclaw/pull/66247", "merged": false, "number": 66247, "state": "open", "title": "[codex] Telegram: let immediate queue modes bypass busy topic lanes", "updated_at": "2026-04-15T12:39:05Z" } ], "pairwise": [ { "breadth_similarity": 0.864, "concentration_similarity": 0.987, "content_similarity": 0.356, "left_pr_number": 64650, "right_pr_number": 66247, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot.create-telegram-bot.test.ts", "extensions/telegram/src/bot.ts" ], "similarity": 0.484, "size_similarity": 0.662 }, { "breadth_similarity": 0.47, "concentration_similarity": 0.986, "content_similarity": 0.375, "left_pr_number": 64650, "right_pr_number": 66041, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot-message-context.ts", "extensions/telegram/src/bot.create-telegram-bot.test.ts" ], "similarity": 0.382, "size_similarity": 0.152 }, { "breadth_similarity": 0.864, "concentration_similarity": 0.933, "content_similarity": 0.28, "left_pr_number": 66247, "right_pr_number": 68325, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions", "src" ], "shared_filenames": [ "extensions/telegram/src/bot.create-telegram-bot.test-harness.ts", "extensions/telegram/src/bot.create-telegram-bot.test.ts" ], "similarity": 0.362, "size_similarity": 0.223 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.919, "content_similarity": 0.232, "left_pr_number": 64650, "right_pr_number": 68325, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot.create-telegram-bot.test.ts" ], "similarity": 0.359, "size_similarity": 0.337 }, { "breadth_similarity": 0.47, "concentration_similarity": 0.905, "content_similarity": 0.28, "left_pr_number": 66041, "right_pr_number": 68325, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "docs", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot.create-telegram-bot.test.ts" ], "similarity": 0.356, "size_similarity": 0.451 }, { "breadth_similarity": 0.521, "concentration_similarity": 0.973, "content_similarity": 0.338, "left_pr_number": 66041, "right_pr_number": 66247, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot.create-telegram-bot.test.ts" ], "similarity": 0.353, "size_similarity": 0.101 } ], "pr_count": 4, "pr_numbers": [ 64650, 66041, 66247, 68325 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68325 ], "representative_pr_number": 64650, "representative_title": "fix(telegram): honor channel-level topic prompts in multi-account mode", "representative_url": "https://github.com/openclaw/openclaw/pull/64650", "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions", "docs", "src" ], "shared_filenames": [ "extensions/telegram/src/bot.create-telegram-bot.test.ts", "extensions/telegram/src/bot-message-context.ts", "extensions/telegram/src/bot.create-telegram-bot.test-harness.ts", "extensions/telegram/src/bot.ts" ], "summary": "4 open PRs share weighted file overlap around `extensions/telegram/src/bot.create-telegram-bot.test.ts`, `extensions/telegram/src/bot-message-context.ts`, `extensions/telegram/src/bot.create-telegram-bot.test-harness.ts`; representative PR #64650.", "title": "Scope: fix(telegram): honor channel-level topic prompts in multi-account mode" }, { "authors": [ "bek91" ], "average_similarity": 0.353, "cluster_id": "pr-scope-53966-4", "kind": "pr_scope", "last_activity_at": "2026-04-20T12:40:29Z", "outside_window_prs": [ { "additions": 117, "author": "deucemask", "changed_files": 10, "created_at": "2026-03-24T21:21:28Z", "deletions": 19, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53966/files", "html_url": "https://github.com/openclaw/openclaw/pull/53966", "merged": false, "number": 53966, "state": "open", "title": "fix(slack): include API error details in log messages", "updated_at": "2026-03-24T21:25:57Z" }, { "additions": 388, "author": "soichiyo", "changed_files": 10, "created_at": "2026-04-01T04:11:38Z", "deletions": 17, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/58731/files", "html_url": "https://github.com/openclaw/openclaw/pull/58731", "merged": false, "number": 58731, "state": "open", "title": "feat(slack): persistent thread participation + bounded fallback", "updated_at": "2026-04-18T14:34:17Z" }, { "additions": 193, "author": "bek91", "changed_files": 8, "created_at": "2026-04-13T05:27:07Z", "deletions": 22, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65731/files", "html_url": "https://github.com/openclaw/openclaw/pull/65731", "merged": false, "number": 65731, "state": "open", "title": "Slack: Annotate inbound Slack mentions in raw bodies", "updated_at": "2026-04-21T03:34:38Z" } ], "pairwise": [ { "breadth_similarity": 0.739, "concentration_similarity": 0.69, "content_similarity": 0.24, "left_pr_number": 65731, "right_pr_number": 68402, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions", "src" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.test.ts" ], "similarity": 0.395, "size_similarity": 0.79 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.72, "content_similarity": 0.228, "left_pr_number": 58731, "right_pr_number": 65731, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions", "src" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.ts" ], "similarity": 0.355, "size_similarity": 0.531 }, { "breadth_similarity": 0.775, "concentration_similarity": 0.878, "content_similarity": 0.194, "left_pr_number": 53966, "right_pr_number": 65731, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.ts" ], "similarity": 0.352, "size_similarity": 0.633 }, { "breadth_similarity": 0.755, "concentration_similarity": 0.97, "content_similarity": 0.171, "left_pr_number": 58731, "right_pr_number": 68402, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions", "src" ], "shared_filenames": [], "similarity": 0.345, "size_similarity": 0.672 }, { "breadth_similarity": 0.955, "concentration_similarity": 0.812, "content_similarity": 0.187, "left_pr_number": 53966, "right_pr_number": 68402, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/context.ts", "extensions/slack/src/monitor/provider.ts" ], "similarity": 0.342, "size_similarity": 0.5 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.843, "content_similarity": 0.225, "left_pr_number": 53966, "right_pr_number": 58731, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/dispatch.ts", "extensions/slack/src/monitor/message-handler/prepare.ts" ], "similarity": 0.33, "size_similarity": 0.336 } ], "pr_count": 4, "pr_numbers": [ 53966, 58731, 65731, 68402 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68402 ], "representative_pr_number": 65731, "representative_title": "Slack: Annotate inbound Slack mentions in raw bodies", "representative_url": "https://github.com/openclaw/openclaw/pull/65731", "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions", "src" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.ts", "extensions/slack/src/monitor/context.ts", "extensions/slack/src/monitor/message-handler/prepare.test.ts", "extensions/slack/src/monitor/message-handler/dispatch.ts", "extensions/slack/src/monitor/provider.ts" ], "summary": "4 open PRs share weighted file overlap around `extensions/slack/src/monitor/message-handler/prepare.ts`, `extensions/slack/src/monitor/context.ts`, `extensions/slack/src/monitor/message-handler/prepare.test.ts`; representative PR #65731.", "title": "Scope: Slack: Annotate inbound Slack mentions in raw bodies" }, { "authors": [ "armorbreak001" ], "average_similarity": 0.836, "cluster_id": "pr-scope-65176-3", "kind": "pr_scope", "last_activity_at": "2026-04-18T13:04:24Z", "outside_window_prs": [ { "additions": 59, "author": "draix", "changed_files": 2, "created_at": "2026-04-12T04:36:48Z", "deletions": 10, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65176/files", "html_url": "https://github.com/openclaw/openclaw/pull/65176", "merged": false, "number": 65176, "state": "open", "title": "fix: improve SSRF resolved-IP error message with remediation hint (#65153)", "updated_at": "2026-04-12T10:12:11Z" }, { "additions": 59, "author": "draix", "changed_files": 2, "created_at": "2026-04-12T04:41:44Z", "deletions": 10, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65179/files", "html_url": "https://github.com/openclaw/openclaw/pull/65179", "merged": false, "number": 65179, "state": "open", "title": "fix: apply payload.model override in cron jobs even when not in allowlist (#65129)", "updated_at": "2026-04-12T10:12:12Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 1.0, "left_pr_number": 65176, "right_pr_number": 65179, "shared_directories": [ "src/cron/isolated-agent", "src/infra/net", "src/cron", "src/infra", "src" ], "shared_filenames": [ "src/cron/isolated-agent/model-selection.ts", "src/infra/net/ssrf.ts" ], "similarity": 1.0, "size_similarity": 1.0 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.928, "content_similarity": 0.905, "left_pr_number": 65176, "right_pr_number": 68555, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/model-selection.ts" ], "similarity": 0.753, "size_similarity": 0.159 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.928, "content_similarity": 0.905, "left_pr_number": 65179, "right_pr_number": 68555, "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src" ], "shared_filenames": [ "src/cron/isolated-agent/model-selection.ts" ], "similarity": 0.753, "size_similarity": 0.159 } ], "pr_count": 3, "pr_numbers": [ 65176, 65179, 68555 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68555 ], "representative_pr_number": 65176, "representative_title": "fix: improve SSRF resolved-IP error message with remediation hint (#65153)", "representative_url": "https://github.com/openclaw/openclaw/pull/65176", "shared_directories": [ "src/cron/isolated-agent", "src/cron", "src", "src/infra/net", "src/infra" ], "shared_filenames": [ "src/cron/isolated-agent/model-selection.ts", "src/infra/net/ssrf.ts" ], "summary": "3 open PRs share weighted file overlap around `src/cron/isolated-agent/model-selection.ts`, `src/infra/net/ssrf.ts`; representative PR #65176.", "title": "Scope: fix: improve SSRF resolved-IP error message with remediation hint (#65153)" }, { "authors": [ "jinbowang1" ], "average_similarity": 0.806, "cluster_id": "pr-scope-38381-3", "kind": "pr_scope", "last_activity_at": "2026-04-20T16:26:36Z", "outside_window_prs": [ { "additions": 137, "author": "AytuncYildizli", "changed_files": 1, "created_at": "2026-03-06T23:03:17Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38381/files", "html_url": "https://github.com/openclaw/openclaw/pull/38381", "merged": false, "number": 38381, "state": "open", "title": "feat(coding-agent): add Codex CLI multi-agent orchestration support", "updated_at": "2026-04-21T04:31:22Z" }, { "additions": 168, "author": "FaiChou", "changed_files": 1, "created_at": "2026-03-24T09:35:58Z", "deletions": 142, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53585/files", "html_url": "https://github.com/openclaw/openclaw/pull/53585", "merged": false, "number": 53585, "state": "open", "title": "Skills: make coding-agent background-first with direct completion notifications", "updated_at": "2026-03-24T20:15:30Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.92, "left_pr_number": 38381, "right_pr_number": 53585, "shared_directories": [ "skills/coding-agent", "skills" ], "shared_filenames": [ "skills/coding-agent/SKILL.md" ], "similarity": 0.86, "size_similarity": 0.442 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.867, "left_pr_number": 38381, "right_pr_number": 69391, "shared_directories": [ "skills/coding-agent", "skills" ], "shared_filenames": [ "skills/coding-agent/SKILL.md" ], "similarity": 0.798, "size_similarity": 0.27 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.848, "left_pr_number": 53585, "right_pr_number": 69391, "shared_directories": [ "skills/coding-agent", "skills" ], "shared_filenames": [ "skills/coding-agent/SKILL.md" ], "similarity": 0.762, "size_similarity": 0.119 } ], "pr_count": 3, "pr_numbers": [ 38381, 53585, 69391 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69391 ], "representative_pr_number": 38381, "representative_title": "feat(coding-agent): add Codex CLI multi-agent orchestration support", "representative_url": "https://github.com/openclaw/openclaw/pull/38381", "shared_directories": [ "skills/coding-agent", "skills" ], "shared_filenames": [ "skills/coding-agent/SKILL.md" ], "summary": "3 open PRs share weighted file overlap around `skills/coding-agent/SKILL.md`; representative PR #38381.", "title": "Scope: feat(coding-agent): add Codex CLI multi-agent orchestration support" }, { "authors": [ "yfge" ], "average_similarity": 0.757, "cluster_id": "pr-scope-66511-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T07:09:37Z", "outside_window_prs": [ { "additions": 244, "author": "yfge", "changed_files": 14, "created_at": "2026-04-14T11:15:29Z", "deletions": 10, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66511/files", "html_url": "https://github.com/openclaw/openclaw/pull/66511", "merged": false, "number": 66511, "state": "open", "title": "fix: reduce ollama gemma4 cold-start penalty on first heavy turn", "updated_at": "2026-04-21T07:11:23Z" }, { "additions": 281, "author": "yfge", "changed_files": 11, "created_at": "2026-04-14T13:09:47Z", "deletions": 11, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66552/files", "html_url": "https://github.com/openclaw/openclaw/pull/66552", "merged": false, "number": 66552, "state": "open", "title": "fix: recover reasoning-only Ollama turns", "updated_at": "2026-04-21T07:17:10Z" } ], "pairwise": [ { "breadth_similarity": 0.893, "concentration_similarity": 0.956, "content_similarity": 0.741, "left_pr_number": 66511, "right_pr_number": 66552, "shared_directories": [ "src/agents/pi-embedded-runner/run", "extensions/ollama/src", "src/agents/pi-embedded-runner", "extensions/ollama", "src/agents", "src/config", "extensions", "memory", "src" ], "shared_filenames": [ "HEARTBEAT.md", "SOUL.md", "TOOLS.md", "extensions/ollama/src/stream-runtime.test.ts", "extensions/ollama/src/stream.ts", "src/agents/pi-embedded-runner/run/incomplete-turn.ts", "src/config/plugin-auto-enable.channels.test.ts", "src/config/plugin-auto-enable.prefer-over.ts" ], "similarity": 0.786, "size_similarity": 0.87 }, { "breadth_similarity": 0.875, "concentration_similarity": 0.994, "content_similarity": 0.71, "left_pr_number": 66511, "right_pr_number": 68465, "shared_directories": [ "src/agents/pi-embedded-runner/run", "extensions/ollama/src", "src/agents/pi-embedded-runner", "extensions/ollama", "src/agents", "src/config", "extensions", "memory", "src" ], "shared_filenames": [ "HEARTBEAT.md", "SOUL.md", "TOOLS.md", "extensions/ollama/src/stream-runtime.test.ts", "extensions/ollama/src/stream.ts", "memory/2026-04-17.md", "src/agents/pi-embedded-runner/run/incomplete-turn.ts", "src/config/plugin-auto-enable.channels.test.ts", "src/config/plugin-auto-enable.prefer-over.ts" ], "similarity": 0.766, "size_similarity": 0.879 }, { "breadth_similarity": 0.781, "concentration_similarity": 0.962, "content_similarity": 0.634, "left_pr_number": 66552, "right_pr_number": 68465, "shared_directories": [ "src/agents/pi-embedded-runner/run", "extensions/ollama/src", "src/agents/pi-embedded-runner", "extensions/ollama", "src/agents", "src/config", "extensions", "memory", "src" ], "shared_filenames": [ "HEARTBEAT.md", "SOUL.md", "TOOLS.md", "extensions/ollama/src/stream-runtime.test.ts", "extensions/ollama/src/stream.ts", "src/agents/pi-embedded-runner/run/incomplete-turn.ts", "src/config/plugin-auto-enable.channels.test.ts", "src/config/plugin-auto-enable.prefer-over.ts" ], "similarity": 0.719, "size_similarity": 0.99 } ], "pr_count": 3, "pr_numbers": [ 66511, 66552, 68465 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68465 ], "representative_pr_number": 66511, "representative_title": "fix: reduce ollama gemma4 cold-start penalty on first heavy turn", "representative_url": "https://github.com/openclaw/openclaw/pull/66511", "shared_directories": [ "src/agents/pi-embedded-runner/run", "extensions/ollama/src", "src/agents/pi-embedded-runner", "extensions/ollama", "src/config", "src/agents", "memory", "extensions" ], "shared_filenames": [ "HEARTBEAT.md", "SOUL.md", "TOOLS.md", "src/config/plugin-auto-enable.channels.test.ts", "src/config/plugin-auto-enable.prefer-over.ts", "extensions/ollama/src/stream-runtime.test.ts", "extensions/ollama/src/stream.ts", "src/agents/pi-embedded-runner/run/incomplete-turn.ts" ], "summary": "3 open PRs share weighted file overlap around `HEARTBEAT.md`, `SOUL.md`, `TOOLS.md`; representative PR #66511.", "title": "Scope: fix: reduce ollama gemma4 cold-start penalty on first heavy turn" }, { "authors": [ "ztexydt-cqh" ], "average_similarity": 0.729, "cluster_id": "pr-scope-38416-3", "kind": "pr_scope", "last_activity_at": "2026-04-20T01:59:40Z", "outside_window_prs": [ { "additions": 35, "author": "bidaiAI", "changed_files": 2, "created_at": "2026-03-07T00:12:50Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38416/files", "html_url": "https://github.com/openclaw/openclaw/pull/38416", "merged": false, "number": 38416, "state": "open", "title": "feat(security): Implement Westworld-style Cognitive Filter against Context Poisoning", "updated_at": "2026-04-21T04:31:48Z" }, { "additions": 38, "author": "bidaiAI", "changed_files": 3, "created_at": "2026-03-07T04:15:57Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38555/files", "html_url": "https://github.com/openclaw/openclaw/pull/38555", "merged": false, "number": 38555, "state": "open", "title": "fix(providers): resolve google provider mismatch for gemini 3.1 pro", "updated_at": "2026-04-21T04:33:24Z" } ], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 0.988, "content_similarity": 0.91, "left_pr_number": 38416, "right_pr_number": 38555, "shared_directories": [ "src/agents", "src/gateway", "src" ], "shared_filenames": [ "src/agents/pi-tool-definition-adapter.ts", "src/gateway/tools-invoke-http.ts" ], "similarity": 0.902, "size_similarity": 0.884 }, { "breadth_similarity": 0.75, "concentration_similarity": 0.895, "content_similarity": 0.717, "left_pr_number": 38416, "right_pr_number": 68070, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-tool-definition-adapter.ts" ], "similarity": 0.677, "size_similarity": 0.368 }, { "breadth_similarity": 0.583, "concentration_similarity": 0.907, "content_similarity": 0.652, "left_pr_number": 38555, "right_pr_number": 68070, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-tool-definition-adapter.ts" ], "similarity": 0.609, "size_similarity": 0.326 } ], "pr_count": 3, "pr_numbers": [ 38416, 38555, 68070 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68070 ], "representative_pr_number": 38416, "representative_title": "feat(security): Implement Westworld-style Cognitive Filter against Context Poisoning", "representative_url": "https://github.com/openclaw/openclaw/pull/38416", "shared_directories": [ "src/agents", "src", "src/gateway" ], "shared_filenames": [ "src/agents/pi-tool-definition-adapter.ts", "src/gateway/tools-invoke-http.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/pi-tool-definition-adapter.ts`, `src/gateway/tools-invoke-http.ts`; representative PR #38416.", "title": "Scope: feat(security): Implement Westworld-style Cognitive Filter against Context Poisoning" }, { "authors": [ "alexlomt" ], "average_similarity": 0.599, "cluster_id": "pr-scope-53997-3", "kind": "pr_scope", "last_activity_at": "2026-04-19T00:57:31Z", "outside_window_prs": [ { "additions": 1043, "author": "god59081", "changed_files": 5, "created_at": "2026-03-24T21:53:10Z", "deletions": 37, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53997/files", "html_url": "https://github.com/openclaw/openclaw/pull/53997", "merged": false, "number": 53997, "state": "open", "title": "acpx: add terminal-truth artifacts and strict terminal states", "updated_at": "2026-03-24T23:46:44Z" }, { "additions": 479, "author": "aryankinha", "changed_files": 10, "created_at": "2026-04-14T09:25:17Z", "deletions": 28, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66457/files", "html_url": "https://github.com/openclaw/openclaw/pull/66457", "merged": false, "number": 66457, "state": "open", "title": "fix(logging): implement log file rotation and update related tests", "updated_at": "2026-04-15T01:44:10Z" } ], "pairwise": [ { "breadth_similarity": 0.2, "concentration_similarity": 0.771, "content_similarity": 0.806, "left_pr_number": 66457, "right_pr_number": 68741, "shared_directories": [ "extensions/acpx/src", "extensions/acpx", "extensions" ], "shared_filenames": [ "extensions/acpx/src/runtime.test.ts", "extensions/acpx/src/runtime.ts" ], "similarity": 0.714, "size_similarity": 0.607 }, { "breadth_similarity": 0.367, "concentration_similarity": 0.553, "content_similarity": 0.635, "left_pr_number": 53997, "right_pr_number": 68741, "shared_directories": [ "extensions/acpx/src", "extensions/acpx", "extensions" ], "shared_filenames": [ "extensions/acpx/src/runtime.test.ts", "extensions/acpx/src/runtime.ts" ], "similarity": 0.552, "size_similarity": 0.285 }, { "breadth_similarity": 0.55, "concentration_similarity": 0.782, "content_similarity": 0.524, "left_pr_number": 53997, "right_pr_number": 66457, "shared_directories": [ "extensions/acpx/src", "extensions/acpx", "extensions" ], "shared_filenames": [ "extensions/acpx/src/runtime.test.ts", "extensions/acpx/src/runtime.ts" ], "similarity": 0.532, "size_similarity": 0.469 } ], "pr_count": 3, "pr_numbers": [ 53997, 66457, 68741 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68741 ], "representative_pr_number": 68741, "representative_title": "fix(acpx): avoid per-session MCP on openclaw bridge", "representative_url": "https://github.com/openclaw/openclaw/pull/68741", "shared_directories": [ "extensions/acpx/src", "extensions/acpx", "extensions" ], "shared_filenames": [ "extensions/acpx/src/runtime.ts", "extensions/acpx/src/runtime.test.ts" ], "summary": "3 open PRs share weighted file overlap around `extensions/acpx/src/runtime.ts`, `extensions/acpx/src/runtime.test.ts`; representative PR #68741.", "title": "Scope: fix(acpx): avoid per-session MCP on openclaw bridge" }, { "authors": [ "MoerAI" ], "average_similarity": 0.588, "cluster_id": "pr-scope-63847-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T10:15:59Z", "outside_window_prs": [ { "additions": 13, "author": "zozo123", "changed_files": 2, "created_at": "2026-04-09T16:34:16Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63847/files", "html_url": "https://github.com/openclaw/openclaw/pull/63847", "merged": false, "number": 63847, "state": "open", "title": "fix(cli): load plugins for memory commands so embedding providers register", "updated_at": "2026-04-12T07:48:24Z" }, { "additions": 94, "author": "leonardsellem", "changed_files": 4, "created_at": "2026-04-13T08:21:01Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65800/files", "html_url": "https://github.com/openclaw/openclaw/pull/65800", "merged": false, "number": 65800, "state": "open", "title": "fix(cli): load runtime plugins for wiki commands", "updated_at": "2026-04-13T11:25:23Z" } ], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.687, "left_pr_number": 63847, "right_pr_number": 69676, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/command-catalog.ts", "src/cli/command-startup-policy.test.ts" ], "similarity": 0.729, "size_similarity": 0.765 }, { "breadth_similarity": 0.625, "concentration_similarity": 0.596, "content_similarity": 0.643, "left_pr_number": 65800, "right_pr_number": 69676, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/command-catalog.ts", "src/cli/command-path-policy.test.ts", "src/cli/command-startup-policy.test.ts" ], "similarity": 0.57, "size_similarity": 0.181 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.596, "content_similarity": 0.523, "left_pr_number": 63847, "right_pr_number": 65800, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/command-catalog.ts", "src/cli/command-startup-policy.test.ts" ], "similarity": 0.466, "size_similarity": 0.138 } ], "pr_count": 3, "pr_numbers": [ 63847, 65800, 69676 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69676 ], "representative_pr_number": 69676, "representative_title": "fix(memory): recognize github-copilot as valid memory embedding provider (#69180)", "representative_url": "https://github.com/openclaw/openclaw/pull/69676", "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/command-startup-policy.test.ts", "src/cli/command-catalog.ts", "src/cli/command-path-policy.test.ts" ], "summary": "3 open PRs share weighted file overlap around `src/cli/command-startup-policy.test.ts`, `src/cli/command-catalog.ts`, `src/cli/command-path-policy.test.ts`; representative PR #69676.", "title": "Scope: fix(memory): recognize github-copilot as valid memory embedding provider (#69180)" }, { "authors": [ "jgallowa07" ], "average_similarity": 0.566, "cluster_id": "pr-scope-64184-3", "kind": "pr_scope", "last_activity_at": "2026-04-16T17:45:54Z", "outside_window_prs": [ { "additions": 8, "author": "FroeMic", "changed_files": 3, "created_at": "2026-04-10T07:57:00Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64184/files", "html_url": "https://github.com/openclaw/openclaw/pull/64184", "merged": false, "number": 64184, "state": "open", "title": "fix(slack): propagate file IDs through media pipeline to agent context", "updated_at": "2026-04-10T10:12:30Z" }, { "additions": 9, "author": "slepybear", "changed_files": 3, "created_at": "2026-04-10T17:25:57Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64429/files", "html_url": "https://github.com/openclaw/openclaw/pull/64429", "merged": false, "number": 64429, "state": "open", "title": "feat(slack): add fileId field to SlackMediaResult type", "updated_at": "2026-04-12T01:43:49Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.944, "content_similarity": 0.994, "left_pr_number": 64184, "right_pr_number": 64429, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "src/auto-reply", "extensions", "src" ], "shared_filenames": [ "extensions/slack/src/monitor/media.ts", "extensions/slack/src/monitor/message-handler/prepare.ts", "src/auto-reply/templating.ts" ], "similarity": 0.976, "size_similarity": 0.889 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.778, "content_similarity": 0.195, "left_pr_number": 64429, "right_pr_number": 67761, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.ts" ], "similarity": 0.365, "size_similarity": 0.6 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.833, "content_similarity": 0.194, "left_pr_number": 64184, "right_pr_number": 67761, "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.ts" ], "similarity": 0.357, "size_similarity": 0.533 } ], "pr_count": 3, "pr_numbers": [ 64184, 64429, 67761 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67761 ], "representative_pr_number": 64429, "representative_title": "feat(slack): add fileId field to SlackMediaResult type", "representative_url": "https://github.com/openclaw/openclaw/pull/64429", "shared_directories": [ "extensions/slack/src/monitor/message-handler", "extensions/slack/src/monitor", "extensions/slack/src", "extensions/slack", "extensions", "src/auto-reply", "src" ], "shared_filenames": [ "extensions/slack/src/monitor/message-handler/prepare.ts", "extensions/slack/src/monitor/media.ts", "src/auto-reply/templating.ts" ], "summary": "3 open PRs share weighted file overlap around `extensions/slack/src/monitor/message-handler/prepare.ts`, `extensions/slack/src/monitor/media.ts`, `src/auto-reply/templating.ts`; representative PR #64429.", "title": "Scope: feat(slack): add fileId field to SlackMediaResult type" }, { "authors": [ "neeravmakwana" ], "average_similarity": 0.546, "cluster_id": "pr-scope-58034-3", "kind": "pr_scope", "last_activity_at": "2026-04-17T12:53:17Z", "outside_window_prs": [ { "additions": 409, "author": "cosmicnet", "changed_files": 16, "created_at": "2026-03-31T01:09:11Z", "deletions": 15, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/58034/files", "html_url": "https://github.com/openclaw/openclaw/pull/58034", "merged": false, "number": 58034, "state": "open", "title": "fix(net): harden trusted env proxy fetch guard and add explicit web_fetch opt-in", "updated_at": "2026-04-21T11:34:12Z" }, { "additions": 77, "author": "friendfish", "changed_files": 2, "created_at": "2026-04-02T05:13:59Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/59443/files", "html_url": "https://github.com/openclaw/openclaw/pull/59443", "merged": false, "number": 59443, "state": "open", "title": "fix(fetch-guard): skip DNS pre-flight in trusted-env-proxy mode when proxy is configured", "updated_at": "2026-04-20T01:07:25Z" } ], "pairwise": [ { "breadth_similarity": 0.583, "concentration_similarity": 0.978, "content_similarity": 0.847, "left_pr_number": 59443, "right_pr_number": 68114, "shared_directories": [ "src/infra/net", "src/infra", "src" ], "shared_filenames": [ "src/infra/net/fetch-guard.ssrf.test.ts", "src/infra/net/fetch-guard.ts" ], "similarity": 0.782, "size_similarity": 0.541 }, { "breadth_similarity": 0.146, "concentration_similarity": 0.733, "content_similarity": 0.504, "left_pr_number": 58034, "right_pr_number": 59443, "shared_directories": [ "src/infra/net", "src/infra", "src" ], "shared_filenames": [ "src/infra/net/fetch-guard.ssrf.test.ts", "src/infra/net/fetch-guard.ts" ], "similarity": 0.434, "size_similarity": 0.2 }, { "breadth_similarity": 0.26, "concentration_similarity": 0.755, "content_similarity": 0.487, "left_pr_number": 58034, "right_pr_number": 68114, "shared_directories": [ "src/infra/net", "src/infra", "src" ], "shared_filenames": [ "src/infra/net/fetch-guard.ssrf.test.ts", "src/infra/net/fetch-guard.ts" ], "similarity": 0.421, "size_similarity": 0.108 } ], "pr_count": 3, "pr_numbers": [ 58034, 59443, 68114 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68114 ], "representative_pr_number": 59443, "representative_title": "fix(fetch-guard): skip DNS pre-flight in trusted-env-proxy mode when proxy is configured", "representative_url": "https://github.com/openclaw/openclaw/pull/59443", "shared_directories": [ "src/infra/net", "src/infra", "src" ], "shared_filenames": [ "src/infra/net/fetch-guard.ssrf.test.ts", "src/infra/net/fetch-guard.ts" ], "summary": "3 open PRs share weighted file overlap around `src/infra/net/fetch-guard.ssrf.test.ts`, `src/infra/net/fetch-guard.ts`; representative PR #59443.", "title": "Scope: fix(fetch-guard): skip DNS pre-flight in trusted-env-proxy mode when proxy is configured" }, { "authors": [ "neeravmakwana" ], "average_similarity": 0.543, "cluster_id": "pr-scope-64263-3", "kind": "pr_scope", "last_activity_at": "2026-04-16T00:51:27Z", "outside_window_prs": [ { "additions": 1914, "author": "100yenadmin", "changed_files": 38, "created_at": "2026-04-10T10:51:57Z", "deletions": 110, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64263/files", "html_url": "https://github.com/openclaw/openclaw/pull/64263", "merged": false, "number": 64263, "state": "open", "title": "feat(agents): model-aware AGENTS file selection with bootstrapSignatureMode toggle", "updated_at": "2026-04-13T03:02:05Z" }, { "additions": 2518, "author": "100yenadmin", "changed_files": 43, "created_at": "2026-04-10T10:52:18Z", "deletions": 113, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64265/files", "html_url": "https://github.com/openclaw/openclaw/pull/64265", "merged": false, "number": 64265, "state": "open", "title": "docs(agents): document model-aware AGENTS, bootstrapSignatureMode, and add lenient-mode tests", "updated_at": "2026-04-13T03:01:59Z" } ], "pairwise": [ { "breadth_similarity": 0.775, "concentration_similarity": 0.928, "content_similarity": 0.895, "left_pr_number": 64263, "right_pr_number": 64265, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/cli-runner", "src/agents/pi-embedded-runner", "src/agents/pi-hooks", "src/auto-reply/reply", "src/gateway/server-methods", "src/agents", "src/auto-reply", "src/config", "src/gateway" ], "shared_filenames": [ "src/agents/agent-scope.ts", "src/agents/bootstrap-files.test.ts", "src/agents/bootstrap-files.ts", "src/agents/bootstrap-hooks.ts", "src/agents/cli-runner.spawn.test.ts", "src/agents/cli-runner.test-support.ts", "src/agents/cli-runner/prepare.ts", "src/agents/pi-embedded-runner/compact.ts", "src/agents/pi-embedded-runner/compact.types.ts", "src/agents/pi-embedded-runner/extensions.ts" ], "similarity": 0.866, "size_similarity": 0.769 }, { "breadth_similarity": 0.305, "concentration_similarity": 0.939, "content_similarity": 0.437, "left_pr_number": 64265, "right_pr_number": 67447, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "docs/.generated", "docs/gateway", "src/agents", "src/config", "docs", "src" ], "shared_filenames": [ "CHANGELOG.md", "docs/.generated/config-baseline.sha256", "docs/gateway/configuration-reference.md", "src/agents/bootstrap-files.test.ts", "src/agents/bootstrap-files.ts", "src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-injection.test.ts", "src/config/schema.base.generated.ts", "src/config/schema.help.ts", "src/config/types.agent-defaults.ts" ], "similarity": 0.385, "size_similarity": 0.012 }, { "breadth_similarity": 0.418, "concentration_similarity": 0.868, "content_similarity": 0.413, "left_pr_number": 64263, "right_pr_number": 67447, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src/config", "src" ], "shared_filenames": [ "src/agents/bootstrap-files.test.ts", "src/agents/bootstrap-files.ts", "src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-injection.test.ts", "src/config/schema.base.generated.ts", "src/config/schema.help.ts", "src/config/types.agent-defaults.ts" ], "similarity": 0.377, "size_similarity": 0.016 } ], "pr_count": 3, "pr_numbers": [ 64263, 64265, 67447 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67447 ], "representative_pr_number": 64265, "representative_title": "docs(agents): document model-aware AGENTS, bootstrapSignatureMode, and add lenient-mode tests", "representative_url": "https://github.com/openclaw/openclaw/pull/64265", "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/config", "src/agents", "src", "src/agents/pi-hooks", "src/agents/cli-runner", "src/gateway/server-methods" ], "shared_filenames": [ "src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-injection.test.ts", "src/agents/bootstrap-files.test.ts", "src/agents/bootstrap-files.ts", "src/config/types.agent-defaults.ts", "src/config/schema.help.ts", "src/config/schema.base.generated.ts", "src/agents/bootstrap-hooks.ts", "src/agents/pi-hooks/compaction-safeguard-runtime.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-injection.test.ts`, `src/agents/bootstrap-files.test.ts`, `src/agents/bootstrap-files.ts`; representative PR #64265.", "title": "Scope: docs(agents): document model-aware AGENTS, bootstrapSignatureMode, and add lenient-mode tests" }, { "authors": [ "neeravmakwana" ], "average_similarity": 0.521, "cluster_id": "pr-scope-37195-3", "kind": "pr_scope", "last_activity_at": "2026-04-19T01:04:00Z", "outside_window_prs": [ { "additions": 61, "author": "KEHANG", "changed_files": 1, "created_at": "2026-03-06T04:53:23Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37195/files", "html_url": "https://github.com/openclaw/openclaw/pull/37195", "merged": false, "number": 37195, "state": "open", "title": "Tests: cover PDF maxBytesMb enforcement", "updated_at": "2026-04-19T04:31:51Z" }, { "additions": 90, "author": "lhy1024", "changed_files": 3, "created_at": "2026-04-13T06:10:52Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65746/files", "html_url": "https://github.com/openclaw/openclaw/pull/65746", "merged": false, "number": 65746, "state": "open", "title": "fix(pdf): resolve custom provider models with config-aware resolver", "updated_at": "2026-04-13T06:41:49Z" } ], "pairwise": [ { "breadth_similarity": 0.542, "concentration_similarity": 0.711, "content_similarity": 0.615, "left_pr_number": 65746, "right_pr_number": 68747, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/pdf-tool.test.ts", "src/agents/tools/pdf-tool.ts" ], "similarity": 0.582, "size_similarity": 0.413 }, { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.469, "left_pr_number": 37195, "right_pr_number": 65746, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/pdf-tool.test.ts" ], "similarity": 0.544, "size_similarity": 0.663 }, { "breadth_similarity": 0.292, "concentration_similarity": 0.711, "content_similarity": 0.398, "left_pr_number": 37195, "right_pr_number": 68747, "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/pdf-tool.test.ts" ], "similarity": 0.437, "size_similarity": 0.623 } ], "pr_count": 3, "pr_numbers": [ 37195, 65746, 68747 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68747 ], "representative_pr_number": 65746, "representative_title": "fix(pdf): resolve custom provider models with config-aware resolver", "representative_url": "https://github.com/openclaw/openclaw/pull/65746", "shared_directories": [ "src/agents/tools", "src/agents", "src" ], "shared_filenames": [ "src/agents/tools/pdf-tool.test.ts", "src/agents/tools/pdf-tool.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/tools/pdf-tool.test.ts`, `src/agents/tools/pdf-tool.ts`; representative PR #65746.", "title": "Scope: fix(pdf): resolve custom provider models with config-aware resolver" }, { "authors": [ "Jmarzab" ], "average_similarity": 0.501, "cluster_id": "pr-scope-60063-3", "kind": "pr_scope", "last_activity_at": "2026-04-19T20:39:14Z", "outside_window_prs": [ { "additions": 112, "author": "jlapenna", "changed_files": 4, "created_at": "2026-04-03T04:12:38Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/60063/files", "html_url": "https://github.com/openclaw/openclaw/pull/60063", "merged": false, "number": 60063, "state": "open", "title": "fix(streaming): resolve overlapping chunk duplication in chat stream assembler", "updated_at": "2026-04-18T20:45:59Z" }, { "additions": 606, "author": "samzong", "changed_files": 2, "created_at": "2026-04-08T16:28:36Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63244/files", "html_url": "https://github.com/openclaw/openclaw/pull/63244", "merged": false, "number": 63244, "state": "open", "title": "[Feat] surface spawnedBy in chat and agent broadcast payloads", "updated_at": "2026-04-11T08:24:03Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.728, "left_pr_number": 63244, "right_pr_number": 69084, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-chat.agent-events.test.ts", "src/gateway/server-chat.ts" ], "similarity": 0.667, "size_similarity": 0.051 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.513, "content_similarity": 0.477, "left_pr_number": 60063, "right_pr_number": 69084, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-chat.agent-events.test.ts", "src/gateway/server-chat.ts" ], "similarity": 0.441, "size_similarity": 0.265 }, { "breadth_similarity": 0.417, "concentration_similarity": 0.513, "content_similarity": 0.426, "left_pr_number": 60063, "right_pr_number": 63244, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-chat.agent-events.test.ts", "src/gateway/server-chat.ts" ], "similarity": 0.394, "size_similarity": 0.193 } ], "pr_count": 3, "pr_numbers": [ 60063, 63244, 69084 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69084 ], "representative_pr_number": 69084, "representative_title": "fix(webchat): hide heartbeat chat output using showAlerts", "representative_url": "https://github.com/openclaw/openclaw/pull/69084", "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-chat.agent-events.test.ts", "src/gateway/server-chat.ts" ], "summary": "3 open PRs share weighted file overlap around `src/gateway/server-chat.agent-events.test.ts`, `src/gateway/server-chat.ts`; representative PR #69084.", "title": "Scope: fix(webchat): hide heartbeat chat output using showAlerts" }, { "authors": [ "HowdyDooToYou" ], "average_similarity": 0.488, "cluster_id": "pr-scope-58823-3", "kind": "pr_scope", "last_activity_at": "2026-04-20T13:41:52Z", "outside_window_prs": [ { "additions": 100, "author": "joeykrug", "changed_files": 4, "created_at": "2026-04-01T07:25:23Z", "deletions": 9, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/58823/files", "html_url": "https://github.com/openclaw/openclaw/pull/58823", "merged": false, "number": 58823, "state": "open", "title": "fix(agents): restore global subagent model default priority over agent own model", "updated_at": "2026-04-21T17:41:04Z" }, { "additions": 96, "author": "HowdyDooToYou", "changed_files": 2, "created_at": "2026-04-02T13:08:42Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/59681/files", "html_url": "https://github.com/openclaw/openclaw/pull/59681", "merged": false, "number": 59681, "state": "open", "title": "fix(agents): resolve model aliases in sessions_spawn", "updated_at": "2026-04-19T17:09:52Z" } ], "pairwise": [ { "breadth_similarity": 0.417, "concentration_similarity": 0.927, "content_similarity": 0.49, "left_pr_number": 58823, "right_pr_number": 59681, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/model-selection.test.ts", "src/agents/model-selection.ts" ], "similarity": 0.567, "size_similarity": 0.908 }, { "breadth_similarity": 0.619, "concentration_similarity": 0.601, "content_similarity": 0.502, "left_pr_number": 58823, "right_pr_number": 69029, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/model-selection.test.ts", "src/agents/model-selection.ts" ], "similarity": 0.52, "size_similarity": 0.509 }, { "breadth_similarity": 0.393, "concentration_similarity": 0.528, "content_similarity": 0.346, "left_pr_number": 59681, "right_pr_number": 69029, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/model-selection.test.ts", "src/agents/model-selection.ts" ], "similarity": 0.377, "size_similarity": 0.463 } ], "pr_count": 3, "pr_numbers": [ 58823, 59681, 69029 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69029 ], "representative_pr_number": 58823, "representative_title": "fix(agents): restore global subagent model default priority over agent own model", "representative_url": "https://github.com/openclaw/openclaw/pull/58823", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/model-selection.test.ts", "src/agents/model-selection.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/model-selection.test.ts`, `src/agents/model-selection.ts`; representative PR #58823.", "title": "Scope: fix(agents): restore global subagent model default priority over agent own model" }, { "authors": [ "GaosCode" ], "average_similarity": 0.487, "cluster_id": "pr-scope-53496-3", "kind": "pr_scope", "last_activity_at": "2026-04-18T06:59:25Z", "outside_window_prs": [ { "additions": 322, "author": "chunyuforka", "changed_files": 6, "created_at": "2026-03-24T07:12:01Z", "deletions": 17, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53496/files", "html_url": "https://github.com/openclaw/openclaw/pull/53496", "merged": false, "number": 53496, "state": "open", "title": "feat(feishu): support toolsBySender for group policies", "updated_at": "2026-03-24T20:15:30Z" }, { "additions": 144, "author": "byungsker", "changed_files": 11, "created_at": "2026-03-24T23:04:03Z", "deletions": 21, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/54058/files", "html_url": "https://github.com/openclaw/openclaw/pull/54058", "merged": true, "number": 54058, "state": "open", "title": "fix(feishu): default requireMention to false when groupPolicy is open", "updated_at": "2026-03-24T23:10:57Z" } ], "pairwise": [ { "breadth_similarity": 0.485, "concentration_similarity": 0.989, "content_similarity": 0.547, "left_pr_number": 54058, "right_pr_number": 68444, "shared_directories": [ "extensions/feishu/src", "docs/channels", "extensions/feishu", "docs", "extensions" ], "shared_filenames": [ "docs/channels/feishu.md", "extensions/feishu/src/bot.test.ts", "extensions/feishu/src/bot.ts", "extensions/feishu/src/config-schema.test.ts", "extensions/feishu/src/config-schema.ts", "extensions/feishu/src/policy.ts" ], "similarity": 0.559, "size_similarity": 0.525 }, { "breadth_similarity": 0.929, "concentration_similarity": 0.891, "content_similarity": 0.389, "left_pr_number": 53496, "right_pr_number": 68444, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "docs", "extensions" ], "shared_filenames": [ "extensions/feishu/src/config-schema.test.ts", "extensions/feishu/src/config-schema.ts", "extensions/feishu/src/policy.test.ts", "extensions/feishu/src/policy.ts" ], "similarity": 0.548, "size_similarity": 0.926 }, { "breadth_similarity": 0.439, "concentration_similarity": 0.879, "content_similarity": 0.276, "left_pr_number": 53496, "right_pr_number": 54058, "shared_directories": [ "extensions/feishu/src", "docs/.generated", "extensions/feishu", "docs", "extensions" ], "shared_filenames": [ "docs/.generated/config-baseline.json", "docs/.generated/config-baseline.jsonl", "extensions/feishu/src/config-schema.test.ts", "extensions/feishu/src/config-schema.ts", "extensions/feishu/src/policy.ts" ], "similarity": 0.354, "size_similarity": 0.487 } ], "pr_count": 3, "pr_numbers": [ 53496, 54058, 68444 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68444 ], "representative_pr_number": 68444, "representative_title": "fix(feishu): stop auto-forwarding mentions when disabled", "representative_url": "https://github.com/openclaw/openclaw/pull/68444", "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "docs", "extensions", "docs/channels", "docs/.generated" ], "shared_filenames": [ "extensions/feishu/src/policy.ts", "extensions/feishu/src/config-schema.test.ts", "extensions/feishu/src/config-schema.ts", "extensions/feishu/src/policy.test.ts", "docs/channels/feishu.md", "extensions/feishu/src/bot.test.ts", "extensions/feishu/src/bot.ts", "docs/.generated/config-baseline.jsonl" ], "summary": "3 open PRs share weighted file overlap around `extensions/feishu/src/policy.ts`, `extensions/feishu/src/config-schema.test.ts`, `extensions/feishu/src/config-schema.ts`; representative PR #68444.", "title": "Scope: fix(feishu): stop auto-forwarding mentions when disabled" }, { "authors": [ "taitruong" ], "average_similarity": 0.45, "cluster_id": "pr-scope-64653-3", "kind": "pr_scope", "last_activity_at": "2026-04-20T22:09:56Z", "outside_window_prs": [ { "additions": 144, "author": "rubening", "changed_files": 3, "created_at": "2026-04-11T05:09:52Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64653/files", "html_url": "https://github.com/openclaw/openclaw/pull/64653", "merged": false, "number": 64653, "state": "open", "title": "fix: honor provider-prefixed configured model ids for routed providers", "updated_at": "2026-04-12T23:45:47Z" }, { "additions": 263, "author": "mobilinkd", "changed_files": 12, "created_at": "2026-04-11T22:37:23Z", "deletions": 9, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65030/files", "html_url": "https://github.com/openclaw/openclaw/pull/65030", "merged": false, "number": 65030, "state": "open", "title": "fix(amazon-bedrock): track literal contextWindow fallbacks with provenance flag", "updated_at": "2026-04-13T13:17:07Z" } ], "pairwise": [ { "breadth_similarity": 0.325, "concentration_similarity": 0.712, "content_similarity": 0.454, "left_pr_number": 64653, "right_pr_number": 65030, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/model.test.ts", "src/agents/pi-embedded-runner/model.ts" ], "similarity": 0.469, "size_similarity": 0.555 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.777, "content_similarity": 0.344, "left_pr_number": 65030, "right_pr_number": 69464, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src/config", "extensions", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/model.test.ts", "src/agents/pi-embedded-runner/model.ts", "src/config/types.models.ts" ], "similarity": 0.447, "size_similarity": 0.562 }, { "breadth_similarity": 0.317, "concentration_similarity": 0.488, "content_similarity": 0.471, "left_pr_number": 64653, "right_pr_number": 69464, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "docs", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/model.test.ts", "src/agents/pi-embedded-runner/model.ts" ], "similarity": 0.433, "size_similarity": 0.312 } ], "pr_count": 3, "pr_numbers": [ 64653, 65030, 69464 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69464 ], "representative_pr_number": 65030, "representative_title": "fix(amazon-bedrock): track literal contextWindow fallbacks with provenance flag", "representative_url": "https://github.com/openclaw/openclaw/pull/65030", "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src", "src/config", "docs", "extensions" ], "shared_filenames": [ "src/agents/pi-embedded-runner/model.test.ts", "src/agents/pi-embedded-runner/model.ts", "src/config/types.models.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/pi-embedded-runner/model.test.ts`, `src/agents/pi-embedded-runner/model.ts`, `src/config/types.models.ts`; representative PR #65030.", "title": "Scope: fix(amazon-bedrock): track literal contextWindow fallbacks with provenance flag" }, { "authors": [ "miyago9267" ], "average_similarity": 0.446, "cluster_id": "pr-scope-37289-3", "kind": "pr_scope", "last_activity_at": "2026-04-18T09:22:33Z", "outside_window_prs": [ { "additions": 43, "author": "yyobject", "changed_files": 7, "created_at": "2026-03-06T06:27:12Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37289/files", "html_url": "https://github.com/openclaw/openclaw/pull/37289", "merged": false, "number": 37289, "state": "open", "title": "Cron: add webhookSsrfPolicy config to allow private-network webhook targets", "updated_at": "2026-04-19T04:32:24Z" }, { "additions": 31, "author": "andyk-ms", "changed_files": 7, "created_at": "2026-03-28T17:34:32Z", "deletions": 15, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/56545/files", "html_url": "https://github.com/openclaw/openclaw/pull/56545", "merged": false, "number": 56545, "state": "open", "title": "feat(cron): add agent-turn mode for failure alerts", "updated_at": "2026-04-19T04:31:03Z" } ], "pairwise": [ { "breadth_similarity": 0.764, "concentration_similarity": 0.887, "content_similarity": 0.484, "left_pr_number": 37289, "right_pr_number": 68055, "shared_directories": [ "src/config", "src/gateway", "src" ], "shared_filenames": [ "CHANGELOG.md", "src/config/schema.help.ts", "src/config/schema.labels.ts", "src/config/types.cron.ts", "src/config/zod-schema.ts", "src/gateway/server-cron.ts" ], "similarity": 0.529, "size_similarity": 0.458 }, { "breadth_similarity": 0.8, "concentration_similarity": 0.729, "content_similarity": 0.311, "left_pr_number": 37289, "right_pr_number": 56545, "shared_directories": [ "src/config", "src/gateway", "src" ], "shared_filenames": [ "src/config/types.cron.ts", "src/config/zod-schema.ts", "src/gateway/server-cron.ts" ], "similarity": 0.478, "size_similarity": 0.957 }, { "breadth_similarity": 0.789, "concentration_similarity": 0.842, "content_similarity": 0.197, "left_pr_number": 56545, "right_pr_number": 68055, "shared_directories": [ "src/config", "src/gateway", "src" ], "shared_filenames": [ "src/config/types.cron.ts", "src/config/zod-schema.ts", "src/gateway/server-cron.ts" ], "similarity": 0.331, "size_similarity": 0.479 } ], "pr_count": 3, "pr_numbers": [ 37289, 56545, 68055 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68055 ], "representative_pr_number": 37289, "representative_title": "Cron: add webhookSsrfPolicy config to allow private-network webhook targets", "representative_url": "https://github.com/openclaw/openclaw/pull/37289", "shared_directories": [ "src/config", "src/gateway", "src" ], "shared_filenames": [ "src/config/types.cron.ts", "src/gateway/server-cron.ts", "src/config/zod-schema.ts", "src/config/schema.labels.ts", "src/config/schema.help.ts", "CHANGELOG.md" ], "summary": "3 open PRs share weighted file overlap around `src/config/types.cron.ts`, `src/gateway/server-cron.ts`, `src/config/zod-schema.ts`; representative PR #37289.", "title": "Scope: Cron: add webhookSsrfPolicy config to allow private-network webhook targets" }, { "authors": [ "creativerezz" ], "average_similarity": 0.442, "cluster_id": "pr-scope-63379-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T11:16:52Z", "outside_window_prs": [ { "additions": 250, "author": "mrosmarin", "changed_files": 8, "created_at": "2026-04-08T21:33:18Z", "deletions": 22, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63379/files", "html_url": "https://github.com/openclaw/openclaw/pull/63379", "merged": false, "number": 63379, "state": "open", "title": "Feature/trusted proxy loopback", "updated_at": "2026-04-10T13:22:56Z" }, { "additions": 481, "author": "jetd1", "changed_files": 11, "created_at": "2026-04-10T05:48:19Z", "deletions": 59, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64122/files", "html_url": "https://github.com/openclaw/openclaw/pull/64122", "merged": false, "number": 64122, "state": "open", "title": "fix(gateway): allow password fallback for trusted-proxy auth mode", "updated_at": "2026-04-19T14:18:09Z" } ], "pairwise": [ { "breadth_similarity": 0.614, "concentration_similarity": 0.921, "content_similarity": 0.47, "left_pr_number": 63379, "right_pr_number": 64122, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/auth.test.ts", "src/gateway/auth.ts" ], "similarity": 0.512, "size_similarity": 0.504 }, { "breadth_similarity": 0.25, "concentration_similarity": 0.901, "content_similarity": 0.463, "left_pr_number": 63379, "right_pr_number": 69638, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/auth.test.ts", "src/gateway/auth.ts" ], "similarity": 0.413, "size_similarity": 0.125 }, { "breadth_similarity": 0.341, "concentration_similarity": 0.98, "content_similarity": 0.439, "left_pr_number": 64122, "right_pr_number": 69638, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/auth.test.ts", "src/gateway/auth.ts" ], "similarity": 0.4, "size_similarity": 0.063 } ], "pr_count": 3, "pr_numbers": [ 63379, 64122, 69638 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69638 ], "representative_pr_number": 63379, "representative_title": "Feature/trusted proxy loopback", "representative_url": "https://github.com/openclaw/openclaw/pull/63379", "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/auth.test.ts", "src/gateway/auth.ts" ], "summary": "3 open PRs share weighted file overlap around `src/gateway/auth.test.ts`, `src/gateway/auth.ts`; representative PR #63379.", "title": "Scope: Feature/trusted proxy loopback" }, { "authors": [ "1aifanatic" ], "average_similarity": 0.42, "cluster_id": "pr-scope-38041-3", "kind": "pr_scope", "last_activity_at": "2026-04-18T01:40:28Z", "outside_window_prs": [ { "additions": 53, "author": "taw0002", "changed_files": 2, "created_at": "2026-03-06T15:33:10Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38041/files", "html_url": "https://github.com/openclaw/openclaw/pull/38041", "merged": false, "number": 38041, "state": "open", "title": "fix: include snake_case param aliases in tool mutation fingerprint keys", "updated_at": "2026-04-20T04:39:16Z" }, { "additions": 326, "author": "Lubrsy706", "changed_files": 5, "created_at": "2026-03-11T11:48:03Z", "deletions": 10, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/43151/files", "html_url": "https://github.com/openclaw/openclaw/pull/43151", "merged": false, "number": 43151, "state": "open", "title": "fix(agents): clear tool error when same tool type retries successfully", "updated_at": "2026-04-20T07:03:24Z" } ], "pairwise": [ { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.544, "left_pr_number": 38041, "right_pr_number": 43151, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/tool-mutation.test.ts", "src/agents/tool-mutation.ts" ], "similarity": 0.525, "size_similarity": 0.158 }, { "breadth_similarity": 0.7, "concentration_similarity": 1.0, "content_similarity": 0.453, "left_pr_number": 43151, "right_pr_number": 68296, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-subscribe.handlers.tools.test.ts", "src/agents/pi-embedded-subscribe.handlers.tools.ts" ], "similarity": 0.455, "size_similarity": 0.119 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.025, "left_pr_number": 38041, "right_pr_number": 68296, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [], "similarity": 0.281, "size_similarity": 0.755 } ], "pr_count": 3, "pr_numbers": [ 38041, 43151, 68296 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68296 ], "representative_pr_number": 43151, "representative_title": "fix(agents): clear tool error when same tool type retries successfully", "representative_url": "https://github.com/openclaw/openclaw/pull/43151", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/tool-mutation.test.ts", "src/agents/tool-mutation.ts", "src/agents/pi-embedded-subscribe.handlers.tools.test.ts", "src/agents/pi-embedded-subscribe.handlers.tools.ts" ], "summary": "3 open PRs share weighted file overlap around `src/agents/tool-mutation.test.ts`, `src/agents/tool-mutation.ts`, `src/agents/pi-embedded-subscribe.handlers.tools.test.ts`; representative PR #43151.", "title": "Scope: fix(agents): clear tool error when same tool type retries successfully" }, { "authors": [ "pgondhi987" ], "average_similarity": 0.414, "cluster_id": "pr-scope-53441-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T14:56:22Z", "outside_window_prs": [ { "additions": 47, "author": "dennis-lynch", "changed_files": 3, "created_at": "2026-03-24T05:59:44Z", "deletions": 21, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53441/files", "html_url": "https://github.com/openclaw/openclaw/pull/53441", "merged": false, "number": 53441, "state": "open", "title": "fix(synology-chat): handle HEAD probe and return 200 on webhook ACK", "updated_at": "2026-03-24T20:15:31Z" }, { "additions": 1151, "author": "druide67", "changed_files": 14, "created_at": "2026-03-25T00:11:29Z", "deletions": 80, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/54099/files", "html_url": "https://github.com/openclaw/openclaw/pull/54099", "merged": false, "number": 54099, "state": "open", "title": "feat(synology-chat): add group/channel support", "updated_at": "2026-04-17T21:00:30Z" } ], "pairwise": [ { "breadth_similarity": 0.533, "concentration_similarity": 0.9, "content_similarity": 0.366, "left_pr_number": 54099, "right_pr_number": 69603, "shared_directories": [ "extensions/synology-chat/src", "docs/channels", "extensions/synology-chat", "docs", "extensions" ], "shared_filenames": [ "docs/channels/synology-chat.md", "extensions/synology-chat/src/accounts.ts", "extensions/synology-chat/src/channel.test-mocks.ts", "extensions/synology-chat/src/channel.test.ts", "extensions/synology-chat/src/channel.ts", "extensions/synology-chat/src/client.ts", "extensions/synology-chat/src/types.ts", "extensions/synology-chat/src/webhook-handler.test.ts", "extensions/synology-chat/src/webhook-handler.ts" ], "similarity": 0.502, "size_similarity": 0.985 }, { "breadth_similarity": 0.357, "concentration_similarity": 0.888, "content_similarity": 0.486, "left_pr_number": 53441, "right_pr_number": 54099, "shared_directories": [ "extensions/synology-chat/src", "extensions/synology-chat", "extensions" ], "shared_filenames": [ "extensions/synology-chat/src/webhook-handler.test.ts", "extensions/synology-chat/src/webhook-handler.ts" ], "similarity": 0.429, "size_similarity": 0.055 }, { "breadth_similarity": 0.171, "concentration_similarity": 0.988, "content_similarity": 0.338, "left_pr_number": 53441, "right_pr_number": 69603, "shared_directories": [ "extensions/synology-chat/src", "extensions/synology-chat", "extensions" ], "shared_filenames": [ "extensions/synology-chat/src/channel.integration.test.ts", "extensions/synology-chat/src/webhook-handler.test.ts", "extensions/synology-chat/src/webhook-handler.ts" ], "similarity": 0.311, "size_similarity": 0.056 } ], "pr_count": 3, "pr_numbers": [ 53441, 54099, 69603 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69603 ], "representative_pr_number": 54099, "representative_title": "feat(synology-chat): add group/channel support", "representative_url": "https://github.com/openclaw/openclaw/pull/54099", "shared_directories": [ "extensions/synology-chat/src", "extensions/synology-chat", "extensions", "docs/channels", "docs" ], "shared_filenames": [ "extensions/synology-chat/src/webhook-handler.test.ts", "extensions/synology-chat/src/webhook-handler.ts", "docs/channels/synology-chat.md", "extensions/synology-chat/src/accounts.ts", "extensions/synology-chat/src/channel.test-mocks.ts", "extensions/synology-chat/src/channel.test.ts", "extensions/synology-chat/src/channel.ts", "extensions/synology-chat/src/client.ts" ], "summary": "3 open PRs share weighted file overlap around `extensions/synology-chat/src/webhook-handler.test.ts`, `extensions/synology-chat/src/webhook-handler.ts`, `docs/channels/synology-chat.md`; representative PR #54099.", "title": "Scope: feat(synology-chat): add group/channel support" }, { "authors": [ "xiaoyu-157" ], "average_similarity": 0.403, "cluster_id": "pr-scope-37970-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T08:39:38Z", "outside_window_prs": [ { "additions": 76, "author": "q1uf3ng", "changed_files": 2, "created_at": "2026-03-06T15:09:26Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37970/files", "html_url": "https://github.com/openclaw/openclaw/pull/37970", "merged": false, "number": 37970, "state": "open", "title": "fix(auto-reply): embed Session Startup section in reset prompt to prevent hallucination", "updated_at": "2026-04-20T04:39:00Z" }, { "additions": 9, "author": "VACInc", "changed_files": 4, "created_at": "2026-03-24T13:22:38Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53706/files", "html_url": "https://github.com/openclaw/openclaw/pull/53706", "merged": false, "number": 53706, "state": "open", "title": "Prompt: reuse injected startup context by default", "updated_at": "2026-03-24T20:15:29Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.409, "left_pr_number": 37970, "right_pr_number": 53706, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/session-reset-prompt.ts" ], "similarity": 0.435, "size_similarity": 0.155 }, { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.393, "left_pr_number": 53706, "right_pr_number": 67090, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/post-compaction-context.test.ts", "src/auto-reply/reply/post-compaction-context.ts" ], "similarity": 0.422, "size_similarity": 0.144 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.09, "left_pr_number": 37970, "right_pr_number": 67090, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [], "similarity": 0.353, "size_similarity": 0.933 } ], "pr_count": 3, "pr_numbers": [ 37970, 53706, 67090 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67090 ], "representative_pr_number": 53706, "representative_title": "Prompt: reuse injected startup context by default", "representative_url": "https://github.com/openclaw/openclaw/pull/53706", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/session-reset-prompt.ts", "src/auto-reply/reply/post-compaction-context.test.ts", "src/auto-reply/reply/post-compaction-context.ts" ], "summary": "3 open PRs share weighted file overlap around `src/auto-reply/reply/session-reset-prompt.ts`, `src/auto-reply/reply/post-compaction-context.test.ts`, `src/auto-reply/reply/post-compaction-context.ts`; representative PR #53706.", "title": "Scope: Prompt: reuse injected startup context by default" }, { "authors": [ "qidu" ], "average_similarity": 0.38, "cluster_id": "pr-scope-38561-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T04:38:16Z", "outside_window_prs": [ { "additions": 308, "author": "MbappeWU", "changed_files": 4, "created_at": "2026-03-07T04:24:42Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38561/files", "html_url": "https://github.com/openclaw/openclaw/pull/38561", "merged": false, "number": 38561, "state": "open", "title": "CLI: sync inherited session model state after default model changes", "updated_at": "2026-04-21T04:33:28Z" }, { "additions": 312, "author": "neofdezf-cloud", "changed_files": 4, "created_at": "2026-04-11T20:32:50Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65005/files", "html_url": "https://github.com/openclaw/openclaw/pull/65005", "merged": false, "number": 65005, "state": "open", "title": "feat(models): add provider/model resolution explain command", "updated_at": "2026-04-11T21:40:03Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.991, "content_similarity": 0.192, "left_pr_number": 65005, "right_pr_number": 67669, "shared_directories": [ "src/commands/models", "src/cli", "src/commands", "src" ], "shared_filenames": [ "src/cli/models-cli.ts", "src/commands/models.ts" ], "similarity": 0.407, "size_similarity": 0.824 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.962, "content_similarity": 0.14, "left_pr_number": 38561, "right_pr_number": 65005, "shared_directories": [ "src/commands/models", "src/commands", "src" ], "shared_filenames": [], "similarity": 0.379, "size_similarity": 1.0 }, { "breadth_similarity": 0.833, "concentration_similarity": 0.97, "content_similarity": 0.139, "left_pr_number": 38561, "right_pr_number": 67669, "shared_directories": [ "src/commands/models", "src/commands", "src" ], "shared_filenames": [], "similarity": 0.353, "size_similarity": 0.824 } ], "pr_count": 3, "pr_numbers": [ 38561, 65005, 67669 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67669 ], "representative_pr_number": 65005, "representative_title": "feat(models): add provider/model resolution explain command", "representative_url": "https://github.com/openclaw/openclaw/pull/65005", "shared_directories": [ "src/commands/models", "src/commands", "src", "src/cli" ], "shared_filenames": [ "src/commands/models.ts", "src/cli/models-cli.ts" ], "summary": "3 open PRs share weighted file overlap around `src/commands/models.ts`, `src/cli/models-cli.ts`; representative PR #65005.", "title": "Scope: feat(models): add provider/model resolution explain command" }, { "authors": [ "zexho994" ], "average_similarity": 0.374, "cluster_id": "pr-scope-37170-3", "kind": "pr_scope", "last_activity_at": "2026-04-17T06:31:44Z", "outside_window_prs": [ { "additions": 138, "author": "tommygeoco", "changed_files": 2, "created_at": "2026-03-06T04:16:47Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37170/files", "html_url": "https://github.com/openclaw/openclaw/pull/37170", "merged": false, "number": 37170, "state": "open", "title": "CLI: return final cron entry for --expect-final", "updated_at": "2026-04-19T04:31:42Z" }, { "additions": 146, "author": "Rohan5commit", "changed_files": 10, "created_at": "2026-04-13T15:40:30Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66023/files", "html_url": "https://github.com/openclaw/openclaw/pull/66023", "merged": false, "number": 66023, "state": "open", "title": "feat(cron): support custom job ids on add", "updated_at": "2026-04-13T15:46:04Z" } ], "pairwise": [ { "breadth_similarity": 0.136, "concentration_similarity": 0.691, "content_similarity": 0.36, "left_pr_number": 37170, "right_pr_number": 67677, "shared_directories": [ "src/cli/cron-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/cron-cli.test.ts", "src/cli/cron-cli/register.cron-simple.ts" ], "similarity": 0.44, "size_similarity": 0.933 }, { "breadth_similarity": 0.513, "concentration_similarity": 0.628, "content_similarity": 0.183, "left_pr_number": 66023, "right_pr_number": 67677, "shared_directories": [ "src/gateway/protocol/schema", "src/cli/cron-cli", "src/cron/service", "src/gateway/protocol", "src/cli", "src/cron", "src/gateway", "src" ], "shared_filenames": [ "src/cli/cron-cli.test.ts", "src/gateway/protocol/cron-validators.test.ts", "src/gateway/protocol/schema/cron.ts" ], "similarity": 0.358, "size_similarity": 0.98 }, { "breadth_similarity": 0.267, "concentration_similarity": 0.937, "content_similarity": 0.151, "left_pr_number": 37170, "right_pr_number": 66023, "shared_directories": [ "src/cli/cron-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/cron-cli.test.ts" ], "similarity": 0.322, "size_similarity": 0.952 } ], "pr_count": 3, "pr_numbers": [ 37170, 66023, 67677 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67677 ], "representative_pr_number": 67677, "representative_title": "fix(cron): add single-job get path for id-based inspection", "representative_url": "https://github.com/openclaw/openclaw/pull/67677", "shared_directories": [ "src/cli/cron-cli", "src/cli", "src", "src/gateway/protocol/schema", "src/cron/service", "src/gateway/protocol", "src/cron", "src/gateway" ], "shared_filenames": [ "src/cli/cron-cli.test.ts", "src/cli/cron-cli/register.cron-simple.ts", "src/gateway/protocol/cron-validators.test.ts", "src/gateway/protocol/schema/cron.ts" ], "summary": "3 open PRs share weighted file overlap around `src/cli/cron-cli.test.ts`, `src/cli/cron-cli/register.cron-simple.ts`, `src/gateway/protocol/cron-validators.test.ts`; representative PR #67677.", "title": "Scope: fix(cron): add single-job get path for id-based inspection" }, { "authors": [ "kagura-agent" ], "average_similarity": 0.372, "cluster_id": "pr-scope-65979-3", "kind": "pr_scope", "last_activity_at": "2026-04-20T00:22:46Z", "outside_window_prs": [ { "additions": 114, "author": "GaosCode", "changed_files": 7, "created_at": "2026-04-13T14:23:41Z", "deletions": 34, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65979/files", "html_url": "https://github.com/openclaw/openclaw/pull/65979", "merged": false, "number": 65979, "state": "open", "title": "fix(cron): normalize missing persisted job state", "updated_at": "2026-04-20T13:20:24Z" }, { "additions": 152, "author": "lml2468", "changed_files": 5, "created_at": "2026-04-13T14:38:06Z", "deletions": 45, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65989/files", "html_url": "https://github.com/openclaw/openclaw/pull/65989", "merged": false, "number": 65989, "state": "open", "title": "fix: guard against null job.state in cron list and startup paths", "updated_at": "2026-04-14T00:49:26Z" } ], "pairwise": [ { "breadth_similarity": 0.857, "concentration_similarity": 0.847, "content_similarity": 0.288, "left_pr_number": 65979, "right_pr_number": 65989, "shared_directories": [ "src/cli/cron-cli", "src/cron/service", "src/cli", "src/cron", "src" ], "shared_filenames": [ "src/cli/cron-cli/shared.test.ts", "src/cli/cron-cli/shared.ts", "src/cron/service/store.ts" ], "similarity": 0.442, "size_similarity": 0.751 }, { "breadth_similarity": 0.619, "concentration_similarity": 0.652, "content_similarity": 0.177, "left_pr_number": 65979, "right_pr_number": 68783, "shared_directories": [ "src/cron/service", "src/cron", "src" ], "shared_filenames": [ "src/cron/service.issue-regressions.test.ts", "src/cron/service/timer.ts" ], "similarity": 0.352, "size_similarity": 0.892 }, { "breadth_similarity": 0.733, "concentration_similarity": 0.805, "content_similarity": 0.114, "left_pr_number": 65989, "right_pr_number": 68783, "shared_directories": [ "src/cron/service", "src/cron", "src" ], "shared_filenames": [ "src/cron/service/ops.ts" ], "similarity": 0.32, "size_similarity": 0.843 } ], "pr_count": 3, "pr_numbers": [ 65979, 65989, 68783 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68783 ], "representative_pr_number": 65979, "representative_title": "fix(cron): normalize missing persisted job state", "representative_url": "https://github.com/openclaw/openclaw/pull/65979", "shared_directories": [ "src/cron/service", "src/cron", "src", "src/cli/cron-cli", "src/cli" ], "shared_filenames": [ "src/cli/cron-cli/shared.test.ts", "src/cron/service.issue-regressions.test.ts", "src/cli/cron-cli/shared.ts", "src/cron/service/store.ts", "src/cron/service/ops.ts", "src/cron/service/timer.ts" ], "summary": "3 open PRs share weighted file overlap around `src/cli/cron-cli/shared.test.ts`, `src/cron/service.issue-regressions.test.ts`, `src/cli/cron-cli/shared.ts`; representative PR #65979.", "title": "Scope: fix(cron): normalize missing persisted job state" }, { "authors": [ "stainlu" ], "average_similarity": 0.364, "cluster_id": "pr-scope-36726-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T16:07:45Z", "outside_window_prs": [ { "additions": 46, "author": "edincampara", "changed_files": 2, "created_at": "2026-03-05T21:18:01Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/36726/files", "html_url": "https://github.com/openclaw/openclaw/pull/36726", "merged": false, "number": 36726, "state": "open", "title": "fix(agents): prune history images even without prior assistant reply", "updated_at": "2026-04-18T04:23:22Z" }, { "additions": 44, "author": "Bartok9", "changed_files": 2, "created_at": "2026-04-12T08:42:21Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65263/files", "html_url": "https://github.com/openclaw/openclaw/pull/65263", "merged": false, "number": 65263, "state": "open", "title": "fix(compaction): clamp reserveTokens to at most 90% of context window in precheck", "updated_at": "2026-04-12T08:44:39Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.109, "left_pr_number": 65263, "right_pr_number": 69278, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [], "similarity": 0.373, "size_similarity": 0.978 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.106, "left_pr_number": 36726, "right_pr_number": 65263, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [], "similarity": 0.359, "size_similarity": 0.9 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.101, "left_pr_number": 36726, "right_pr_number": 69278, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [], "similarity": 0.359, "size_similarity": 0.92 } ], "pr_count": 3, "pr_numbers": [ 36726, 65263, 69278 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69278 ], "representative_pr_number": 65263, "representative_title": "fix(compaction): clamp reserveTokens to at most 90% of context window in precheck", "representative_url": "https://github.com/openclaw/openclaw/pull/65263", "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [], "summary": "3 open PRs cluster in `src/agents/pi-embedded-runner/run`, `src/agents/pi-embedded-runner`, `src/agents` with similar change breadth; representative PR #65263.", "title": "Scope: fix(compaction): clamp reserveTokens to at most 90% of context window in precheck" }, { "authors": [ "jckm14" ], "average_similarity": 0.359, "cluster_id": "pr-scope-37700-3", "kind": "pr_scope", "last_activity_at": "2026-04-21T17:28:48Z", "outside_window_prs": [ { "additions": 14, "author": "scc0819-cell", "changed_files": 2, "created_at": "2026-03-06T11:21:25Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37700/files", "html_url": "https://github.com/openclaw/openclaw/pull/37700", "merged": false, "number": 37700, "state": "open", "title": "control-ui(agents): disable model edits until config is loaded", "updated_at": "2026-04-20T04:36:59Z" }, { "additions": 22, "author": "WMSmile", "changed_files": 1, "created_at": "2026-03-24T13:16:39Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53704/files", "html_url": "https://github.com/openclaw/openclaw/pull/53704", "merged": false, "number": 53704, "state": "open", "title": "fix: remove unrecognized key defaultId in agents config", "updated_at": "2026-03-24T20:15:29Z" } ], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.714, "content_similarity": 0.298, "left_pr_number": 37700, "right_pr_number": 53704, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/app-render.ts" ], "similarity": 0.385, "size_similarity": 0.609 }, { "breadth_similarity": 0.5, "concentration_similarity": 0.75, "content_similarity": 0.167, "left_pr_number": 53704, "right_pr_number": 68925, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.348, "size_similarity": 0.958 }, { "breadth_similarity": 1.0, "concentration_similarity": 0.964, "content_similarity": 0.155, "left_pr_number": 37700, "right_pr_number": 68925, "shared_directories": [ "ui/src/ui/views", "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.344, "size_similarity": 0.583 } ], "pr_count": 3, "pr_numbers": [ 37700, 53704, 68925 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68925 ], "representative_pr_number": 53704, "representative_title": "fix: remove unrecognized key defaultId in agents config", "representative_url": "https://github.com/openclaw/openclaw/pull/53704", "shared_directories": [ "ui/src/ui", "ui/src", "ui", "ui/src/ui/views" ], "shared_filenames": [ "ui/src/ui/app-render.ts" ], "summary": "3 open PRs share weighted file overlap around `ui/src/ui/app-render.ts`; representative PR #53704.", "title": "Scope: fix: remove unrecognized key defaultId in agents config" }, { "authors": [ "D3rPaPaH0d3n" ], "average_similarity": 0.354, "cluster_id": "pr-scope-53972-3", "kind": "pr_scope", "last_activity_at": "2026-04-16T20:19:31Z", "outside_window_prs": [ { "additions": 63, "author": "fr00st", "changed_files": 1, "created_at": "2026-03-24T21:26:12Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53972/files", "html_url": "https://github.com/openclaw/openclaw/pull/53972", "merged": false, "number": 53972, "state": "open", "title": "ci(android): add x86_64 GitHub Actions build for debug APKs", "updated_at": "2026-03-24T21:44:05Z" }, { "additions": 111, "author": "Anurag1", "changed_files": 1, "created_at": "2026-04-04T07:45:44Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/60744/files", "html_url": "https://github.com/openclaw/openclaw/pull/60744", "merged": false, "number": 60744, "state": "open", "title": "Create codeql.yml", "updated_at": "2026-04-20T03:18:39Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.144, "left_pr_number": 60744, "right_pr_number": 67804, "shared_directories": [ ".github/workflows", ".github" ], "shared_filenames": [], "similarity": 0.379, "size_similarity": 0.856 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.139, "left_pr_number": 53972, "right_pr_number": 67804, "shared_directories": [ ".github/workflows", ".github" ], "shared_filenames": [], "similarity": 0.346, "size_similarity": 0.663 }, { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.144, "left_pr_number": 53972, "right_pr_number": 60744, "shared_directories": [ ".github/workflows", ".github" ], "shared_filenames": [], "similarity": 0.336, "size_similarity": 0.568 } ], "pr_count": 3, "pr_numbers": [ 53972, 60744, 67804 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67804 ], "representative_pr_number": 67804, "representative_title": "Claude/analyze android app ohrk i", "representative_url": "https://github.com/openclaw/openclaw/pull/67804", "shared_directories": [ ".github/workflows", ".github" ], "shared_filenames": [], "summary": "3 open PRs cluster in `.github/workflows`, `.github` with similar change breadth; representative PR #67804.", "title": "Scope: Claude/analyze android app ohrk i" }, { "authors": [ "lemonheaded" ], "average_similarity": 0.997, "cluster_id": "pr-scope-18915-2", "kind": "pr_scope", "last_activity_at": "2026-04-17T20:07:41Z", "outside_window_prs": [ { "additions": 64, "author": "storyarcade", "changed_files": 4, "created_at": "2026-02-17T05:41:11Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/18915/files", "html_url": "https://github.com/openclaw/openclaw/pull/18915", "merged": false, "number": 18915, "state": "open", "title": "fix(telegram): pass video width/height to sendVideo to prevent portra\u2026", "updated_at": "2026-04-17T15:59:56Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.996, "left_pr_number": 18915, "right_pr_number": 68266, "shared_directories": [ "extensions/telegram/src/bot", "extensions/telegram/src", "extensions/telegram", "src/media", "extensions", "src" ], "shared_filenames": [ "extensions/telegram/src/bot/delivery.replies.ts", "extensions/telegram/src/send.ts", "src/media/constants.ts", "src/media/video-dimensions.ts" ], "similarity": 0.997, "size_similarity": 1.0 } ], "pr_count": 2, "pr_numbers": [ 18915, 68266 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68266 ], "representative_pr_number": 18915, "representative_title": "fix(telegram): pass video width/height to sendVideo to prevent portra\u2026", "representative_url": "https://github.com/openclaw/openclaw/pull/18915", "shared_directories": [ "extensions/telegram/src/bot", "extensions/telegram/src", "src/media", "extensions/telegram", "extensions", "src" ], "shared_filenames": [ "src/media/constants.ts", "src/media/video-dimensions.ts", "extensions/telegram/src/bot/delivery.replies.ts", "extensions/telegram/src/send.ts" ], "summary": "2 open PRs share weighted file overlap around `src/media/constants.ts`, `src/media/video-dimensions.ts`, `extensions/telegram/src/bot/delivery.replies.ts`; representative PR #18915.", "title": "Scope: fix(telegram): pass video width/height to sendVideo to prevent portra\u2026" }, { "authors": [ "dependabot[bot]" ], "average_similarity": 0.994, "cluster_id": "pr-scope-65826-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T08:45:45Z", "outside_window_prs": [ { "additions": 28, "author": "dependabot[bot]", "changed_files": 7, "created_at": "2026-04-13T08:58:40Z", "deletions": 28, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65826/files", "html_url": "https://github.com/openclaw/openclaw/pull/65826", "merged": false, "number": 65826, "state": "open", "title": "build(deps): bump the android-deps group across 1 directory with 16 updates", "updated_at": "2026-04-14T08:43:31Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.982, "content_similarity": 1.0, "left_pr_number": 65826, "right_pr_number": 67592, "shared_directories": [ "apps/android/gradle/wrapper", "apps/android/app", "apps/android/benchmark", "apps/android/gradle", "apps/android", "apps" ], "shared_filenames": [ "apps/android/app/build.gradle.kts", "apps/android/benchmark/build.gradle.kts", "apps/android/build.gradle.kts", "apps/android/gradle/wrapper/gradle-wrapper.jar", "apps/android/gradle/wrapper/gradle-wrapper.properties", "apps/android/gradlew", "apps/android/gradlew.bat" ], "similarity": 0.994, "size_similarity": 0.966 } ], "pr_count": 2, "pr_numbers": [ 65826, 67592 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67592 ], "representative_pr_number": 65826, "representative_title": "build(deps): bump the android-deps group across 1 directory with 16 updates", "representative_url": "https://github.com/openclaw/openclaw/pull/65826", "shared_directories": [ "apps/android/gradle/wrapper", "apps/android/benchmark", "apps/android/gradle", "apps/android/app", "apps/android", "apps" ], "shared_filenames": [ "apps/android/benchmark/build.gradle.kts", "apps/android/build.gradle.kts", "apps/android/gradle/wrapper/gradle-wrapper.jar", "apps/android/gradle/wrapper/gradle-wrapper.properties", "apps/android/gradlew", "apps/android/gradlew.bat", "apps/android/app/build.gradle.kts" ], "summary": "2 open PRs share weighted file overlap around `apps/android/benchmark/build.gradle.kts`, `apps/android/build.gradle.kts`, `apps/android/gradle/wrapper/gradle-wrapper.jar`; representative PR #65826.", "title": "Scope: build(deps): bump the android-deps group across 1 directory with 16 updates" }, { "authors": [ "earon-han" ], "average_similarity": 0.978, "cluster_id": "pr-scope-65356-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T07:05:21Z", "outside_window_prs": [ { "additions": 5, "author": "QiaoSuGH", "changed_files": 1, "created_at": "2026-04-12T13:23:59Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65356/files", "html_url": "https://github.com/openclaw/openclaw/pull/65356", "merged": false, "number": 65356, "state": "open", "title": "fix(sandbox): use resolveGlobalSingleton for backend registry", "updated_at": "2026-04-12T13:25:14Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 1.0, "left_pr_number": 65356, "right_pr_number": 67623, "shared_directories": [ "src/agents/sandbox", "src/agents", "src" ], "shared_filenames": [ "src/agents/sandbox/backend.ts" ], "similarity": 0.978, "size_similarity": 0.857 } ], "pr_count": 2, "pr_numbers": [ 65356, 67623 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67623 ], "representative_pr_number": 65356, "representative_title": "fix(sandbox): use resolveGlobalSingleton for backend registry", "representative_url": "https://github.com/openclaw/openclaw/pull/65356", "shared_directories": [ "src/agents/sandbox", "src/agents", "src" ], "shared_filenames": [ "src/agents/sandbox/backend.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/sandbox/backend.ts`; representative PR #65356.", "title": "Scope: fix(sandbox): use resolveGlobalSingleton for backend registry" }, { "authors": [ "nightq" ], "average_similarity": 0.975, "cluster_id": "pr-scope-64390-2", "kind": "pr_scope", "last_activity_at": "2026-04-17T13:39:29Z", "outside_window_prs": [ { "additions": 7, "author": "latenighthackathon", "changed_files": 1, "created_at": "2026-04-10T15:42:36Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64390/files", "html_url": "https://github.com/openclaw/openclaw/pull/64390", "merged": false, "number": 64390, "state": "open", "title": "fix(model): guard normalizeResolvedModel against undefined model param", "updated_at": "2026-04-20T15:18:17Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.995, "left_pr_number": 64390, "right_pr_number": 68127, "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/model.ts" ], "similarity": 0.975, "size_similarity": 0.857 } ], "pr_count": 2, "pr_numbers": [ 64390, 68127 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68127 ], "representative_pr_number": 64390, "representative_title": "fix(model): guard normalizeResolvedModel against undefined model param", "representative_url": "https://github.com/openclaw/openclaw/pull/64390", "shared_directories": [ "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/pi-embedded-runner/model.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/pi-embedded-runner/model.ts`; representative PR #64390.", "title": "Scope: fix(model): guard normalizeResolvedModel against undefined model param" }, { "authors": [ "RoLuoGan" ], "average_similarity": 0.956, "cluster_id": "pr-scope-66426-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T08:18:08Z", "outside_window_prs": [ { "additions": 54, "author": "RoLuoGan", "changed_files": 7, "created_at": "2026-04-14T08:24:50Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66426/files", "html_url": "https://github.com/openclaw/openclaw/pull/66426", "merged": false, "number": 66426, "state": "open", "title": "fix: surface billing/surface_error chat event to web UI", "updated_at": "2026-04-14T09:21:44Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.95, "content_similarity": 0.982, "left_pr_number": 66426, "right_pr_number": 67969, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-chat.ts", "src/gateway/server-methods/chat.directive-tags.test.ts", "src/gateway/server-methods/chat.ts", "src/gateway/server-methods/shared-types.ts", "src/gateway/server-request-context.test.ts", "src/gateway/server-request-context.ts", "src/gateway/server.impl.ts" ], "similarity": 0.956, "size_similarity": 0.803 } ], "pr_count": 2, "pr_numbers": [ 66426, 67969 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67969 ], "representative_pr_number": 66426, "representative_title": "fix: surface billing/surface_error chat event to web UI", "representative_url": "https://github.com/openclaw/openclaw/pull/66426", "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-request-context.test.ts", "src/gateway/server-methods/shared-types.ts", "src/gateway/server-request-context.ts", "src/gateway/server-methods/chat.directive-tags.test.ts", "src/gateway/server-chat.ts", "src/gateway/server.impl.ts", "src/gateway/server-methods/chat.ts" ], "summary": "2 open PRs share weighted file overlap around `src/gateway/server-request-context.test.ts`, `src/gateway/server-methods/shared-types.ts`, `src/gateway/server-request-context.ts`; representative PR #66426.", "title": "Scope: fix: surface billing/surface_error chat event to web UI" }, { "authors": [ "wkeything" ], "average_similarity": 0.907, "cluster_id": "pr-scope-66429-2", "kind": "pr_scope", "last_activity_at": "2026-04-14T22:38:21Z", "outside_window_prs": [ { "additions": 9, "author": "SimoneB79", "changed_files": 2, "created_at": "2026-04-14T08:35:51Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66429/files", "html_url": "https://github.com/openclaw/openclaw/pull/66429", "merged": false, "number": 66429, "state": "open", "title": "fix(memory): allow capability fallback lookup for missing runtime embedding provider", "updated_at": "2026-04-14T10:32:34Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.955, "left_pr_number": 66429, "right_pr_number": 66844, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/memory-embedding-provider-runtime.test.ts", "src/plugins/memory-embedding-provider-runtime.ts" ], "similarity": 0.907, "size_similarity": 0.593 } ], "pr_count": 2, "pr_numbers": [ 66429, 66844 ], "recent_pr_count": 1, "recent_pr_numbers": [ 66844 ], "representative_pr_number": 66429, "representative_title": "fix(memory): allow capability fallback lookup for missing runtime embedding provider", "representative_url": "https://github.com/openclaw/openclaw/pull/66429", "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/memory-embedding-provider-runtime.test.ts", "src/plugins/memory-embedding-provider-runtime.ts" ], "summary": "2 open PRs share weighted file overlap around `src/plugins/memory-embedding-provider-runtime.test.ts`, `src/plugins/memory-embedding-provider-runtime.ts`; representative PR #66429.", "title": "Scope: fix(memory): allow capability fallback lookup for missing runtime embedding provider" }, { "authors": [ "jeffchen1981-fu" ], "average_similarity": 0.859, "cluster_id": "pr-scope-61769-2", "kind": "pr_scope", "last_activity_at": "2026-04-16T13:21:06Z", "outside_window_prs": [ { "additions": 2, "author": "dependabot[bot]", "changed_files": 2, "created_at": "2026-04-06T08:44:35Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/61769/files", "html_url": "https://github.com/openclaw/openclaw/pull/61769", "merged": false, "number": 61769, "state": "open", "title": "build(deps): bump actions/setup-node from 4 to 6", "updated_at": "2026-04-21T02:27:40Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.927, "left_pr_number": 61769, "right_pr_number": 67096, "shared_directories": [ ".github/workflows", ".github" ], "shared_filenames": [ ".github/workflows/docs-sync-publish.yml", ".github/workflows/parity-gate.yml" ], "similarity": 0.859, "size_similarity": 0.4 } ], "pr_count": 2, "pr_numbers": [ 61769, 67096 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67096 ], "representative_pr_number": 61769, "representative_title": "build(deps): bump actions/setup-node from 4 to 6", "representative_url": "https://github.com/openclaw/openclaw/pull/61769", "shared_directories": [ ".github/workflows", ".github" ], "shared_filenames": [ ".github/workflows/docs-sync-publish.yml", ".github/workflows/parity-gate.yml" ], "summary": "2 open PRs share weighted file overlap around `.github/workflows/docs-sync-publish.yml`, `.github/workflows/parity-gate.yml`; representative PR #61769.", "title": "Scope: build(deps): bump actions/setup-node from 4 to 6" }, { "authors": [ "shahyashish" ], "average_similarity": 0.851, "cluster_id": "pr-scope-66133-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T18:06:54Z", "outside_window_prs": [ { "additions": 10, "author": "yqli2420", "changed_files": 1, "created_at": "2026-04-13T19:18:12Z", "deletions": 267, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66133/files", "html_url": "https://github.com/openclaw/openclaw/pull/66133", "merged": false, "number": 66133, "state": "open", "title": "fix(tasks): prevent inconsistent_timestamps warnings for cron-spawned tasks", "updated_at": "2026-04-13T19:21:58Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.868, "left_pr_number": 66133, "right_pr_number": 69387, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-executor.ts" ], "similarity": 0.851, "size_similarity": 0.625 } ], "pr_count": 2, "pr_numbers": [ 66133, 69387 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69387 ], "representative_pr_number": 66133, "representative_title": "fix(tasks): prevent inconsistent_timestamps warnings for cron-spawned tasks", "representative_url": "https://github.com/openclaw/openclaw/pull/66133", "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [ "src/tasks/task-executor.ts" ], "summary": "2 open PRs share weighted file overlap around `src/tasks/task-executor.ts`; representative PR #66133.", "title": "Scope: fix(tasks): prevent inconsistent_timestamps warnings for cron-spawned tasks" }, { "authors": [ "jdc4429" ], "average_similarity": 0.837, "cluster_id": "pr-scope-65554-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T17:22:30Z", "outside_window_prs": [ { "additions": 4562, "author": "jdc4429", "changed_files": 29, "created_at": "2026-04-12T20:57:07Z", "deletions": 964, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65554/files", "html_url": "https://github.com/openclaw/openclaw/pull/65554", "merged": false, "number": 65554, "state": "open", "title": "Jdc4429 media support v2 - Updated to work with latest version 2026.4.11", "updated_at": "2026-04-19T18:23:43Z" } ], "pairwise": [ { "breadth_similarity": 0.85, "concentration_similarity": 0.899, "content_similarity": 0.841, "left_pr_number": 65554, "right_pr_number": 68808, "shared_directories": [ "apps/shared/OpenClawKit/Sources/OpenClawKit/Resources", "apps/shared/OpenClawKit/Sources/OpenClawKit", "apps/shared/OpenClawKit/Sources", "ui/src/styles/chat", "ui/src/ui/chat", "apps/shared/OpenClawKit", "src/agents/command", "src/agents/pi-embedded-runner", "src/agents/skills", "src/agents/tools" ], "shared_filenames": [ ".gitignore", "PR-add-media-support-webchat-telegram.md", "apps/shared/OpenClawKit/Sources/OpenClawKit/Resources/tool-display.json", "media-server.py", "pnpm-workspace.yaml", "src/agents/command/types.ts", "src/agents/pi-embedded-runner/compact.ts", "src/agents/pi-tool-definition-adapter.ts", "src/agents/pi-tools.read.ts", "src/agents/pi-tools.ts" ], "similarity": 0.837, "size_similarity": 0.786 } ], "pr_count": 2, "pr_numbers": [ 65554, 68808 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68808 ], "representative_pr_number": 65554, "representative_title": "Jdc4429 media support v2 - Updated to work with latest version 2026.4.11", "representative_url": "https://github.com/openclaw/openclaw/pull/65554", "shared_directories": [ "apps/shared/OpenClawKit/Sources/OpenClawKit/Resources", "apps/shared/OpenClawKit/Sources/OpenClawKit", "ui/src/styles/chat", "apps/shared/OpenClawKit/Sources", "ui/src/ui/chat", "src/canvas-host/a2ui", "src/agents/command", "src/agents/skills" ], "shared_filenames": [ "PR-add-media-support-webchat-telegram.md", "media-server.py", "src/agents/pi-tools.types.ts", "src/agents/tool-media.ts", "src/agents/tools/download-video.ts", "src/agents/tools/image-tool.ts", "ui/src/ui/chat/message-resize.ts", "src/agents/tool-images.test.ts" ], "summary": "2 open PRs share weighted file overlap around `PR-add-media-support-webchat-telegram.md`, `media-server.py`, `src/agents/pi-tools.types.ts`; representative PR #65554.", "title": "Scope: Jdc4429 media support v2 - Updated to work with latest version 2026.4.11" }, { "authors": [ "jhsmith409" ], "average_similarity": 0.786, "cluster_id": "pr-scope-66572-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T15:29:45Z", "outside_window_prs": [ { "additions": 113, "author": "Luckywolf82", "changed_files": 3, "created_at": "2026-04-14T13:39:02Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66572/files", "html_url": "https://github.com/openclaw/openclaw/pull/66572", "merged": false, "number": 66572, "state": "open", "title": "fix: honor cfg-compatible capability provider resolution before partial active registries", "updated_at": "2026-04-14T13:41:36Z" } ], "pairwise": [ { "breadth_similarity": 0.583, "concentration_similarity": 0.736, "content_similarity": 0.824, "left_pr_number": 66572, "right_pr_number": 66855, "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/capability-provider-runtime.test.ts", "src/plugins/capability-provider-runtime.ts" ], "similarity": 0.786, "size_similarity": 0.761 } ], "pr_count": 2, "pr_numbers": [ 66572, 66855 ], "recent_pr_count": 1, "recent_pr_numbers": [ 66855 ], "representative_pr_number": 66572, "representative_title": "fix: honor cfg-compatible capability provider resolution before partial active registries", "representative_url": "https://github.com/openclaw/openclaw/pull/66572", "shared_directories": [ "src/plugins", "src" ], "shared_filenames": [ "src/plugins/capability-provider-runtime.test.ts", "src/plugins/capability-provider-runtime.ts" ], "summary": "2 open PRs share weighted file overlap around `src/plugins/capability-provider-runtime.test.ts`, `src/plugins/capability-provider-runtime.ts`; representative PR #66572.", "title": "Scope: fix: honor cfg-compatible capability provider resolution before partial active registries" }, { "authors": [ "duqaXxX" ], "average_similarity": 0.763, "cluster_id": "pr-scope-65170-2", "kind": "pr_scope", "last_activity_at": "2026-04-16T01:05:07Z", "outside_window_prs": [ { "additions": 13, "author": "duqaXxX", "changed_files": 3, "created_at": "2026-04-12T04:21:04Z", "deletions": 13, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65170/files", "html_url": "https://github.com/openclaw/openclaw/pull/65170", "merged": false, "number": 65170, "state": "open", "title": "fix(inter-session-completion-delivery): ensure completion delivery on ANNOUNCE_SKIP", "updated_at": "2026-04-12T04:29:25Z" } ], "pairwise": [ { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.701, "left_pr_number": 65170, "right_pr_number": 67444, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/subagent-announce.format.e2e.test.ts", "src/agents/subagent-announce.test.ts", "src/agents/subagent-announce.ts" ], "similarity": 0.763, "size_similarity": 0.897 } ], "pr_count": 2, "pr_numbers": [ 65170, 67444 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67444 ], "representative_pr_number": 65170, "representative_title": "fix(inter-session-completion-delivery): ensure completion delivery on ANNOUNCE_SKIP", "representative_url": "https://github.com/openclaw/openclaw/pull/65170", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/subagent-announce.test.ts", "src/agents/subagent-announce.format.e2e.test.ts", "src/agents/subagent-announce.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/subagent-announce.test.ts`, `src/agents/subagent-announce.format.e2e.test.ts`, `src/agents/subagent-announce.ts`; representative PR #65170.", "title": "Scope: fix(inter-session-completion-delivery): ensure completion delivery on ANNOUNCE_SKIP" }, { "authors": [ "kakahu2015" ], "average_similarity": 0.744, "cluster_id": "pr-scope-63800-2", "kind": "pr_scope", "last_activity_at": "2026-04-16T03:22:38Z", "outside_window_prs": [ { "additions": 326, "author": "kakahu2015", "changed_files": 9, "created_at": "2026-04-09T15:09:11Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63800/files", "html_url": "https://github.com/openclaw/openclaw/pull/63800", "merged": false, "number": 63800, "state": "open", "title": "[codex] Gateway: add offline APNs chat reply alerts", "updated_at": "2026-04-11T05:57:44Z" } ], "pairwise": [ { "breadth_similarity": 0.278, "concentration_similarity": 0.966, "content_similarity": 0.81, "left_pr_number": 63800, "right_pr_number": 67493, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/chat-apns-notify.test.ts", "src/gateway/chat-apns-notify.ts" ], "similarity": 0.744, "size_similarity": 0.673 } ], "pr_count": 2, "pr_numbers": [ 63800, 67493 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67493 ], "representative_pr_number": 63800, "representative_title": "[codex] Gateway: add offline APNs chat reply alerts", "representative_url": "https://github.com/openclaw/openclaw/pull/63800", "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/chat-apns-notify.test.ts", "src/gateway/chat-apns-notify.ts" ], "summary": "2 open PRs share weighted file overlap around `src/gateway/chat-apns-notify.test.ts`, `src/gateway/chat-apns-notify.ts`; representative PR #63800.", "title": "Scope: [codex] Gateway: add offline APNs chat reply alerts" }, { "authors": [ "leifengfeng" ], "average_similarity": 0.738, "cluster_id": "pr-scope-53518-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T11:40:49Z", "outside_window_prs": [ { "additions": 1, "author": "lupuletic", "changed_files": 1, "created_at": "2026-03-24T07:40:20Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53518/files", "html_url": "https://github.com/openclaw/openclaw/pull/53518", "merged": false, "number": 53518, "state": "open", "title": "fix(agents): clarify config.apply/patch/update auto-restarts in system prompt (#17189)", "updated_at": "2026-03-24T20:15:30Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.792, "left_pr_number": 53518, "right_pr_number": 69692, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/system-prompt.ts" ], "similarity": 0.738, "size_similarity": 0.222 } ], "pr_count": 2, "pr_numbers": [ 53518, 69692 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69692 ], "representative_pr_number": 53518, "representative_title": "fix(agents): clarify config.apply/patch/update auto-restarts in system prompt (#17189)", "representative_url": "https://github.com/openclaw/openclaw/pull/53518", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/system-prompt.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/system-prompt.ts`; representative PR #53518.", "title": "Scope: fix(agents): clarify config.apply/patch/update auto-restarts in system prompt (#17189)" }, { "authors": [ "sk7n4k3d" ], "average_similarity": 0.723, "cluster_id": "pr-scope-66502-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T19:21:24Z", "outside_window_prs": [ { "additions": 88, "author": "CnxLuc", "changed_files": 2, "created_at": "2026-04-14T10:49:17Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66502/files", "html_url": "https://github.com/openclaw/openclaw/pull/66502", "merged": false, "number": 66502, "state": "open", "title": "fix: keep gateway service path stable across pnpm upgrades", "updated_at": "2026-04-14T10:53:04Z" } ], "pairwise": [ { "breadth_similarity": 0.583, "concentration_similarity": 0.991, "content_similarity": 0.705, "left_pr_number": 66502, "right_pr_number": 69425, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/program-args.test.ts", "src/daemon/program-args.ts" ], "similarity": 0.723, "size_similarity": 0.807 } ], "pr_count": 2, "pr_numbers": [ 66502, 69425 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69425 ], "representative_pr_number": 66502, "representative_title": "fix: keep gateway service path stable across pnpm upgrades", "representative_url": "https://github.com/openclaw/openclaw/pull/66502", "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/program-args.test.ts", "src/daemon/program-args.ts" ], "summary": "2 open PRs share weighted file overlap around `src/daemon/program-args.test.ts`, `src/daemon/program-args.ts`; representative PR #66502.", "title": "Scope: fix: keep gateway service path stable across pnpm upgrades" }, { "authors": [ "Angfr95" ], "average_similarity": 0.714, "cluster_id": "pr-scope-64527-2", "kind": "pr_scope", "last_activity_at": "2026-04-16T19:24:17Z", "outside_window_prs": [ { "additions": 19, "author": "jeanibarz", "changed_files": 2, "created_at": "2026-04-10T22:57:21Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64527/files", "html_url": "https://github.com/openclaw/openclaw/pull/64527", "merged": false, "number": 64527, "state": "open", "title": "fix(gateway): surface pairing reason in close frame and error message", "updated_at": "2026-04-10T22:59:53Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.887, "content_similarity": 0.617, "left_pr_number": 64527, "right_pr_number": 67124, "shared_directories": [ "src/gateway/server/ws-connection", "src/gateway/server", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server.silent-scope-upgrade-reconnect.poc.test.ts", "src/gateway/server/ws-connection/message-handler.ts" ], "similarity": 0.714, "size_similarity": 0.92 } ], "pr_count": 2, "pr_numbers": [ 64527, 67124 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67124 ], "representative_pr_number": 64527, "representative_title": "fix(gateway): surface pairing reason in close frame and error message", "representative_url": "https://github.com/openclaw/openclaw/pull/64527", "shared_directories": [ "src/gateway/server/ws-connection", "src/gateway/server", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server.silent-scope-upgrade-reconnect.poc.test.ts", "src/gateway/server/ws-connection/message-handler.ts" ], "summary": "2 open PRs share weighted file overlap around `src/gateway/server.silent-scope-upgrade-reconnect.poc.test.ts`, `src/gateway/server/ws-connection/message-handler.ts`; representative PR #64527.", "title": "Scope: fix(gateway): surface pairing reason in close frame and error message" }, { "authors": [ "MoerAI" ], "average_similarity": 0.687, "cluster_id": "pr-scope-65453-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T09:05:06Z", "outside_window_prs": [ { "additions": 8, "author": "mjamiv", "changed_files": 2, "created_at": "2026-04-12T16:25:00Z", "deletions": 13, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65453/files", "html_url": "https://github.com/openclaw/openclaw/pull/65453", "merged": false, "number": 65453, "state": "open", "title": "fix(models): add image input to MiniMax-M2.7 catalog", "updated_at": "2026-04-13T11:46:01Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.713, "left_pr_number": 65453, "right_pr_number": 68485, "shared_directories": [ "extensions/minimax", "extensions" ], "shared_filenames": [ "extensions/minimax/provider-catalog.ts" ], "similarity": 0.687, "size_similarity": 0.42 } ], "pr_count": 2, "pr_numbers": [ 65453, 68485 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68485 ], "representative_pr_number": 65453, "representative_title": "fix(models): add image input to MiniMax-M2.7 catalog", "representative_url": "https://github.com/openclaw/openclaw/pull/65453", "shared_directories": [ "extensions/minimax", "extensions" ], "shared_filenames": [ "extensions/minimax/provider-catalog.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/minimax/provider-catalog.ts`; representative PR #65453.", "title": "Scope: fix(models): add image input to MiniMax-M2.7 catalog" }, { "authors": [ "PrinceOfEgypt" ], "average_similarity": 0.648, "cluster_id": "pr-scope-64731-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T17:18:12Z", "outside_window_prs": [ { "additions": 101, "author": "web3blind", "changed_files": 2, "created_at": "2026-04-11T09:02:22Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64731/files", "html_url": "https://github.com/openclaw/openclaw/pull/64731", "merged": false, "number": 64731, "state": "open", "title": "fix(telegram): show model fallback notices outside verbose mode", "updated_at": "2026-04-11T16:58:56Z" } ], "pairwise": [ { "breadth_similarity": 0.236, "concentration_similarity": 0.891, "content_similarity": 0.738, "left_pr_number": 64731, "right_pr_number": 69399, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner.runreplyagent.e2e.test.ts", "src/auto-reply/reply/agent-runner.ts" ], "similarity": 0.648, "size_similarity": 0.422 } ], "pr_count": 2, "pr_numbers": [ 64731, 69399 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69399 ], "representative_pr_number": 64731, "representative_title": "fix(telegram): show model fallback notices outside verbose mode", "representative_url": "https://github.com/openclaw/openclaw/pull/64731", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner.runreplyagent.e2e.test.ts", "src/auto-reply/reply/agent-runner.ts" ], "summary": "2 open PRs share weighted file overlap around `src/auto-reply/reply/agent-runner.runreplyagent.e2e.test.ts`, `src/auto-reply/reply/agent-runner.ts`; representative PR #64731.", "title": "Scope: fix(telegram): show model fallback notices outside verbose mode" }, { "authors": [ "zhyongrui" ], "average_similarity": 0.626, "cluster_id": "pr-scope-65802-2", "kind": "pr_scope", "last_activity_at": "2026-04-16T16:20:04Z", "outside_window_prs": [ { "additions": 23, "author": "songbing0632-code", "changed_files": 2, "created_at": "2026-04-13T08:24:33Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65802/files", "html_url": "https://github.com/openclaw/openclaw/pull/65802", "merged": false, "number": 65802, "state": "open", "title": "fix(feishu): disable ambient proxy inheritance for websocket by default", "updated_at": "2026-04-13T08:26:22Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.66, "left_pr_number": 65802, "right_pr_number": 67734, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/client.test.ts", "extensions/feishu/src/client.ts" ], "similarity": 0.626, "size_similarity": 0.262 } ], "pr_count": 2, "pr_numbers": [ 65802, 67734 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67734 ], "representative_pr_number": 65802, "representative_title": "fix(feishu): disable ambient proxy inheritance for websocket by default", "representative_url": "https://github.com/openclaw/openclaw/pull/65802", "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [ "extensions/feishu/src/client.ts", "extensions/feishu/src/client.test.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/feishu/src/client.ts`, `extensions/feishu/src/client.test.ts`; representative PR #65802.", "title": "Scope: fix(feishu): disable ambient proxy inheritance for websocket by default" }, { "authors": [ "mushuiyu886" ], "average_similarity": 0.615, "cluster_id": "pr-scope-66000-2", "kind": "pr_scope", "last_activity_at": "2026-04-15T05:15:52Z", "outside_window_prs": [ { "additions": 56, "author": "mushuiyu886", "changed_files": 2, "created_at": "2026-04-13T15:06:57Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66000/files", "html_url": "https://github.com/openclaw/openclaw/pull/66000", "merged": false, "number": 66000, "state": "open", "title": "fix(cli): clear conflicting OPENCLAW_LAUNCHD_LABEL when --profile is provided", "updated_at": "2026-04-14T02:25:45Z" } ], "pairwise": [ { "breadth_similarity": 0.292, "concentration_similarity": 0.505, "content_similarity": 0.692, "left_pr_number": 66000, "right_pr_number": 66894, "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/profile.test.ts", "src/cli/profile.ts" ], "similarity": 0.615, "size_similarity": 0.505 } ], "pr_count": 2, "pr_numbers": [ 66000, 66894 ], "recent_pr_count": 1, "recent_pr_numbers": [ 66894 ], "representative_pr_number": 66000, "representative_title": "fix(cli): clear conflicting OPENCLAW_LAUNCHD_LABEL when --profile is provided", "representative_url": "https://github.com/openclaw/openclaw/pull/66000", "shared_directories": [ "src/cli", "src" ], "shared_filenames": [ "src/cli/profile.test.ts", "src/cli/profile.ts" ], "summary": "2 open PRs share weighted file overlap around `src/cli/profile.test.ts`, `src/cli/profile.ts`; representative PR #66000.", "title": "Scope: fix(cli): clear conflicting OPENCLAW_LAUNCHD_LABEL when --profile is provided" }, { "authors": [ "lml2468" ], "average_similarity": 0.606, "cluster_id": "pr-scope-65226-2", "kind": "pr_scope", "last_activity_at": "2026-04-16T11:02:39Z", "outside_window_prs": [ { "additions": 834, "author": "bek91", "changed_files": 7, "created_at": "2026-04-12T07:12:12Z", "deletions": 94, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65226/files", "html_url": "https://github.com/openclaw/openclaw/pull/65226", "merged": false, "number": 65226, "state": "open", "title": "Fix qmd session export/update races", "updated_at": "2026-04-20T22:36:13Z" } ], "pairwise": [ { "breadth_similarity": 0.268, "concentration_similarity": 0.964, "content_similarity": 0.724, "left_pr_number": 65226, "right_pr_number": 67630, "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/search-manager.test.ts", "extensions/memory-core/src/memory/search-manager.ts" ], "similarity": 0.606, "size_similarity": 0.161 } ], "pr_count": 2, "pr_numbers": [ 65226, 67630 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67630 ], "representative_pr_number": 65226, "representative_title": "Fix qmd session export/update races", "representative_url": "https://github.com/openclaw/openclaw/pull/65226", "shared_directories": [ "extensions/memory-core/src/memory", "extensions/memory-core/src", "extensions/memory-core", "extensions" ], "shared_filenames": [ "extensions/memory-core/src/memory/search-manager.test.ts", "extensions/memory-core/src/memory/search-manager.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/memory-core/src/memory/search-manager.test.ts`, `extensions/memory-core/src/memory/search-manager.ts`; representative PR #65226.", "title": "Scope: Fix qmd session export/update races" }, { "authors": [ "i-am-coco" ], "average_similarity": 0.589, "cluster_id": "pr-scope-60673-2", "kind": "pr_scope", "last_activity_at": "2026-04-14T21:19:30Z", "outside_window_prs": [ { "additions": 31, "author": "wiliyam", "changed_files": 1, "created_at": "2026-04-04T04:05:14Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/60673/files", "html_url": "https://github.com/openclaw/openclaw/pull/60673", "merged": false, "number": 60673, "state": "open", "title": "fix(auth): proactively refresh OAuth token before expiry to prevent concurrent-agent race condition", "updated_at": "2026-04-21T07:18:20Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.652, "left_pr_number": 60673, "right_pr_number": 66751, "shared_directories": [ "src/agents/auth-profiles", "src/agents", "src" ], "shared_filenames": [ "src/agents/auth-profiles/oauth.ts" ], "similarity": 0.589, "size_similarity": 0.049 } ], "pr_count": 2, "pr_numbers": [ 60673, 66751 ], "recent_pr_count": 1, "recent_pr_numbers": [ 66751 ], "representative_pr_number": 60673, "representative_title": "fix(auth): proactively refresh OAuth token before expiry to prevent concurrent-agent race condition", "representative_url": "https://github.com/openclaw/openclaw/pull/60673", "shared_directories": [ "src/agents/auth-profiles", "src/agents", "src" ], "shared_filenames": [ "src/agents/auth-profiles/oauth.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/auth-profiles/oauth.ts`; representative PR #60673.", "title": "Scope: fix(auth): proactively refresh OAuth token before expiry to prevent concurrent-agent race condition" }, { "authors": [ "chinar-amrutkar" ], "average_similarity": 0.585, "cluster_id": "pr-scope-57422-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T16:09:18Z", "outside_window_prs": [ { "additions": 413, "author": "sinogello", "changed_files": 6, "created_at": "2026-03-30T02:46:42Z", "deletions": 25, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/57422/files", "html_url": "https://github.com/openclaw/openclaw/pull/57422", "merged": false, "number": 57422, "state": "open", "title": "telegram: improve polling outage detection and recovery after network loss", "updated_at": "2026-04-21T04:42:34Z" } ], "pairwise": [ { "breadth_similarity": 0.583, "concentration_similarity": 1.0, "content_similarity": 0.67, "left_pr_number": 57422, "right_pr_number": 69779, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/polling-session.ts" ], "similarity": 0.585, "size_similarity": 0.05 } ], "pr_count": 2, "pr_numbers": [ 57422, 69779 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69779 ], "representative_pr_number": 57422, "representative_title": "telegram: improve polling outage detection and recovery after network loss", "representative_url": "https://github.com/openclaw/openclaw/pull/57422", "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/polling-session.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/telegram/src/polling-session.ts`; representative PR #57422.", "title": "Scope: telegram: improve polling outage detection and recovery after network loss" }, { "authors": [ "leifengfeng" ], "average_similarity": 0.578, "cluster_id": "pr-scope-53651-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T10:40:06Z", "outside_window_prs": [ { "additions": 190, "author": "Thatgfsj", "changed_files": 4, "created_at": "2026-03-24T11:53:29Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53651/files", "html_url": "https://github.com/openclaw/openclaw/pull/53651", "merged": false, "number": 53651, "state": "open", "title": "fix(webchat): restore chat history, queue, and draft on page refresh", "updated_at": "2026-03-24T20:15:29Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.578, "left_pr_number": 53651, "right_pr_number": 69647, "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/storage.ts" ], "similarity": 0.578, "size_similarity": 0.321 } ], "pr_count": 2, "pr_numbers": [ 53651, 69647 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69647 ], "representative_pr_number": 53651, "representative_title": "fix(webchat): restore chat history, queue, and draft on page refresh", "representative_url": "https://github.com/openclaw/openclaw/pull/53651", "shared_directories": [ "ui/src/ui", "ui/src", "ui" ], "shared_filenames": [ "ui/src/ui/storage.ts" ], "summary": "2 open PRs share weighted file overlap around `ui/src/ui/storage.ts`; representative PR #53651.", "title": "Scope: fix(webchat): restore chat history, queue, and draft on page refresh" }, { "authors": [ "coygeek" ], "average_similarity": 0.569, "cluster_id": "pr-scope-64608-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T23:00:18Z", "outside_window_prs": [ { "additions": 217, "author": "huangdijia", "changed_files": 7, "created_at": "2026-04-11T03:09:28Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64608/files", "html_url": "https://github.com/openclaw/openclaw/pull/64608", "merged": false, "number": 64608, "state": "open", "title": "feat(discord): forward appliedTags in channel-edit actions for forum posts", "updated_at": "2026-04-11T04:49:22Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.832, "content_similarity": 0.519, "left_pr_number": 64608, "right_pr_number": 68716, "shared_directories": [ "extensions/discord/src/actions", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/actions/handle-action.guild-admin.ts", "extensions/discord/src/actions/handle-action.test.ts", "extensions/discord/src/actions/runtime.guild.ts", "extensions/discord/src/actions/runtime.test.ts" ], "similarity": 0.569, "size_similarity": 0.428 } ], "pr_count": 2, "pr_numbers": [ 64608, 68716 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68716 ], "representative_pr_number": 64608, "representative_title": "feat(discord): forward appliedTags in channel-edit actions for forum posts", "representative_url": "https://github.com/openclaw/openclaw/pull/64608", "shared_directories": [ "extensions/discord/src/actions", "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/actions/handle-action.guild-admin.ts", "extensions/discord/src/actions/runtime.guild.ts", "extensions/discord/src/actions/runtime.test.ts", "extensions/discord/src/actions/handle-action.test.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/discord/src/actions/handle-action.guild-admin.ts`, `extensions/discord/src/actions/runtime.guild.ts`, `extensions/discord/src/actions/runtime.test.ts`; representative PR #64608.", "title": "Scope: feat(discord): forward appliedTags in channel-edit actions for forum posts" }, { "authors": [ "cholaolu-boop" ], "average_similarity": 0.565, "cluster_id": "pr-scope-66656-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T19:44:02Z", "outside_window_prs": [ { "additions": 21, "author": "Tianworld", "changed_files": 2, "created_at": "2026-04-14T16:06:17Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66656/files", "html_url": "https://github.com/openclaw/openclaw/pull/66656", "merged": false, "number": 66656, "state": "open", "title": "fix(gateway): skip heartbeat diagnostics in session preview", "updated_at": "2026-04-14T16:07:21Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.585, "left_pr_number": 66656, "right_pr_number": 68765, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.fs.test.ts", "src/gateway/session-utils.fs.ts" ], "similarity": 0.565, "size_similarity": 0.037 } ], "pr_count": 2, "pr_numbers": [ 66656, 68765 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68765 ], "representative_pr_number": 66656, "representative_title": "fix(gateway): skip heartbeat diagnostics in session preview", "representative_url": "https://github.com/openclaw/openclaw/pull/66656", "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/session-utils.fs.test.ts", "src/gateway/session-utils.fs.ts" ], "summary": "2 open PRs share weighted file overlap around `src/gateway/session-utils.fs.test.ts`, `src/gateway/session-utils.fs.ts`; representative PR #66656.", "title": "Scope: fix(gateway): skip heartbeat diagnostics in session preview" }, { "authors": [ "iosifpeterfi" ], "average_similarity": 0.56, "cluster_id": "pr-scope-64557-2", "kind": "pr_scope", "last_activity_at": "2026-04-14T20:59:57Z", "outside_window_prs": [ { "additions": 8, "author": "xchunzhao", "changed_files": 1, "created_at": "2026-04-11T00:44:52Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64557/files", "html_url": "https://github.com/openclaw/openclaw/pull/64557", "merged": false, "number": 64557, "state": "open", "title": "fix: exclude ephemeral loopback port from CLI session mcpConfigHash (closes #64386)", "updated_at": "2026-04-11T00:46:58Z" } ], "pairwise": [ { "breadth_similarity": 0.225, "concentration_similarity": 0.673, "content_similarity": 0.681, "left_pr_number": 64557, "right_pr_number": 66798, "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/bundle-mcp.ts" ], "similarity": 0.56, "size_similarity": 0.184 } ], "pr_count": 2, "pr_numbers": [ 64557, 66798 ], "recent_pr_count": 1, "recent_pr_numbers": [ 66798 ], "representative_pr_number": 64557, "representative_title": "fix: exclude ephemeral loopback port from CLI session mcpConfigHash (closes #64386)", "representative_url": "https://github.com/openclaw/openclaw/pull/64557", "shared_directories": [ "src/agents/cli-runner", "src/agents", "src" ], "shared_filenames": [ "src/agents/cli-runner/bundle-mcp.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/cli-runner/bundle-mcp.ts`; representative PR #64557.", "title": "Scope: fix: exclude ephemeral loopback port from CLI session mcpConfigHash (closes #64386)" }, { "authors": [ "ztexydt-cqh" ], "average_similarity": 0.556, "cluster_id": "pr-scope-66653-2", "kind": "pr_scope", "last_activity_at": "2026-04-17T02:42:16Z", "outside_window_prs": [ { "additions": 12, "author": "mm1ord", "changed_files": 5, "created_at": "2026-04-14T16:03:20Z", "deletions": 11, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66653/files", "html_url": "https://github.com/openclaw/openclaw/pull/66653", "merged": false, "number": 66653, "state": "open", "title": "fix(telegram): add null safety to .trim() calls in setup flow", "updated_at": "2026-04-14T16:06:43Z" } ], "pairwise": [ { "breadth_similarity": 0.35, "concentration_similarity": 0.522, "content_similarity": 0.549, "left_pr_number": 66653, "right_pr_number": 67736, "shared_directories": [ "src/channels/plugins", "src/channels", "src" ], "shared_filenames": [ "src/channels/plugins/setup-wizard-helpers.ts" ], "similarity": 0.556, "size_similarity": 0.739 } ], "pr_count": 2, "pr_numbers": [ 66653, 67736 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67736 ], "representative_pr_number": 66653, "representative_title": "fix(telegram): add null safety to .trim() calls in setup flow", "representative_url": "https://github.com/openclaw/openclaw/pull/66653", "shared_directories": [ "src/channels/plugins", "src/channels", "src" ], "shared_filenames": [ "src/channels/plugins/setup-wizard-helpers.ts" ], "summary": "2 open PRs share weighted file overlap around `src/channels/plugins/setup-wizard-helpers.ts`; representative PR #66653.", "title": "Scope: fix(telegram): add null safety to .trim() calls in setup flow" }, { "authors": [ "langningchen-openclaw" ], "average_similarity": 0.546, "cluster_id": "pr-scope-66062-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T11:09:31Z", "outside_window_prs": [ { "additions": 485, "author": "ly85206559", "changed_files": 2, "created_at": "2026-04-13T16:40:32Z", "deletions": 21, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66062/files", "html_url": "https://github.com/openclaw/openclaw/pull/66062", "merged": false, "number": 66062, "state": "open", "title": "fix(daemon): ignore setlocal in Windows task parsing", "updated_at": "2026-04-21T14:58:51Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.449, "left_pr_number": 66062, "right_pr_number": 68149, "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/schtasks.ts" ], "similarity": 0.546, "size_similarity": 0.708 } ], "pr_count": 2, "pr_numbers": [ 66062, 68149 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68149 ], "representative_pr_number": 66062, "representative_title": "fix(daemon): ignore setlocal in Windows task parsing", "representative_url": "https://github.com/openclaw/openclaw/pull/66062", "shared_directories": [ "src/daemon", "src" ], "shared_filenames": [ "src/daemon/schtasks.ts" ], "summary": "2 open PRs share weighted file overlap around `src/daemon/schtasks.ts`; representative PR #66062.", "title": "Scope: fix(daemon): ignore setlocal in Windows task parsing" }, { "authors": [ "wAnyBug-Com" ], "average_similarity": 0.543, "cluster_id": "pr-scope-66367-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T14:27:12Z", "outside_window_prs": [ { "additions": 38, "author": "lilesjtu", "changed_files": 4, "created_at": "2026-04-14T05:38:14Z", "deletions": 67, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66367/files", "html_url": "https://github.com/openclaw/openclaw/pull/66367", "merged": false, "number": 66367, "state": "open", "title": "fix: expose qwen3.6-plus on Coding Plan endpoints", "updated_at": "2026-04-14T07:14:41Z" } ], "pairwise": [ { "breadth_similarity": 0.625, "concentration_similarity": 0.524, "content_similarity": 0.533, "left_pr_number": 66367, "right_pr_number": 69729, "shared_directories": [ "extensions/qwen", "extensions" ], "shared_filenames": [ "extensions/qwen/index.ts", "extensions/qwen/models.ts" ], "similarity": 0.543, "size_similarity": 0.543 } ], "pr_count": 2, "pr_numbers": [ 66367, 69729 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69729 ], "representative_pr_number": 66367, "representative_title": "fix: expose qwen3.6-plus on Coding Plan endpoints", "representative_url": "https://github.com/openclaw/openclaw/pull/66367", "shared_directories": [ "extensions/qwen", "extensions" ], "shared_filenames": [ "extensions/qwen/index.ts", "extensions/qwen/models.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/qwen/index.ts`, `extensions/qwen/models.ts`; representative PR #66367.", "title": "Scope: fix: expose qwen3.6-plus on Coding Plan endpoints" }, { "authors": [ "mvanhorn" ], "average_similarity": 0.541, "cluster_id": "pr-scope-63848-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T14:52:15Z", "outside_window_prs": [ { "additions": 5, "author": "zozo123", "changed_files": 1, "created_at": "2026-04-09T16:34:19Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/63848/files", "html_url": "https://github.com/openclaw/openclaw/pull/63848", "merged": false, "number": 63848, "state": "open", "title": "fix: pass cfg to getMemoryEmbeddingProvider in memory-search resolution", "updated_at": "2026-04-17T10:30:26Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.553, "left_pr_number": 63848, "right_pr_number": 68110, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/memory-search.ts" ], "similarity": 0.541, "size_similarity": 0.196 } ], "pr_count": 2, "pr_numbers": [ 63848, 68110 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68110 ], "representative_pr_number": 63848, "representative_title": "fix: pass cfg to getMemoryEmbeddingProvider in memory-search resolution", "representative_url": "https://github.com/openclaw/openclaw/pull/63848", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/memory-search.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/memory-search.ts`; representative PR #63848.", "title": "Scope: fix: pass cfg to getMemoryEmbeddingProvider in memory-search resolution" }, { "authors": [ "anurag-bg-neu" ], "average_similarity": 0.521, "cluster_id": "pr-scope-64913-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T03:19:43Z", "outside_window_prs": [ { "additions": 10, "author": "imadal1n", "changed_files": 1, "created_at": "2026-04-11T16:43:03Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64913/files", "html_url": "https://github.com/openclaw/openclaw/pull/64913", "merged": false, "number": 64913, "state": "open", "title": "fix(ci): guard trusted pre-commit config fallback", "updated_at": "2026-04-18T12:07:01Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.332, "left_pr_number": 64913, "right_pr_number": 69567, "shared_directories": [ ".github/workflows", ".github" ], "shared_filenames": [ ".github/workflows/ci.yml" ], "similarity": 0.521, "size_similarity": 0.923 } ], "pr_count": 2, "pr_numbers": [ 64913, 69567 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69567 ], "representative_pr_number": 64913, "representative_title": "fix(ci): guard trusted pre-commit config fallback", "representative_url": "https://github.com/openclaw/openclaw/pull/64913", "shared_directories": [ ".github/workflows", ".github" ], "shared_filenames": [ ".github/workflows/ci.yml" ], "summary": "2 open PRs share weighted file overlap around `.github/workflows/ci.yml`; representative PR #64913.", "title": "Scope: fix(ci): guard trusted pre-commit config fallback" }, { "authors": [ "Feelw00" ], "average_similarity": 0.517, "cluster_id": "pr-scope-65037-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T03:13:03Z", "outside_window_prs": [ { "additions": 574, "author": "MertBasar0", "changed_files": 9, "created_at": "2026-04-11T23:00:47Z", "deletions": 21, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65037/files", "html_url": "https://github.com/openclaw/openclaw/pull/65037", "merged": false, "number": 65037, "state": "open", "title": "fix(subagents): harden deferred completion delivery retry state", "updated_at": "2026-04-13T21:08:26Z" } ], "pairwise": [ { "breadth_similarity": 0.472, "concentration_similarity": 0.923, "content_similarity": 0.588, "left_pr_number": 65037, "right_pr_number": 68669, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/subagent-registry-lifecycle.test.ts", "src/agents/subagent-registry-lifecycle.ts", "src/agents/subagent-registry-run-manager.ts", "src/agents/subagent-registry.types.ts" ], "similarity": 0.517, "size_similarity": 0.077 } ], "pr_count": 2, "pr_numbers": [ 65037, 68669 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68669 ], "representative_pr_number": 65037, "representative_title": "fix(subagents): harden deferred completion delivery retry state", "representative_url": "https://github.com/openclaw/openclaw/pull/65037", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/subagent-registry-lifecycle.test.ts", "src/agents/subagent-registry-lifecycle.ts", "src/agents/subagent-registry-run-manager.ts", "src/agents/subagent-registry.types.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/subagent-registry-lifecycle.test.ts`, `src/agents/subagent-registry-lifecycle.ts`, `src/agents/subagent-registry-run-manager.ts`; representative PR #65037.", "title": "Scope: fix(subagents): harden deferred completion delivery retry state" }, { "authors": [ "zoneblaze" ], "average_similarity": 0.494, "cluster_id": "pr-scope-53275-2", "kind": "pr_scope", "last_activity_at": "2026-04-17T15:41:04Z", "outside_window_prs": [ { "additions": 2, "author": "JunerLee", "changed_files": 1, "created_at": "2026-03-24T01:33:25Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53275/files", "html_url": "https://github.com/openclaw/openclaw/pull/53275", "merged": false, "number": 53275, "state": "open", "title": "fix(discord): add media-gallery and file block hints for models", "updated_at": "2026-03-24T20:15:32Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.406, "left_pr_number": 53275, "right_pr_number": 68179, "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/channel.ts" ], "similarity": 0.494, "size_similarity": 0.4 } ], "pr_count": 2, "pr_numbers": [ 53275, 68179 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68179 ], "representative_pr_number": 53275, "representative_title": "fix(discord): add media-gallery and file block hints for models", "representative_url": "https://github.com/openclaw/openclaw/pull/53275", "shared_directories": [ "extensions/discord/src", "extensions/discord", "extensions" ], "shared_filenames": [ "extensions/discord/src/channel.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/discord/src/channel.ts`; representative PR #53275.", "title": "Scope: fix(discord): add media-gallery and file block hints for models" }, { "authors": [ "richardclawbot" ], "average_similarity": 0.492, "cluster_id": "pr-scope-59717-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T08:01:48Z", "outside_window_prs": [ { "additions": 50, "author": "ayeshakhalid192007-dev", "changed_files": 4, "created_at": "2026-04-02T14:23:29Z", "deletions": 25, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/59717/files", "html_url": "https://github.com/openclaw/openclaw/pull/59717", "merged": false, "number": 59717, "state": "open", "title": "feat(acpx): add allow option to nonInteractivePermissions", "updated_at": "2026-04-17T07:12:43Z" } ], "pairwise": [ { "breadth_similarity": 0.292, "concentration_similarity": 0.653, "content_similarity": 0.5, "left_pr_number": 59717, "right_pr_number": 68872, "shared_directories": [ "docs/tools", "docs" ], "shared_filenames": [ "docs/tools/acp-agents.md" ], "similarity": 0.492, "size_similarity": 0.533 } ], "pr_count": 2, "pr_numbers": [ 59717, 68872 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68872 ], "representative_pr_number": 59717, "representative_title": "feat(acpx): add allow option to nonInteractivePermissions", "representative_url": "https://github.com/openclaw/openclaw/pull/59717", "shared_directories": [ "docs/tools", "docs" ], "shared_filenames": [ "docs/tools/acp-agents.md" ], "summary": "2 open PRs share weighted file overlap around `docs/tools/acp-agents.md`; representative PR #59717.", "title": "Scope: feat(acpx): add allow option to nonInteractivePermissions" }, { "authors": [ "sk7n4k3d" ], "average_similarity": 0.488, "cluster_id": "pr-scope-66673-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T12:24:00Z", "outside_window_prs": [ { "additions": 804, "author": "samzong", "changed_files": 11, "created_at": "2026-04-14T16:32:26Z", "deletions": 16, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66673/files", "html_url": "https://github.com/openclaw/openclaw/pull/66673", "merged": false, "number": 66673, "state": "open", "title": "[Feat] Gateway: add doctor.memory.remHarness probe", "updated_at": "2026-04-15T05:52:40Z" } ], "pairwise": [ { "breadth_similarity": 0.336, "concentration_similarity": 0.786, "content_similarity": 0.54, "left_pr_number": 66673, "right_pr_number": 69322, "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/doctor.test.ts", "src/gateway/server-methods/doctor.ts" ], "similarity": 0.488, "size_similarity": 0.245 } ], "pr_count": 2, "pr_numbers": [ 66673, 69322 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69322 ], "representative_pr_number": 66673, "representative_title": "[Feat] Gateway: add doctor.memory.remHarness probe", "representative_url": "https://github.com/openclaw/openclaw/pull/66673", "shared_directories": [ "src/gateway/server-methods", "src/gateway", "src" ], "shared_filenames": [ "src/gateway/server-methods/doctor.test.ts", "src/gateway/server-methods/doctor.ts" ], "summary": "2 open PRs share weighted file overlap around `src/gateway/server-methods/doctor.test.ts`, `src/gateway/server-methods/doctor.ts`; representative PR #66673.", "title": "Scope: [Feat] Gateway: add doctor.memory.remHarness probe" }, { "authors": [ "likewen-tech" ], "average_similarity": 0.48, "cluster_id": "pr-scope-53522-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T10:04:30Z", "outside_window_prs": [ { "additions": 303, "author": "08820048", "changed_files": 16, "created_at": "2026-03-24T07:48:22Z", "deletions": 27, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53522/files", "html_url": "https://github.com/openclaw/openclaw/pull/53522", "merged": false, "number": 53522, "state": "open", "title": "[codex] Fix web fetch schema, dual-stack status diagnosis, and Synology webhook ACKs", "updated_at": "2026-03-24T20:15:30Z" } ], "pairwise": [ { "breadth_similarity": 0.163, "concentration_similarity": 0.376, "content_similarity": 0.501, "left_pr_number": 53522, "right_pr_number": 68506, "shared_directories": [ "src/commands/status-all", "src/commands", "src" ], "shared_filenames": [ "src/commands/status-all/diagnosis.test.ts", "src/commands/status-all/diagnosis.ts" ], "similarity": 0.48, "size_similarity": 0.624 } ], "pr_count": 2, "pr_numbers": [ 53522, 68506 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68506 ], "representative_pr_number": 53522, "representative_title": "[codex] Fix web fetch schema, dual-stack status diagnosis, and Synology webhook ACKs", "representative_url": "https://github.com/openclaw/openclaw/pull/53522", "shared_directories": [ "src/commands/status-all", "src/commands", "src" ], "shared_filenames": [ "src/commands/status-all/diagnosis.test.ts", "src/commands/status-all/diagnosis.ts" ], "summary": "2 open PRs share weighted file overlap around `src/commands/status-all/diagnosis.test.ts`, `src/commands/status-all/diagnosis.ts`; representative PR #53522.", "title": "Scope: [codex] Fix web fetch schema, dual-stack status diagnosis, and Synology webhook ACKs" }, { "authors": [ "BradGroux" ], "average_similarity": 0.476, "cluster_id": "pr-scope-66341-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T06:42:35Z", "outside_window_prs": [ { "additions": 723, "author": "TOMUIV", "changed_files": 17, "created_at": "2026-04-14T04:32:33Z", "deletions": 481, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66341/files", "html_url": "https://github.com/openclaw/openclaw/pull/66341", "merged": false, "number": 66341, "state": "open", "title": "fix(cron): lower cron.add scope from admin to write with scope ceiling", "updated_at": "2026-04-15T14:22:19Z" } ], "pairwise": [ { "breadth_similarity": 0.411, "concentration_similarity": 0.792, "content_similarity": 0.485, "left_pr_number": 66341, "right_pr_number": 69217, "shared_directories": [ "extensions/qa-lab/web/src", "extensions/qa-lab/web", "src/gateway/server-methods", "extensions/qa-lab", "src/agents", "src/gateway", "extensions", "src" ], "shared_filenames": [ "extensions/qa-lab/web/src/ui-render.ts" ], "similarity": 0.476, "size_similarity": 0.376 } ], "pr_count": 2, "pr_numbers": [ 66341, 69217 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69217 ], "representative_pr_number": 66341, "representative_title": "fix(cron): lower cron.add scope from admin to write with scope ceiling", "representative_url": "https://github.com/openclaw/openclaw/pull/66341", "shared_directories": [ "extensions/qa-lab/web/src", "extensions/qa-lab/web", "src/gateway/server-methods", "extensions/qa-lab", "src/gateway", "src/agents", "extensions", "src" ], "shared_filenames": [ "extensions/qa-lab/web/src/ui-render.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/qa-lab/web/src/ui-render.ts`; representative PR #66341.", "title": "Scope: fix(cron): lower cron.add scope from admin to write with scope ceiling" }, { "authors": [ "tmlxrd" ], "average_similarity": 0.473, "cluster_id": "pr-scope-66466-2", "kind": "pr_scope", "last_activity_at": "2026-04-16T23:11:30Z", "outside_window_prs": [ { "additions": 41, "author": "yangxiyucs", "changed_files": 3, "created_at": "2026-04-14T09:47:30Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66466/files", "html_url": "https://github.com/openclaw/openclaw/pull/66466", "merged": false, "number": 66466, "state": "open", "title": "fix(openai): clarify provider setup wizard hint", "updated_at": "2026-04-14T14:51:19Z" } ], "pairwise": [ { "breadth_similarity": 0.714, "concentration_similarity": 0.904, "content_similarity": 0.32, "left_pr_number": 66466, "right_pr_number": 67848, "shared_directories": [ "extensions/openai", "src/commands", "extensions", "src" ], "shared_filenames": [ "extensions/openai/openai-provider.ts", "extensions/openai/openclaw.plugin.json", "src/commands/auth-choice-options.test.ts" ], "similarity": 0.473, "size_similarity": 0.88 } ], "pr_count": 2, "pr_numbers": [ 66466, 67848 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67848 ], "representative_pr_number": 66466, "representative_title": "fix(openai): clarify provider setup wizard hint", "representative_url": "https://github.com/openclaw/openclaw/pull/66466", "shared_directories": [ "extensions/openai", "src/commands", "extensions", "src" ], "shared_filenames": [ "extensions/openai/openclaw.plugin.json", "extensions/openai/openai-provider.ts", "src/commands/auth-choice-options.test.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/openai/openclaw.plugin.json`, `extensions/openai/openai-provider.ts`, `src/commands/auth-choice-options.test.ts`; representative PR #66466.", "title": "Scope: fix(openai): clarify provider setup wizard hint" }, { "authors": [ "hddevteam" ], "average_similarity": 0.459, "cluster_id": "pr-scope-59294-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T12:02:11Z", "outside_window_prs": [ { "additions": 569, "author": "atharva-getboon", "changed_files": 47, "created_at": "2026-04-01T23:42:46Z", "deletions": 178, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/59294/files", "html_url": "https://github.com/openclaw/openclaw/pull/59294", "merged": false, "number": 59294, "state": "open", "title": "fix(msteams): isolate thread sessions, outbound targeting, and attachment resolution", "updated_at": "2026-04-19T21:17:10Z" } ], "pairwise": [ { "breadth_similarity": 0.403, "concentration_similarity": 0.977, "content_similarity": 0.314, "left_pr_number": 59294, "right_pr_number": 67174, "shared_directories": [ "extensions/msteams/src/monitor-handler", "extensions/msteams/src", "extensions/msteams", "src/plugin-sdk", "extensions", "src" ], "shared_filenames": [ "extensions/msteams/src/monitor-handler/message-handler.ts" ], "similarity": 0.459, "size_similarity": 0.996 } ], "pr_count": 2, "pr_numbers": [ 59294, 67174 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67174 ], "representative_pr_number": 59294, "representative_title": "fix(msteams): isolate thread sessions, outbound targeting, and attachment resolution", "representative_url": "https://github.com/openclaw/openclaw/pull/59294", "shared_directories": [ "extensions/msteams/src/monitor-handler", "extensions/msteams/src", "extensions/msteams", "src/plugin-sdk", "extensions", "src" ], "shared_filenames": [ "extensions/msteams/src/monitor-handler/message-handler.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/msteams/src/monitor-handler/message-handler.ts`; representative PR #59294.", "title": "Scope: fix(msteams): isolate thread sessions, outbound targeting, and attachment resolution" }, { "authors": [ "donlaiq" ], "average_similarity": 0.457, "cluster_id": "pr-scope-53634-2", "kind": "pr_scope", "last_activity_at": "2026-04-16T19:49:48Z", "outside_window_prs": [ { "additions": 46, "author": "w-sss", "changed_files": 1, "created_at": "2026-03-24T11:06:40Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53634/files", "html_url": "https://github.com/openclaw/openclaw/pull/53634", "merged": false, "number": 53634, "state": "open", "title": "fix: update fast-xml-parser to 5.5.8", "updated_at": "2026-03-24T20:15:29Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.429, "left_pr_number": 53634, "right_pr_number": 67795, "shared_directories": [ "scripts" ], "shared_filenames": [ "scripts/install.sh" ], "similarity": 0.457, "size_similarity": 0.043 } ], "pr_count": 2, "pr_numbers": [ 53634, 67795 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67795 ], "representative_pr_number": 53634, "representative_title": "fix: update fast-xml-parser to 5.5.8", "representative_url": "https://github.com/openclaw/openclaw/pull/53634", "shared_directories": [ "scripts" ], "shared_filenames": [ "scripts/install.sh" ], "summary": "2 open PRs share weighted file overlap around `scripts/install.sh`; representative PR #53634.", "title": "Scope: fix: update fast-xml-parser to 5.5.8" }, { "authors": [ "wzhgba" ], "average_similarity": 0.453, "cluster_id": "pr-scope-66687-2", "kind": "pr_scope", "last_activity_at": "2026-04-17T09:51:28Z", "outside_window_prs": [ { "additions": 280, "author": "wzhgba", "changed_files": 11, "created_at": "2026-04-14T16:57:48Z", "deletions": 7, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66687/files", "html_url": "https://github.com/openclaw/openclaw/pull/66687", "merged": false, "number": 66687, "state": "open", "title": "feat(cache-trace): capture stream-context tools with opt-in payload controls", "updated_at": "2026-04-17T07:05:38Z" } ], "pairwise": [ { "breadth_similarity": 0.191, "concentration_similarity": 0.85, "content_similarity": 0.512, "left_pr_number": 66687, "right_pr_number": 67011, "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/cache-trace.test.ts" ], "similarity": 0.453, "size_similarity": 0.216 } ], "pr_count": 2, "pr_numbers": [ 66687, 67011 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67011 ], "representative_pr_number": 66687, "representative_title": "feat(cache-trace): capture stream-context tools with opt-in payload controls", "representative_url": "https://github.com/openclaw/openclaw/pull/66687", "shared_directories": [ "src/agents", "src" ], "shared_filenames": [ "src/agents/cache-trace.test.ts" ], "summary": "2 open PRs share weighted file overlap around `src/agents/cache-trace.test.ts`; representative PR #66687.", "title": "Scope: feat(cache-trace): capture stream-context tools with opt-in payload controls" }, { "authors": [ "hclsys" ], "average_similarity": 0.449, "cluster_id": "pr-scope-64344-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T03:00:16Z", "outside_window_prs": [ { "additions": 132, "author": "acinader", "changed_files": 5, "created_at": "2026-04-10T14:12:10Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64344/files", "html_url": "https://github.com/openclaw/openclaw/pull/64344", "merged": false, "number": 64344, "state": "open", "title": "fix(secrets): distinguish ${ENV_VAR} from plaintext in audit", "updated_at": "2026-04-11T14:23:17Z" } ], "pairwise": [ { "breadth_similarity": 0.533, "concentration_similarity": 0.975, "content_similarity": 0.449, "left_pr_number": 64344, "right_pr_number": 69555, "shared_directories": [ "src/secrets", "src" ], "shared_filenames": [ "src/secrets/audit.test.ts" ], "similarity": 0.449, "size_similarity": 0.216 } ], "pr_count": 2, "pr_numbers": [ 64344, 69555 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69555 ], "representative_pr_number": 64344, "representative_title": "fix(secrets): distinguish ${ENV_VAR} from plaintext in audit", "representative_url": "https://github.com/openclaw/openclaw/pull/64344", "shared_directories": [ "src/secrets", "src" ], "shared_filenames": [ "src/secrets/audit.test.ts" ], "summary": "2 open PRs share weighted file overlap around `src/secrets/audit.test.ts`; representative PR #64344.", "title": "Scope: fix(secrets): distinguish ${ENV_VAR} from plaintext in audit" }, { "authors": [ "foxer0952" ], "average_similarity": 0.448, "cluster_id": "pr-scope-66278-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T10:37:24Z", "outside_window_prs": [ { "additions": 848, "author": "Lellansin", "changed_files": 2, "created_at": "2026-04-14T02:02:25Z", "deletions": 9, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66278/files", "html_url": "https://github.com/openclaw/openclaw/pull/66278", "merged": false, "number": 66278, "state": "open", "title": "fix(gateway): align OpenAI chat completions tool protocol", "updated_at": "2026-04-14T02:17:48Z" } ], "pairwise": [ { "breadth_similarity": 0.417, "concentration_similarity": 0.773, "content_similarity": 0.388, "left_pr_number": 66278, "right_pr_number": 68435, "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/openai-http.ts" ], "similarity": 0.448, "size_similarity": 0.64 } ], "pr_count": 2, "pr_numbers": [ 66278, 68435 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68435 ], "representative_pr_number": 66278, "representative_title": "fix(gateway): align OpenAI chat completions tool protocol", "representative_url": "https://github.com/openclaw/openclaw/pull/66278", "shared_directories": [ "src/gateway", "src" ], "shared_filenames": [ "src/gateway/openai-http.ts" ], "summary": "2 open PRs share weighted file overlap around `src/gateway/openai-http.ts`; representative PR #66278.", "title": "Scope: fix(gateway): align OpenAI chat completions tool protocol" }, { "authors": [ "visionik" ], "average_similarity": 0.444, "cluster_id": "pr-scope-65628-2", "kind": "pr_scope", "last_activity_at": "2026-04-15T03:47:01Z", "outside_window_prs": [ { "additions": 277, "author": "hxy91819", "changed_files": 2, "created_at": "2026-04-13T01:07:07Z", "deletions": 26, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65628/files", "html_url": "https://github.com/openclaw/openclaw/pull/65628", "merged": false, "number": 65628, "state": "open", "title": "feat(skills): add discussion_comment support to secret-scanning skill", "updated_at": "2026-04-14T16:18:51Z" } ], "pairwise": [ { "breadth_similarity": 0.163, "concentration_similarity": 0.686, "content_similarity": 0.451, "left_pr_number": 65628, "right_pr_number": 66968, "shared_directories": [ ".agents/skills/openclaw-secret-scanning-maintainer/scripts", ".agents/skills/openclaw-secret-scanning-maintainer", ".agents/skills", ".agents" ], "shared_filenames": [ ".agents/skills/openclaw-secret-scanning-maintainer/scripts/secret-scanning.mjs" ], "similarity": 0.444, "size_similarity": 0.521 } ], "pr_count": 2, "pr_numbers": [ 65628, 66968 ], "recent_pr_count": 1, "recent_pr_numbers": [ 66968 ], "representative_pr_number": 65628, "representative_title": "feat(skills): add discussion_comment support to secret-scanning skill", "representative_url": "https://github.com/openclaw/openclaw/pull/65628", "shared_directories": [ ".agents/skills/openclaw-secret-scanning-maintainer/scripts", ".agents/skills/openclaw-secret-scanning-maintainer", ".agents/skills", ".agents" ], "shared_filenames": [ ".agents/skills/openclaw-secret-scanning-maintainer/scripts/secret-scanning.mjs" ], "summary": "2 open PRs share weighted file overlap around `.agents/skills/openclaw-secret-scanning-maintainer/scripts/secret-scanning.mjs`; representative PR #65628.", "title": "Scope: feat(skills): add discussion_comment support to secret-scanning skill" }, { "authors": [ "JustInCache" ], "average_similarity": 0.427, "cluster_id": "pr-scope-65452-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T07:26:45Z", "outside_window_prs": [ { "additions": 40, "author": "apocalypse9949", "changed_files": 2, "created_at": "2026-04-12T16:23:58Z", "deletions": 10, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65452/files", "html_url": "https://github.com/openclaw/openclaw/pull/65452", "merged": false, "number": 65452, "state": "open", "title": " [security fix] Fix SQL injection in memory schema management", "updated_at": "2026-04-13T10:48:32Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.233, "left_pr_number": 65452, "right_pr_number": 69059, "shared_directories": [ "packages/memory-host-sdk/src/host", "packages/memory-host-sdk/src", "src/memory-host-sdk/host", "packages/memory-host-sdk", "src/memory-host-sdk", "packages", "src" ], "shared_filenames": [], "similarity": 0.427, "size_similarity": 0.758 } ], "pr_count": 2, "pr_numbers": [ 65452, 69059 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69059 ], "representative_pr_number": 65452, "representative_title": " [security fix] Fix SQL injection in memory schema management", "representative_url": "https://github.com/openclaw/openclaw/pull/65452", "shared_directories": [ "packages/memory-host-sdk/src/host", "packages/memory-host-sdk/src", "src/memory-host-sdk/host", "packages/memory-host-sdk", "src/memory-host-sdk", "packages", "src" ], "shared_filenames": [], "summary": "2 open PRs cluster in `packages/memory-host-sdk/src/host`, `packages/memory-host-sdk/src`, `src/memory-host-sdk/host` with similar change breadth; representative PR #65452.", "title": "Scope: [security fix] Fix SQL injection in memory schema management" }, { "authors": [ "PratikRai0101" ], "average_similarity": 0.412, "cluster_id": "pr-scope-65229-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T15:30:30Z", "outside_window_prs": [ { "additions": 134, "author": "extrasmall0", "changed_files": 6, "created_at": "2026-04-12T07:18:16Z", "deletions": 6, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65229/files", "html_url": "https://github.com/openclaw/openclaw/pull/65229", "merged": false, "number": 65229, "state": "open", "title": "fix(doctor): resolve env-backed SecretRef in gateway auth health check to prevent false-positive warning", "updated_at": "2026-04-12T19:21:03Z" } ], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.967, "content_similarity": 0.263, "left_pr_number": 65229, "right_pr_number": 69659, "shared_directories": [ "src/config", "src/flows", "src" ], "shared_filenames": [ "src/flows/doctor-health-contributions.ts" ], "similarity": 0.412, "size_similarity": 0.864 } ], "pr_count": 2, "pr_numbers": [ 65229, 69659 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69659 ], "representative_pr_number": 65229, "representative_title": "fix(doctor): resolve env-backed SecretRef in gateway auth health check to prevent false-positive warning", "representative_url": "https://github.com/openclaw/openclaw/pull/65229", "shared_directories": [ "src/flows", "src/config", "src" ], "shared_filenames": [ "src/flows/doctor-health-contributions.ts" ], "summary": "2 open PRs share weighted file overlap around `src/flows/doctor-health-contributions.ts`; representative PR #65229.", "title": "Scope: fix(doctor): resolve env-backed SecretRef in gateway auth health check to prevent false-positive warning" }, { "authors": [ "Knightmare6890" ], "average_similarity": 0.406, "cluster_id": "pr-scope-54043-2", "kind": "pr_scope", "last_activity_at": "2026-04-15T21:26:02Z", "outside_window_prs": [ { "additions": 38, "author": "LIC99", "changed_files": 2, "created_at": "2026-03-24T22:40:50Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/54043/files", "html_url": "https://github.com/openclaw/openclaw/pull/54043", "merged": false, "number": 54043, "state": "open", "title": "fix: strip trailing NO_REPLY from cron/isolated session delivery", "updated_at": "2026-03-24T22:45:46Z" } ], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.707, "content_similarity": 0.292, "left_pr_number": 54043, "right_pr_number": 67381, "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.ts" ], "similarity": 0.406, "size_similarity": 0.774 } ], "pr_count": 2, "pr_numbers": [ 54043, 67381 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67381 ], "representative_pr_number": 54043, "representative_title": "fix: strip trailing NO_REPLY from cron/isolated session delivery", "representative_url": "https://github.com/openclaw/openclaw/pull/54043", "shared_directories": [ "src/auto-reply/reply", "src/auto-reply", "src" ], "shared_filenames": [ "src/auto-reply/reply/agent-runner-execution.ts" ], "summary": "2 open PRs share weighted file overlap around `src/auto-reply/reply/agent-runner-execution.ts`; representative PR #54043.", "title": "Scope: fix: strip trailing NO_REPLY from cron/isolated session delivery" }, { "authors": [ "januaryeffect" ], "average_similarity": 0.406, "cluster_id": "pr-scope-64822-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T11:14:18Z", "outside_window_prs": [ { "additions": 0, "author": "protomota", "changed_files": 1, "created_at": "2026-04-11T13:30:44Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64822/files", "html_url": "https://github.com/openclaw/openclaw/pull/64822", "merged": false, "number": 64822, "state": "open", "title": "chore: stop tracking a2ui bundle hash (again)", "updated_at": "2026-04-11T13:45:19Z" } ], "pairwise": [ { "breadth_similarity": 0.5, "concentration_similarity": 0.5, "content_similarity": 0.419, "left_pr_number": 64822, "right_pr_number": 68934, "shared_directories": [ "src/canvas-host/a2ui", "src/canvas-host", "src" ], "shared_filenames": [ "src/canvas-host/a2ui/.bundle.hash" ], "similarity": 0.406, "size_similarity": 0.25 } ], "pr_count": 2, "pr_numbers": [ 64822, 68934 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68934 ], "representative_pr_number": 64822, "representative_title": "chore: stop tracking a2ui bundle hash (again)", "representative_url": "https://github.com/openclaw/openclaw/pull/64822", "shared_directories": [ "src/canvas-host/a2ui", "src/canvas-host", "src" ], "shared_filenames": [ "src/canvas-host/a2ui/.bundle.hash" ], "summary": "2 open PRs share weighted file overlap around `src/canvas-host/a2ui/.bundle.hash`; representative PR #64822.", "title": "Scope: chore: stop tracking a2ui bundle hash (again)" }, { "authors": [ "zqchris" ], "average_similarity": 0.397, "cluster_id": "pr-scope-53607-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T10:41:50Z", "outside_window_prs": [ { "additions": 270, "author": "lupuletic", "changed_files": 8, "created_at": "2026-03-24T10:06:09Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53607/files", "html_url": "https://github.com/openclaw/openclaw/pull/53607", "merged": false, "number": 53607, "state": "open", "title": "fix(discord): mirror Components v2 outbound messages to session transcript", "updated_at": "2026-03-24T20:15:30Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.892, "content_similarity": 0.246, "left_pr_number": 53607, "right_pr_number": 68877, "shared_directories": [ "src/infra/outbound", "src/infra", "src" ], "shared_filenames": [ "src/infra/outbound/deliver.test.ts", "src/infra/outbound/deliver.ts" ], "similarity": 0.397, "size_similarity": 0.535 } ], "pr_count": 2, "pr_numbers": [ 53607, 68877 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68877 ], "representative_pr_number": 53607, "representative_title": "fix(discord): mirror Components v2 outbound messages to session transcript", "representative_url": "https://github.com/openclaw/openclaw/pull/53607", "shared_directories": [ "src/infra/outbound", "src/infra", "src" ], "shared_filenames": [ "src/infra/outbound/deliver.test.ts", "src/infra/outbound/deliver.ts" ], "summary": "2 open PRs share weighted file overlap around `src/infra/outbound/deliver.test.ts`, `src/infra/outbound/deliver.ts`; representative PR #53607.", "title": "Scope: fix(discord): mirror Components v2 outbound messages to session transcript" }, { "authors": [ "Angfr95" ], "average_similarity": 0.394, "cluster_id": "pr-scope-64558-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T22:57:14Z", "outside_window_prs": [ { "additions": 495, "author": "Pearcekieser", "changed_files": 10, "created_at": "2026-04-11T00:45:04Z", "deletions": 24, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64558/files", "html_url": "https://github.com/openclaw/openclaw/pull/64558", "merged": false, "number": 64558, "state": "open", "title": "fix(browser): repair isolated download seam", "updated_at": "2026-04-17T05:12:04Z" } ], "pairwise": [ { "breadth_similarity": 0.35, "concentration_similarity": 0.934, "content_similarity": 0.24, "left_pr_number": 64558, "right_pr_number": 67149, "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "similarity": 0.394, "size_similarity": 0.961 } ], "pr_count": 2, "pr_numbers": [ 64558, 67149 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67149 ], "representative_pr_number": 64558, "representative_title": "fix(browser): repair isolated download seam", "representative_url": "https://github.com/openclaw/openclaw/pull/64558", "shared_directories": [ "extensions/browser/src/browser", "extensions/browser/src", "extensions/browser", "extensions" ], "shared_filenames": [], "summary": "2 open PRs cluster in `extensions/browser/src/browser`, `extensions/browser/src`, `extensions/browser` with similar change breadth; representative PR #64558.", "title": "Scope: fix(browser): repair isolated download seam" }, { "authors": [ "BKF-Gitty" ], "average_similarity": 0.389, "cluster_id": "pr-scope-44665-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T23:08:46Z", "outside_window_prs": [ { "additions": 34, "author": "Lubrsy706", "changed_files": 2, "created_at": "2026-03-13T04:42:20Z", "deletions": 5, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/44665/files", "html_url": "https://github.com/openclaw/openclaw/pull/44665", "merged": false, "number": 44665, "state": "open", "title": "fix(cron): report not-requested when delivery.mode=none and delivered=false", "updated_at": "2026-04-21T02:46:30Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.788, "content_similarity": 0.171, "left_pr_number": 44665, "right_pr_number": 68717, "shared_directories": [ "src/cron/service", "src/cron", "src" ], "shared_filenames": [ "src/cron/service/timer.ts" ], "similarity": 0.389, "size_similarity": 0.867 } ], "pr_count": 2, "pr_numbers": [ 44665, 68717 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68717 ], "representative_pr_number": 44665, "representative_title": "fix(cron): report not-requested when delivery.mode=none and delivered=false", "representative_url": "https://github.com/openclaw/openclaw/pull/44665", "shared_directories": [ "src/cron/service", "src/cron", "src" ], "shared_filenames": [ "src/cron/service/timer.ts" ], "summary": "2 open PRs share weighted file overlap around `src/cron/service/timer.ts`; representative PR #44665.", "title": "Scope: fix(cron): report not-requested when delivery.mode=none and delivered=false" }, { "authors": [ "bmadwaves" ], "average_similarity": 0.386, "cluster_id": "pr-scope-37293-2", "kind": "pr_scope", "last_activity_at": "2026-04-17T16:57:23Z", "outside_window_prs": [ { "additions": 33, "author": "clawdoo", "changed_files": 1, "created_at": "2026-03-06T06:29:13Z", "deletions": 8, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37293/files", "html_url": "https://github.com/openclaw/openclaw/pull/37293", "merged": false, "number": 37293, "state": "open", "title": "feat(discord): support voice message transcription for multimodal models (#7855, #22878)", "updated_at": "2026-04-19T04:32:26Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 1.0, "content_similarity": 0.221, "left_pr_number": 37293, "right_pr_number": 68213, "shared_directories": [ "src/discord/monitor", "src/discord", "src" ], "shared_filenames": [], "similarity": 0.386, "size_similarity": 0.707 } ], "pr_count": 2, "pr_numbers": [ 37293, 68213 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68213 ], "representative_pr_number": 37293, "representative_title": "feat(discord): support voice message transcription for multimodal models (#7855, #22878)", "representative_url": "https://github.com/openclaw/openclaw/pull/37293", "shared_directories": [ "src/discord/monitor", "src/discord", "src" ], "shared_filenames": [], "summary": "2 open PRs cluster in `src/discord/monitor`, `src/discord`, `src` with similar change breadth; representative PR #37293.", "title": "Scope: feat(discord): support voice message transcription for multimodal models (#7855, #22878)" }, { "authors": [ "IAMSamuelRodda" ], "average_similarity": 0.38, "cluster_id": "pr-scope-46303-2", "kind": "pr_scope", "last_activity_at": "2026-04-16T02:30:05Z", "outside_window_prs": [ { "additions": 1158, "author": "joeykrug", "changed_files": 28, "created_at": "2026-03-14T15:54:45Z", "deletions": 100, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/46303/files", "html_url": "https://github.com/openclaw/openclaw/pull/46303", "merged": false, "number": 46303, "state": "open", "title": "fix: drain inbound debounce buffer and followup queues before SIGUSR1 reload", "updated_at": "2026-04-18T23:17:13Z" } ], "pairwise": [ { "breadth_similarity": 0.7, "concentration_similarity": 0.894, "content_similarity": 0.176, "left_pr_number": 46303, "right_pr_number": 66865, "shared_directories": [ "src/cli/gateway-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/gateway-cli/run-loop.test.ts", "src/cli/gateway-cli/run-loop.ts" ], "similarity": 0.38, "size_similarity": 0.946 } ], "pr_count": 2, "pr_numbers": [ 46303, 66865 ], "recent_pr_count": 1, "recent_pr_numbers": [ 66865 ], "representative_pr_number": 46303, "representative_title": "fix: drain inbound debounce buffer and followup queues before SIGUSR1 reload", "representative_url": "https://github.com/openclaw/openclaw/pull/46303", "shared_directories": [ "src/cli/gateway-cli", "src/cli", "src" ], "shared_filenames": [ "src/cli/gateway-cli/run-loop.test.ts", "src/cli/gateway-cli/run-loop.ts" ], "summary": "2 open PRs share weighted file overlap around `src/cli/gateway-cli/run-loop.test.ts`, `src/cli/gateway-cli/run-loop.ts`; representative PR #46303.", "title": "Scope: fix: drain inbound debounce buffer and followup queues before SIGUSR1 reload" }, { "authors": [ "abajirao" ], "average_similarity": 0.38, "cluster_id": "pr-scope-65968-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T13:52:13Z", "outside_window_prs": [ { "additions": 340, "author": "hendricius", "changed_files": 2, "created_at": "2026-04-13T13:53:53Z", "deletions": 35, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65968/files", "html_url": "https://github.com/openclaw/openclaw/pull/65968", "merged": false, "number": 65968, "state": "open", "title": "fix(agents): surface terminal assistant errors via FailoverError", "updated_at": "2026-04-13T14:03:55Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.118, "left_pr_number": 65968, "right_pr_number": 69346, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [], "similarity": 0.38, "size_similarity": 0.981 } ], "pr_count": 2, "pr_numbers": [ 65968, 69346 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69346 ], "representative_pr_number": 65968, "representative_title": "fix(agents): surface terminal assistant errors via FailoverError", "representative_url": "https://github.com/openclaw/openclaw/pull/65968", "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src" ], "shared_filenames": [], "summary": "2 open PRs cluster in `src/agents/pi-embedded-runner/run`, `src/agents/pi-embedded-runner`, `src/agents` with similar change breadth; representative PR #65968.", "title": "Scope: fix(agents): surface terminal assistant errors via FailoverError" }, { "authors": [ "smartchainark" ], "average_similarity": 0.367, "cluster_id": "pr-scope-65649-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T08:19:52Z", "outside_window_prs": [ { "additions": 284, "author": "JUSTICEESSIELP", "changed_files": 3, "created_at": "2026-04-13T01:54:28Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65649/files", "html_url": "https://github.com/openclaw/openclaw/pull/65649", "merged": false, "number": 65649, "state": "open", "title": "fix(config): cap forensic clobber snapshots at 32 per path", "updated_at": "2026-04-13T02:07:39Z" } ], "pairwise": [ { "breadth_similarity": 0.875, "concentration_similarity": 1.0, "content_similarity": 0.163, "left_pr_number": 65649, "right_pr_number": 68462, "shared_directories": [ "src/config", "src" ], "shared_filenames": [ "src/config/io.observe-recovery.ts" ], "similarity": 0.367, "size_similarity": 0.768 } ], "pr_count": 2, "pr_numbers": [ 65649, 68462 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68462 ], "representative_pr_number": 65649, "representative_title": "fix(config): cap forensic clobber snapshots at 32 per path", "representative_url": "https://github.com/openclaw/openclaw/pull/65649", "shared_directories": [ "src/config", "src" ], "shared_filenames": [ "src/config/io.observe-recovery.ts" ], "summary": "2 open PRs share weighted file overlap around `src/config/io.observe-recovery.ts`; representative PR #65649.", "title": "Scope: fix(config): cap forensic clobber snapshots at 32 per path" }, { "authors": [ "hkalkoti1" ], "average_similarity": 0.36, "cluster_id": "pr-scope-64503-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T20:11:24Z", "outside_window_prs": [ { "additions": 160, "author": "ndholakia", "changed_files": 2, "created_at": "2026-04-10T21:25:57Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64503/files", "html_url": "https://github.com/openclaw/openclaw/pull/64503", "merged": false, "number": 64503, "state": "open", "title": "fix(msteams): forward messageBack card actions (Action.Submit) to agent (#60952)", "updated_at": "2026-04-14T00:46:27Z" } ], "pairwise": [ { "breadth_similarity": 0.75, "concentration_similarity": 0.87, "content_similarity": 0.207, "left_pr_number": 64503, "right_pr_number": 69428, "shared_directories": [ "extensions/msteams/src", "extensions/msteams", "extensions" ], "shared_filenames": [], "similarity": 0.36, "size_similarity": 0.64 } ], "pr_count": 2, "pr_numbers": [ 64503, 69428 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69428 ], "representative_pr_number": 64503, "representative_title": "fix(msteams): forward messageBack card actions (Action.Submit) to agent (#60952)", "representative_url": "https://github.com/openclaw/openclaw/pull/64503", "shared_directories": [ "extensions/msteams/src", "extensions/msteams", "extensions" ], "shared_filenames": [], "summary": "2 open PRs cluster in `extensions/msteams/src`, `extensions/msteams`, `extensions` with similar change breadth; representative PR #64503.", "title": "Scope: fix(msteams): forward messageBack card actions (Action.Submit) to agent (#60952)" }, { "authors": [ "neo1027144-creator" ], "average_similarity": 0.358, "cluster_id": "pr-scope-65999-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T06:18:06Z", "outside_window_prs": [ { "additions": 144, "author": "asakir44", "changed_files": 3, "created_at": "2026-04-13T15:06:33Z", "deletions": 1, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/65999/files", "html_url": "https://github.com/openclaw/openclaw/pull/65999", "merged": false, "number": 65999, "state": "open", "title": "fix(telegram): compute and pass Ogg duration for voice messages", "updated_at": "2026-04-13T15:09:56Z" } ], "pairwise": [ { "breadth_similarity": 0.667, "concentration_similarity": 1.0, "content_similarity": 0.337, "left_pr_number": 65999, "right_pr_number": 68836, "shared_directories": [ "extensions/telegram/src/bot", "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot/delivery.replies.ts" ], "similarity": 0.358, "size_similarity": 0.041 } ], "pr_count": 2, "pr_numbers": [ 65999, 68836 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68836 ], "representative_pr_number": 65999, "representative_title": "fix(telegram): compute and pass Ogg duration for voice messages", "representative_url": "https://github.com/openclaw/openclaw/pull/65999", "shared_directories": [ "extensions/telegram/src/bot", "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [ "extensions/telegram/src/bot/delivery.replies.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/telegram/src/bot/delivery.replies.ts`; representative PR #65999.", "title": "Scope: fix(telegram): compute and pass Ogg duration for voice messages" }, { "authors": [ "JerranC" ], "average_similarity": 0.358, "cluster_id": "pr-scope-53822-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T18:38:53Z", "outside_window_prs": [ { "additions": 242, "author": "sasan1200", "changed_files": 8, "created_at": "2026-03-24T17:04:24Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53822/files", "html_url": "https://github.com/openclaw/openclaw/pull/53822", "merged": false, "number": 53822, "state": "open", "title": "Feat/sandbox docker volumes strategies", "updated_at": "2026-03-24T20:15:28Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 0.803, "content_similarity": 0.102, "left_pr_number": 53822, "right_pr_number": 66933, "shared_directories": [ "src/agents", "src/config", "src" ], "shared_filenames": [ "src/config/schema.base.generated.ts", "src/config/zod-schema.agent-runtime.ts" ], "similarity": 0.358, "size_similarity": 0.972 } ], "pr_count": 2, "pr_numbers": [ 53822, 66933 ], "recent_pr_count": 1, "recent_pr_numbers": [ 66933 ], "representative_pr_number": 53822, "representative_title": "Feat/sandbox docker volumes strategies", "representative_url": "https://github.com/openclaw/openclaw/pull/53822", "shared_directories": [ "src/config", "src/agents", "src" ], "shared_filenames": [ "src/config/zod-schema.agent-runtime.ts", "src/config/schema.base.generated.ts" ], "summary": "2 open PRs share weighted file overlap around `src/config/zod-schema.agent-runtime.ts`, `src/config/schema.base.generated.ts`; representative PR #53822.", "title": "Scope: Feat/sandbox docker volumes strategies" }, { "authors": [ "kangjinghang" ], "average_similarity": 0.354, "cluster_id": "pr-scope-53535-2", "kind": "pr_scope", "last_activity_at": "2026-04-16T06:26:54Z", "outside_window_prs": [ { "additions": 500, "author": "allan0509", "changed_files": 6, "created_at": "2026-03-24T08:04:04Z", "deletions": 50, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53535/files", "html_url": "https://github.com/openclaw/openclaw/pull/53535", "merged": false, "number": 53535, "state": "open", "title": "feat(feishu): expand permission management tools", "updated_at": "2026-03-24T20:15:30Z" } ], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 1.0, "content_similarity": 0.138, "left_pr_number": 53535, "right_pr_number": 67004, "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "similarity": 0.354, "size_similarity": 0.831 } ], "pr_count": 2, "pr_numbers": [ 53535, 67004 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67004 ], "representative_pr_number": 53535, "representative_title": "feat(feishu): expand permission management tools", "representative_url": "https://github.com/openclaw/openclaw/pull/53535", "shared_directories": [ "extensions/feishu/src", "extensions/feishu", "extensions" ], "shared_filenames": [], "summary": "2 open PRs cluster in `extensions/feishu/src`, `extensions/feishu`, `extensions` with similar change breadth; representative PR #53535.", "title": "Scope: feat(feishu): expand permission management tools" }, { "authors": [ "dorukardahan" ], "average_similarity": 0.351, "cluster_id": "pr-scope-38222-2", "kind": "pr_scope", "last_activity_at": "2026-04-18T16:42:01Z", "outside_window_prs": [ { "additions": 147, "author": "pranayom", "changed_files": 4, "created_at": "2026-03-06T17:33:37Z", "deletions": 9, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/38222/files", "html_url": "https://github.com/openclaw/openclaw/pull/38222", "merged": false, "number": 38222, "state": "open", "title": "fix(plugins): enforce length limits on hook-injected prompt context", "updated_at": "2026-04-21T04:29:38Z" } ], "pairwise": [ { "breadth_similarity": 0.297, "concentration_similarity": 0.758, "content_similarity": 0.274, "left_pr_number": 38222, "right_pr_number": 68621, "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/agents", "src/plugins", "src" ], "shared_filenames": [ "src/plugins/hooks.before-agent-start.test.ts", "src/plugins/hooks.phase-hooks.test.ts", "src/plugins/hooks.ts" ], "similarity": 0.351, "size_similarity": 0.612 } ], "pr_count": 2, "pr_numbers": [ 38222, 68621 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68621 ], "representative_pr_number": 38222, "representative_title": "fix(plugins): enforce length limits on hook-injected prompt context", "representative_url": "https://github.com/openclaw/openclaw/pull/38222", "shared_directories": [ "src/agents/pi-embedded-runner/run", "src/agents/pi-embedded-runner", "src/plugins", "src/agents", "src" ], "shared_filenames": [ "src/plugins/hooks.before-agent-start.test.ts", "src/plugins/hooks.phase-hooks.test.ts", "src/plugins/hooks.ts" ], "summary": "2 open PRs share weighted file overlap around `src/plugins/hooks.before-agent-start.test.ts`, `src/plugins/hooks.phase-hooks.test.ts`, `src/plugins/hooks.ts`; representative PR #38222.", "title": "Scope: fix(plugins): enforce length limits on hook-injected prompt context" }, { "authors": [ "yoanndefay" ], "average_similarity": 0.351, "cluster_id": "pr-scope-66134-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T16:59:54Z", "outside_window_prs": [ { "additions": 3, "author": "yoanndefay", "changed_files": 1, "created_at": "2026-04-13T19:26:02Z", "deletions": 3, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/66134/files", "html_url": "https://github.com/openclaw/openclaw/pull/66134", "merged": false, "number": 66134, "state": "open", "title": "refactor(memory-wiki): use factory registration for wiki_apply/status/lint", "updated_at": "2026-04-14T03:44:39Z" } ], "pairwise": [ { "breadth_similarity": 0.25, "concentration_similarity": 0.708, "content_similarity": 0.412, "left_pr_number": 66134, "right_pr_number": 67584, "shared_directories": [ "extensions/memory-wiki", "extensions" ], "shared_filenames": [ "extensions/memory-wiki/index.ts" ], "similarity": 0.351, "size_similarity": 0.016 } ], "pr_count": 2, "pr_numbers": [ 66134, 67584 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67584 ], "representative_pr_number": 66134, "representative_title": "refactor(memory-wiki): use factory registration for wiki_apply/status/lint", "representative_url": "https://github.com/openclaw/openclaw/pull/66134", "shared_directories": [ "extensions/memory-wiki", "extensions" ], "shared_filenames": [ "extensions/memory-wiki/index.ts" ], "summary": "2 open PRs share weighted file overlap around `extensions/memory-wiki/index.ts`; representative PR #66134.", "title": "Scope: refactor(memory-wiki): use factory registration for wiki_apply/status/lint" }, { "authors": [ "Jonahdu" ], "average_similarity": 0.35, "cluster_id": "pr-scope-53971-2", "kind": "pr_scope", "last_activity_at": "2026-04-19T19:09:32Z", "outside_window_prs": [ { "additions": 16, "author": "jhawpetoss6-collab", "changed_files": 1, "created_at": "2026-03-24T21:25:06Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53971/files", "html_url": "https://github.com/openclaw/openclaw/pull/53971", "merged": false, "number": 53971, "state": "open", "title": "fix: include Slack API error details in log messages", "updated_at": "2026-03-24T21:27:28Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.124, "left_pr_number": 53971, "right_pr_number": 69063, "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "similarity": 0.35, "size_similarity": 0.75 } ], "pr_count": 2, "pr_numbers": [ 53971, 69063 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69063 ], "representative_pr_number": 53971, "representative_title": "fix: include Slack API error details in log messages", "representative_url": "https://github.com/openclaw/openclaw/pull/53971", "shared_directories": [ "extensions/slack/src", "extensions/slack", "extensions" ], "shared_filenames": [], "summary": "2 open PRs cluster in `extensions/slack/src`, `extensions/slack`, `extensions` with similar change breadth; representative PR #53971.", "title": "Scope: fix: include Slack API error details in log messages" }, { "authors": [ "HDYA" ], "average_similarity": 0.348, "cluster_id": "pr-scope-64336-2", "kind": "pr_scope", "last_activity_at": "2026-04-15T09:49:33Z", "outside_window_prs": [ { "additions": 2, "author": "Rowen-Claw", "changed_files": 1, "created_at": "2026-04-10T13:57:05Z", "deletions": 0, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64336/files", "html_url": "https://github.com/openclaw/openclaw/pull/64336", "merged": false, "number": 64336, "state": "open", "title": "fix(feishu): add docx:document.block:convert scope to batch import JSON", "updated_at": "2026-04-10T13:58:34Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.069, "left_pr_number": 64336, "right_pr_number": 67111, "shared_directories": [ "docs/channels", "docs" ], "shared_filenames": [], "similarity": 0.348, "size_similarity": 1.0 } ], "pr_count": 2, "pr_numbers": [ 64336, 67111 ], "recent_pr_count": 1, "recent_pr_numbers": [ 67111 ], "representative_pr_number": 64336, "representative_title": "fix(feishu): add docx:document.block:convert scope to batch import JSON", "representative_url": "https://github.com/openclaw/openclaw/pull/64336", "shared_directories": [ "docs/channels", "docs" ], "shared_filenames": [], "summary": "2 open PRs cluster in `docs/channels`, `docs` with similar change breadth; representative PR #64336.", "title": "Scope: fix(feishu): add docx:document.block:convert scope to batch import JSON" }, { "authors": [ "kagura-agent" ], "average_similarity": 0.343, "cluster_id": "pr-scope-64616-2", "kind": "pr_scope", "last_activity_at": "2026-04-20T07:16:12Z", "outside_window_prs": [ { "additions": 99, "author": "shad0wca7", "changed_files": 2, "created_at": "2026-04-11T03:39:56Z", "deletions": 4, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/64616/files", "html_url": "https://github.com/openclaw/openclaw/pull/64616", "merged": false, "number": 64616, "state": "open", "title": "Tasks: mark stale ACP zombie sessions lost during maintenance", "updated_at": "2026-04-13T00:19:57Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.101, "left_pr_number": 64616, "right_pr_number": 69247, "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [], "similarity": 0.343, "size_similarity": 0.816 } ], "pr_count": 2, "pr_numbers": [ 64616, 69247 ], "recent_pr_count": 1, "recent_pr_numbers": [ 69247 ], "representative_pr_number": 64616, "representative_title": "Tasks: mark stale ACP zombie sessions lost during maintenance", "representative_url": "https://github.com/openclaw/openclaw/pull/64616", "shared_directories": [ "src/tasks", "src" ], "shared_filenames": [], "summary": "2 open PRs cluster in `src/tasks`, `src` with similar change breadth; representative PR #64616.", "title": "Scope: Tasks: mark stale ACP zombie sessions lost during maintenance" }, { "authors": [ "rmfalco89" ], "average_similarity": 0.34, "cluster_id": "pr-scope-37276-2", "kind": "pr_scope", "last_activity_at": "2026-04-17T23:46:23Z", "outside_window_prs": [ { "additions": 463, "author": "whyuds", "changed_files": 13, "created_at": "2026-03-06T06:09:27Z", "deletions": 11, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/37276/files", "html_url": "https://github.com/openclaw/openclaw/pull/37276", "merged": false, "number": 37276, "state": "open", "title": "fix(sandbox): keep none workspaces writable", "updated_at": "2026-04-19T04:32:19Z" } ], "pairwise": [ { "breadth_similarity": 0.762, "concentration_similarity": 0.916, "content_similarity": 0.11, "left_pr_number": 37276, "right_pr_number": 66836, "shared_directories": [ "src/agents/sandbox", "src/agents", "src" ], "shared_filenames": [], "similarity": 0.34, "size_similarity": 0.941 } ], "pr_count": 2, "pr_numbers": [ 37276, 66836 ], "recent_pr_count": 1, "recent_pr_numbers": [ 66836 ], "representative_pr_number": 37276, "representative_title": "fix(sandbox): keep none workspaces writable", "representative_url": "https://github.com/openclaw/openclaw/pull/37276", "shared_directories": [ "src/agents/sandbox", "src/agents", "src" ], "shared_filenames": [], "summary": "2 open PRs cluster in `src/agents/sandbox`, `src/agents`, `src` with similar change breadth; representative PR #37276.", "title": "Scope: fix(sandbox): keep none workspaces writable" }, { "authors": [ "JustInCache" ], "average_similarity": 0.34, "cluster_id": "pr-scope-53662-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T11:56:52Z", "outside_window_prs": [ { "additions": 3, "author": "YTjungle666", "changed_files": 1, "created_at": "2026-03-24T12:21:25Z", "deletions": 2, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/53662/files", "html_url": "https://github.com/openclaw/openclaw/pull/53662", "merged": false, "number": 53662, "state": "open", "title": "fix(control-ui): size grouped chat bubbles by content", "updated_at": "2026-03-24T20:15:29Z" } ], "pairwise": [ { "breadth_similarity": 1.0, "concentration_similarity": 1.0, "content_similarity": 0.058, "left_pr_number": 53662, "right_pr_number": 68942, "shared_directories": [ "ui/src", "ui" ], "shared_filenames": [], "similarity": 0.34, "size_similarity": 1.0 } ], "pr_count": 2, "pr_numbers": [ 53662, 68942 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68942 ], "representative_pr_number": 53662, "representative_title": "fix(control-ui): size grouped chat bubbles by content", "representative_url": "https://github.com/openclaw/openclaw/pull/53662", "shared_directories": [ "ui/src", "ui" ], "shared_filenames": [], "summary": "2 open PRs cluster in `ui/src`, `ui` with similar change breadth; representative PR #53662.", "title": "Scope: fix(control-ui): size grouped chat bubbles by content" }, { "authors": [ "ayeshakhalid192007-dev" ], "average_similarity": 0.329, "cluster_id": "pr-scope-49460-2", "kind": "pr_scope", "last_activity_at": "2026-04-21T07:41:54Z", "outside_window_prs": [ { "additions": 29, "author": "yibeiopenclaw", "changed_files": 2, "created_at": "2026-03-18T04:41:09Z", "deletions": 15, "draft": false, "files_url": "https://github.com/openclaw/openclaw/pull/49460/files", "html_url": "https://github.com/openclaw/openclaw/pull/49460", "merged": false, "number": 49460, "state": "open", "title": "fix(telegram): enable TCP keepalive on getUpdates connections to prevent NAT timeout stalls", "updated_at": "2026-04-20T21:41:33Z" } ], "pairwise": [ { "breadth_similarity": 0.833, "concentration_similarity": 0.815, "content_similarity": 0.112, "left_pr_number": 49460, "right_pr_number": 68833, "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [], "similarity": 0.329, "size_similarity": 0.846 } ], "pr_count": 2, "pr_numbers": [ 49460, 68833 ], "recent_pr_count": 1, "recent_pr_numbers": [ 68833 ], "representative_pr_number": 49460, "representative_title": "fix(telegram): enable TCP keepalive on getUpdates connections to prevent NAT timeout stalls", "representative_url": "https://github.com/openclaw/openclaw/pull/49460", "shared_directories": [ "extensions/telegram/src", "extensions/telegram", "extensions" ], "shared_filenames": [], "summary": "2 open PRs cluster in `extensions/telegram/src`, `extensions/telegram`, `extensions` with similar change breadth; representative PR #49460.", "title": "Scope: fix(telegram): enable TCP keepalive on getUpdates connections to prevent NAT timeout stalls" } ]