Status for Dolphin Central
Recent events
2026-11-14T23:48:10.690334 {'source': 'webserver', 'raw': {'buildid': 198894, 'number': 9680, 'builderid': 10, 'buildrequestid': 199601, 'workerid': 5, 'masterid': 1, 'started_at': 1794700079, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Trigger'], 'shortrev': ['61efa9', 'Trigger'], 'pr_id': [15024, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [9680, 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'repository': ['', 'Build'], 'branchname': ['pr-15024', 'Trigger'], 'branch': ['refs/pull/15024/head', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builderid': [10, 'Builder'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build']}, 'buildrequest': {'buildrequestid': 199601, 'buildsetid': 44579, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1794700079, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699518, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44579, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1794699518, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 198889, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': {'buildid': 198889, 'number': 11035, 'builderid': 27, 'buildrequestid': 199595, 'workerid': 10, 'masterid': 1, 'started_at': 1794699420, 'complete_at': 1794699518, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 27, 'name': 'pr-ubu-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 10, 'name': 'pr-fifoci-ogl-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/10/builds/9680'}, 'type': 'raw_bb_hook'}
2026-11-14T23:48:00.137904 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '83f79b4336e3632384042f6840b8d0323211edc8', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14995, 'type': 'pull_request_fifoci_status'}
2026-11-14T23:47:59.514427 {'source': 'webserver', 'raw': {'buildid': 198879, 'number': 9679, 'builderid': 10, 'buildrequestid': 199584, 'workerid': 5, 'masterid': 1, 'started_at': 1794699140, 'complete_at': 1794700079, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'shortrev': ['83f79b', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'builderid': [10, 'Builder'], 'codebase': ['', 'Build'], 'headrev': ['83f79b4336e3632384042f6840b8d0323211edc8', 'Trigger'], 'pr_id': [14995, 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'workername': ['altair-fifoci', 'Worker'], 'branch': ['refs/pull/14995/head', 'Build'], 'revision': ['83f79b4336e3632384042f6840b8d0323211edc8', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-ogl-lin-mesa', 'Worker'], 'branchname': ['pr-14995', 'Trigger'], 'buildnumber': [9679, 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'got_revision': ['83f79b4336e3632384042f6840b8d0323211edc8', 'GitNoBranch'], 'warnings-count': [0, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 199584, 'buildsetid': 44576, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1794699140, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794698875, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44576, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1794698875, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 198874, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13388, 'branch': 'refs/pull/14995/head', 'revision': '83f79b4336e3632384042f6840b8d0323211edc8', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794698785, 'patch': None}]}, 'parentbuild': {'buildid': 198874, 'number': 11034, 'builderid': 27, 'buildrequestid': 199578, 'workerid': 10, 'masterid': 1, 'started_at': 1794698790, 'complete_at': 1794698875, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 27, 'name': 'pr-ubu-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 10, 'name': 'pr-fifoci-ogl-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/10/builds/9679'}, 'type': 'raw_bb_hook'}
2026-11-14T23:47:53.948988 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'leoetlino,spxtr,Tilka,cscd98,gwicks,dreamsyntax,jjdelvalle,iwubcode,RisingFog,Sintendo,bentley,SuperSamus,Starsam80,cristian64,LPFaint99,aroulin,linkmauve,tygyh,Stevoisiak,corwin-mcknight,K0bin,SirMangler,mmastrac,magumagu,CasualPokePlayer,PatrickFerry,mitaclaw,CrystalGamma,Linktothepast,aldelaro5,krnlyng,Hydr8gon,Techjar,Parlane,shonumi,skidau,sepalani,nullgemm,yourWaifu,mbc07,Ziek,NanoByte011,Orphis,kayru,Gamer64ytb,LillyJadeKatrin,BhaaLseN,JoshuaVandaele,Lobsterzelda,moncefmechri,EmptyChaos,kamiyo,mahdihijazi,magcius,smurf3tte,deReeperJosh,Simonx22,adamdmoss,Filoppi,JosJuice,Buddybenj,Dentomologist,hrydgard,malleoz,Ebola16,CrossVR,glennricster,galop1n,neobrain,unknownbrackets,mandar1jn,Geotale,hackbar,CookiePLMonster,mrgreywater,randomstuff,FioraAeterna,orbea,Helios747,comex,MayImilae,meffij,ShimmerGlass,Sir-Walrus,tom-pratt,jezze,nickbeth,crediar,archshift,jloehr,Sam-Belliveau,marcan,rukai,skylersaleh,JordanTheToaster,Pokechu22,CelestialAmber,AdmiralCurtiss,hthh,jordan-woyak,DacoTaco,phire,Zopolis4,booto,endrift,mimimi085181,delroth,spycrab,TryTwo,RachelBryk,vladfi1,merryhime,riking,Linkinworm,OrN,ColinDTaylor,ligfx,TellowKrinkle,Phatcat,noahpistilli,zackhow,lioncash,Tinob,VampireFlower,LAGonauta,hdcmeta,rlnilsen,mathieui,OatmealDome,JMC47,degasus,zopieux')", 'type': 'internal_log'}
2026-11-14T23:47:52.340734 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-11-14T23:46:01.653374 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-win-dbg-x64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/31/builds/11043', 'description': 'Build succeeded on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-11-14T23:46:00.974359 {'source': 'webserver', 'raw': {'buildid': 198893, 'number': 11043, 'builderid': 31, 'buildrequestid': 199596, 'workerid': 4, 'masterid': 1, 'started_at': 1794699802, 'complete_at': 1794699948, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-15024', 'Change'], 'shortrev': ['61efa9', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['c:\\buildbot\\pr-win-dbg-x64', 'Worker'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'build_url': ['https://dl.dolphin-emu.org/prs/7f/06/pr-15024-dolphin-latest-dbg-x64.7z', 'SetProperty'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'pr_id': [15024, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [31, 'Builder'], 'sln_exists': ['false', 'SetPropertyFromCommand Step'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'buildnumber': [11043, 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'warnings-count': [7, 'WarningCountingShellCommand'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/15024/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 199596, 'buildsetid': 44578, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1794699802, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 31, 'name': 'pr-win-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/31/builds/11043'}, 'type': 'raw_bb_hook'}
2026-11-14T23:45:34.762389 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 edited pull request #15024: DiscIO/VolumeVerifier: Use WorkQueueThreadSP instead of std::async to reduce spawning of new threads. (\x0306master\x03...\x0306volume-verifier-threading\x03): \x1f\x0302https://dolp.in/pr15024\x03\x1f', 'type': 'notification'}
2026-11-14T23:45:34.762025 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'edited', 'number': 15024, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024', 'id': 5317443326, 'node_id': 'PR_kwDOALCn2M8AAAABPPG-_g', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15024', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/15024.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/15024.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15024', 'number': 15024, 'state': 'open', 'locked': False, 'title': 'DiscIO/VolumeVerifier: Use WorkQueueThreadSP instead of std::async to reduce spawning of new threads.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Existing code used `std::async` for each hash type for each each read.\r\nA typical `std::async` implementation might just spawn a new thread for each call which is maybe a bit excessive here.\r\n\r\nUsing `WorkQueueThreadSP` reduced verification time by a measurable amount for me.\r\nChecking all three hashes of a GameCube ISO on my local SSD went from taking ~2.30 seconds to ~1.86 seconds.\r\nA dual-layer Wii ISO ~11.05 seconds -> ~10.55 seconds.\r\n\r\nI\'ve also a changed a `std::vector` to `Common::UniqueBuffer` to avoid unnecessary zeroing. This didn\'t really improve anything by a measurable amount, but it doesn\'t hurt.\r\n\r\nThe "content" and "group" work still uses `std::async` which could be addressed in a future PR.', 'created_at': '2026-11-14T23:36:42Z', 'updated_at': '2026-11-14T23:45:32Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'b5e49fa60de9a7e676ae321f49777c06d3e5b887', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15024/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'head': {'label': 'jordan-woyak:volume-verifier-threading', 'ref': 'volume-verifier-threading', 'sha': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T23:30:03Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530584, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T23:35:03Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15024'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15024'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15024/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/61efa9be49faa1a306d070c841ad3e8fe8b3a118'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 3, 'additions': 39, 'deletions': 29, 'changed_files': 3}, 'changes': {'body': {'from': 'Existing code used `std::async` for each hash type for each each read.\nA typical `std::async` implementation might just spawn a new thread for each call which is maybe a bit excessive here.\n\nUsing `WorkQueueThreadSP` reduced verification time by a measurable amount for me.\nChecking all three hashes of a GameCube ISO on my local SSD went from taking ~2.30 seconds to ~1.86 seconds.\n\nI\'ve also a changed a `std::vector` to `Common::UniqueBuffer` to avoid unnecessary zeroing. This didn\'t really improve anything by a measurable amount, but it doesn\'t hurt.\n\nThe "content" and "group" work still uses `std::async` which could be addressed in a future PR.'}}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T23:35:03Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T23:45:34.762012 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 15024, 'title': 'DiscIO/VolumeVerifier: Use WorkQueueThreadSP instead of std::async to reduce spawning of new threads.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15024', 'head_ref_name': 'volume-verifier-threading', 'safe_author': True, 'base_sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'head_sha': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T23:43:37.125051 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-win-arm64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/13/builds/11035', 'description': 'Build succeeded on builder pr-win-arm64', 'type': 'build_status'}
2026-11-14T23:43:36.483933 {'source': 'webserver', 'raw': {'buildid': 198891, 'number': 11035, 'builderid': 13, 'buildrequestid': 199592, 'workerid': 4, 'masterid': 1, 'started_at': 1794699629, 'complete_at': 1794699802, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'shortrev': ['61efa9', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'sln_exists': ['false', 'SetPropertyFromCommand Step'], 'warnings-count': [7, 'WarningCountingShellCommand'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [13, 'Builder'], 'buildnumber': [11035, 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['c:\\buildbot\\pr-win-arm64', 'Worker'], 'buildername': ['pr-win-arm64', 'Builder'], 'project': ['', 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'branchname': ['pr-15024', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'pr_id': [15024, 'Change'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/15024/head', 'Build'], 'repository': ['', 'Build'], 'build_url': ['https://dl.dolphin-emu.org/prs/ff/b8/pr-15024-dolphin-latest-arm64.7z', 'SetProperty']}, 'buildrequest': {'buildrequestid': 199592, 'buildsetid': 44578, 'builderid': 13, 'priority': 0, 'claimed': True, 'claimed_at': 1794699629, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 13, 'name': 'pr-win-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/13/builds/11035'}, 'type': 'raw_bb_hook'}
2026-11-14T23:43:36.374094 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-win-dbg-x64', 'pr': 15024, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/31/builds/11043', 'description': 'Auto build in progress on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-11-14T23:43:35.929819 {'source': 'webserver', 'raw': {'buildid': 198893, 'number': 11043, 'builderid': 31, 'buildrequestid': 199596, 'workerid': 4, 'masterid': 1, 'started_at': 1794699802, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-15024', 'Change'], 'shortrev': ['61efa9', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'codebase': ['', 'Build'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'pr_id': [15024, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [31, 'Builder'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'buildnumber': [11043, 'Build'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/15024/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 199596, 'buildsetid': 44578, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1794699802, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 31, 'name': 'pr-win-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/31/builds/11043'}, 'type': 'raw_bb_hook'}
2026-11-14T23:42:52.340256 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'leoetlino,spxtr,Tilka,cscd98,gwicks,dreamsyntax,jjdelvalle,iwubcode,RisingFog,Sintendo,bentley,SuperSamus,Starsam80,cristian64,LPFaint99,aroulin,linkmauve,tygyh,Stevoisiak,corwin-mcknight,K0bin,SirMangler,mmastrac,magumagu,CasualPokePlayer,PatrickFerry,mitaclaw,CrystalGamma,Linktothepast,aldelaro5,krnlyng,Hydr8gon,Techjar,Parlane,shonumi,skidau,sepalani,nullgemm,yourWaifu,mbc07,Ziek,NanoByte011,Orphis,kayru,Gamer64ytb,LillyJadeKatrin,BhaaLseN,JoshuaVandaele,Lobsterzelda,moncefmechri,EmptyChaos,kamiyo,mahdihijazi,magcius,smurf3tte,deReeperJosh,Simonx22,adamdmoss,Filoppi,JosJuice,Buddybenj,Dentomologist,hrydgard,malleoz,Ebola16,CrossVR,glennricster,galop1n,neobrain,unknownbrackets,mandar1jn,Geotale,hackbar,CookiePLMonster,mrgreywater,randomstuff,FioraAeterna,orbea,Helios747,comex,MayImilae,meffij,ShimmerGlass,Sir-Walrus,tom-pratt,jezze,nickbeth,crediar,archshift,jloehr,Sam-Belliveau,marcan,rukai,skylersaleh,JordanTheToaster,Pokechu22,CelestialAmber,AdmiralCurtiss,hthh,jordan-woyak,DacoTaco,phire,Zopolis4,booto,endrift,mimimi085181,delroth,spycrab,TryTwo,RachelBryk,vladfi1,merryhime,riking,Linkinworm,OrN,ColinDTaylor,ligfx,TellowKrinkle,Phatcat,noahpistilli,zackhow,lioncash,Tinob,VampireFlower,LAGonauta,hdcmeta,rlnilsen,mathieui,OatmealDome,JMC47,degasus,zopieux')", 'type': 'internal_log'}
2026-11-14T23:42:50.844772 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-11-14T23:42:42.601086 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,leoetlino,OatmealDome,CrossVR,iwubcode,Tilka,degasus,Pokechu22,linkmauve,AdmiralCurtiss,JosJuice,jordan-woyak,Dentomologist')", 'type': 'internal_log'}
2026-11-14T23:42:42.287818 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-11-14T23:42:08.466657 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '83f79b4336e3632384042f6840b8d0323211edc8', 'shortrev': '83f79b', 'service': 'pr-osx-universal', 'pr': 14995, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/7/builds/11053', 'description': 'Build succeeded on builder pr-osx-universal', 'type': 'build_status'}
2026-11-14T23:42:07.791103 {'source': 'webserver', 'raw': {'buildid': 198892, 'number': 9355, 'builderid': 21, 'buildrequestid': 199605, 'workerid': 8, 'masterid': 1, 'started_at': 1794699727, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'shortrev': ['83f79b', 'Trigger'], 'branch': ['refs/pull/14995/head', 'Build'], 'revision': ['83f79b4336e3632384042f6840b8d0323211edc8', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'repository': ['', 'Build'], 'branchname': ['pr-14995', 'Trigger'], 'buildername': ['pr-fifoci-mtl-osx-m1', 'Builder'], 'workername': ['osx-m1', 'Worker'], 'codebase': ['', 'Build'], 'headrev': ['83f79b4336e3632384042f6840b8d0323211edc8', 'Trigger'], 'pr_id': [14995, 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'builderid': [21, 'Builder'], 'buildnumber': [9355, 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 199605, 'buildsetid': 44581, 'builderid': 21, 'priority': 0, 'claimed': True, 'claimed_at': 1794699727, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699727, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44581, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1794699727, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 198877, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13388, 'branch': 'refs/pull/14995/head', 'revision': '83f79b4336e3632384042f6840b8d0323211edc8', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794698785, 'patch': None}]}, 'parentbuild': {'buildid': 198877, 'number': 11053, 'builderid': 7, 'buildrequestid': 199572, 'workerid': 8, 'masterid': 1, 'started_at': 1794699020, 'complete_at': 1794699727, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 21, 'name': 'pr-fifoci-mtl-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/21/builds/9355'}, 'type': 'raw_bb_hook'}
2026-11-14T23:42:07.675627 {'source': 'webserver', 'raw': {'buildid': 198877, 'number': 11053, 'builderid': 7, 'buildrequestid': 199572, 'workerid': 8, 'masterid': 1, 'started_at': 1794699020, 'complete_at': 1794699727, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14995', 'Change'], 'shortrev': ['83f79b', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-osx-universal', 'Builder'], 'workername': ['osx-m1', 'Worker'], 'branch': ['refs/pull/14995/head', 'Build'], 'revision': ['83f79b4336e3632384042f6840b8d0323211edc8', 'Build'], 'project': ['', 'Build'], 'basedir': ['/Users/ci/worker/base', 'Worker'], 'got_revision': ['83f79b4336e3632384042f6840b8d0323211edc8', 'GitNoBranch'], 'headrev': ['83f79b4336e3632384042f6840b8d0323211edc8', 'Change'], 'pr_id': [14995, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [7, 'Builder'], 'buildnumber': [11053, 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'builddir': ['/Users/ci/worker/base/pr-osx-universal', 'Worker'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 199572, 'buildsetid': 44575, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1794699020, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794698785, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44575, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794698785, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13388, 'branch': 'refs/pull/14995/head', 'revision': '83f79b4336e3632384042f6840b8d0323211edc8', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794698785, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/7/builds/11053'}, 'type': 'raw_bb_hook'}
2026-11-14T23:42:04.732489 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-deb-dbg-x64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/1/builds/11034', 'description': 'Build succeeded on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-11-14T23:42:03.927398 {'source': 'webserver', 'raw': {'buildid': 198890, 'number': 11034, 'builderid': 1, 'buildrequestid': 199587, 'workerid': 9, 'masterid': 1, 'started_at': 1794699559, 'complete_at': 1794699709, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-15024', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'workername': ['debian', 'Worker'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'pr_id': [15024, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/15024/head', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'shortrev': ['61efa9', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'project': ['', 'Build'], 'builderid': [1, 'Builder'], 'buildnumber': [11034, 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['/buildbot/pr-deb-dbg-x64', 'Worker']}, 'buildrequest': {'buildrequestid': 199587, 'buildsetid': 44578, 'builderid': 1, 'priority': 0, 'claimed': True, 'claimed_at': 1794699559, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 1, 'name': 'pr-deb-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/1/builds/11034'}, 'type': 'raw_bb_hook'}
2026-11-14T23:41:57.582484 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-flatpak-arm64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/44/builds/6127', 'description': 'Build succeeded on builder pr-flatpak-arm64', 'type': 'build_status'}
2026-11-14T23:41:56.250181 {'source': 'webserver', 'raw': {'buildid': 198886, 'number': 6127, 'builderid': 44, 'buildrequestid': 199598, 'workerid': 14, 'masterid': 1, 'started_at': 1794699414, 'complete_at': 1794699707, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-15024', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'shortrev': ['61efa9', 'Change'], 'pr_id': [15024, 'Change'], 'buildername': ['pr-flatpak-arm64', 'Builder'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-arm64', 'Worker'], 'fm_build_url': ['https://flat-manager.dolphin-emu.org/api/v1/build/13672', 'SetPropertyFromCommand Step'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'scheduler': ['pr', 'Scheduler'], 'workername': ['deneb-flatpak', 'Worker'], 'buildnumber': [6127, 'Build'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'builderid': [44, 'Builder'], 'branch': ['refs/pull/15024/head', 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 199598, 'buildsetid': 44578, 'builderid': 44, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 44, 'name': 'pr-flatpak-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/44/builds/6127'}, 'type': 'raw_bb_hook'}
Recent 'build_status' events
2026-11-14T23:46:01.653374 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-win-dbg-x64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/31/builds/11043', 'description': 'Build succeeded on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-11-14T23:43:37.125051 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-win-arm64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/13/builds/11035', 'description': 'Build succeeded on builder pr-win-arm64', 'type': 'build_status'}
2026-11-14T23:43:36.374094 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-win-dbg-x64', 'pr': 15024, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/31/builds/11043', 'description': 'Auto build in progress on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-11-14T23:42:08.466657 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '83f79b4336e3632384042f6840b8d0323211edc8', 'shortrev': '83f79b', 'service': 'pr-osx-universal', 'pr': 14995, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/7/builds/11053', 'description': 'Build succeeded on builder pr-osx-universal', 'type': 'build_status'}
2026-11-14T23:42:04.732489 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-deb-dbg-x64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/1/builds/11034', 'description': 'Build succeeded on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-11-14T23:41:57.582484 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-flatpak-arm64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/44/builds/6127', 'description': 'Build succeeded on builder pr-flatpak-arm64', 'type': 'build_status'}
2026-11-14T23:41:25.420565 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-flatpak-x64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/43/builds/6183', 'description': 'Build succeeded on builder pr-flatpak-x64', 'type': 'build_status'}
2026-11-14T23:40:56.607911 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-win-x64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/2/builds/11036', 'description': 'Build succeeded on builder pr-win-x64', 'type': 'build_status'}
2026-11-14T23:40:55.849221 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-win-arm64', 'pr': 15024, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/13/builds/11035', 'description': 'Auto build in progress on builder pr-win-arm64', 'type': 'build_status'}
2026-11-14T23:39:41.677513 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-deb-dbg-x64', 'pr': 15024, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/1/builds/11034', 'description': 'Auto build in progress on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-11-14T23:39:41.275868 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-deb-x64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/26/builds/11033', 'description': 'Build succeeded on builder pr-deb-x64', 'type': 'build_status'}
2026-11-14T23:39:26.926278 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-appimage-x64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/49/builds/287', 'description': 'Build succeeded on builder pr-appimage-x64', 'type': 'build_status'}
2026-11-14T23:39:08.819898 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-ubu-x64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/27/builds/11035', 'description': 'Build succeeded on builder pr-ubu-x64', 'type': 'build_status'}
2026-11-14T23:38:48.543338 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-appimage-arm64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/50/builds/281', 'description': 'Build succeeded on builder pr-appimage-arm64', 'type': 'build_status'}
2026-11-14T23:38:42.430072 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-freebsd-x64', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/11/builds/11045', 'description': 'Build succeeded on builder pr-freebsd-x64', 'type': 'build_status'}
2026-11-14T23:38:30.736435 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-android', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/22/builds/11041', 'description': 'Build succeeded on builder pr-android', 'type': 'build_status'}
2026-11-14T23:38:30.063235 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'lint', 'pr': 15024, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/9/builds/11038', 'description': 'Build succeeded on builder lint', 'type': 'build_status'}
2026-11-14T23:37:53.257292 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-ubu-x64', 'pr': 15024, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/27/builds/11035', 'description': 'Auto build in progress on builder pr-ubu-x64', 'type': 'build_status'}
2026-11-14T23:37:52.183777 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-freebsd-x64', 'pr': 15024, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/11/builds/11045', 'description': 'Auto build in progress on builder pr-freebsd-x64', 'type': 'build_status'}
2026-11-14T23:37:51.715717 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-win-x64', 'pr': 15024, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/2/builds/11036', 'description': 'Auto build in progress on builder pr-win-x64', 'type': 'build_status'}
2026-11-14T23:37:51.329393 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-deb-x64', 'pr': 15024, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/26/builds/11033', 'description': 'Auto build in progress on builder pr-deb-x64', 'type': 'build_status'}
2026-11-14T23:37:50.882033 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-android', 'pr': 15024, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/22/builds/11041', 'description': 'Auto build in progress on builder pr-android', 'type': 'build_status'}
2026-11-14T23:37:50.438613 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'lint', 'pr': 15024, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/9/builds/11038', 'description': 'Auto build in progress on builder lint', 'type': 'build_status'}
2026-11-14T23:37:33.683446 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-flatpak-x64', 'pr': 15024, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/43/builds/6183', 'description': 'Auto build in progress on builder pr-flatpak-x64', 'type': 'build_status'}
2026-11-14T23:37:33.255557 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'shortrev': '61efa9', 'service': 'pr-flatpak-arm64', 'pr': 15024, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/44/builds/6127', 'description': 'Auto build in progress on builder pr-flatpak-arm64', 'type': 'build_status'}
Recent 'command_message' events
2026-11-13T00:02:30.492010 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14976', 'type': 'command_message'}
2026-11-12T23:28:02.886066 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 15012', 'type': 'command_message'}
2026-11-12T23:27:53.285450 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 15011', 'type': 'command_message'}
2026-11-12T23:19:04.815828 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 15004', 'type': 'command_message'}
2026-11-12T20:17:41.674876 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 15018', 'type': 'command_message'}
2026-11-12T18:58:23.673992 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 15005', 'type': 'command_message'}
2026-11-12T18:49:29.558474 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 15004', 'type': 'command_message'}
2026-11-11T21:39:46.991154 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 15014', 'type': 'command_message'}
2026-11-11T19:59:16.680421 {'source': 'discord', 'who': 'joshuavandaele', 'what': '<@1320924779556900984> please rebuild 15012', 'type': 'command_message'}
2026-11-11T19:24:56.071860 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 15011', 'type': 'command_message'}
Recent 'dev_wark' events
2026-11-13T00:02:30.492058 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-11-12T23:28:02.886129 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-11-12T23:27:53.285487 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-11-12T23:19:04.815854 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-11-12T20:17:41.674912 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-11-11T21:39:46.991194 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-11-11T19:24:56.071916 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
Recent 'gh_issue_comment' events
2026-11-14T23:28:41.656585 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'created', 'id': 14995, 'title': 'AX: fix three bugs', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14995#issuecomment-6885899398', 'safe_author': True, 'body': 'Rebased plus a GC surround bug fix.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14995', 'id': 6266940391, 'node_id': 'PR_kwDOALCn2M8AAAABNm1WiA', 'number': 14995, 'title': 'AX: fix three bugs', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-11-08T02:59:20Z', 'updated_at': '2026-11-14T23:28:39Z', 'closed_at': None, 'assignee': None, 'author_association': 'MEMBER', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14995', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14995.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14995.patch', 'merged_at': None}, 'body': "The de-pop issue was reported in #14988.\n\nThe CMD_SUB_TO_LR bug was found by staring. No idea which games actually use this command. I assume it's one of the surround schemes.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6885899398', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14995#issuecomment-6885899398', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995', 'id': 6885899398, 'node_id': 'IC_kwDOALCn2M8AAAABmm58hg', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-14T23:28:39Z', 'updated_at': '2026-11-14T23:28:39Z', 'body': 'Rebased plus a GC surround bug fix.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6885899398/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T23:14:55Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-14T01:29:07.254313 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jpferraz-git', 'action': 'created', 'id': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6869370474', 'safe_author': False, 'body': '> It sounds like this PR can be closed in favor of #15013 and #15021 ?\r\n\r\nyep man, i ll close it', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'id': 6253640354, 'node_id': 'PR_kwDOALCn2M8AAAABNcZGmQ', 'number': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2026-11-07T01:23:58Z', 'updated_at': '2026-11-14T01:29:04Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14991', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.patch', 'merged_at': None}, 'body': 'When running Dolphin on Linux systems with Intel Integrated Graphics (Tiger Lake / Iris Xe using Mesa `iris`), using the OpenGL backend frequently leads to kernel GPU hangs (`i915` ring timeouts) during heavy EFB / shader workloads (such as in *Super Mario Galaxy* and *Skyward Sword*). Under Wayland compositors (GNOME Mutter / KDE KWin), this GPU reset causes an unrecoverable display freeze.\r\n\r\nWhile PR #14835 changed the default backend to Vulkan on Linux for clean installs, existing installations with an already generated `Dolphin.ini` keep `GFXBackend = OGL` and remain prone to these system freezes.\r\n\r\nThis patch adds an on-screen warning (OSD) in `PopulateConfig()` when `gl_vendor == "Intel"` and Mesa are detected on Linux under OpenGL, advising users to switch to Vulkan.\r\n\r\n### Evidence\r\n\r\n**System Environment:**\r\n- **OS:** Ubuntu Linux (Wayland / GNOME Mutter)\r\n- **GPU:** Intel Iris Xe Graphics (Tiger Lake GT2, `i915` kernel module)\r\n- **Mesa:** `iris` OpenGL driver (vendor string: `"Intel"`)\r\n\r\n**Kernel log signature during freeze (`dmesg` / `journalctl -k`):**\r\n```text\r\nkernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 12:0:00000000, in dolphin-emu\r\nkernel: i915 0000:00:02.0: [drm] Resetting rcs0 for stopped heartbeat on rcs0\r\nkernel: [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:...] flip_done timed out\r\n```\r\nOnce the `i915` reset sequence finishes, the Wayland compositor permanently loses display synchronization (`Pageflip timed out`), locking up all screen updates and requiring a forced hard reboot.\r\n\r\n*(Note per Contributing.md: The author drafted and refined this patch and PR description with LLM assistance.)*', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6869370474', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6869370474', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'id': 6869370474, 'node_id': 'IC_kwDOALCn2M8AAAABmXJGag', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-14T01:29:04Z', 'updated_at': '2026-11-14T01:29:04Z', 'body': '> It sounds like this PR can be closed in favor of #15013 and #15021 ?\r\n\r\nyep man, i ll close it', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6869370474/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T00:40:13Z', 'pushed_at': '2026-11-13T22:08:03Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563848, 'stargazers_count': 15821, 'watchers_count': 15821, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3386, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 488, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3386, 'open_issues': 488, 'watchers': 15821, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-13T23:04:56.873096 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6867139863', 'safe_author': True, 'body': 'It sounds like this PR can be closed in favor of #15013 and #15021 ?', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'id': 6253640354, 'node_id': 'PR_kwDOALCn2M8AAAABNcZGmQ', 'number': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2026-11-07T01:23:58Z', 'updated_at': '2026-11-13T23:04:54Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14991', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.patch', 'merged_at': None}, 'body': 'When running Dolphin on Linux systems with Intel Integrated Graphics (Tiger Lake / Iris Xe using Mesa `iris`), using the OpenGL backend frequently leads to kernel GPU hangs (`i915` ring timeouts) during heavy EFB / shader workloads (such as in *Super Mario Galaxy* and *Skyward Sword*). Under Wayland compositors (GNOME Mutter / KDE KWin), this GPU reset causes an unrecoverable display freeze.\r\n\r\nWhile PR #14835 changed the default backend to Vulkan on Linux for clean installs, existing installations with an already generated `Dolphin.ini` keep `GFXBackend = OGL` and remain prone to these system freezes.\r\n\r\nThis patch adds an on-screen warning (OSD) in `PopulateConfig()` when `gl_vendor == "Intel"` and Mesa are detected on Linux under OpenGL, advising users to switch to Vulkan.\r\n\r\n### Evidence\r\n\r\n**System Environment:**\r\n- **OS:** Ubuntu Linux (Wayland / GNOME Mutter)\r\n- **GPU:** Intel Iris Xe Graphics (Tiger Lake GT2, `i915` kernel module)\r\n- **Mesa:** `iris` OpenGL driver (vendor string: `"Intel"`)\r\n\r\n**Kernel log signature during freeze (`dmesg` / `journalctl -k`):**\r\n```text\r\nkernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 12:0:00000000, in dolphin-emu\r\nkernel: i915 0000:00:02.0: [drm] Resetting rcs0 for stopped heartbeat on rcs0\r\nkernel: [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:...] flip_done timed out\r\n```\r\nOnce the `i915` reset sequence finishes, the Wayland compositor permanently loses display synchronization (`Pageflip timed out`), locking up all screen updates and requiring a forced hard reboot.\r\n\r\n*(Note per Contributing.md: The author drafted and refined this patch and PR description with LLM assistance.)*', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6867139863', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6867139863', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'id': 6867139863, 'node_id': 'IC_kwDOALCn2M8AAAABmVA9Fw', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-13T23:04:54Z', 'updated_at': '2026-11-13T23:04:54Z', 'body': 'It sounds like this PR can be closed in favor of #15013 and #15021 ?', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6867139863/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-13T22:08:30Z', 'pushed_at': '2026-11-13T22:08:03Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563847, 'stargazers_count': 15820, 'watchers_count': 15820, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 488, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 488, 'watchers': 15820, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-13T21:47:18.840119 {'source': 'ghhookparser', 'repo': 'dolphin-emu/netplay-index', 'author': 'dependabot[bot]', 'action': 'created', 'id': 18, 'title': 'build(deps): bump tornado from 6.5.8 to 6.6', 'url': 'https://github.com/dolphin-emu/netplay-index/pull/18#issuecomment-6865726417', 'safe_author': False, 'body': 'Superseded by #20.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/netplay-index/issues/18', 'repository_url': 'https://api.github.com/repos/dolphin-emu/netplay-index', 'labels_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/issues/18/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/issues/18/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/issues/18/events', 'html_url': 'https://github.com/dolphin-emu/netplay-index/pull/18', 'id': 6197696157, 'node_id': 'PR_kwDOCriaAc8AAAABMvbvuw', 'number': 18, 'title': 'build(deps): bump tornado from 6.5.8 to 6.6', 'user': {'login': 'dependabot[bot]', 'id': 49699333, 'node_id': 'MDM6Qm90NDk2OTkzMzM=', 'avatar_url': 'https://avatars.githubusercontent.com/in/29110?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dependabot%5Bbot%5D', 'html_url': 'https://github.com/apps/dependabot', 'followers_url': 'https://api.github.com/users/dependabot%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dependabot%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/dependabot%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/dependabot%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dependabot%5Bbot%5D/received_events', 'type': 'Bot', 'user_view_type': 'public', 'site_admin': False}, 'labels': [{'id': 4969874522, 'node_id': 'LA_kwDOCriaAc8AAAABKDpEWg', 'url': 'https://api.github.com/repos/dolphin-emu/netplay-index/labels/dependencies', 'name': 'dependencies', 'color': '0366d6', 'default': False, 'description': 'Pull requests that update a dependency file', 'archived_at': None, 'archived_by': None}, {'id': 12572311721, 'node_id': 'LA_kwDOCriaAc8AAAAC7V5AqQ', 'url': 'https://api.github.com/repos/dolphin-emu/netplay-index/labels/python:uv', 'name': 'python:uv', 'color': '2b67c6', 'default': False, 'description': 'Pull requests that update python:uv code', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-11-04T06:31:59Z', 'updated_at': '2026-11-13T21:47:16Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/netplay-index/pulls/18', 'html_url': 'https://github.com/dolphin-emu/netplay-index/pull/18', 'diff_url': 'https://github.com/dolphin-emu/netplay-index/pull/18.diff', 'patch_url': 'https://github.com/dolphin-emu/netplay-index/pull/18.patch', 'merged_at': None}, 'body': 'Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.5.8 to 6.6.\n<details>\n<summary>Changelog</summary>\n<p><em>Sourced from <a href="https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst">tornado\'s changelog</a>.</em></p>\n<blockquote>\n<h1>Release notes</h1>\n<p>.. toctree::\n:maxdepth: 2</p>\n<p>releases/v6.6.0\nreleases/v6.5.10\nreleases/v6.5.9\nreleases/v6.5.8\nreleases/v6.5.7\nreleases/v6.5.6\nreleases/v6.5.5\nreleases/v6.5.4\nreleases/v6.5.3\nreleases/v6.5.2\nreleases/v6.5.1\nreleases/v6.5.0\nreleases/v6.4.2\nreleases/v6.4.1\nreleases/v6.4.0\nreleases/v6.3.3\nreleases/v6.3.2\nreleases/v6.3.1\nreleases/v6.3.0\nreleases/v6.2.0\nreleases/v6.1.0\nreleases/v6.0.4\nreleases/v6.0.3\nreleases/v6.0.2\nreleases/v6.0.1\nreleases/v6.0.0\nreleases/v5.1.1\nreleases/v5.1.0\nreleases/v5.0.2\nreleases/v5.0.1\nreleases/v5.0.0\nreleases/v4.5.3\nreleases/v4.5.2\nreleases/v4.5.1\nreleases/v4.5.0\nreleases/v4.4.3\nreleases/v4.4.2\nreleases/v4.4.1\nreleases/v4.4.0\nreleases/v4.3.0\nreleases/v4.2.1\nreleases/v4.2.0\nreleases/v4.1.0\nreleases/v4.0.2</p>\n<!-- raw HTML omitted -->\n</blockquote>\n<p>... (truncated)</p>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a href="https://github.com/tornadoweb/tornado/commit/e2b0f452bbf0e554c64e9d9ee922341c1c634d95"><code>e2b0f45</code></a> Merge pull request <a href="https://redirect.github.com/tornadoweb/tornado/issues/3831">#3831</a> from bdarnell/final-6.6</li>\n<li><a href="https://github.com/tornadoweb/tornado/commit/90c4e3fd2c91a75a8e89a5cddd2caff803c4d361"><code>90c4e3f</code></a> Version bump for 6.6 final release</li>\n<li><a href="https://github.com/tornadoweb/tornado/commit/ec17353e8c84ef20fe17eab4def51404ac56cbd8"><code>ec17353</code></a> Merge pull request <a href="https://redirect.github.com/tornadoweb/tornado/issues/3828">#3828</a> from bdarnell/downstream-ci-66</li>\n<li><a href="https://github.com/tornadoweb/tornado/commit/15f66b043c5f1b69eff4088e90ee12b380d0d189"><code>15f66b0</code></a> ci: Add explicit read permission to CI jobs</li>\n<li><a href="https://github.com/tornadoweb/tornado/commit/444644112142d7033ffcae1b37e21f0a2cf024b2"><code>4446441</code></a> ci: Run the downstream testbed on a wheel built in the same run</li>\n<li><a href="https://github.com/tornadoweb/tornado/commit/c2e24d28a59433a41d77450b578f6be6028bad89"><code>c2e24d2</code></a> Merge pull request <a href="https://redirect.github.com/tornadoweb/tornado/issues/3823">#3823</a> from bdarnell/claude/project-thread-uzh2s8</li>\n<li><a href="https://github.com/tornadoweb/tornado/commit/c2d8884b64c5131bc26ac0919cfcdb752784ba78"><code>c2d8884</code></a> test: Add pre-6.3 security fixes to the corpus</li>\n<li><a href="https://github.com/tornadoweb/tornado/commit/de32687e664d37fe35dd931e8f56bcfcb9b27ac5"><code>de32687</code></a> test: Add a regression corpus of past security fixes</li>\n<li><a href="https://github.com/tornadoweb/tornado/commit/7848790399e6bdc272fc83d200345850f35de551"><code>7848790</code></a> maint: Add pre-tag checks and release instructions</li>\n<li><a href="https://github.com/tornadoweb/tornado/commit/f14321e4a07395b2f808afb66fc8d78f9c078829"><code>f14321e</code></a> ci: Compare benchmarks with the base branch on every PR</li>\n<li>Additional commits viewable in <a href="https://github.com/tornadoweb/tornado/compare/v6.5.8...v6.6.0">compare view</a></li>\n</ul>\n</details>\n<br />\n\n\n[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\'t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n<details>\n<summary>Dependabot commands and options</summary>\n<br />\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dolphin-emu/netplay-index/network/alerts).\n\n</details>', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/netplay-index/issues/18/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/issues/18/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/netplay-index/issues/comments/6865726417', 'html_url': 'https://github.com/dolphin-emu/netplay-index/pull/18#issuecomment-6865726417', 'issue_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/issues/18', 'id': 6865726417, 'node_id': 'IC_kwDOCriaAc8AAAABmTqr0Q', 'user': {'login': 'dependabot[bot]', 'id': 49699333, 'node_id': 'MDM6Qm90NDk2OTkzMzM=', 'avatar_url': 'https://avatars.githubusercontent.com/in/29110?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dependabot%5Bbot%5D', 'html_url': 'https://github.com/apps/dependabot', 'followers_url': 'https://api.github.com/users/dependabot%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dependabot%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/dependabot%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/dependabot%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dependabot%5Bbot%5D/received_events', 'type': 'Bot', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-13T21:47:15Z', 'updated_at': '2026-11-13T21:47:15Z', 'body': 'Superseded by #20.', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/netplay-index/issues/comments/6865726417/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': {'id': 29110, 'client_id': 'Iv1.4f9a6346434f815e', 'slug': 'dependabot', 'node_id': 'MDM6QXBwMjkxMTA=', 'owner': {'login': 'github', 'id': 9919, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjk5MTk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/9919?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/github', 'html_url': 'https://github.com/github', 'followers_url': 'https://api.github.com/users/github/followers', 'following_url': 'https://api.github.com/users/github/following{/other_user}', 'gists_url': 'https://api.github.com/users/github/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/github/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/github/subscriptions', 'organizations_url': 'https://api.github.com/users/github/orgs', 'repos_url': 'https://api.github.com/users/github/repos', 'events_url': 'https://api.github.com/users/github/events{/privacy}', 'received_events_url': 'https://api.github.com/users/github/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'name': 'Dependabot', 'description': 'GitHub Dependabot', 'external_url': 'https://dependabot-api.githubapp.com', 'html_url': 'https://github.com/apps/dependabot', 'created_at': '2019-04-16T22:34:25Z', 'updated_at': '2026-04-27T17:22:53Z', 'permissions': {'actions': 'write', 'checks': 'write', 'contents': 'write', 'issues': 'write', 'members': 'read', 'metadata': 'read', 'packages': 'read', 'pull_requests': 'write', 'statuses': 'read', 'vulnerability_alerts': 'read', 'workflows': 'write'}, 'events': ['check_suite', 'issues', 'issue_comment', 'label', 'pull_request', 'pull_request_review', 'pull_request_review_comment', 'repository']}, 'minimized': None}, 'repository': {'id': 179870209, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzk4NzAyMDk=', 'name': 'netplay-index', 'full_name': 'dolphin-emu/netplay-index', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/netplay-index', 'description': 'A NetPlay Index server for Dolphin', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/netplay-index', 'forks_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/netplay-index/deployments', 'created_at': '2019-04-06T18:17:42Z', 'updated_at': '2026-10-06T20:39:51Z', 'pushed_at': '2026-11-13T21:47:07Z', 'git_url': 'git://github.com/dolphin-emu/netplay-index.git', 'ssh_url': 'git@github.com:dolphin-emu/netplay-index.git', 'clone_url': 'https://github.com/dolphin-emu/netplay-index.git', 'svn_url': 'https://github.com/dolphin-emu/netplay-index', 'homepage': '', 'size': 3964, 'stargazers_count': 14, 'watchers_count': 14, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 12, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 8, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['dolphin-emu', 'python3', 'tornado-web'], 'visibility': 'public', 'forks': 12, 'open_issues': 8, 'watchers': 14, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'dependabot[bot]', 'id': 49699333, 'node_id': 'MDM6Qm90NDk2OTkzMzM=', 'avatar_url': 'https://avatars.githubusercontent.com/in/29110?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dependabot%5Bbot%5D', 'html_url': 'https://github.com/apps/dependabot', 'followers_url': 'https://api.github.com/users/dependabot%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dependabot%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/dependabot%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/dependabot%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dependabot%5Bbot%5D/received_events', 'type': 'Bot', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-13T18:14:25.966223 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Rumi-Larry', 'action': 'created', 'id': 14616, 'title': 'Allow the GBA core to load a GBC boot ROM', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14616#issuecomment-6861180522', 'safe_author': False, 'body': 'Why is this feature being sought when dedicated gb emulators exist? ', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14616', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14616/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14616/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14616/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14616', 'id': 4303968185, 'node_id': 'PR_kwDOALCn2M7UXiF1', 'number': 14616, 'title': 'Allow the GBA core to load a GBC boot ROM', 'user': {'login': 'max-m', 'id': 642457, 'node_id': 'MDQ6VXNlcjY0MjQ1Nw==', 'avatar_url': 'https://avatars.githubusercontent.com/u/642457?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/max-m', 'html_url': 'https://github.com/max-m', 'followers_url': 'https://api.github.com/users/max-m/followers', 'following_url': 'https://api.github.com/users/max-m/following{/other_user}', 'gists_url': 'https://api.github.com/users/max-m/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/max-m/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/max-m/subscriptions', 'organizations_url': 'https://api.github.com/users/max-m/orgs', 'repos_url': 'https://api.github.com/users/max-m/repos', 'events_url': 'https://api.github.com/users/max-m/events{/privacy}', 'received_events_url': 'https://api.github.com/users/max-m/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [{'id': 1667502011, 'node_id': 'MDU6TGFiZWwxNjY3NTAyMDEx', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/needs%20rebase', 'name': 'needs rebase', 'color': '053663', 'default': False, 'description': '', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2026-04-21T16:26:59Z', 'updated_at': '2026-11-13T18:14:24Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14616', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14616', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14616.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14616.patch', 'merged_at': None}, 'body': 'This PR allows the GBA core to load a Game Boy Color boot ROM when it is loading a Game Boy or Game Boy Color game.\r\n\r\nI have split the PR into multiple commits because I thought the proposed UI changes may need to be discussed and are easily separated from the base commit.\r\n\r\nThe base commit adds the functionality required to load an optional Game Boy Color boot ROM and adds the basic UI elements to the Qt and Android versions.\r\nThe main logic in `Core::LoadCGBBootROM()` to call `GBIsCompatibleBIOS()` and update the model config when a compatible boot ROM is found was proposed by @endrift.\r\n\r\nThe second commit adds an optional parameter to the `ConfigUserPath` Qt widget, similar to the Android version’s `FilePicker` class, to allow it to be reset to its default value. As `ConfigUserPath` must not be empty there was no way to easily reset them to their default values from within the UI itself, short of resetting the complete config of Dolphin.\r\nI would have liked to integrate the reset button into the `ConfigUserPath` itself, but my knowledge of Qt was too limited, so this initial proposal requires users of `ConfigUserPath` to add a reset button on their own.\r\nIf this change is accepted, the other few places where `ConfigUserPath` is used should probably be changed to make use of the default value parameter and a reset button as well.\r\n\r\nThe third commit builds on top of the second one and makes use of this parameter to set the default values for the GBA BIOS and GBC boot ROM paths and adds the reset buttons to the UI.\r\n\r\nThe last commit adds a tooltip wrapper around `QLabel` because I wanted to add a description to the boot ROM option.\r\n\r\n> [!NOTE]\r\n> The linter might flag `Source/Core/Common/FileUtil.cpp`. At least my version of `clang-format` wanted to reformat line 77 and indent it with four spaces I ignored that change and didn’t add it to my changes.\r\n\r\n--------------------------------------------------------------------------------\r\n\r\n<details>\r\n<summary>Screenshots of the Qt interface</summary>\r\n\r\n<img width="300" alt="dolphin_gbp_settings" src="https://github.com/user-attachments/assets/fafa8604-31f1-4892-b196-9d60aef0d84a" />\r\n<img width="300" alt="dolphin_gbp_settings_tooltip" src="https://github.com/user-attachments/assets/f59fb856-12b5-46b3-b462-4ad24589301c" />\r\n\r\nWithout a boot ROM:\r\n[whichboot.gb](https://github.com/nitro2k01/whichboot.gb) patched to not advertise GBC support:\r\n<img width="300" alt="dolphin_whichboot_gb_only" src="https://github.com/user-attachments/assets/c18ab1c2-dbfb-41e1-a6f6-3e29209d4064" />\r\nAs expected, mGBA emulates a Game Boy now.\r\n\r\nThe unmodified version of `whichboot.gb`:\r\n<img width="300" alt="dolphin_whichboot" src="https://github.com/user-attachments/assets/7acd2947-103c-4270-924b-9a4a908bae3a" />\r\nmGBA is running in GBA-mode now.\r\n\r\nWith the GBC boot ROM:\r\n<img width="300" alt="dolphin_cgb_splash" src="https://github.com/user-attachments/assets/cd7d3226-8a80-41cf-89d2-def2c2ab9b8b" />\r\n<img width="300" alt="dolphin_whichboot_cgb_boot_rom" src="https://github.com/user-attachments/assets/ee3e1dbe-f9c1-4a38-b768-6bf71b8c0a18" />\r\nAs we can see, mGBA is detected as a Game Boy Advance, not as a Game Boy color as it should, because [it patches the `B` register to match the GBA’s version of the GBC boot ROM](https://github.com/mgba-emu/mgba/blob/f8082d31fb3ef6af15226e74229d6a5aaec526c6/src/gb/gb.c#L879-L882).\r\n\r\n</details>\r\n\r\n<details>\r\n<summary>Screenshot / Screencast of the Android interface</summary>\r\n<img width="300" alt="Android Game Boy Player settings" src="https://github.com/user-attachments/assets/2842205d-e8ee-4cbf-8675-43fd0c4a856f" />\r\n\r\n[android_dolphin_gbp_cgb_boot.webm](https://github.com/user-attachments/assets/cbb18032-da94-4f0e-91e8-01b301a06bc9)\r\n</details>\r\n\r\n--------------------------------------------------------------------------------\r\n\r\nI hope I didn’t forget anything. :thinking: ', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14616/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14616/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6861180522', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14616#issuecomment-6861180522', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14616', 'id': 6861180522, 'node_id': 'IC_kwDOALCn2M8AAAABmPVOag', 'user': {'login': 'Rumi-Larry', 'id': 65569725, 'node_id': 'MDQ6VXNlcjY1NTY5NzI1', 'avatar_url': 'https://avatars.githubusercontent.com/u/65569725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Rumi-Larry', 'html_url': 'https://github.com/Rumi-Larry', 'followers_url': 'https://api.github.com/users/Rumi-Larry/followers', 'following_url': 'https://api.github.com/users/Rumi-Larry/following{/other_user}', 'gists_url': 'https://api.github.com/users/Rumi-Larry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Rumi-Larry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Rumi-Larry/subscriptions', 'organizations_url': 'https://api.github.com/users/Rumi-Larry/orgs', 'repos_url': 'https://api.github.com/users/Rumi-Larry/repos', 'events_url': 'https://api.github.com/users/Rumi-Larry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Rumi-Larry/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-13T18:14:24Z', 'updated_at': '2026-11-13T18:14:24Z', 'body': 'Why is this feature being sought when dedicated gb emulators exist? ', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6861180522/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-13T15:17:35Z', 'pushed_at': '2026-11-13T02:00:37Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563856, 'stargazers_count': 15818, 'watchers_count': 15818, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 489, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 489, 'watchers': 15818, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Rumi-Larry', 'id': 65569725, 'node_id': 'MDQ6VXNlcjY1NTY5NzI1', 'avatar_url': 'https://avatars.githubusercontent.com/u/65569725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Rumi-Larry', 'html_url': 'https://github.com/Rumi-Larry', 'followers_url': 'https://api.github.com/users/Rumi-Larry/followers', 'following_url': 'https://api.github.com/users/Rumi-Larry/following{/other_user}', 'gists_url': 'https://api.github.com/users/Rumi-Larry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Rumi-Larry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Rumi-Larry/subscriptions', 'organizations_url': 'https://api.github.com/users/Rumi-Larry/orgs', 'repos_url': 'https://api.github.com/users/Rumi-Larry/repos', 'events_url': 'https://api.github.com/users/Rumi-Larry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Rumi-Larry/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-13T15:01:37.313050 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': '65dph43039', 'action': 'created', 'id': 14826, 'title': 'Add IPv6 handling for NetPlay address paths', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14826#issuecomment-6856741355', 'safe_author': False, 'body': "Sorry, i shouldn't make a PR to main page. Thank you for your review 🥰", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14826', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14826/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14826/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14826/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14826', 'id': 5245762271, 'node_id': 'PR_kwDOALCn2M8AAAABA7wgiA', 'number': 14826, 'title': 'Add IPv6 handling for NetPlay address paths', 'user': {'login': '65dph43039', 'id': 187355778, 'node_id': 'U_kgDOCyrSgg', 'avatar_url': 'https://avatars.githubusercontent.com/u/187355778?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/65dph43039', 'html_url': 'https://github.com/65dph43039', 'followers_url': 'https://api.github.com/users/65dph43039/followers', 'following_url': 'https://api.github.com/users/65dph43039/following{/other_user}', 'gists_url': 'https://api.github.com/users/65dph43039/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/65dph43039/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/65dph43039/subscriptions', 'organizations_url': 'https://api.github.com/users/65dph43039/orgs', 'repos_url': 'https://api.github.com/users/65dph43039/repos', 'events_url': 'https://api.github.com/users/65dph43039/events{/privacy}', 'received_events_url': 'https://api.github.com/users/65dph43039/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-08-25T12:21:03Z', 'updated_at': '2026-11-13T15:01:34Z', 'closed_at': '2026-11-03T01:47:03Z', 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14826', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14826', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14826.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14826.patch', 'merged_at': None}, 'body': None, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14826/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14826/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6856741355', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14826#issuecomment-6856741355', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14826', 'id': 6856741355, 'node_id': 'IC_kwDOALCn2M8AAAABmLGR6w', 'user': {'login': '65dph43039', 'id': 187355778, 'node_id': 'U_kgDOCyrSgg', 'avatar_url': 'https://avatars.githubusercontent.com/u/187355778?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/65dph43039', 'html_url': 'https://github.com/65dph43039', 'followers_url': 'https://api.github.com/users/65dph43039/followers', 'following_url': 'https://api.github.com/users/65dph43039/following{/other_user}', 'gists_url': 'https://api.github.com/users/65dph43039/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/65dph43039/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/65dph43039/subscriptions', 'organizations_url': 'https://api.github.com/users/65dph43039/orgs', 'repos_url': 'https://api.github.com/users/65dph43039/repos', 'events_url': 'https://api.github.com/users/65dph43039/events{/privacy}', 'received_events_url': 'https://api.github.com/users/65dph43039/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-13T15:01:34Z', 'updated_at': '2026-11-13T15:01:34Z', 'body': "Sorry, i shouldn't make a PR to main page. Thank you for your review 🥰", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6856741355/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-13T14:12:51Z', 'pushed_at': '2026-11-13T02:00:37Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563856, 'stargazers_count': 15817, 'watchers_count': 15817, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3386, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 489, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3386, 'open_issues': 489, 'watchers': 15817, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': '65dph43039', 'id': 187355778, 'node_id': 'U_kgDOCyrSgg', 'avatar_url': 'https://avatars.githubusercontent.com/u/187355778?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/65dph43039', 'html_url': 'https://github.com/65dph43039', 'followers_url': 'https://api.github.com/users/65dph43039/followers', 'following_url': 'https://api.github.com/users/65dph43039/following{/other_user}', 'gists_url': 'https://api.github.com/users/65dph43039/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/65dph43039/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/65dph43039/subscriptions', 'organizations_url': 'https://api.github.com/users/65dph43039/orgs', 'repos_url': 'https://api.github.com/users/65dph43039/repos', 'events_url': 'https://api.github.com/users/65dph43039/events{/privacy}', 'received_events_url': 'https://api.github.com/users/65dph43039/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-12T23:28:49.715156 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'acts-1631', 'action': 'created', 'id': 14924, 'title': 'TraversalServer: bound tracked client state', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14924#issuecomment-6838996147', 'safe_author': False, 'body': 'Friendly ping for this and https://github.com/dolphin-emu/dolphin/pull/14923. I have at least seven more security issues ready to address after these. Thank you.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14924', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14924/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14924/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14924/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14924', 'id': 5752598560, 'node_id': 'PR_kwDOALCn2M8AAAABHNsdgg', 'number': 14924, 'title': 'TraversalServer: bound tracked client state', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-10-07T22:10:07Z', 'updated_at': '2026-11-12T23:28:46Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14924', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14924', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14924.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14924.patch', 'merged_at': None}, 'body': 'TraversalServer accepts unauthenticated HelloFromClient and ConnectPlease packets. HelloFromClient adds a connectedClients registration, while both packet types can add reliable replies to outgoingPackets. Neither table has a hard limit, and EvictFind only removes expired clients from the queried hash bucket, allowing packet floods to exhaust server memory.\n\nLimit both tables to 65,536 entries. When connectedClients reaches capacity, remove expired registrations at most once per second before rejecting new state. Check outgoingPackets capacity before allocating tracked replies and send an untracked negative acknowledgement when capacity is unavailable. This bounds memory use while preventing full-table cleanup on every received packet.\n\nFixes: 779f275486dc720858c7f91416803fe5f6b43e74\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14924/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14924/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6838996147', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14924#issuecomment-6838996147', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14924', 'id': 6838996147, 'node_id': 'IC_kwDOALCn2M8AAAABl6LMsw', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-12T23:28:46Z', 'updated_at': '2026-11-12T23:28:46Z', 'body': 'Friendly ping for this and https://github.com/dolphin-emu/dolphin/pull/14923. I have at least seven more security issues ready to address after these. Thank you.', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6838996147/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-12T19:15:50Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15811, 'watchers_count': 15811, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 494, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 494, 'watchers': 15811, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-12T19:00:50.377249 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 15008, 'title': 'HW/WiimoteReal: Fix crash when UI disconnects a Balance Board.', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15008#issuecomment-6833090918', 'safe_author': True, 'body': '> The Config.h include can be removed from the header file. LGTM otherwise.\r\n\r\nUnused headers removed.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15008', 'id': 6318771566, 'node_id': 'PR_kwDOALCn2M8AAAABOQG2hg', 'number': 15008, 'title': 'HW/WiimoteReal: Fix crash when UI disconnects a Balance Board.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2026-11-11T00:26:50Z', 'updated_at': '2026-11-12T19:00:46Z', 'closed_at': None, 'assignee': None, 'author_association': 'MEMBER', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15008', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15008', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/15008.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/15008.patch', 'merged_at': None}, 'body': "Toggling off `Real Balance Board` triggers `Config::OnConfigChanged` which invokes `~Wiimote()` which invoked `RemoveConfigChangedCallback`.\n\nDespite `s_callbacks_lock` being a `recursive_mutex`, `OnConfigChanged` is really not prepared for callbacks to be added/removed from within another callback and this will generally cause a crash from invalided iterators.\n\nThis PR somewhat works around the underlying problem, it looks like RetroAchievements is also adding callbacks from within callbacks which won't end well.\n\nRegardless, `Wiimote` doesn't need this callback, it can just use the getters directly.\n\n\n", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6833090918', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15008#issuecomment-6833090918', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008', 'id': 6833090918, 'node_id': 'IC_kwDOALCn2M8AAAABl0ixZg', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-12T19:00:46Z', 'updated_at': '2026-11-12T19:00:46Z', 'body': '> The Config.h include can be removed from the header file. LGTM otherwise.\r\n\r\nUnused headers removed.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6833090918/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-12T18:12:30Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15810, 'watchers_count': 15810, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 493, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 493, 'watchers': 15810, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-12T18:55:37.407048 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14890, 'title': 'Android: Fix UI text truncation in 4K TV UI', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14890#issuecomment-6832972682', 'safe_author': True, 'body': "This will be included in the next full release. It will probably before the end of the year, but we can't promise it.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14890', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14890/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14890/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14890/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14890', 'id': 5598406162, 'node_id': 'PR_kwDOALCn2M8AAAABFTH48Q', 'number': 14890, 'title': 'Android: Fix UI text truncation in 4K TV UI', 'user': {'login': 'lihanchen', 'id': 5497974, 'node_id': 'MDQ6VXNlcjU0OTc5NzQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5497974?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lihanchen', 'html_url': 'https://github.com/lihanchen', 'followers_url': 'https://api.github.com/users/lihanchen/followers', 'following_url': 'https://api.github.com/users/lihanchen/following{/other_user}', 'gists_url': 'https://api.github.com/users/lihanchen/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lihanchen/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lihanchen/subscriptions', 'organizations_url': 'https://api.github.com/users/lihanchen/orgs', 'repos_url': 'https://api.github.com/users/lihanchen/repos', 'events_url': 'https://api.github.com/users/lihanchen/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lihanchen/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-09-27T00:00:50Z', 'updated_at': '2026-11-12T18:55:34Z', 'closed_at': '2026-10-02T17:58:16Z', 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14890', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14890', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14890.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14890.patch', 'merged_at': '2026-10-02T17:58:16Z'}, 'body': 'Before change:\r\n<img width="3840" height="2160" alt="Dolphin_Emulator_Shield2_main_homepage_adb_20260810_144621" src="https://github.com/user-attachments/assets/98e020e9-c908-4280-821a-f205c9d8bd06" />\r\n\r\nAfter Change:\r\n<img width="1680" height="959" alt="Screenshot 2026-09-26 at 4 54 38\u202fPM" src="https://github.com/user-attachments/assets/d231838f-bc6a-4e6a-a874-c2df8daa3750" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14890/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14890/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6832972682', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14890#issuecomment-6832972682', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14890', 'id': 6832972682, 'node_id': 'IC_kwDOALCn2M8AAAABl0bjig', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-12T18:55:33Z', 'updated_at': '2026-11-12T18:55:33Z', 'body': "This will be included in the next full release. It will probably before the end of the year, but we can't promise it.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6832972682/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-12T18:12:30Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15810, 'watchers_count': 15810, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 493, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 493, 'watchers': 15810, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-12T18:42:48.900725 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 15008, 'title': 'HW/WiimoteReal: Fix crash when UI disconnects a Balance Board.', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15008#issuecomment-6832675386', 'safe_author': True, 'body': 'The Config.h include can be removed from the header file. LGTM otherwise.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15008', 'id': 6318771566, 'node_id': 'PR_kwDOALCn2M8AAAABOQG2hg', 'number': 15008, 'title': 'HW/WiimoteReal: Fix crash when UI disconnects a Balance Board.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-11-11T00:26:50Z', 'updated_at': '2026-11-12T18:42:46Z', 'closed_at': None, 'assignee': None, 'author_association': 'MEMBER', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15008', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15008', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/15008.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/15008.patch', 'merged_at': None}, 'body': "Toggling off `Real Balance Board` triggers `Config::OnConfigChanged` which invokes `~Wiimote()` which invoked `RemoveConfigChangedCallback`.\n\nDespite `s_callbacks_lock` being a `recursive_mutex`, `OnConfigChanged` is really not prepared for callbacks to be added/removed from within another callback and this will generally cause a crash from invalided iterators.\n\nThis PR somewhat works around the underlying problem, it looks like RetroAchievements is also adding callbacks from within callbacks which won't end well.\n\nRegardless, `Wiimote` doesn't need this callback, it can just use the getters directly.\n\n\n", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6832675386', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15008#issuecomment-6832675386', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15008', 'id': 6832675386, 'node_id': 'IC_kwDOALCn2M8AAAABl0JaOg', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-12T18:42:46Z', 'updated_at': '2026-11-12T18:42:46Z', 'body': 'The Config.h include can be removed from the header file. LGTM otherwise.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6832675386/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-12T18:12:30Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15810, 'watchers_count': 15810, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 493, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 493, 'watchers': 15810, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-12T00:11:51.291421 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'created', 'id': 14995, 'title': 'AX: fix two bugs', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14995#issuecomment-6810407732', 'safe_author': True, 'body': "GameCube ucodes don't init the dpop values, so this code is now fully inside the ifdef.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14995', 'id': 6266940391, 'node_id': 'PR_kwDOALCn2M8AAAABNm1WiA', 'number': 14995, 'title': 'AX: fix two bugs', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2026-11-08T02:59:20Z', 'updated_at': '2026-11-12T00:11:49Z', 'closed_at': None, 'assignee': None, 'author_association': 'MEMBER', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14995', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14995.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14995.patch', 'merged_at': None}, 'body': "The de-pop issue was reported in #14988.\n\nThe CMD_SUB_TO_LR bug was found by staring. No idea which games actually use this command. I assume it's one of the surround schemes.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6810407732', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14995#issuecomment-6810407732', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995', 'id': 6810407732, 'node_id': 'IC_kwDOALCn2M8AAAABle6TNA', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-12T00:11:49Z', 'updated_at': '2026-11-12T00:11:49Z', 'body': "GameCube ucodes don't init the dpop values, so this code is now fully inside the ifdef.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6810407732/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 492, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 492, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T23:56:08.669330 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 12014, 'title': 'Add CRT shaders', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12014#issuecomment-6810145143', 'safe_author': True, 'body': "> Neat! Do these use the same method as before (shaders must be added manually)? I just updated to the development version on my Android.\r\n\r\nIt's not clear what you're trying to ask. Please ask for support elsewhere.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12014', 'id': 1781462996, 'node_id': 'PR_kwDOALCn2M5URoxg', 'number': 12014, 'title': 'Add CRT shaders', 'user': {'login': 'Clownacy', 'id': 7667009, 'node_id': 'MDQ6VXNlcjc2NjcwMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7667009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Clownacy', 'html_url': 'https://github.com/Clownacy', 'followers_url': 'https://api.github.com/users/Clownacy/followers', 'following_url': 'https://api.github.com/users/Clownacy/following{/other_user}', 'gists_url': 'https://api.github.com/users/Clownacy/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Clownacy/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Clownacy/subscriptions', 'organizations_url': 'https://api.github.com/users/Clownacy/orgs', 'repos_url': 'https://api.github.com/users/Clownacy/repos', 'events_url': 'https://api.github.com/users/Clownacy/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Clownacy/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 44, 'created_at': '2023-06-29T20:23:15Z', 'updated_at': '2026-11-11T23:56:06Z', 'closed_at': '2026-11-11T20:08:28Z', 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12014', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12014', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12014.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12014.patch', 'merged_at': '2026-11-11T20:08:28Z'}, 'body': "I've ported a couple of shaders from RetroArch - particularly the crt-pi and crt-lottes-fast ones. Unlike other shaders such as crt-royale, these shaders are single-pass, allowing them to work within Dolphin's framework. These look pretty good when paired with native resolution and SSAA.\r\n\r\ncrt-lottes-fast:\r\n\r\n\r\nunfiltered:\r\n\r\n\r\ncrt-pi:\r\n\r\n\r\nUnfortunately, I only noticed #11888 after I had already ported crt-pi. Still, crt-pi is specifically optimised for lower-end hardware (Raspberry Pis, in particular), so perhaps these shaders still have some utility.\r\n\r\nVarious settings have been exposed through Dolphin's configuration API, crt-pi in particular boasts extra options that even the RetroArch version does not due to being hardcoded within the GLSL code itself.\r\n\r\nBoth crt-pi and crt-lottes-fast run with every backend that I have tested (OpenGL, Vulkan, Direct3D 11, and Direct3D 12).", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014/reactions', 'total_count': 34, '+1': 16, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 18, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6810145143', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12014#issuecomment-6810145143', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014', 'id': 6810145143, 'node_id': 'IC_kwDOALCn2M8AAAABleqRdw', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T23:56:06Z', 'updated_at': '2026-11-11T23:56:06Z', 'body': "> Neat! Do these use the same method as before (shaders must be added manually)? I just updated to the development version on my Android.\r\n\r\nIt's not clear what you're trying to ask. Please ask for support elsewhere.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6810145143/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 492, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 492, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T23:52:15.130956 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AmandaRoseChaqueta', 'action': 'edited', 'id': 13708, 'title': 'IOS/USB: Add "Connect USB Keyboard" support for HID', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13708#issuecomment-6810015740', 'safe_author': False, 'body': 'Hopefully linux support can be re-added someday, cuz #14322 Only works for windows atm and this PR is the only one that supports linux.', 'raw': {'action': 'edited', 'changes': {'body': {'from': 'Hopefully linux support can be re-added someday, cuz #14322 Only works for windows atm.'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708', 'id': 3088686929, 'node_id': 'PR_kwDOALCn2M6Xgoop', 'number': 13708, 'title': 'IOS/USB: Add "Connect USB Keyboard" support for HID', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2025-05-24T19:39:27Z', 'updated_at': '2026-11-11T23:48:13Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13708', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13708.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13708.patch', 'merged_at': None}, 'body': 'This PR supersedes https://github.com/dolphin-emu/dolphin/pull/13645 and is based on https://github.com/dolphin-emu/dolphin/pull/13623.\r\n\r\nThe easiest way to test this PR is to change a Monster Hunter 3 save slot name.\r\n\r\n\r\nReady for reviewing and testing.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6810015740', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708#issuecomment-6810015740', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708', 'id': 6810015740, 'node_id': 'IC_kwDOALCn2M8AAAABleiX_A', 'user': {'login': 'AmandaRoseChaqueta', 'id': 89411895, 'node_id': 'MDQ6VXNlcjg5NDExODk1', 'avatar_url': 'https://avatars.githubusercontent.com/u/89411895?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AmandaRoseChaqueta', 'html_url': 'https://github.com/AmandaRoseChaqueta', 'followers_url': 'https://api.github.com/users/AmandaRoseChaqueta/followers', 'following_url': 'https://api.github.com/users/AmandaRoseChaqueta/following{/other_user}', 'gists_url': 'https://api.github.com/users/AmandaRoseChaqueta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AmandaRoseChaqueta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AmandaRoseChaqueta/subscriptions', 'organizations_url': 'https://api.github.com/users/AmandaRoseChaqueta/orgs', 'repos_url': 'https://api.github.com/users/AmandaRoseChaqueta/repos', 'events_url': 'https://api.github.com/users/AmandaRoseChaqueta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AmandaRoseChaqueta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T23:48:13Z', 'updated_at': '2026-11-11T23:52:13Z', 'body': 'Hopefully linux support can be re-added someday, cuz #14322 Only works for windows atm and this PR is the only one that supports linux.', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6810015740/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 492, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 492, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'AmandaRoseChaqueta', 'id': 89411895, 'node_id': 'MDQ6VXNlcjg5NDExODk1', 'avatar_url': 'https://avatars.githubusercontent.com/u/89411895?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AmandaRoseChaqueta', 'html_url': 'https://github.com/AmandaRoseChaqueta', 'followers_url': 'https://api.github.com/users/AmandaRoseChaqueta/followers', 'following_url': 'https://api.github.com/users/AmandaRoseChaqueta/following{/other_user}', 'gists_url': 'https://api.github.com/users/AmandaRoseChaqueta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AmandaRoseChaqueta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AmandaRoseChaqueta/subscriptions', 'organizations_url': 'https://api.github.com/users/AmandaRoseChaqueta/orgs', 'repos_url': 'https://api.github.com/users/AmandaRoseChaqueta/repos', 'events_url': 'https://api.github.com/users/AmandaRoseChaqueta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AmandaRoseChaqueta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T23:49:34.046694 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Daddu3', 'action': 'created', 'id': 12014, 'title': 'Add CRT shaders', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12014#issuecomment-6810037962', 'safe_author': False, 'body': 'Neat! Do these use the same method as before (shaders must be added manually)? I just updated to the development version on my Android.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12014', 'id': 1781462996, 'node_id': 'PR_kwDOALCn2M5URoxg', 'number': 12014, 'title': 'Add CRT shaders', 'user': {'login': 'Clownacy', 'id': 7667009, 'node_id': 'MDQ6VXNlcjc2NjcwMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7667009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Clownacy', 'html_url': 'https://github.com/Clownacy', 'followers_url': 'https://api.github.com/users/Clownacy/followers', 'following_url': 'https://api.github.com/users/Clownacy/following{/other_user}', 'gists_url': 'https://api.github.com/users/Clownacy/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Clownacy/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Clownacy/subscriptions', 'organizations_url': 'https://api.github.com/users/Clownacy/orgs', 'repos_url': 'https://api.github.com/users/Clownacy/repos', 'events_url': 'https://api.github.com/users/Clownacy/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Clownacy/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 43, 'created_at': '2023-06-29T20:23:15Z', 'updated_at': '2026-11-11T23:49:31Z', 'closed_at': '2026-11-11T20:08:28Z', 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12014', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12014', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12014.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12014.patch', 'merged_at': '2026-11-11T20:08:28Z'}, 'body': "I've ported a couple of shaders from RetroArch - particularly the crt-pi and crt-lottes-fast ones. Unlike other shaders such as crt-royale, these shaders are single-pass, allowing them to work within Dolphin's framework. These look pretty good when paired with native resolution and SSAA.\r\n\r\ncrt-lottes-fast:\r\n\r\n\r\nunfiltered:\r\n\r\n\r\ncrt-pi:\r\n\r\n\r\nUnfortunately, I only noticed #11888 after I had already ported crt-pi. Still, crt-pi is specifically optimised for lower-end hardware (Raspberry Pis, in particular), so perhaps these shaders still have some utility.\r\n\r\nVarious settings have been exposed through Dolphin's configuration API, crt-pi in particular boasts extra options that even the RetroArch version does not due to being hardcoded within the GLSL code itself.\r\n\r\nBoth crt-pi and crt-lottes-fast run with every backend that I have tested (OpenGL, Vulkan, Direct3D 11, and Direct3D 12).", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014/reactions', 'total_count': 34, '+1': 16, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 18, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6810037962', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12014#issuecomment-6810037962', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12014', 'id': 6810037962, 'node_id': 'IC_kwDOALCn2M8AAAABlejuyg', 'user': {'login': 'Daddu3', 'id': 53014019, 'node_id': 'MDQ6VXNlcjUzMDE0MDE5', 'avatar_url': 'https://avatars.githubusercontent.com/u/53014019?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Daddu3', 'html_url': 'https://github.com/Daddu3', 'followers_url': 'https://api.github.com/users/Daddu3/followers', 'following_url': 'https://api.github.com/users/Daddu3/following{/other_user}', 'gists_url': 'https://api.github.com/users/Daddu3/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Daddu3/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Daddu3/subscriptions', 'organizations_url': 'https://api.github.com/users/Daddu3/orgs', 'repos_url': 'https://api.github.com/users/Daddu3/repos', 'events_url': 'https://api.github.com/users/Daddu3/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Daddu3/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T23:49:31Z', 'updated_at': '2026-11-11T23:49:31Z', 'body': 'Neat! Do these use the same method as before (shaders must be added manually)? I just updated to the development version on my Android.', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6810037962/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 492, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 492, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Daddu3', 'id': 53014019, 'node_id': 'MDQ6VXNlcjUzMDE0MDE5', 'avatar_url': 'https://avatars.githubusercontent.com/u/53014019?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Daddu3', 'html_url': 'https://github.com/Daddu3', 'followers_url': 'https://api.github.com/users/Daddu3/followers', 'following_url': 'https://api.github.com/users/Daddu3/following{/other_user}', 'gists_url': 'https://api.github.com/users/Daddu3/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Daddu3/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Daddu3/subscriptions', 'organizations_url': 'https://api.github.com/users/Daddu3/orgs', 'repos_url': 'https://api.github.com/users/Daddu3/repos', 'events_url': 'https://api.github.com/users/Daddu3/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Daddu3/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T23:48:15.478392 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AmandaRoseChaqueta', 'action': 'created', 'id': 13708, 'title': 'IOS/USB: Add "Connect USB Keyboard" support for HID', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13708#issuecomment-6810015740', 'safe_author': False, 'body': 'Hopefully linux support can be re-added someday, cuz #14322 Only works for windows atm.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708', 'id': 3088686929, 'node_id': 'PR_kwDOALCn2M6Xgoop', 'number': 13708, 'title': 'IOS/USB: Add "Connect USB Keyboard" support for HID', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2025-05-24T19:39:27Z', 'updated_at': '2026-11-11T23:48:13Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13708', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13708.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13708.patch', 'merged_at': None}, 'body': 'This PR supersedes https://github.com/dolphin-emu/dolphin/pull/13645 and is based on https://github.com/dolphin-emu/dolphin/pull/13623.\r\n\r\nThe easiest way to test this PR is to change a Monster Hunter 3 save slot name.\r\n\r\n\r\nReady for reviewing and testing.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6810015740', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708#issuecomment-6810015740', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708', 'id': 6810015740, 'node_id': 'IC_kwDOALCn2M8AAAABleiX_A', 'user': {'login': 'AmandaRoseChaqueta', 'id': 89411895, 'node_id': 'MDQ6VXNlcjg5NDExODk1', 'avatar_url': 'https://avatars.githubusercontent.com/u/89411895?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AmandaRoseChaqueta', 'html_url': 'https://github.com/AmandaRoseChaqueta', 'followers_url': 'https://api.github.com/users/AmandaRoseChaqueta/followers', 'following_url': 'https://api.github.com/users/AmandaRoseChaqueta/following{/other_user}', 'gists_url': 'https://api.github.com/users/AmandaRoseChaqueta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AmandaRoseChaqueta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AmandaRoseChaqueta/subscriptions', 'organizations_url': 'https://api.github.com/users/AmandaRoseChaqueta/orgs', 'repos_url': 'https://api.github.com/users/AmandaRoseChaqueta/repos', 'events_url': 'https://api.github.com/users/AmandaRoseChaqueta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AmandaRoseChaqueta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T23:48:13Z', 'updated_at': '2026-11-11T23:48:13Z', 'body': 'Hopefully linux support can be re-added someday, cuz #14322 Only works for windows atm.', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6810015740/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 492, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 492, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'AmandaRoseChaqueta', 'id': 89411895, 'node_id': 'MDQ6VXNlcjg5NDExODk1', 'avatar_url': 'https://avatars.githubusercontent.com/u/89411895?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AmandaRoseChaqueta', 'html_url': 'https://github.com/AmandaRoseChaqueta', 'followers_url': 'https://api.github.com/users/AmandaRoseChaqueta/followers', 'following_url': 'https://api.github.com/users/AmandaRoseChaqueta/following{/other_user}', 'gists_url': 'https://api.github.com/users/AmandaRoseChaqueta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AmandaRoseChaqueta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AmandaRoseChaqueta/subscriptions', 'organizations_url': 'https://api.github.com/users/AmandaRoseChaqueta/orgs', 'repos_url': 'https://api.github.com/users/AmandaRoseChaqueta/repos', 'events_url': 'https://api.github.com/users/AmandaRoseChaqueta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AmandaRoseChaqueta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T22:33:30.257574 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 13708, 'title': 'IOS/USB: Add "Connect USB Keyboard" support for HID', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13708#issuecomment-6808688179', 'safe_author': True, 'body': "It could but my plan for this HID keyboard PR is to split it into smaller ones to get on top of https://dolp.in/pr14322. So I'd say it won't matter for the time being.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708', 'id': 3088686929, 'node_id': 'PR_kwDOALCn2M6Xgoop', 'number': 13708, 'title': 'IOS/USB: Add "Connect USB Keyboard" support for HID', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2025-05-24T19:39:27Z', 'updated_at': '2026-11-11T22:33:28Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13708', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13708.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13708.patch', 'merged_at': None}, 'body': 'This PR supersedes https://github.com/dolphin-emu/dolphin/pull/13645 and is based on https://github.com/dolphin-emu/dolphin/pull/13623.\r\n\r\nThe easiest way to test this PR is to change a Monster Hunter 3 save slot name.\r\n\r\n\r\nReady for reviewing and testing.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6808688179', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708#issuecomment-6808688179', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708', 'id': 6808688179, 'node_id': 'IC_kwDOALCn2M8AAAABldRWMw', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T22:33:27Z', 'updated_at': '2026-11-11T22:33:27Z', 'body': "It could but my plan for this HID keyboard PR is to split it into smaller ones to get on top of https://dolp.in/pr14322. So I'd say it won't matter for the time being.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6808688179/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 492, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 492, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T21:51:00.133601 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AmandaRoseChaqueta', 'action': 'edited', 'id': 13708, 'title': 'IOS/USB: Add "Connect USB Keyboard" support for HID', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13708#issuecomment-6807871766', 'safe_author': False, 'body': 'With #15012 superseding #13814, would that affect this PR too? This needed #13814 to be merged after all.', 'raw': {'action': 'edited', 'changes': {'body': {'from': 'With #15012 superseding #13814, would that affect this PR? '}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708', 'id': 3088686929, 'node_id': 'PR_kwDOALCn2M6Xgoop', 'number': 13708, 'title': 'IOS/USB: Add "Connect USB Keyboard" support for HID', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2025-05-24T19:39:27Z', 'updated_at': '2026-11-11T21:50:16Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13708', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13708.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13708.patch', 'merged_at': None}, 'body': 'This PR supersedes https://github.com/dolphin-emu/dolphin/pull/13645 and is based on https://github.com/dolphin-emu/dolphin/pull/13623.\r\n\r\nThe easiest way to test this PR is to change a Monster Hunter 3 save slot name.\r\n\r\n\r\nReady for reviewing and testing.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807871766', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708#issuecomment-6807871766', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708', 'id': 6807871766, 'node_id': 'IC_kwDOALCn2M8AAAABlcfhFg', 'user': {'login': 'AmandaRoseChaqueta', 'id': 89411895, 'node_id': 'MDQ6VXNlcjg5NDExODk1', 'avatar_url': 'https://avatars.githubusercontent.com/u/89411895?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AmandaRoseChaqueta', 'html_url': 'https://github.com/AmandaRoseChaqueta', 'followers_url': 'https://api.github.com/users/AmandaRoseChaqueta/followers', 'following_url': 'https://api.github.com/users/AmandaRoseChaqueta/following{/other_user}', 'gists_url': 'https://api.github.com/users/AmandaRoseChaqueta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AmandaRoseChaqueta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AmandaRoseChaqueta/subscriptions', 'organizations_url': 'https://api.github.com/users/AmandaRoseChaqueta/orgs', 'repos_url': 'https://api.github.com/users/AmandaRoseChaqueta/repos', 'events_url': 'https://api.github.com/users/AmandaRoseChaqueta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AmandaRoseChaqueta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T21:50:16Z', 'updated_at': '2026-11-11T21:50:58Z', 'body': 'With #15012 superseding #13814, would that affect this PR too? This needed #13814 to be merged after all.', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807871766/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 492, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 492, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'AmandaRoseChaqueta', 'id': 89411895, 'node_id': 'MDQ6VXNlcjg5NDExODk1', 'avatar_url': 'https://avatars.githubusercontent.com/u/89411895?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AmandaRoseChaqueta', 'html_url': 'https://github.com/AmandaRoseChaqueta', 'followers_url': 'https://api.github.com/users/AmandaRoseChaqueta/followers', 'following_url': 'https://api.github.com/users/AmandaRoseChaqueta/following{/other_user}', 'gists_url': 'https://api.github.com/users/AmandaRoseChaqueta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AmandaRoseChaqueta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AmandaRoseChaqueta/subscriptions', 'organizations_url': 'https://api.github.com/users/AmandaRoseChaqueta/orgs', 'repos_url': 'https://api.github.com/users/AmandaRoseChaqueta/repos', 'events_url': 'https://api.github.com/users/AmandaRoseChaqueta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AmandaRoseChaqueta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T21:50:18.818380 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AmandaRoseChaqueta', 'action': 'created', 'id': 13708, 'title': 'IOS/USB: Add "Connect USB Keyboard" support for HID', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13708#issuecomment-6807871766', 'safe_author': False, 'body': 'With #15012 superseding #13814, would that affect this PR? ', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708', 'id': 3088686929, 'node_id': 'PR_kwDOALCn2M6Xgoop', 'number': 13708, 'title': 'IOS/USB: Add "Connect USB Keyboard" support for HID', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2025-05-24T19:39:27Z', 'updated_at': '2026-11-11T21:50:16Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13708', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13708.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13708.patch', 'merged_at': None}, 'body': 'This PR supersedes https://github.com/dolphin-emu/dolphin/pull/13645 and is based on https://github.com/dolphin-emu/dolphin/pull/13623.\r\n\r\nThe easiest way to test this PR is to change a Monster Hunter 3 save slot name.\r\n\r\n\r\nReady for reviewing and testing.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807871766', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13708#issuecomment-6807871766', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13708', 'id': 6807871766, 'node_id': 'IC_kwDOALCn2M8AAAABlcfhFg', 'user': {'login': 'AmandaRoseChaqueta', 'id': 89411895, 'node_id': 'MDQ6VXNlcjg5NDExODk1', 'avatar_url': 'https://avatars.githubusercontent.com/u/89411895?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AmandaRoseChaqueta', 'html_url': 'https://github.com/AmandaRoseChaqueta', 'followers_url': 'https://api.github.com/users/AmandaRoseChaqueta/followers', 'following_url': 'https://api.github.com/users/AmandaRoseChaqueta/following{/other_user}', 'gists_url': 'https://api.github.com/users/AmandaRoseChaqueta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AmandaRoseChaqueta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AmandaRoseChaqueta/subscriptions', 'organizations_url': 'https://api.github.com/users/AmandaRoseChaqueta/orgs', 'repos_url': 'https://api.github.com/users/AmandaRoseChaqueta/repos', 'events_url': 'https://api.github.com/users/AmandaRoseChaqueta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AmandaRoseChaqueta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T21:50:16Z', 'updated_at': '2026-11-11T21:50:16Z', 'body': 'With #15012 superseding #13814, would that affect this PR? ', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807871766/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 492, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 492, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'AmandaRoseChaqueta', 'id': 89411895, 'node_id': 'MDQ6VXNlcjg5NDExODk1', 'avatar_url': 'https://avatars.githubusercontent.com/u/89411895?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AmandaRoseChaqueta', 'html_url': 'https://github.com/AmandaRoseChaqueta', 'followers_url': 'https://api.github.com/users/AmandaRoseChaqueta/followers', 'following_url': 'https://api.github.com/users/AmandaRoseChaqueta/following{/other_user}', 'gists_url': 'https://api.github.com/users/AmandaRoseChaqueta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AmandaRoseChaqueta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AmandaRoseChaqueta/subscriptions', 'organizations_url': 'https://api.github.com/users/AmandaRoseChaqueta/orgs', 'repos_url': 'https://api.github.com/users/AmandaRoseChaqueta/repos', 'events_url': 'https://api.github.com/users/AmandaRoseChaqueta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AmandaRoseChaqueta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T21:18:59.594116 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jpferraz-git', 'action': 'edited', 'id': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6807209072', 'safe_author': False, 'body': 'I reported the iris GPU hang upstream to Mesa (https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865) and also investigated why Dolphin was hitting it when async shader compilation is enabled.\r\n\r\nIt turns out Dolphin already has BUG_SHARED_CONTEXT_SHADER_COMPILATION for Linux Intel Mesa drivers to disable background shared-context compilation, but it was being bypassed due to InitDriverInfo() being called after PopulateConfig() and `iris` reporting GL_VENDOR as Intel instead of `Intel Open Source Technology Center, I opened #15013 to fix that.', 'raw': {'action': 'edited', 'changes': {'body': {'from': 'I reported the iris GPU hang upstream to Mesa (https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865) and also investigated why Dolphin was hitting it when async shader compilation is enabled.\r\n\r\nIt turns out Dolphin already has BUG_SHARED_CONTEXT_SHADER_COMPILATION for Linux Intel Mesa drivers to disable background shared-context compilation, but it was being bypassed due to InitDriverInfo() being called after PopulateConfig() and `iris` reporting GL_VENDOR as Intel instead of `Intel Open Source Technology Center" I opened #15013 to fix that .'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'id': 6253640354, 'node_id': 'PR_kwDOALCn2M8AAAABNcZGmQ', 'number': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-11-07T01:23:58Z', 'updated_at': '2026-11-11T21:18:40Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14991', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.patch', 'merged_at': None}, 'body': 'When running Dolphin on Linux systems with Intel Integrated Graphics (Tiger Lake / Iris Xe using Mesa `iris`), using the OpenGL backend frequently leads to kernel GPU hangs (`i915` ring timeouts) during heavy EFB / shader workloads (such as in *Super Mario Galaxy* and *Skyward Sword*). Under Wayland compositors (GNOME Mutter / KDE KWin), this GPU reset causes an unrecoverable display freeze.\r\n\r\nWhile PR #14835 changed the default backend to Vulkan on Linux for clean installs, existing installations with an already generated `Dolphin.ini` keep `GFXBackend = OGL` and remain prone to these system freezes.\r\n\r\nThis patch adds an on-screen warning (OSD) in `PopulateConfig()` when `gl_vendor == "Intel"` and Mesa are detected on Linux under OpenGL, advising users to switch to Vulkan.\r\n\r\n### Evidence\r\n\r\n**System Environment:**\r\n- **OS:** Ubuntu Linux (Wayland / GNOME Mutter)\r\n- **GPU:** Intel Iris Xe Graphics (Tiger Lake GT2, `i915` kernel module)\r\n- **Mesa:** `iris` OpenGL driver (vendor string: `"Intel"`)\r\n\r\n**Kernel log signature during freeze (`dmesg` / `journalctl -k`):**\r\n```text\r\nkernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 12:0:00000000, in dolphin-emu\r\nkernel: i915 0000:00:02.0: [drm] Resetting rcs0 for stopped heartbeat on rcs0\r\nkernel: [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:...] flip_done timed out\r\n```\r\nOnce the `i915` reset sequence finishes, the Wayland compositor permanently loses display synchronization (`Pageflip timed out`), locking up all screen updates and requiring a forced hard reboot.\r\n\r\n*(Note per Contributing.md: The author drafted and refined this patch and PR description with LLM assistance.)*', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807209072', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6807209072', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'id': 6807209072, 'node_id': 'IC_kwDOALCn2M8AAAABlb3EcA', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T21:15:47Z', 'updated_at': '2026-11-11T21:18:58Z', 'body': 'I reported the iris GPU hang upstream to Mesa (https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865) and also investigated why Dolphin was hitting it when async shader compilation is enabled.\r\n\r\nIt turns out Dolphin already has BUG_SHARED_CONTEXT_SHADER_COMPILATION for Linux Intel Mesa drivers to disable background shared-context compilation, but it was being bypassed due to InitDriverInfo() being called after PopulateConfig() and `iris` reporting GL_VENDOR as Intel instead of `Intel Open Source Technology Center, I opened #15013 to fix that.', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807209072/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 490, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 490, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T21:18:42.167201 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jpferraz-git', 'action': 'edited', 'id': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6807209072', 'safe_author': False, 'body': 'I reported the iris GPU hang upstream to Mesa (https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865) and also investigated why Dolphin was hitting it when async shader compilation is enabled.\r\n\r\nIt turns out Dolphin already has BUG_SHARED_CONTEXT_SHADER_COMPILATION for Linux Intel Mesa drivers to disable background shared-context compilation, but it was being bypassed due to InitDriverInfo() being called after PopulateConfig() and `iris` reporting GL_VENDOR as Intel instead of `Intel Open Source Technology Center" I opened #15013 to fix that .', 'raw': {'action': 'edited', 'changes': {'body': {'from': 'I reported the iris GPU hang upstream to Mesa (https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865) and also investigated why Dolphin was hitting it when async shader compilation is enabled.\r\n\r\nIt turns out Dolphin already has `BUG_SHARED_CONTEXT_SHADER_COMPILATION` for Linux Intel Mesa drivers to disable background shared-context compilation, but it was being bypassed due to `InitDriverInfo()` being called after `PopulateConfig()` and `iris` reporting `GL_VENDOR` as `"Intel"` instead of `Intel Open Source Technology Center" I opened #15013 to fix that .'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'id': 6253640354, 'node_id': 'PR_kwDOALCn2M8AAAABNcZGmQ', 'number': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-11-07T01:23:58Z', 'updated_at': '2026-11-11T21:18:19Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14991', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.patch', 'merged_at': None}, 'body': 'When running Dolphin on Linux systems with Intel Integrated Graphics (Tiger Lake / Iris Xe using Mesa `iris`), using the OpenGL backend frequently leads to kernel GPU hangs (`i915` ring timeouts) during heavy EFB / shader workloads (such as in *Super Mario Galaxy* and *Skyward Sword*). Under Wayland compositors (GNOME Mutter / KDE KWin), this GPU reset causes an unrecoverable display freeze.\r\n\r\nWhile PR #14835 changed the default backend to Vulkan on Linux for clean installs, existing installations with an already generated `Dolphin.ini` keep `GFXBackend = OGL` and remain prone to these system freezes.\r\n\r\nThis patch adds an on-screen warning (OSD) in `PopulateConfig()` when `gl_vendor == "Intel"` and Mesa are detected on Linux under OpenGL, advising users to switch to Vulkan.\r\n\r\n### Evidence\r\n\r\n**System Environment:**\r\n- **OS:** Ubuntu Linux (Wayland / GNOME Mutter)\r\n- **GPU:** Intel Iris Xe Graphics (Tiger Lake GT2, `i915` kernel module)\r\n- **Mesa:** `iris` OpenGL driver (vendor string: `"Intel"`)\r\n\r\n**Kernel log signature during freeze (`dmesg` / `journalctl -k`):**\r\n```text\r\nkernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 12:0:00000000, in dolphin-emu\r\nkernel: i915 0000:00:02.0: [drm] Resetting rcs0 for stopped heartbeat on rcs0\r\nkernel: [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:...] flip_done timed out\r\n```\r\nOnce the `i915` reset sequence finishes, the Wayland compositor permanently loses display synchronization (`Pageflip timed out`), locking up all screen updates and requiring a forced hard reboot.\r\n\r\n*(Note per Contributing.md: The author drafted and refined this patch and PR description with LLM assistance.)*', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807209072', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6807209072', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'id': 6807209072, 'node_id': 'IC_kwDOALCn2M8AAAABlb3EcA', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T21:15:47Z', 'updated_at': '2026-11-11T21:18:40Z', 'body': 'I reported the iris GPU hang upstream to Mesa (https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865) and also investigated why Dolphin was hitting it when async shader compilation is enabled.\r\n\r\nIt turns out Dolphin already has BUG_SHARED_CONTEXT_SHADER_COMPILATION for Linux Intel Mesa drivers to disable background shared-context compilation, but it was being bypassed due to InitDriverInfo() being called after PopulateConfig() and `iris` reporting GL_VENDOR as Intel instead of `Intel Open Source Technology Center" I opened #15013 to fix that .', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807209072/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 490, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 490, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T21:18:21.025805 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jpferraz-git', 'action': 'edited', 'id': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6807209072', 'safe_author': False, 'body': 'I reported the iris GPU hang upstream to Mesa (https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865) and also investigated why Dolphin was hitting it when async shader compilation is enabled.\r\n\r\nIt turns out Dolphin already has `BUG_SHARED_CONTEXT_SHADER_COMPILATION` for Linux Intel Mesa drivers to disable background shared-context compilation, but it was being bypassed due to `InitDriverInfo()` being called after `PopulateConfig()` and `iris` reporting `GL_VENDOR` as `"Intel"` instead of `Intel Open Source Technology Center" I opened #15013 to fix that .', 'raw': {'action': 'edited', 'changes': {'body': {'from': 'Update: I reported the `iris` GPU hang upstream to Mesa (https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865) and also investigated why Dolphin was hitting it when async shader compilation is enabled.\n\nIt turns out Dolphin already has `BUG_SHARED_CONTEXT_SHADER_COMPILATION` for Linux Intel Mesa drivers to disable background shared-context compilation, but it was being bypassed due to `InitDriverInfo()` being called after `PopulateConfig()` and `iris` reporting `GL_VENDOR` as `"Intel"` instead of `"Intel Open Source Technology Center"`. I opened #15013 to fix that directly.'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'id': 6253640354, 'node_id': 'PR_kwDOALCn2M8AAAABNcZGmQ', 'number': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-11-07T01:23:58Z', 'updated_at': '2026-11-11T21:17:19Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14991', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.patch', 'merged_at': None}, 'body': 'When running Dolphin on Linux systems with Intel Integrated Graphics (Tiger Lake / Iris Xe using Mesa `iris`), using the OpenGL backend frequently leads to kernel GPU hangs (`i915` ring timeouts) during heavy EFB / shader workloads (such as in *Super Mario Galaxy* and *Skyward Sword*). Under Wayland compositors (GNOME Mutter / KDE KWin), this GPU reset causes an unrecoverable display freeze.\r\n\r\nWhile PR #14835 changed the default backend to Vulkan on Linux for clean installs, existing installations with an already generated `Dolphin.ini` keep `GFXBackend = OGL` and remain prone to these system freezes.\r\n\r\nThis patch adds an on-screen warning (OSD) in `PopulateConfig()` when `gl_vendor == "Intel"` and Mesa are detected on Linux under OpenGL, advising users to switch to Vulkan.\r\n\r\n### Evidence\r\n\r\n**System Environment:**\r\n- **OS:** Ubuntu Linux (Wayland / GNOME Mutter)\r\n- **GPU:** Intel Iris Xe Graphics (Tiger Lake GT2, `i915` kernel module)\r\n- **Mesa:** `iris` OpenGL driver (vendor string: `"Intel"`)\r\n\r\n**Kernel log signature during freeze (`dmesg` / `journalctl -k`):**\r\n```text\r\nkernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 12:0:00000000, in dolphin-emu\r\nkernel: i915 0000:00:02.0: [drm] Resetting rcs0 for stopped heartbeat on rcs0\r\nkernel: [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:...] flip_done timed out\r\n```\r\nOnce the `i915` reset sequence finishes, the Wayland compositor permanently loses display synchronization (`Pageflip timed out`), locking up all screen updates and requiring a forced hard reboot.\r\n\r\n*(Note per Contributing.md: The author drafted and refined this patch and PR description with LLM assistance.)*', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807209072', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6807209072', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'id': 6807209072, 'node_id': 'IC_kwDOALCn2M8AAAABlb3EcA', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T21:15:47Z', 'updated_at': '2026-11-11T21:18:19Z', 'body': 'I reported the iris GPU hang upstream to Mesa (https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865) and also investigated why Dolphin was hitting it when async shader compilation is enabled.\r\n\r\nIt turns out Dolphin already has `BUG_SHARED_CONTEXT_SHADER_COMPILATION` for Linux Intel Mesa drivers to disable background shared-context compilation, but it was being bypassed due to `InitDriverInfo()` being called after `PopulateConfig()` and `iris` reporting `GL_VENDOR` as `"Intel"` instead of `Intel Open Source Technology Center" I opened #15013 to fix that .', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807209072/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 490, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 490, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T21:17:19.427385 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jpferraz-git', 'action': 'deleted', 'id': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6806913828', 'safe_author': False, 'body': 'heres the Issue for Mesa developers https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865', 'raw': {'action': 'deleted', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'id': 6253640354, 'node_id': 'PR_kwDOALCn2M8AAAABNcZGmQ', 'number': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2026-11-07T01:23:58Z', 'updated_at': '2026-11-11T21:15:47Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14991', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.patch', 'merged_at': None}, 'body': 'When running Dolphin on Linux systems with Intel Integrated Graphics (Tiger Lake / Iris Xe using Mesa `iris`), using the OpenGL backend frequently leads to kernel GPU hangs (`i915` ring timeouts) during heavy EFB / shader workloads (such as in *Super Mario Galaxy* and *Skyward Sword*). Under Wayland compositors (GNOME Mutter / KDE KWin), this GPU reset causes an unrecoverable display freeze.\r\n\r\nWhile PR #14835 changed the default backend to Vulkan on Linux for clean installs, existing installations with an already generated `Dolphin.ini` keep `GFXBackend = OGL` and remain prone to these system freezes.\r\n\r\nThis patch adds an on-screen warning (OSD) in `PopulateConfig()` when `gl_vendor == "Intel"` and Mesa are detected on Linux under OpenGL, advising users to switch to Vulkan.\r\n\r\n### Evidence\r\n\r\n**System Environment:**\r\n- **OS:** Ubuntu Linux (Wayland / GNOME Mutter)\r\n- **GPU:** Intel Iris Xe Graphics (Tiger Lake GT2, `i915` kernel module)\r\n- **Mesa:** `iris` OpenGL driver (vendor string: `"Intel"`)\r\n\r\n**Kernel log signature during freeze (`dmesg` / `journalctl -k`):**\r\n```text\r\nkernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 12:0:00000000, in dolphin-emu\r\nkernel: i915 0000:00:02.0: [drm] Resetting rcs0 for stopped heartbeat on rcs0\r\nkernel: [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:...] flip_done timed out\r\n```\r\nOnce the `i915` reset sequence finishes, the Wayland compositor permanently loses display synchronization (`Pageflip timed out`), locking up all screen updates and requiring a forced hard reboot.\r\n\r\n*(Note per Contributing.md: The author drafted and refined this patch and PR description with LLM assistance.)*', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6806913828', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6806913828', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'id': 6806913828, 'node_id': 'IC_kwDOALCn2M8AAAABlblDJA', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T20:59:54Z', 'updated_at': '2026-11-11T20:59:54Z', 'body': 'heres the Issue for Mesa developers https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6806913828/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 490, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 490, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T21:15:50.031149 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jpferraz-git', 'action': 'created', 'id': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6807209072', 'safe_author': False, 'body': 'Update: I reported the `iris` GPU hang upstream to Mesa (https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865) and also investigated why Dolphin was hitting it when async shader compilation is enabled.\n\nIt turns out Dolphin already has `BUG_SHARED_CONTEXT_SHADER_COMPILATION` for Linux Intel Mesa drivers to disable background shared-context compilation, but it was being bypassed due to `InitDriverInfo()` being called after `PopulateConfig()` and `iris` reporting `GL_VENDOR` as `"Intel"` instead of `"Intel Open Source Technology Center"`. I opened #15013 to fix that directly.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'id': 6253640354, 'node_id': 'PR_kwDOALCn2M8AAAABNcZGmQ', 'number': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2026-11-07T01:23:58Z', 'updated_at': '2026-11-11T21:15:47Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14991', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.patch', 'merged_at': None}, 'body': 'When running Dolphin on Linux systems with Intel Integrated Graphics (Tiger Lake / Iris Xe using Mesa `iris`), using the OpenGL backend frequently leads to kernel GPU hangs (`i915` ring timeouts) during heavy EFB / shader workloads (such as in *Super Mario Galaxy* and *Skyward Sword*). Under Wayland compositors (GNOME Mutter / KDE KWin), this GPU reset causes an unrecoverable display freeze.\r\n\r\nWhile PR #14835 changed the default backend to Vulkan on Linux for clean installs, existing installations with an already generated `Dolphin.ini` keep `GFXBackend = OGL` and remain prone to these system freezes.\r\n\r\nThis patch adds an on-screen warning (OSD) in `PopulateConfig()` when `gl_vendor == "Intel"` and Mesa are detected on Linux under OpenGL, advising users to switch to Vulkan.\r\n\r\n### Evidence\r\n\r\n**System Environment:**\r\n- **OS:** Ubuntu Linux (Wayland / GNOME Mutter)\r\n- **GPU:** Intel Iris Xe Graphics (Tiger Lake GT2, `i915` kernel module)\r\n- **Mesa:** `iris` OpenGL driver (vendor string: `"Intel"`)\r\n\r\n**Kernel log signature during freeze (`dmesg` / `journalctl -k`):**\r\n```text\r\nkernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 12:0:00000000, in dolphin-emu\r\nkernel: i915 0000:00:02.0: [drm] Resetting rcs0 for stopped heartbeat on rcs0\r\nkernel: [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:...] flip_done timed out\r\n```\r\nOnce the `i915` reset sequence finishes, the Wayland compositor permanently loses display synchronization (`Pageflip timed out`), locking up all screen updates and requiring a forced hard reboot.\r\n\r\n*(Note per Contributing.md: The author drafted and refined this patch and PR description with LLM assistance.)*', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807209072', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6807209072', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'id': 6807209072, 'node_id': 'IC_kwDOALCn2M8AAAABlb3EcA', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T21:15:47Z', 'updated_at': '2026-11-11T21:15:47Z', 'body': 'Update: I reported the `iris` GPU hang upstream to Mesa (https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865) and also investigated why Dolphin was hitting it when async shader compilation is enabled.\n\nIt turns out Dolphin already has `BUG_SHARED_CONTEXT_SHADER_COMPILATION` for Linux Intel Mesa drivers to disable background shared-context compilation, but it was being bypassed due to `InitDriverInfo()` being called after `PopulateConfig()` and `iris` reporting `GL_VENDOR` as `"Intel"` instead of `"Intel Open Source Technology Center"`. I opened #15013 to fix that directly.', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807209072/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 490, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 490, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T21:13:39.459759 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'SuperSamus', 'action': 'created', 'id': 15003, 'title': 'SI_DeviceGBA: Replace SFML network code with asio.', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#issuecomment-6807168897', 'safe_author': True, 'body': "Also, apparently SFML is [problematic to package for Linux distributions](https://bugzilla.redhat.com/show_bug.cgi?id=2370213#c1) (at least, I suppose it is, considering it's blocked by at least a year, though I only checked Fedora), so that's another bonus for removing it.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15003', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15003/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15003/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15003/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003', 'id': 6301184091, 'node_id': 'PR_kwDOALCn2M8AAAABOB-OUA', 'number': 15003, 'title': 'SI_DeviceGBA: Replace SFML network code with asio.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [{'id': 221809816, 'node_id': 'MDU6TGFiZWwyMjE4MDk4MTY=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC', 'name': 'RFC', 'color': 'FF6D00', 'default': False, 'description': 'Request for comments', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-11-10T05:52:13Z', 'updated_at': '2026-11-11T21:13:37Z', 'closed_at': None, 'assignee': None, 'author_association': 'MEMBER', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/15003.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/15003.patch', 'merged_at': None}, 'body': 'I\'m proposing we replace SFML with [asio](https://think-async.com/Asio/).\n\nSFML is a sub-par network library.\nSome things I\'ve run into:\n- Setting raw socket options requires re-creating entire classes.\n1f823c880cf76f98699e2b1354b9beab0d459abb\n- Non-blocking sends aren\'t implemented correctly..\nhttps://github.com/SFML/SFML/blob/697745c6236d7f3b71ca89995d73b20e2ae35401/src/SFML/Network/TcpSocket.cpp#L1082\n- `sf::SocketSelector` can\'t be interrupted.\n\nIt provides almost no benefits over just using raw sockets, which we already do all over the place, and it just gets in the way.\n\nI think asio is perhaps the most mature modern-C++ networking library available.\nIt\'s header-only and has few modes of operation depending on what\'s convenient for the situation.\ne.g. You can use it as just a thin layer atop sockets, directly using read/write calls, or use "async" callbacks, or coroutines.. (I use all these in this PR).\nIt does unfortunately get more verbose when avoiding exceptions, requiring an `error_code` be passed to many functions, just like how `std::filesystem::exists(const std::filesystem::path& p, std::error_code& ec)` operates.\nIt really would shine a lot more if we allowed for some limited exception use.\n\nAnyway, this PR introduces asio and makes SI_DeviceGBA use it.\n\nIf people like this I\'ll replace the rest of our SFML code with asio so we can remove the SFML dependency.\nThe rest of our SFML uses are:\n- NetPlay. addressed in #15000\n- EXI/BBA\n- EXI/Gecko\n- WiimoteReal (just a simple UDP packet for logging)\n- DSUClient', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15003/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15003/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807168897', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#issuecomment-6807168897', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15003', 'id': 6807168897, 'node_id': 'IC_kwDOALCn2M8AAAABlb0ngQ', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T21:13:37Z', 'updated_at': '2026-11-11T21:13:37Z', 'body': "Also, apparently SFML is [problematic to package for Linux distributions](https://bugzilla.redhat.com/show_bug.cgi?id=2370213#c1) (at least, I suppose it is, considering it's blocked by at least a year, though I only checked Fedora), so that's another bonus for removing it.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6807168897/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T21:08:43Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563830, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 489, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 489, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-11T20:59:55.848202 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jpferraz-git', 'action': 'created', 'id': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6806913828', 'safe_author': False, 'body': 'heres the Issue for Mesa developers https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'id': 6253640354, 'node_id': 'PR_kwDOALCn2M8AAAABNcZGmQ', 'number': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-11-07T01:23:58Z', 'updated_at': '2026-11-11T20:59:54Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14991', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14991.patch', 'merged_at': None}, 'body': 'When running Dolphin on Linux systems with Intel Integrated Graphics (Tiger Lake / Iris Xe using Mesa `iris`), using the OpenGL backend frequently leads to kernel GPU hangs (`i915` ring timeouts) during heavy EFB / shader workloads (such as in *Super Mario Galaxy* and *Skyward Sword*). Under Wayland compositors (GNOME Mutter / KDE KWin), this GPU reset causes an unrecoverable display freeze.\r\n\r\nWhile PR #14835 changed the default backend to Vulkan on Linux for clean installs, existing installations with an already generated `Dolphin.ini` keep `GFXBackend = OGL` and remain prone to these system freezes.\r\n\r\nThis patch adds an on-screen warning (OSD) in `PopulateConfig()` when `gl_vendor == "Intel"` and Mesa are detected on Linux under OpenGL, advising users to switch to Vulkan.\r\n\r\n### Evidence\r\n\r\n**System Environment:**\r\n- **OS:** Ubuntu Linux (Wayland / GNOME Mutter)\r\n- **GPU:** Intel Iris Xe Graphics (Tiger Lake GT2, `i915` kernel module)\r\n- **Mesa:** `iris` OpenGL driver (vendor string: `"Intel"`)\r\n\r\n**Kernel log signature during freeze (`dmesg` / `journalctl -k`):**\r\n```text\r\nkernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 12:0:00000000, in dolphin-emu\r\nkernel: i915 0000:00:02.0: [drm] Resetting rcs0 for stopped heartbeat on rcs0\r\nkernel: [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:...] flip_done timed out\r\n```\r\nOnce the `i915` reset sequence finishes, the Wayland compositor permanently loses display synchronization (`Pageflip timed out`), locking up all screen updates and requiring a forced hard reboot.\r\n\r\n*(Note per Contributing.md: The author drafted and refined this patch and PR description with LLM assistance.)*', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6806913828', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14991#issuecomment-6806913828', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14991', 'id': 6806913828, 'node_id': 'IC_kwDOALCn2M8AAAABlblDJA', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-11T20:59:54Z', 'updated_at': '2026-11-11T20:59:54Z', 'body': 'heres the Issue for Mesa developers https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16865', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6806913828/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-11T20:05:59Z', 'pushed_at': '2026-11-11T20:08:28Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563817, 'stargazers_count': 15801, 'watchers_count': 15801, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3385, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 489, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3385, 'open_issues': 489, 'watchers': 15801, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
Recent 'gh_pull_request' events
2026-11-14T23:45:34.762012 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 15024, 'title': 'DiscIO/VolumeVerifier: Use WorkQueueThreadSP instead of std::async to reduce spawning of new threads.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15024', 'head_ref_name': 'volume-verifier-threading', 'safe_author': True, 'base_sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'head_sha': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T23:36:44.959946 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'opened', 'id': 15024, 'title': 'DiscIO/VolumeVerifier: Use WorkQueueThreadSP instead of std::async to reduce spawning of new threads.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15024', 'head_ref_name': 'volume-verifier-threading', 'safe_author': True, 'base_sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'head_sha': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T23:27:56.560497 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'edited', 'id': 14995, 'title': 'AX: fix three bugs', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14995', 'head_ref_name': 'ax_fixes', 'safe_author': True, 'base_sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'head_sha': '83f79b4336e3632384042f6840b8d0323211edc8', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T23:26:14.596923 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'synchronize', 'id': 14995, 'title': 'AX: fix two bugs', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14995', 'head_ref_name': 'ax_fixes', 'safe_author': True, 'base_sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'head_sha': '83f79b4336e3632384042f6840b8d0323211edc8', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T22:29:17.643038 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'review_requested', 'id': 15015, 'title': 'AchievementManager: Include the response code in the HTTP request failure error message.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15015', 'head_ref_name': 'ra-http-logging', 'safe_author': True, 'base_sha': 'db2afcbdf8f5175a6b8414d9f5e21c978775f651', 'head_sha': '451774eca139be7153d41c1f2e752b2ec6a16cb8', 'merged': False, 'requested_reviewers': [{'login': 'LillyJadeKatrin', 'id': 122337285, 'node_id': 'U_kgDOB0q4BQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/122337285?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/LillyJadeKatrin', 'html_url': 'https://github.com/LillyJadeKatrin', 'followers_url': 'https://api.github.com/users/LillyJadeKatrin/followers', 'following_url': 'https://api.github.com/users/LillyJadeKatrin/following{/other_user}', 'gists_url': 'https://api.github.com/users/LillyJadeKatrin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/LillyJadeKatrin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/LillyJadeKatrin/subscriptions', 'organizations_url': 'https://api.github.com/users/LillyJadeKatrin/orgs', 'repos_url': 'https://api.github.com/users/LillyJadeKatrin/repos', 'events_url': 'https://api.github.com/users/LillyJadeKatrin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/LillyJadeKatrin/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}], 'type': 'gh_pull_request'}
2026-11-14T21:44:12.298818 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'closed', 'id': 15023, 'title': 'GameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15023', 'head_ref_name': 'rs2-remove-ws-code', 'safe_author': True, 'base_sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'head_sha': '542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T21:43:39.406726 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'unlabeled', 'id': 13624, 'title': 'PerformanceTracker: Fix some interthread communication. Other cleanups.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13624', 'head_ref_name': 'perf-metrics-atomics', 'safe_author': True, 'base_sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'head_sha': 'e57ebb9bf349faa02bdcd0db260177e0ca34da93', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T21:43:27.180243 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 13624, 'title': 'PerformanceTracker: Fix some interthread communication. Other cleanups.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13624', 'head_ref_name': 'perf-metrics-atomics', 'safe_author': True, 'base_sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'head_sha': 'e57ebb9bf349faa02bdcd0db260177e0ca34da93', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T21:05:12.555034 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'opened', 'id': 15023, 'title': 'GameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15023', 'head_ref_name': 'rs2-remove-ws-code', 'safe_author': True, 'base_sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'head_sha': '542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T20:57:35.207806 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'closed', 'id': 15006, 'title': 'Jit64: mfspr - Sign-extend slice_length', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15006', 'head_ref_name': 'mfspr-movsx', 'safe_author': True, 'base_sha': '70c5a6ad0e62ce32d922dd2478d465e9f0f84424', 'head_sha': 'ad3598389ebc6ef2d93915b656c0c3478104ac77', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T20:38:35.775798 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'labeled', 'id': 13624, 'title': 'PerformanceTracker: Fix some interthread communication. Other cleanups.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13624', 'head_ref_name': 'perf-metrics-atomics', 'safe_author': True, 'base_sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'head_sha': 'f52b1ff6d315215334454d69d16c3718b64cc6b1', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T20:19:25.823108 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 13624, 'title': 'PerformanceTracker: Fix some interthread communication. Other cleanups.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13624', 'head_ref_name': 'perf-metrics-atomics', 'safe_author': True, 'base_sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'head_sha': 'f52b1ff6d315215334454d69d16c3718b64cc6b1', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T20:18:18.358590 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 13624, 'title': 'PerformanceTracker: Fix some interthread communication. Other cleanups.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13624', 'head_ref_name': 'perf-metrics-atomics', 'safe_author': True, 'base_sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'head_sha': 'f52b1ff6d315215334454d69d16c3718b64cc6b1', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T20:05:40.105424 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14921, 'title': 'Externals: Make mbedtls a submodule, update it to 2.28.10 and rename symbols.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14921', 'head_ref_name': 'mbedtls2-symbols', 'safe_author': True, 'base_sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'head_sha': 'c377c5a134377f8956d5ced0083bacb53f0012a1', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T19:49:33.989656 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'closed', 'id': 13704, 'title': 'CMake: Fix relative pathing when project is imported', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13704', 'head_ref_name': 'cmake_source', 'safe_author': True, 'base_sha': '613db73aeb2c086a816592df2fb193d73130101b', 'head_sha': '4617fda478a97cf6fb29b1959f0a964f3ccc0033', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T19:03:10.733306 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'closed', 'id': 14978, 'title': 'CPU: Fix quickly-stopped games hanging Dolphin', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14978', 'head_ref_name': 'quick-stop-hang', 'safe_author': True, 'base_sha': 'df4bd441dec5d6f3cff606eea76f183963e97a44', 'head_sha': '0436c9f60eb1e815a65f01d5edb6a5a155911553', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T14:51:30.433089 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'closed', 'id': 15012, 'title': "GLX11Window: Don't override the host's event mask on the parent window", 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15012', 'head_ref_name': 'gl-x11-event-mask', 'safe_author': True, 'base_sha': 'db2afcbdf8f5175a6b8414d9f5e21c978775f651', 'head_sha': 'fc58424b3c3b8231c48208da2fd716c9d746c033', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T14:39:38.015357 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'synchronize', 'id': 14979, 'title': 'Externals/gettext: Update to 1.0, vendor-in from source on non-Windows host platforms', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14979', 'head_ref_name': 'vendored-gettext', 'safe_author': True, 'base_sha': '44e0c5663af1b37f71bad7fb73281f4d0677bd51', 'head_sha': 'b05ae0b9298ebfb188ab1c248315f9ebea347f87', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T14:37:26.037916 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'synchronize', 'id': 14979, 'title': 'Externals/gettext: Update to 1.0, vendor-in from source on non-Windows host platforms', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14979', 'head_ref_name': 'vendored-gettext', 'safe_author': True, 'base_sha': '44e0c5663af1b37f71bad7fb73281f4d0677bd51', 'head_sha': 'eaa8a1211eb37a015035ae8209ce41e989598058', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-14T01:29:16.593230 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jpferraz-git', 'action': 'closed', 'id': 14991, 'title': 'OGL: Warn about Intel Mesa GPU hangs on Linux', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14991', 'head_ref_name': 'fix/ogl-mesa-intel-osd-warning', 'safe_author': False, 'base_sha': '4a70679d0adcd17220568f5c18d2d4005eeea0a2', 'head_sha': 'fa2a22682522402e2cc38de60182ab2271fde0e1', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-13T23:07:21.406820 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 15007, 'title': 'HW/WiimoteReal: Simplify the IsBalanceBoard check and hopefully make it more reliable.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15007', 'head_ref_name': 'is-balance-board-simple-test', 'safe_author': True, 'base_sha': '44e0c5663af1b37f71bad7fb73281f4d0677bd51', 'head_sha': '62e3ad90f3c4dae36b686f50c7d185c9180e106c', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-13T22:08:06.794445 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'closed', 'id': 15022, 'title': 'Fix typos in documentation', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15022', 'head_ref_name': 'fixtypos', 'safe_author': True, 'base_sha': '5c496d1838a20660590fece1edfdf58148f80a60', 'head_sha': 'c1e405f03043ac70020a3527e7e14ff6c41c0d10', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-13T21:47:20.849741 {'source': 'ghhookparser', 'repo': 'dolphin-emu/netplay-index', 'author': 'dependabot[bot]', 'action': 'closed', 'id': 18, 'title': 'build(deps): bump tornado from 6.5.8 to 6.6', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/netplay-index/pull/18', 'head_ref_name': 'dependabot/uv/tornado-6.6', 'safe_author': False, 'base_sha': '0cf8785a0c7503dd0fd9704672ff1beffa7e87e4', 'head_sha': '2348b731e93570120a09671f57d82497700b0661', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-13T21:47:14.925618 {'source': 'ghhookparser', 'repo': 'dolphin-emu/netplay-index', 'author': 'dependabot[bot]', 'action': 'labeled', 'id': 20, 'title': 'build(deps): bump tornado from 6.5.8 to 6.6.1', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/netplay-index/pull/20', 'head_ref_name': 'dependabot/uv/tornado-6.6.1', 'safe_author': False, 'base_sha': '0cf8785a0c7503dd0fd9704672ff1beffa7e87e4', 'head_sha': '1a00a607e216319ad66331ba4a6a50627c6d9715', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-13T21:47:14.582971 {'source': 'ghhookparser', 'repo': 'dolphin-emu/netplay-index', 'author': 'dependabot[bot]', 'action': 'labeled', 'id': 20, 'title': 'build(deps): bump tornado from 6.5.8 to 6.6.1', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/netplay-index/pull/20', 'head_ref_name': 'dependabot/uv/tornado-6.6.1', 'safe_author': False, 'base_sha': '0cf8785a0c7503dd0fd9704672ff1beffa7e87e4', 'head_sha': '1a00a607e216319ad66331ba4a6a50627c6d9715', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
Recent 'gh_pull_request_comment' events
2026-11-14T14:34:45.666209 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14979, 'hash': 'a6319ee9a1aa97eee77c337c6d6314c78f01912d', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14979#discussion_r4573980733', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T19:49:43.261992 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jpferraz-git', 'action': 'created', 'id': 15013, 'hash': 'fd4c8faf60aaf45539168dc5aca671497f40cb29', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15013#discussion_r4567895513', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-13T19:46:37.109565 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567212493', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-13T19:01:43.213109 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567417290', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T18:50:41.195935 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567302512', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T18:47:33.756529 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567272516', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T18:41:30.424534 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567212493', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T18:38:13.630905 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567181936', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-13T18:36:39.345941 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567167296', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-13T18:29:24.602577 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567098904', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-13T18:27:42.342081 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567080436', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-13T18:27:27.043874 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567080436', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-13T14:02:29.677000 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4562116506', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T14:02:28.872153 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563980181', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T14:02:28.659259 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563769973', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T14:02:28.658622 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4564157885', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T14:02:28.657967 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563612344', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T14:02:28.657317 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563130812', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T14:02:28.656669 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563064833', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T14:02:28.656015 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 15003, 'hash': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4562000678', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-13T01:51:41.986697 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 15013, 'hash': 'fd4c8faf60aaf45539168dc5aca671497f40cb29', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15013#discussion_r4558760790', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-13T01:10:42.357708 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jpferraz-git', 'action': 'created', 'id': 15013, 'hash': 'fd4c8faf60aaf45539168dc5aca671497f40cb29', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15013#discussion_r4558475234', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-12T19:36:08.672600 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 14671, 'hash': '8343bfcd38ec1922bed739418c9bea806f233955', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14671#discussion_r4555361243', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-12T19:36:08.668181 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 14671, 'hash': '8343bfcd38ec1922bed739418c9bea806f233955', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14671#discussion_r4555210543', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-12T19:36:08.665599 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 14671, 'hash': '8343bfcd38ec1922bed739418c9bea806f233955', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14671#discussion_r4554891603', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
Recent 'gh_pull_request_review' events
2026-11-14T21:10:08.649555 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 15023, 'pr_title': 'GameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15023#pullrequestreview-5907173823', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-14T14:34:45.551943 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 14979, 'pr_title': 'Externals/gettext: Update to 1.0, vendor-in from source on non-Windows host platforms', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14979#pullrequestreview-5904969696', 'comments': [{'id': 4573980733, 'node_id': 'PRRC_kwDOALCn2M8AAAABEKFoPQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4573980733', 'pull_request_review_id': 5904969696, 'diff_hunk': '@@ -0,0 +1,57 @@\n+include(ExternalProject)\n+\n+if(WIN32 AND DOLPHIN_HOST STREQUAL "x64")\n+ # From https://mlocati.github.io/articles/gettext-iconv-windows.html, endoresed by GNU: https://www.gnu.org/software/gettext/', 'path': 'Externals/gettext/CMakeLists.txt', 'position': 4, 'original_position': 4, 'commit_id': 'a6319ee9a1aa97eee77c337c6d6314c78f01912d', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '```suggestion\r\n # From https://mlocati.github.io/articles/gettext-iconv-windows.html, endorsed by GNU: https://www.gnu.org/software/gettext/\r\n```', 'created_at': '2026-11-14T14:34:42Z', 'updated_at': '2026-11-14T14:34:43Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14979#discussion_r4573980733', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14979', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4573980733'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14979#discussion_r4573980733'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14979'}}, 'original_commit_id': 'a6319ee9a1aa97eee77c337c6d6314c78f01912d', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4573980733/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-14T14:25:00.004312 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 15004, 'pr_title': 'Interpreter: Fix addme/subfme carry and share add/subtract code', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15004#pullrequestreview-5904897766', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-13T21:41:36.256364 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 15021, 'pr_title': 'VideoCommon/OGL: Detect modern Intel Mesa driver (iris/crocus)', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15021#pullrequestreview-5898441889', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-13T21:40:42.011399 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 15022, 'pr_title': 'Fix typos in documentation', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15022#pullrequestreview-5898431897', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-13T21:15:06.066154 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 15022, 'pr_title': 'Fix typos in documentation', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15022#pullrequestreview-5898146915', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-13T20:10:56.021803 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 15013, 'pr_title': 'OGL: Call InitDriverInfo() before checking DriverDetails in PopulateConfig()', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15013#pullrequestreview-5897344475', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-13T19:57:45.081329 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 15020, 'pr_title': 'GameSettings: Fix widescreen detection in R: Racing Evolution.', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15020#pullrequestreview-5897186813', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-13T19:56:31.814918 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 15019, 'pr_title': 'PerformanceTracker: Fix broken FPS calculation on Windows after a multi-second delay.', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15019#pullrequestreview-5897171061', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-13T19:55:51.504704 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 15008, 'pr_title': 'HW/WiimoteReal: Fix crash when UI disconnects a Balance Board.', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15008#pullrequestreview-5897161779', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-13T19:49:43.261093 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jpferraz-git', 'action': 'submitted', 'pr_id': 15013, 'pr_title': 'OGL: Call InitDriverInfo() before checking DriverDetails in PopulateConfig()', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15013#pullrequestreview-5897090816', 'comments': [{'id': 4567895513, 'node_id': 'PRRC_kwDOALCn2M8AAAABEESN2Q', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567895513', 'pull_request_review_id': 5897090816, 'diff_hunk': '@@ -115,7 +115,7 @@ void InitDriverInfo()\n {\n driver = DriverDetails::DRIVER_NOUVEAU;\n }\n- else if (svendor == "Intel Open Source Technology Center")\n+ else if (svendor == "Intel Open Source Technology Center" || svendor == "Intel")\n {\n driver = DriverDetails::DRIVER_I965;', 'path': 'Source/Core/VideoBackends/OGL/OGLConfig.cpp', 'position': 7, 'original_position': 7, 'commit_id': 'fd4c8faf60aaf45539168dc5aca671497f40cb29', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'sure man, i will do it', 'created_at': '2026-11-13T19:49:40Z', 'updated_at': '2026-11-13T19:49:40Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15013#discussion_r4567895513', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15013', 'author_association': 'NONE', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567895513'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15013#discussion_r4567895513'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15013'}}, 'original_commit_id': 'fd4c8faf60aaf45539168dc5aca671497f40cb29', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567895513/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4544693694, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-13T19:01:43.211031 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 15003, 'pr_title': 'SI_DeviceGBA: Replace SFML network code with Asio.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#pullrequestreview-5896501035', 'comments': [{'id': 4567417290, 'node_id': 'PRRC_kwDOALCn2M8AAAABED1Byg', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567417290', 'pull_request_review_id': 5896501035, 'diff_hunk': '@@ -160,105 +193,126 @@ void GBASockServer::ClockSync(Core::System& system)\n \n time_slice = (u32)((u64)time_slice * 16777216 / system.GetSystemTimers().GetTicksPerSecond());\n m_last_time_slice = core_timing.GetTicks();\n- char bytes[4] = {0, 0, 0, 0};\n- bytes[0] = (time_slice >> 24) & 0xff;\n- bytes[1] = (time_slice >> 16) & 0xff;\n- bytes[2] = (time_slice >> 8) & 0xff;\n- bytes[3] = time_slice & 0xff;\n-\n- const sf::Socket::Status status = m_clock_sync->send(bytes, 4);\n- if (status == sf::Socket::Status::Disconnected)\n- {\n- m_clock_sync->disconnect();\n- m_clock_sync = nullptr;\n- }\n+\n+ std::error_code ec;\n+ asio::write(*m_clock_sync, Common::AsU8Span(Common::BigEndianValue{time_slice}), ec);\n+ if (ec)\n+ m_clock_sync.reset();\n }\n \n bool GBASockServer::Connect()\n {\n if (!IsConnected())\n {\n- m_client = GetNextSock();\n- if (m_client)\n- m_client->setBlocking(false);\n+ if (auto new_client = m_connection_handler->GetNextSock())\n+ m_client = std::move(*new_client);', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 310, 'original_position': 310, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Changed my mind. While fixing the `Receive` `Disconnect`, I've made it use non-blocking sockets like before.", 'created_at': '2026-11-13T19:01:40Z', 'updated_at': '2026-11-13T19:01:41Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567417290', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567417290'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567417290'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567417290/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4563980181, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-13T18:50:41.194058 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 15003, 'pr_title': 'SI_DeviceGBA: Replace SFML network code with Asio.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#pullrequestreview-5896360279', 'comments': [{'id': 4567302512, 'node_id': 'PRRC_kwDOALCn2M8AAAABEDuBcA', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567302512', 'pull_request_review_id': 5896360279, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 123, 'original_position': 123, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Mmmm, I suppose making `io_context` a member is a bit less fragile.', 'created_at': '2026-11-13T18:50:37Z', 'updated_at': '2026-11-13T18:50:38Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567302512', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567302512'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567302512'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567302512/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4563769973, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-13T18:47:33.754662 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 15003, 'pr_title': 'SI_DeviceGBA: Replace SFML network code with Asio.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#pullrequestreview-5896322528', 'comments': [{'id': 4567272516, 'node_id': 'PRRC_kwDOALCn2M8AAAABEDsMRA', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567272516', 'pull_request_review_id': 5896322528, 'diff_hunk': '@@ -160,105 +193,126 @@ void GBASockServer::ClockSync(Core::System& system)\n \n time_slice = (u32)((u64)time_slice * 16777216 / system.GetSystemTimers().GetTicksPerSecond());\n m_last_time_slice = core_timing.GetTicks();\n- char bytes[4] = {0, 0, 0, 0};\n- bytes[0] = (time_slice >> 24) & 0xff;\n- bytes[1] = (time_slice >> 16) & 0xff;\n- bytes[2] = (time_slice >> 8) & 0xff;\n- bytes[3] = time_slice & 0xff;\n-\n- const sf::Socket::Status status = m_clock_sync->send(bytes, 4);\n- if (status == sf::Socket::Status::Disconnected)\n- {\n- m_clock_sync->disconnect();\n- m_clock_sync = nullptr;\n- }\n+\n+ std::error_code ec;\n+ asio::write(*m_clock_sync, Common::AsU8Span(Common::BigEndianValue{time_slice}), ec);\n+ if (ec)\n+ m_clock_sync.reset();\n }\n \n bool GBASockServer::Connect()\n {\n if (!IsConnected())\n {\n- m_client = GetNextSock();\n- if (m_client)\n- m_client->setBlocking(false);\n+ if (auto new_client = m_connection_handler->GetNextSock())\n+ m_client = std::move(*new_client);\n }\n return IsConnected();\n }\n \n-bool GBASockServer::IsConnected()\n+bool GBASockServer::IsConnected() const\n {\n- return static_cast<bool>(m_client);\n+ return m_client.has_value();\n }\n \n void GBASockServer::Send(const u8* si_buffer)\n {\n+ using SerialInterface::EBufferCommands;\n+\n if (!Connect())\n return;\n \n- std::array<u8, SEND_MAX_SIZE> send_data;\n- for (size_t i = 0; i < send_data.size(); i++)\n- send_data[i] = si_buffer[i];\n+ const auto cmd = static_cast<EBufferCommands>(si_buffer[0]);\n+ const std::size_t byte_count = (cmd == EBufferCommands::CMD_WRITE_GBA) ? SEND_MAX_SIZE : 1uz;\n \n- const auto cmd = static_cast<EBufferCommands>(send_data[0]);\n-\n- sf::Socket::Status status;\n- if (cmd == EBufferCommands::CMD_WRITE_GBA)\n- status = m_client->send(send_data.data(), send_data.size());\n- else\n- status = m_client->send(send_data.data(), 1);\n-\n- if (status == sf::Socket::Status::Disconnected)\n+ std::error_code ec;\n+ asio::write(*m_client, asio::buffer(si_buffer, byte_count), ec);\n+ if (ec)\n Disconnect();\n }\n \n int GBASockServer::Receive(u8* si_buffer, u8 bytes)\n {\n- if (!m_client)\n+ if (!IsConnected())\n return 0;\n \n if (m_booted)\n {\n- sf::SocketSelector selector;\n- selector.add(*m_client);\n- (void)selector.wait(sf::milliseconds(1000));\n+ constexpr auto recv_timeout = std::chrono::milliseconds{1000};\n+ m_client->async_wait(tcp::socket::wait_read, asio::cancel_after(recv_timeout, asio::use_future))\n+ .wait();\n }\n \n size_t num_received = 0;\n- std::array<u8, RECV_MAX_SIZE> recv_data;\n- const sf::Socket::Status recv_stat = m_client->receive(recv_data.data(), bytes, num_received);\n- if (recv_stat == sf::Socket::Status::Disconnected)\n+ std::error_code ec;\n+ if (m_client->available(ec) != 0)\n+ num_received = m_client->read_some(asio::buffer(si_buffer, bytes), ec);\n+\n+ if (ec)', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 374, 'original_position': 374, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Seems so. Good call. `Send` was still producing handling a disconnect, but I'll fix this one.", 'created_at': '2026-11-13T18:47:30Z', 'updated_at': '2026-11-13T18:47:31Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567272516', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567272516'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567272516'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567272516/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4564157885, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-13T18:41:30.422571 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 15003, 'pr_title': 'SI_DeviceGBA: Replace SFML network code with Asio.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#pullrequestreview-5896247836', 'comments': [{'id': 4567212493, 'node_id': 'PRRC_kwDOALCn2M8AAAABEDohzQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567212493', 'pull_request_review_id': 5896247836, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+\n+ tcp::acceptor data_acceptor{io};\n+ tcp::acceptor clock_acceptor{io};\n {\n- if (server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba);\n- s_waiting_socks.push(std::move(new_client));\n+ std::error_code ec;\n+ (void)data_acceptor.open(tcp::v4(), ec);\n+ (void)clock_acceptor.open(tcp::v4(), ec);\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n- }\n- if (clock_server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba_clk);\n- s_waiting_clocks.push(std::move(new_client));\n+ if (std::error_code ec; data_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_DATA_PORT), ec) ||\n+ data_acceptor.listen(tcp::socket::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_DATA_PORT, ec.message());\n+ return;\n+ }\n+\n+ if (std::error_code ec; clock_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_CLOCK_PORT), ec) ||\n+ clock_acceptor.listen(asio::socket_base::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_CLOCK_PORT, ec.message());\n+ return;\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n+ const auto enqueue_accepted_sockets =\n+ [](tcp::acceptor& acceptor, Common::SPSCQueue<tcp::socket>& queue) -> asio::awaitable<void> {\n+ while (true)\n+ {\n+ auto [ec, socket] = co_await acceptor.async_accept(asio::as_tuple);\n+ if (ec)\n+ break;\n+ queue.Emplace(std::move(socket));\n }\n+ };\n \n- Common::SleepCurrentThread(1);\n- }\n-}\n+ asio::co_spawn(io, enqueue_accepted_sockets(data_acceptor, m_waiting_socks), asio::detached);\n+ asio::co_spawn(io, enqueue_accepted_sockets(clock_acceptor, m_waiting_clocks), asio::detached);\n \n-void GBAConnectionWaiter_Shutdown()\n-{\n- s_server_running.Clear();\n- if (s_connection_thread.joinable())\n- s_connection_thread.join();\n-}\n+ std::stop_callback cb{stoken, [&] { io.stop(); }};\n \n-template <typename T>\n-static std::unique_ptr<T> MoveFromFront(std::queue<std::unique_ptr<T>>& ptrs)\n-{\n- if (ptrs.empty())\n- return nullptr;\n- std::unique_ptr<T> ptr = std::move(ptrs.front());\n- ptrs.pop();\n- return ptr;\n-}\n+ // Keep the io_context running even if our acceptor tasks were to error out somehow.\n+ // Otherwise outside initiated async tasks would never finish.\n+ const auto work_guard = asio::make_work_guard(io);\n \n-static std::unique_ptr<sf::TcpSocket> GetNextSock()\n-{\n- std::lock_guard lk(s_cs_gba);\n- return MoveFromFront(s_waiting_socks);\n+ io.run();\n }\n \n-static std::unique_ptr<sf::TcpSocket> GetNextClock()\n+class GBASockServer final\n {\n- std::lock_guard lk(s_cs_gba_clk);\n- return MoveFromFront(s_waiting_clocks);\n-}\n+public:\n+ bool Connect();\n+ bool IsConnected() const;\n \n-GBASockServer::GBASockServer()\n-{\n- if (!s_connection_thread.joinable())\n- s_connection_thread = std::thread(GBAConnectionWaiter);\n+ void ClockSync(Core::System& system);\n+ void Send(const u8* si_buffer);\n+ int Receive(u8* si_buffer, u8 bytes);\n+ void Flush();\n \n- s_num_connected = 0;\n-}\n+private:\n+ void Disconnect();\n \n-GBASockServer::~GBASockServer()\n-{\n- Disconnect();\n-}\n+ std::optional<tcp::socket> m_client;\n+ std::optional<tcp::socket> m_clock_sync;\n+\n+ u64 m_last_time_slice = 0;\n+ bool m_booted = false;\n+\n+ std::shared_ptr<GBAConnectionHandler> m_connection_handler{GBAConnectionHandler::GetInstance()};', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 236, 'original_position': 236, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Oh, I think if we had potential for outstanding async operations on those sockets then it *would* be necessary to stop the io_context + thread first, so.. I think either order is fine currently, but maybe the way I have it now is less fragile? :/', 'created_at': '2026-11-13T18:41:27Z', 'updated_at': '2026-11-13T18:41:28Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567212493', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567212493'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567212493'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567212493/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4563612344, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-13T18:38:13.509235 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 15003, 'pr_title': 'SI_DeviceGBA: Replace SFML network code with Asio.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#pullrequestreview-5896208453', 'comments': [{'id': 4567181936, 'node_id': 'PRRC_kwDOALCn2M8AAAABEDmqcA', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567181936', 'pull_request_review_id': 5896208453, 'diff_hunk': '@@ -160,105 +193,126 @@ void GBASockServer::ClockSync(Core::System& system)\n \n time_slice = (u32)((u64)time_slice * 16777216 / system.GetSystemTimers().GetTicksPerSecond());\n m_last_time_slice = core_timing.GetTicks();\n- char bytes[4] = {0, 0, 0, 0};\n- bytes[0] = (time_slice >> 24) & 0xff;\n- bytes[1] = (time_slice >> 16) & 0xff;\n- bytes[2] = (time_slice >> 8) & 0xff;\n- bytes[3] = time_slice & 0xff;\n-\n- const sf::Socket::Status status = m_clock_sync->send(bytes, 4);\n- if (status == sf::Socket::Status::Disconnected)\n- {\n- m_clock_sync->disconnect();\n- m_clock_sync = nullptr;\n- }\n+\n+ std::error_code ec;\n+ asio::write(*m_clock_sync, Common::AsU8Span(Common::BigEndianValue{time_slice}), ec);\n+ if (ec)\n+ m_clock_sync.reset();\n }\n \n bool GBASockServer::Connect()\n {\n if (!IsConnected())\n {\n- m_client = GetNextSock();\n- if (m_client)\n- m_client->setBlocking(false);\n+ if (auto new_client = m_connection_handler->GetNextSock())\n+ m_client = std::move(*new_client);', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 310, 'original_position': 310, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Yes, I've changed it to use blocking sockets. It seemed slightly cleaner to me, but I can make it use non-blocking sockets if you or someone wants.", 'created_at': '2026-11-13T18:38:11Z', 'updated_at': '2026-11-13T18:38:11Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567181936', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567181936'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567181936'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567181936/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4563980181, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-13T18:36:39.937828 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 15003, 'pr_title': 'SI_DeviceGBA: Replace SFML network code with Asio.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#pullrequestreview-5896190197', 'comments': [{'id': 4567167296, 'node_id': 'PRRC_kwDOALCn2M8AAAABEDlxQA', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567167296', 'pull_request_review_id': 5896190197, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+\n+ tcp::acceptor data_acceptor{io};\n+ tcp::acceptor clock_acceptor{io};\n {\n- if (server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba);\n- s_waiting_socks.push(std::move(new_client));\n+ std::error_code ec;\n+ (void)data_acceptor.open(tcp::v4(), ec);\n+ (void)clock_acceptor.open(tcp::v4(), ec);\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n- }\n- if (clock_server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba_clk);\n- s_waiting_clocks.push(std::move(new_client));\n+ if (std::error_code ec; data_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_DATA_PORT), ec) ||\n+ data_acceptor.listen(tcp::socket::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_DATA_PORT, ec.message());\n+ return;\n+ }\n+\n+ if (std::error_code ec; clock_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_CLOCK_PORT), ec) ||\n+ clock_acceptor.listen(asio::socket_base::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_CLOCK_PORT, ec.message());\n+ return;\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n+ const auto enqueue_accepted_sockets =\n+ [](tcp::acceptor& acceptor, Common::SPSCQueue<tcp::socket>& queue) -> asio::awaitable<void> {\n+ while (true)\n+ {\n+ auto [ec, socket] = co_await acceptor.async_accept(asio::as_tuple);\n+ if (ec)\n+ break;\n+ queue.Emplace(std::move(socket));\n }\n+ };\n \n- Common::SleepCurrentThread(1);\n- }\n-}\n+ asio::co_spawn(io, enqueue_accepted_sockets(data_acceptor, m_waiting_socks), asio::detached);\n+ asio::co_spawn(io, enqueue_accepted_sockets(clock_acceptor, m_waiting_clocks), asio::detached);\n \n-void GBAConnectionWaiter_Shutdown()\n-{\n- s_server_running.Clear();\n- if (s_connection_thread.joinable())\n- s_connection_thread.join();\n-}\n+ std::stop_callback cb{stoken, [&] { io.stop(); }};\n \n-template <typename T>\n-static std::unique_ptr<T> MoveFromFront(std::queue<std::unique_ptr<T>>& ptrs)\n-{\n- if (ptrs.empty())\n- return nullptr;\n- std::unique_ptr<T> ptr = std::move(ptrs.front());\n- ptrs.pop();\n- return ptr;\n-}\n+ // Keep the io_context running even if our acceptor tasks were to error out somehow.\n+ // Otherwise outside initiated async tasks would never finish.\n+ const auto work_guard = asio::make_work_guard(io);\n \n-static std::unique_ptr<sf::TcpSocket> GetNextSock()\n-{\n- std::lock_guard lk(s_cs_gba);\n- return MoveFromFront(s_waiting_socks);\n+ io.run();\n }\n \n-static std::unique_ptr<sf::TcpSocket> GetNextClock()\n+class GBASockServer final\n {\n- std::lock_guard lk(s_cs_gba_clk);\n- return MoveFromFront(s_waiting_clocks);\n-}\n+public:\n+ bool Connect();\n+ bool IsConnected() const;\n \n-GBASockServer::GBASockServer()\n-{\n- if (!s_connection_thread.joinable())\n- s_connection_thread = std::thread(GBAConnectionWaiter);\n+ void ClockSync(Core::System& system);\n+ void Send(const u8* si_buffer);\n+ int Receive(u8* si_buffer, u8 bytes);\n+ void Flush();\n \n- s_num_connected = 0;\n-}\n+private:\n+ void Disconnect();\n \n-GBASockServer::~GBASockServer()\n-{\n- Disconnect();\n-}\n+ std::optional<tcp::socket> m_client;\n+ std::optional<tcp::socket> m_clock_sync;\n+\n+ u64 m_last_time_slice = 0;\n+ bool m_booted = false;\n+\n+ std::shared_ptr<GBAConnectionHandler> m_connection_handler{GBAConnectionHandler::GetInstance()};', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 236, 'original_position': 236, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "My understand is that this *is* fine, since destruction of `m_connection_handler` means the io context is no longer running and only async operations require it exist, but I'll re-arrange the order to make it look less fragile.", 'created_at': '2026-11-13T18:36:37Z', 'updated_at': '2026-11-13T18:36:37Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567167296', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567167296'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567167296'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567167296/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4563612344, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-13T18:29:25.497503 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 15003, 'pr_title': 'SI_DeviceGBA: Replace SFML network code with Asio.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#pullrequestreview-5896101637', 'comments': [{'id': 4567098904, 'node_id': 'PRRC_kwDOALCn2M8AAAABEDhmGA', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567098904', 'pull_request_review_id': 5896101637, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+\n+ tcp::acceptor data_acceptor{io};\n+ tcp::acceptor clock_acceptor{io};\n {\n- if (server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba);\n- s_waiting_socks.push(std::move(new_client));\n+ std::error_code ec;\n+ (void)data_acceptor.open(tcp::v4(), ec);\n+ (void)clock_acceptor.open(tcp::v4(), ec);\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n- }\n- if (clock_server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba_clk);\n- s_waiting_clocks.push(std::move(new_client));\n+ if (std::error_code ec; data_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_DATA_PORT), ec) ||\n+ data_acceptor.listen(tcp::socket::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_DATA_PORT, ec.message());\n+ return;\n+ }\n+\n+ if (std::error_code ec; clock_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_CLOCK_PORT), ec) ||\n+ clock_acceptor.listen(asio::socket_base::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_CLOCK_PORT, ec.message());\n+ return;\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n+ const auto enqueue_accepted_sockets =\n+ [](tcp::acceptor& acceptor, Common::SPSCQueue<tcp::socket>& queue) -> asio::awaitable<void> {\n+ while (true)\n+ {\n+ auto [ec, socket] = co_await acceptor.async_accept(asio::as_tuple);\n+ if (ec)\n+ break;', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 163, 'original_position': 163, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Oh, it looks like SFML just always does that.. Yeah I'll do that.", 'created_at': '2026-11-13T18:29:22Z', 'updated_at': '2026-11-13T18:29:22Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567098904', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567098904'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567098904'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567098904/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4563064833, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-13T18:27:27.042977 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 15003, 'pr_title': 'SI_DeviceGBA: Replace SFML network code with Asio.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#pullrequestreview-5896078539', 'comments': [{'id': 4567080436, 'node_id': 'PRRC_kwDOALCn2M8AAAABEDgd9A', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567080436', 'pull_request_review_id': 5896078539, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+\n+ tcp::acceptor data_acceptor{io};\n+ tcp::acceptor clock_acceptor{io};\n {\n- if (server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba);\n- s_waiting_socks.push(std::move(new_client));\n+ std::error_code ec;\n+ (void)data_acceptor.open(tcp::v4(), ec);\n+ (void)clock_acceptor.open(tcp::v4(), ec);', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 133, 'original_position': 133, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'My rationale here is, just opening a socket really *shouldn\'t* fail, and it if does, the following `bind` call will produces "bad fd" error and we have a check + LOG there.', 'created_at': '2026-11-13T18:27:24Z', 'updated_at': '2026-11-13T18:27:24Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567080436', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567080436'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4567080436'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4567080436/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4562116506, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-13T14:02:28.654073 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'submitted', 'pr_id': 15003, 'pr_title': 'SI_DeviceGBA: Replace SFML network code with Asio.', 'state': 'changes_requested', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#pullrequestreview-5889185321', 'comments': [{'id': 4562000678, 'node_id': 'PRRC_kwDOALCn2M8AAAABD-qbJg', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4562000678', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -0,0 +1,21 @@\n+add_library(asio INTERFACE)\n+\n+find_package(PkgConfig QUIET)\n+if(PkgConfig_FOUND)\n+ pkg_check_modules(ASIO QUIET IMPORTED_TARGET asio>=1.30.0)', 'path': 'Externals/asio/CMakeLists.txt', 'position': 5, 'original_position': 5, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'According to its [Revision History page](https://think-async.com/Asio/asio-1.38.2/doc/asio/history.html):\n - `asio::cancel_after` is used and was added on version 1.31.\n - `asio::co_spawn` support when exceptions are disabled was introduced on 1.32.', 'created_at': '2026-11-13T10:05:12Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4562000678', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4562000678'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4562000678'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4562000678/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4562116506, 'node_id': 'PRRC_kwDOALCn2M8AAAABD-xfmg', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4562116506', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+\n+ tcp::acceptor data_acceptor{io};\n+ tcp::acceptor clock_acceptor{io};\n {\n- if (server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba);\n- s_waiting_socks.push(std::move(new_client));\n+ std::error_code ec;\n+ (void)data_acceptor.open(tcp::v4(), ec);\n+ (void)clock_acceptor.open(tcp::v4(), ec);', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 133, 'original_position': 133, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Errors should be checked. I suppose this can fail if the socket can't be created.", 'created_at': '2026-11-13T10:18:24Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4562116506', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4562116506'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4562116506'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4562116506/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4563064833, 'node_id': 'PRRC_kwDOALCn2M8AAAABD_rYAQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563064833', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+\n+ tcp::acceptor data_acceptor{io};\n+ tcp::acceptor clock_acceptor{io};\n {\n- if (server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba);\n- s_waiting_socks.push(std::move(new_client));\n+ std::error_code ec;\n+ (void)data_acceptor.open(tcp::v4(), ec);\n+ (void)clock_acceptor.open(tcp::v4(), ec);\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n- }\n- if (clock_server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba_clk);\n- s_waiting_clocks.push(std::move(new_client));\n+ if (std::error_code ec; data_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_DATA_PORT), ec) ||\n+ data_acceptor.listen(tcp::socket::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_DATA_PORT, ec.message());\n+ return;\n+ }\n+\n+ if (std::error_code ec; clock_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_CLOCK_PORT), ec) ||\n+ clock_acceptor.listen(asio::socket_base::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_CLOCK_PORT, ec.message());\n+ return;\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n+ const auto enqueue_accepted_sockets =\n+ [](tcp::acceptor& acceptor, Common::SPSCQueue<tcp::socket>& queue) -> asio::awaitable<void> {\n+ while (true)\n+ {\n+ auto [ec, socket] = co_await acceptor.async_accept(asio::as_tuple);\n+ if (ec)\n+ break;', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 163, 'original_position': 163, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Shouldn't you set the TCP_NODELAY option, just like SFML socket?", 'created_at': '2026-11-13T12:08:10Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563064833', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563064833'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563064833'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563064833/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4563130812, 'node_id': 'PRRC_kwDOALCn2M8AAAABD_vZvA', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563130812', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -160,105 +193,126 @@ void GBASockServer::ClockSync(Core::System& system)\n \n time_slice = (u32)((u64)time_slice * 16777216 / system.GetSystemTimers().GetTicksPerSecond());\n m_last_time_slice = core_timing.GetTicks();\n- char bytes[4] = {0, 0, 0, 0};\n- bytes[0] = (time_slice >> 24) & 0xff;\n- bytes[1] = (time_slice >> 16) & 0xff;\n- bytes[2] = (time_slice >> 8) & 0xff;\n- bytes[3] = time_slice & 0xff;\n-\n- const sf::Socket::Status status = m_clock_sync->send(bytes, 4);\n- if (status == sf::Socket::Status::Disconnected)\n- {\n- m_clock_sync->disconnect();\n- m_clock_sync = nullptr;\n- }\n+\n+ std::error_code ec;\n+ asio::write(*m_clock_sync, Common::AsU8Span(Common::BigEndianValue{time_slice}), ec);\n+ if (ec)\n+ m_clock_sync.reset();\n }\n \n bool GBASockServer::Connect()\n {\n if (!IsConnected())\n {\n- m_client = GetNextSock();\n- if (m_client)\n- m_client->setBlocking(false);\n+ if (auto new_client = m_connection_handler->GetNextSock())\n+ m_client = std::move(*new_client);\n }\n return IsConnected();\n }\n \n-bool GBASockServer::IsConnected()\n+bool GBASockServer::IsConnected() const\n {\n- return static_cast<bool>(m_client);\n+ return m_client.has_value();\n }\n \n void GBASockServer::Send(const u8* si_buffer)\n {\n+ using SerialInterface::EBufferCommands;\n+\n if (!Connect())\n return;\n \n- std::array<u8, SEND_MAX_SIZE> send_data;\n- for (size_t i = 0; i < send_data.size(); i++)\n- send_data[i] = si_buffer[i];\n+ const auto cmd = static_cast<EBufferCommands>(si_buffer[0]);\n+ const std::size_t byte_count = (cmd == EBufferCommands::CMD_WRITE_GBA) ? SEND_MAX_SIZE : 1uz;\n \n- const auto cmd = static_cast<EBufferCommands>(send_data[0]);\n-\n- sf::Socket::Status status;\n- if (cmd == EBufferCommands::CMD_WRITE_GBA)\n- status = m_client->send(send_data.data(), send_data.size());\n- else\n- status = m_client->send(send_data.data(), 1);\n-\n- if (status == sf::Socket::Status::Disconnected)\n+ std::error_code ec;\n+ asio::write(*m_client, asio::buffer(si_buffer, byte_count), ec);\n+ if (ec)\n Disconnect();\n }\n \n int GBASockServer::Receive(u8* si_buffer, u8 bytes)\n {\n- if (!m_client)\n+ if (!IsConnected())\n return 0;\n \n if (m_booted)\n {\n- sf::SocketSelector selector;\n- selector.add(*m_client);\n- (void)selector.wait(sf::milliseconds(1000));\n+ constexpr auto recv_timeout = std::chrono::milliseconds{1000};\n+ m_client->async_wait(tcp::socket::wait_read, asio::cancel_after(recv_timeout, asio::use_future))\n+ .wait();\n }\n \n size_t num_received = 0;\n- std::array<u8, RECV_MAX_SIZE> recv_data;\n- const sf::Socket::Status recv_stat = m_client->receive(recv_data.data(), bytes, num_received);\n- if (recv_stat == sf::Socket::Status::Disconnected)\n+ std::error_code ec;\n+ if (m_client->available(ec) != 0)\n+ num_received = m_client->read_some(asio::buffer(si_buffer, bytes), ec);\n+\n+ if (ec)\n {\n Disconnect();\n return 0;\n }\n \n- if (recv_stat == sf::Socket::Status::NotReady || num_received == 0)\n+ if (num_received == 0)\n {\n m_booted = false;\n return 0;\n }\n m_booted = true;\n \n- for (size_t i = 0; i < recv_data.size(); i++)\n- si_buffer[i] = recv_data[i];\n- return static_cast<int>(std::min(num_received, recv_data.size()));\n+ return static_cast<int>(num_received);\n }\n \n void GBASockServer::Flush()\n {\n- if (!m_client)\n+ if (!IsConnected())\n return;\n \n- size_t num_received = 1;\n- u8 byte;\n- while (num_received)\n+ std::array<u8, RECV_MAX_SIZE> bytes{};\n+ while (m_client->available() != 0)', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 404, 'original_position': 404, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '`error_code` should be passed to `available` to call the non-throwing version.', 'created_at': '2026-11-13T12:15:48Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563130812', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563130812'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563130812'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563130812/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4563612344, 'node_id': 'PRRC_kwDOALCn2M8AAAABEAMyuA', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563612344', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+\n+ tcp::acceptor data_acceptor{io};\n+ tcp::acceptor clock_acceptor{io};\n {\n- if (server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba);\n- s_waiting_socks.push(std::move(new_client));\n+ std::error_code ec;\n+ (void)data_acceptor.open(tcp::v4(), ec);\n+ (void)clock_acceptor.open(tcp::v4(), ec);\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n- }\n- if (clock_server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba_clk);\n- s_waiting_clocks.push(std::move(new_client));\n+ if (std::error_code ec; data_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_DATA_PORT), ec) ||\n+ data_acceptor.listen(tcp::socket::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_DATA_PORT, ec.message());\n+ return;\n+ }\n+\n+ if (std::error_code ec; clock_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_CLOCK_PORT), ec) ||\n+ clock_acceptor.listen(asio::socket_base::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_CLOCK_PORT, ec.message());\n+ return;\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n+ const auto enqueue_accepted_sockets =\n+ [](tcp::acceptor& acceptor, Common::SPSCQueue<tcp::socket>& queue) -> asio::awaitable<void> {\n+ while (true)\n+ {\n+ auto [ec, socket] = co_await acceptor.async_accept(asio::as_tuple);\n+ if (ec)\n+ break;\n+ queue.Emplace(std::move(socket));\n }\n+ };\n \n- Common::SleepCurrentThread(1);\n- }\n-}\n+ asio::co_spawn(io, enqueue_accepted_sockets(data_acceptor, m_waiting_socks), asio::detached);\n+ asio::co_spawn(io, enqueue_accepted_sockets(clock_acceptor, m_waiting_clocks), asio::detached);\n \n-void GBAConnectionWaiter_Shutdown()\n-{\n- s_server_running.Clear();\n- if (s_connection_thread.joinable())\n- s_connection_thread.join();\n-}\n+ std::stop_callback cb{stoken, [&] { io.stop(); }};\n \n-template <typename T>\n-static std::unique_ptr<T> MoveFromFront(std::queue<std::unique_ptr<T>>& ptrs)\n-{\n- if (ptrs.empty())\n- return nullptr;\n- std::unique_ptr<T> ptr = std::move(ptrs.front());\n- ptrs.pop();\n- return ptr;\n-}\n+ // Keep the io_context running even if our acceptor tasks were to error out somehow.\n+ // Otherwise outside initiated async tasks would never finish.\n+ const auto work_guard = asio::make_work_guard(io);\n \n-static std::unique_ptr<sf::TcpSocket> GetNextSock()\n-{\n- std::lock_guard lk(s_cs_gba);\n- return MoveFromFront(s_waiting_socks);\n+ io.run();\n }\n \n-static std::unique_ptr<sf::TcpSocket> GetNextClock()\n+class GBASockServer final\n {\n- std::lock_guard lk(s_cs_gba_clk);\n- return MoveFromFront(s_waiting_clocks);\n-}\n+public:\n+ bool Connect();\n+ bool IsConnected() const;\n \n-GBASockServer::GBASockServer()\n-{\n- if (!s_connection_thread.joinable())\n- s_connection_thread = std::thread(GBAConnectionWaiter);\n+ void ClockSync(Core::System& system);\n+ void Send(const u8* si_buffer);\n+ int Receive(u8* si_buffer, u8 bytes);\n+ void Flush();\n \n- s_num_connected = 0;\n-}\n+private:\n+ void Disconnect();\n \n-GBASockServer::~GBASockServer()\n-{\n- Disconnect();\n-}\n+ std::optional<tcp::socket> m_client;\n+ std::optional<tcp::socket> m_clock_sync;\n+\n+ u64 m_last_time_slice = 0;\n+ bool m_booted = false;\n+\n+ std::shared_ptr<GBAConnectionHandler> m_connection_handler{GBAConnectionHandler::GetInstance()};', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 236, 'original_position': 236, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Can these sockets outlive the connection handler and its `io_context`? If so, wouldn't it be better to move `m_connection_handler` up, before these sockets so they don't reference a potentially destroyed resource?", 'created_at': '2026-11-13T13:05:49Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563612344', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563612344'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563612344'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563612344/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4563769973, 'node_id': 'PRRC_kwDOALCn2M8AAAABEAWadQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563769973', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 123, 'original_position': 123, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Shouldn't `io_context` be a member declared before the sockets queues, so accepted sockets don't reference a potentially destroyed context?\n\nI suppose we can't move the `jthread` up because it might cause a destruction-order problem with the queues being used by the thread's coroutines.", 'created_at': '2026-11-13T13:21:06Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563769973', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563769973'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563769973'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563769973/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4563980181, 'node_id': 'PRRC_kwDOALCn2M8AAAABEAjPlQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563980181', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -160,105 +193,126 @@ void GBASockServer::ClockSync(Core::System& system)\n \n time_slice = (u32)((u64)time_slice * 16777216 / system.GetSystemTimers().GetTicksPerSecond());\n m_last_time_slice = core_timing.GetTicks();\n- char bytes[4] = {0, 0, 0, 0};\n- bytes[0] = (time_slice >> 24) & 0xff;\n- bytes[1] = (time_slice >> 16) & 0xff;\n- bytes[2] = (time_slice >> 8) & 0xff;\n- bytes[3] = time_slice & 0xff;\n-\n- const sf::Socket::Status status = m_clock_sync->send(bytes, 4);\n- if (status == sf::Socket::Status::Disconnected)\n- {\n- m_clock_sync->disconnect();\n- m_clock_sync = nullptr;\n- }\n+\n+ std::error_code ec;\n+ asio::write(*m_clock_sync, Common::AsU8Span(Common::BigEndianValue{time_slice}), ec);\n+ if (ec)\n+ m_clock_sync.reset();\n }\n \n bool GBASockServer::Connect()\n {\n if (!IsConnected())\n {\n- m_client = GetNextSock();\n- if (m_client)\n- m_client->setBlocking(false);\n+ if (auto new_client = m_connection_handler->GetNextSock())\n+ m_client = std::move(*new_client);', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 310, 'original_position': 310, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Unless I'm mistaken, the socket is now blocking unlike the SFML implementation.", 'created_at': '2026-11-13T13:40:18Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563980181', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563980181'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563980181'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563980181/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4564157885, 'node_id': 'PRRC_kwDOALCn2M8AAAABEAuFvQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4564157885', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -160,105 +193,126 @@ void GBASockServer::ClockSync(Core::System& system)\n \n time_slice = (u32)((u64)time_slice * 16777216 / system.GetSystemTimers().GetTicksPerSecond());\n m_last_time_slice = core_timing.GetTicks();\n- char bytes[4] = {0, 0, 0, 0};\n- bytes[0] = (time_slice >> 24) & 0xff;\n- bytes[1] = (time_slice >> 16) & 0xff;\n- bytes[2] = (time_slice >> 8) & 0xff;\n- bytes[3] = time_slice & 0xff;\n-\n- const sf::Socket::Status status = m_clock_sync->send(bytes, 4);\n- if (status == sf::Socket::Status::Disconnected)\n- {\n- m_clock_sync->disconnect();\n- m_clock_sync = nullptr;\n- }\n+\n+ std::error_code ec;\n+ asio::write(*m_clock_sync, Common::AsU8Span(Common::BigEndianValue{time_slice}), ec);\n+ if (ec)\n+ m_clock_sync.reset();\n }\n \n bool GBASockServer::Connect()\n {\n if (!IsConnected())\n {\n- m_client = GetNextSock();\n- if (m_client)\n- m_client->setBlocking(false);\n+ if (auto new_client = m_connection_handler->GetNextSock())\n+ m_client = std::move(*new_client);\n }\n return IsConnected();\n }\n \n-bool GBASockServer::IsConnected()\n+bool GBASockServer::IsConnected() const\n {\n- return static_cast<bool>(m_client);\n+ return m_client.has_value();\n }\n \n void GBASockServer::Send(const u8* si_buffer)\n {\n+ using SerialInterface::EBufferCommands;\n+\n if (!Connect())\n return;\n \n- std::array<u8, SEND_MAX_SIZE> send_data;\n- for (size_t i = 0; i < send_data.size(); i++)\n- send_data[i] = si_buffer[i];\n+ const auto cmd = static_cast<EBufferCommands>(si_buffer[0]);\n+ const std::size_t byte_count = (cmd == EBufferCommands::CMD_WRITE_GBA) ? SEND_MAX_SIZE : 1uz;\n \n- const auto cmd = static_cast<EBufferCommands>(send_data[0]);\n-\n- sf::Socket::Status status;\n- if (cmd == EBufferCommands::CMD_WRITE_GBA)\n- status = m_client->send(send_data.data(), send_data.size());\n- else\n- status = m_client->send(send_data.data(), 1);\n-\n- if (status == sf::Socket::Status::Disconnected)\n+ std::error_code ec;\n+ asio::write(*m_client, asio::buffer(si_buffer, byte_count), ec);\n+ if (ec)\n Disconnect();\n }\n \n int GBASockServer::Receive(u8* si_buffer, u8 bytes)\n {\n- if (!m_client)\n+ if (!IsConnected())\n return 0;\n \n if (m_booted)\n {\n- sf::SocketSelector selector;\n- selector.add(*m_client);\n- (void)selector.wait(sf::milliseconds(1000));\n+ constexpr auto recv_timeout = std::chrono::milliseconds{1000};\n+ m_client->async_wait(tcp::socket::wait_read, asio::cancel_after(recv_timeout, asio::use_future))\n+ .wait();\n }\n \n size_t num_received = 0;\n- std::array<u8, RECV_MAX_SIZE> recv_data;\n- const sf::Socket::Status recv_stat = m_client->receive(recv_data.data(), bytes, num_received);\n- if (recv_stat == sf::Socket::Status::Disconnected)\n+ std::error_code ec;\n+ if (m_client->available(ec) != 0)\n+ num_received = m_client->read_some(asio::buffer(si_buffer, bytes), ec);\n+\n+ if (ec)', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 374, 'original_position': 374, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Won't this approach prevent a peer disconnected socket (i.e. `read` returning 0 bytes) from going through the `Disconnect()` method?", 'created_at': '2026-11-13T13:56:47Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4564157885', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4564157885'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4564157885'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4564157885/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-13T14:02:28.220651 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'edited', 'pr_id': 15003, 'pr_title': 'SI_DeviceGBA: Replace SFML network code with Asio.', 'state': 'changes_requested', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15003#pullrequestreview-5889185321', 'comments': [{'id': 4562000678, 'node_id': 'PRRC_kwDOALCn2M8AAAABD-qbJg', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4562000678', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -0,0 +1,21 @@\n+add_library(asio INTERFACE)\n+\n+find_package(PkgConfig QUIET)\n+if(PkgConfig_FOUND)\n+ pkg_check_modules(ASIO QUIET IMPORTED_TARGET asio>=1.30.0)', 'path': 'Externals/asio/CMakeLists.txt', 'position': 5, 'original_position': 5, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'According to its [Revision History page](https://think-async.com/Asio/asio-1.38.2/doc/asio/history.html):\n - `asio::cancel_after` is used and was added on version 1.31.\n - `asio::co_spawn` support when exceptions are disabled was introduced on 1.32.', 'created_at': '2026-11-13T10:05:12Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4562000678', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4562000678'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4562000678'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4562000678/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4562116506, 'node_id': 'PRRC_kwDOALCn2M8AAAABD-xfmg', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4562116506', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+\n+ tcp::acceptor data_acceptor{io};\n+ tcp::acceptor clock_acceptor{io};\n {\n- if (server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba);\n- s_waiting_socks.push(std::move(new_client));\n+ std::error_code ec;\n+ (void)data_acceptor.open(tcp::v4(), ec);\n+ (void)clock_acceptor.open(tcp::v4(), ec);', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 133, 'original_position': 133, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Errors should be checked. I suppose this can fail if the socket can't be created.", 'created_at': '2026-11-13T10:18:24Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4562116506', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4562116506'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4562116506'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4562116506/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4563064833, 'node_id': 'PRRC_kwDOALCn2M8AAAABD_rYAQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563064833', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+\n+ tcp::acceptor data_acceptor{io};\n+ tcp::acceptor clock_acceptor{io};\n {\n- if (server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba);\n- s_waiting_socks.push(std::move(new_client));\n+ std::error_code ec;\n+ (void)data_acceptor.open(tcp::v4(), ec);\n+ (void)clock_acceptor.open(tcp::v4(), ec);\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n- }\n- if (clock_server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba_clk);\n- s_waiting_clocks.push(std::move(new_client));\n+ if (std::error_code ec; data_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_DATA_PORT), ec) ||\n+ data_acceptor.listen(tcp::socket::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_DATA_PORT, ec.message());\n+ return;\n+ }\n+\n+ if (std::error_code ec; clock_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_CLOCK_PORT), ec) ||\n+ clock_acceptor.listen(asio::socket_base::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_CLOCK_PORT, ec.message());\n+ return;\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n+ const auto enqueue_accepted_sockets =\n+ [](tcp::acceptor& acceptor, Common::SPSCQueue<tcp::socket>& queue) -> asio::awaitable<void> {\n+ while (true)\n+ {\n+ auto [ec, socket] = co_await acceptor.async_accept(asio::as_tuple);\n+ if (ec)\n+ break;', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 163, 'original_position': 163, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Shouldn't you set the TCP_NODELAY option, just like SFML socket?", 'created_at': '2026-11-13T12:08:10Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563064833', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563064833'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563064833'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563064833/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4563130812, 'node_id': 'PRRC_kwDOALCn2M8AAAABD_vZvA', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563130812', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -160,105 +193,126 @@ void GBASockServer::ClockSync(Core::System& system)\n \n time_slice = (u32)((u64)time_slice * 16777216 / system.GetSystemTimers().GetTicksPerSecond());\n m_last_time_slice = core_timing.GetTicks();\n- char bytes[4] = {0, 0, 0, 0};\n- bytes[0] = (time_slice >> 24) & 0xff;\n- bytes[1] = (time_slice >> 16) & 0xff;\n- bytes[2] = (time_slice >> 8) & 0xff;\n- bytes[3] = time_slice & 0xff;\n-\n- const sf::Socket::Status status = m_clock_sync->send(bytes, 4);\n- if (status == sf::Socket::Status::Disconnected)\n- {\n- m_clock_sync->disconnect();\n- m_clock_sync = nullptr;\n- }\n+\n+ std::error_code ec;\n+ asio::write(*m_clock_sync, Common::AsU8Span(Common::BigEndianValue{time_slice}), ec);\n+ if (ec)\n+ m_clock_sync.reset();\n }\n \n bool GBASockServer::Connect()\n {\n if (!IsConnected())\n {\n- m_client = GetNextSock();\n- if (m_client)\n- m_client->setBlocking(false);\n+ if (auto new_client = m_connection_handler->GetNextSock())\n+ m_client = std::move(*new_client);\n }\n return IsConnected();\n }\n \n-bool GBASockServer::IsConnected()\n+bool GBASockServer::IsConnected() const\n {\n- return static_cast<bool>(m_client);\n+ return m_client.has_value();\n }\n \n void GBASockServer::Send(const u8* si_buffer)\n {\n+ using SerialInterface::EBufferCommands;\n+\n if (!Connect())\n return;\n \n- std::array<u8, SEND_MAX_SIZE> send_data;\n- for (size_t i = 0; i < send_data.size(); i++)\n- send_data[i] = si_buffer[i];\n+ const auto cmd = static_cast<EBufferCommands>(si_buffer[0]);\n+ const std::size_t byte_count = (cmd == EBufferCommands::CMD_WRITE_GBA) ? SEND_MAX_SIZE : 1uz;\n \n- const auto cmd = static_cast<EBufferCommands>(send_data[0]);\n-\n- sf::Socket::Status status;\n- if (cmd == EBufferCommands::CMD_WRITE_GBA)\n- status = m_client->send(send_data.data(), send_data.size());\n- else\n- status = m_client->send(send_data.data(), 1);\n-\n- if (status == sf::Socket::Status::Disconnected)\n+ std::error_code ec;\n+ asio::write(*m_client, asio::buffer(si_buffer, byte_count), ec);\n+ if (ec)\n Disconnect();\n }\n \n int GBASockServer::Receive(u8* si_buffer, u8 bytes)\n {\n- if (!m_client)\n+ if (!IsConnected())\n return 0;\n \n if (m_booted)\n {\n- sf::SocketSelector selector;\n- selector.add(*m_client);\n- (void)selector.wait(sf::milliseconds(1000));\n+ constexpr auto recv_timeout = std::chrono::milliseconds{1000};\n+ m_client->async_wait(tcp::socket::wait_read, asio::cancel_after(recv_timeout, asio::use_future))\n+ .wait();\n }\n \n size_t num_received = 0;\n- std::array<u8, RECV_MAX_SIZE> recv_data;\n- const sf::Socket::Status recv_stat = m_client->receive(recv_data.data(), bytes, num_received);\n- if (recv_stat == sf::Socket::Status::Disconnected)\n+ std::error_code ec;\n+ if (m_client->available(ec) != 0)\n+ num_received = m_client->read_some(asio::buffer(si_buffer, bytes), ec);\n+\n+ if (ec)\n {\n Disconnect();\n return 0;\n }\n \n- if (recv_stat == sf::Socket::Status::NotReady || num_received == 0)\n+ if (num_received == 0)\n {\n m_booted = false;\n return 0;\n }\n m_booted = true;\n \n- for (size_t i = 0; i < recv_data.size(); i++)\n- si_buffer[i] = recv_data[i];\n- return static_cast<int>(std::min(num_received, recv_data.size()));\n+ return static_cast<int>(num_received);\n }\n \n void GBASockServer::Flush()\n {\n- if (!m_client)\n+ if (!IsConnected())\n return;\n \n- size_t num_received = 1;\n- u8 byte;\n- while (num_received)\n+ std::array<u8, RECV_MAX_SIZE> bytes{};\n+ while (m_client->available() != 0)', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 404, 'original_position': 404, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '`error_code` should be passed to `available` to call the non-throwing version.', 'created_at': '2026-11-13T12:15:48Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563130812', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563130812'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563130812'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563130812/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4563612344, 'node_id': 'PRRC_kwDOALCn2M8AAAABEAMyuA', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563612344', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+\n+ tcp::acceptor data_acceptor{io};\n+ tcp::acceptor clock_acceptor{io};\n {\n- if (server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba);\n- s_waiting_socks.push(std::move(new_client));\n+ std::error_code ec;\n+ (void)data_acceptor.open(tcp::v4(), ec);\n+ (void)clock_acceptor.open(tcp::v4(), ec);\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n- }\n- if (clock_server.accept(*new_client) == sf::Socket::Status::Done)\n- {\n- std::lock_guard lk(s_cs_gba_clk);\n- s_waiting_clocks.push(std::move(new_client));\n+ if (std::error_code ec; data_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_DATA_PORT), ec) ||\n+ data_acceptor.listen(tcp::socket::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_DATA_PORT, ec.message());\n+ return;\n+ }\n+\n+ if (std::error_code ec; clock_acceptor.bind(tcp::endpoint(tcp::v4(), GBA_CLOCK_PORT), ec) ||\n+ clock_acceptor.listen(asio::socket_base::max_listen_connections, ec))\n+ {\n+ ERROR_LOG_FMT(SERIALINTERFACE, "Unable to bind TCP port {}: {}", GBA_CLOCK_PORT, ec.message());\n+ return;\n+ }\n \n- new_client = std::make_unique<sf::TcpSocket>();\n+ const auto enqueue_accepted_sockets =\n+ [](tcp::acceptor& acceptor, Common::SPSCQueue<tcp::socket>& queue) -> asio::awaitable<void> {\n+ while (true)\n+ {\n+ auto [ec, socket] = co_await acceptor.async_accept(asio::as_tuple);\n+ if (ec)\n+ break;\n+ queue.Emplace(std::move(socket));\n }\n+ };\n \n- Common::SleepCurrentThread(1);\n- }\n-}\n+ asio::co_spawn(io, enqueue_accepted_sockets(data_acceptor, m_waiting_socks), asio::detached);\n+ asio::co_spawn(io, enqueue_accepted_sockets(clock_acceptor, m_waiting_clocks), asio::detached);\n \n-void GBAConnectionWaiter_Shutdown()\n-{\n- s_server_running.Clear();\n- if (s_connection_thread.joinable())\n- s_connection_thread.join();\n-}\n+ std::stop_callback cb{stoken, [&] { io.stop(); }};\n \n-template <typename T>\n-static std::unique_ptr<T> MoveFromFront(std::queue<std::unique_ptr<T>>& ptrs)\n-{\n- if (ptrs.empty())\n- return nullptr;\n- std::unique_ptr<T> ptr = std::move(ptrs.front());\n- ptrs.pop();\n- return ptr;\n-}\n+ // Keep the io_context running even if our acceptor tasks were to error out somehow.\n+ // Otherwise outside initiated async tasks would never finish.\n+ const auto work_guard = asio::make_work_guard(io);\n \n-static std::unique_ptr<sf::TcpSocket> GetNextSock()\n-{\n- std::lock_guard lk(s_cs_gba);\n- return MoveFromFront(s_waiting_socks);\n+ io.run();\n }\n \n-static std::unique_ptr<sf::TcpSocket> GetNextClock()\n+class GBASockServer final\n {\n- std::lock_guard lk(s_cs_gba_clk);\n- return MoveFromFront(s_waiting_clocks);\n-}\n+public:\n+ bool Connect();\n+ bool IsConnected() const;\n \n-GBASockServer::GBASockServer()\n-{\n- if (!s_connection_thread.joinable())\n- s_connection_thread = std::thread(GBAConnectionWaiter);\n+ void ClockSync(Core::System& system);\n+ void Send(const u8* si_buffer);\n+ int Receive(u8* si_buffer, u8 bytes);\n+ void Flush();\n \n- s_num_connected = 0;\n-}\n+private:\n+ void Disconnect();\n \n-GBASockServer::~GBASockServer()\n-{\n- Disconnect();\n-}\n+ std::optional<tcp::socket> m_client;\n+ std::optional<tcp::socket> m_clock_sync;\n+\n+ u64 m_last_time_slice = 0;\n+ bool m_booted = false;\n+\n+ std::shared_ptr<GBAConnectionHandler> m_connection_handler{GBAConnectionHandler::GetInstance()};', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 236, 'original_position': 236, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Can these sockets outlive the connection handler and its `io_context`? If so, wouldn't it be better to move `m_connection_handler` up, before these sockets so they don't reference a potentially destroyed resource?", 'created_at': '2026-11-13T13:05:49Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563612344', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563612344'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563612344'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563612344/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4563769973, 'node_id': 'PRRC_kwDOALCn2M8AAAABEAWadQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563769973', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -3,153 +3,186 @@\n \n #include "Core/HW/SI/SI_DeviceGBA.h"\n \n-#include <cstddef>\n-#include <cstring>\n #include <memory>\n-#include <mutex>\n-#include <queue>\n+#include <stop_token>\n #include <thread>\n \n+#include <asio.hpp>\n+\n+#include "Common/AsioUtil.h" // IWYU pragma: keep\n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/Flag.h"\n #include "Common/Logging/Log.h"\n+#include "Common/SPSCQueue.h"\n+#include "Common/Swap.h"\n #include "Common/Thread.h"\n #include "Core/CoreTiming.h"\n #include "Core/HW/SI/SI_Device.h"\n #include "Core/HW/SystemTimers.h"\n #include "Core/System.h"\n \n-namespace SerialInterface\n-{\n namespace\n {\n-std::thread s_connection_thread;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_socks;\n-std::queue<std::unique_ptr<sf::TcpSocket>> s_waiting_clocks;\n-std::mutex s_cs_gba;\n-std::mutex s_cs_gba_clk;\n-int s_num_connected;\n-Common::Flag s_server_running;\n-} // namespace\n \n-constexpr auto SEND_MAX_SIZE = 5, RECV_MAX_SIZE = 5;\n+constexpr u16 GBA_DATA_PORT = 0xd6ba; // "dolphin gba"\n+constexpr u16 GBA_CLOCK_PORT = 0xc10c; // "clock"\n+\n+constexpr auto SEND_MAX_SIZE = 5uz;\n+constexpr auto RECV_MAX_SIZE = 5uz;\n \n-// --- GameBoy Advance "Link Cable" ---\n+using asio::ip::tcp;\n \n-static void GBAConnectionWaiter()\n+// Accepts incoming connections and runs IO context thread.\n+class GBAConnectionHandler final\n {\n- s_server_running.Set();\n+public:\n+ // All 4 GBAs share one "Connection Handler".\n+ static std::shared_ptr<GBAConnectionHandler> GetInstance()\n+ {\n+ auto result = s_instance.lock();\n+ if (!result)\n+ {\n+ result = std::shared_ptr<GBAConnectionHandler>(new GBAConnectionHandler);\n+ s_instance = result;\n+ }\n+ return result;\n+ }\n \n- Common::SetCurrentThreadName("GBA Connection Waiter");\n+ std::optional<tcp::socket> GetNextSock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_socks.Empty())\n+ {\n+ result = std::move(m_waiting_socks.Front());\n+ m_waiting_socks.Pop();\n+ }\n+ return result;\n+ }\n \n- sf::TcpListener server;\n- sf::TcpListener clock_server;\n+ std::optional<tcp::socket> GetNextClock()\n+ {\n+ std::optional<tcp::socket> result;\n+ if (!m_waiting_clocks.Empty())\n+ {\n+ result = std::move(m_waiting_clocks.Front());\n+ m_waiting_clocks.Pop();\n+ }\n+ return result;\n+ }\n \n- // "dolphin gba"\n- if (server.listen(0xd6ba) != sf::Socket::Status::Done)\n- return;\n+private:\n+ GBAConnectionHandler() = default;\n \n- // "clock"\n- if (clock_server.listen(0xc10c) != sf::Socket::Status::Done)\n- return;\n+ static std::weak_ptr<GBAConnectionHandler> s_instance;\n+\n+ void ThreadFunc(std::stop_token stoken);\n+\n+ Common::SPSCQueue<tcp::socket> m_waiting_socks;\n+ Common::SPSCQueue<tcp::socket> m_waiting_clocks;\n \n- server.setBlocking(false);\n- clock_server.setBlocking(false);\n+ std::jthread m_connection_thread{std::bind_front(&GBAConnectionHandler::ThreadFunc, this)};\n+};\n \n- auto new_client = std::make_unique<sf::TcpSocket>();\n- while (s_server_running.IsSet())\n+std::weak_ptr<GBAConnectionHandler> GBAConnectionHandler::s_instance;\n+\n+void GBAConnectionHandler::ThreadFunc(std::stop_token stoken)\n+{\n+ Common::SetCurrentThreadName("GBA IO Context");\n+\n+ asio::io_context io;\n+', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 123, 'original_position': 123, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Shouldn't `io_context` be a member declared before the sockets queues, so accepted sockets don't reference a potentially destroyed context?\n\nI suppose we can't move the `jthread` up because it might cause a destruction-order problem with the queues being used by the thread's coroutines.", 'created_at': '2026-11-13T13:21:06Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563769973', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563769973'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563769973'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563769973/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4563980181, 'node_id': 'PRRC_kwDOALCn2M8AAAABEAjPlQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563980181', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -160,105 +193,126 @@ void GBASockServer::ClockSync(Core::System& system)\n \n time_slice = (u32)((u64)time_slice * 16777216 / system.GetSystemTimers().GetTicksPerSecond());\n m_last_time_slice = core_timing.GetTicks();\n- char bytes[4] = {0, 0, 0, 0};\n- bytes[0] = (time_slice >> 24) & 0xff;\n- bytes[1] = (time_slice >> 16) & 0xff;\n- bytes[2] = (time_slice >> 8) & 0xff;\n- bytes[3] = time_slice & 0xff;\n-\n- const sf::Socket::Status status = m_clock_sync->send(bytes, 4);\n- if (status == sf::Socket::Status::Disconnected)\n- {\n- m_clock_sync->disconnect();\n- m_clock_sync = nullptr;\n- }\n+\n+ std::error_code ec;\n+ asio::write(*m_clock_sync, Common::AsU8Span(Common::BigEndianValue{time_slice}), ec);\n+ if (ec)\n+ m_clock_sync.reset();\n }\n \n bool GBASockServer::Connect()\n {\n if (!IsConnected())\n {\n- m_client = GetNextSock();\n- if (m_client)\n- m_client->setBlocking(false);\n+ if (auto new_client = m_connection_handler->GetNextSock())\n+ m_client = std::move(*new_client);', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 310, 'original_position': 310, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Unless I'm mistaken, the socket is now blocking unlike the SFML implementation.", 'created_at': '2026-11-13T13:40:18Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563980181', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563980181'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4563980181'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4563980181/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4564157885, 'node_id': 'PRRC_kwDOALCn2M8AAAABEAuFvQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4564157885', 'pull_request_review_id': 5889185321, 'diff_hunk': '@@ -160,105 +193,126 @@ void GBASockServer::ClockSync(Core::System& system)\n \n time_slice = (u32)((u64)time_slice * 16777216 / system.GetSystemTimers().GetTicksPerSecond());\n m_last_time_slice = core_timing.GetTicks();\n- char bytes[4] = {0, 0, 0, 0};\n- bytes[0] = (time_slice >> 24) & 0xff;\n- bytes[1] = (time_slice >> 16) & 0xff;\n- bytes[2] = (time_slice >> 8) & 0xff;\n- bytes[3] = time_slice & 0xff;\n-\n- const sf::Socket::Status status = m_clock_sync->send(bytes, 4);\n- if (status == sf::Socket::Status::Disconnected)\n- {\n- m_clock_sync->disconnect();\n- m_clock_sync = nullptr;\n- }\n+\n+ std::error_code ec;\n+ asio::write(*m_clock_sync, Common::AsU8Span(Common::BigEndianValue{time_slice}), ec);\n+ if (ec)\n+ m_clock_sync.reset();\n }\n \n bool GBASockServer::Connect()\n {\n if (!IsConnected())\n {\n- m_client = GetNextSock();\n- if (m_client)\n- m_client->setBlocking(false);\n+ if (auto new_client = m_connection_handler->GetNextSock())\n+ m_client = std::move(*new_client);\n }\n return IsConnected();\n }\n \n-bool GBASockServer::IsConnected()\n+bool GBASockServer::IsConnected() const\n {\n- return static_cast<bool>(m_client);\n+ return m_client.has_value();\n }\n \n void GBASockServer::Send(const u8* si_buffer)\n {\n+ using SerialInterface::EBufferCommands;\n+\n if (!Connect())\n return;\n \n- std::array<u8, SEND_MAX_SIZE> send_data;\n- for (size_t i = 0; i < send_data.size(); i++)\n- send_data[i] = si_buffer[i];\n+ const auto cmd = static_cast<EBufferCommands>(si_buffer[0]);\n+ const std::size_t byte_count = (cmd == EBufferCommands::CMD_WRITE_GBA) ? SEND_MAX_SIZE : 1uz;\n \n- const auto cmd = static_cast<EBufferCommands>(send_data[0]);\n-\n- sf::Socket::Status status;\n- if (cmd == EBufferCommands::CMD_WRITE_GBA)\n- status = m_client->send(send_data.data(), send_data.size());\n- else\n- status = m_client->send(send_data.data(), 1);\n-\n- if (status == sf::Socket::Status::Disconnected)\n+ std::error_code ec;\n+ asio::write(*m_client, asio::buffer(si_buffer, byte_count), ec);\n+ if (ec)\n Disconnect();\n }\n \n int GBASockServer::Receive(u8* si_buffer, u8 bytes)\n {\n- if (!m_client)\n+ if (!IsConnected())\n return 0;\n \n if (m_booted)\n {\n- sf::SocketSelector selector;\n- selector.add(*m_client);\n- (void)selector.wait(sf::milliseconds(1000));\n+ constexpr auto recv_timeout = std::chrono::milliseconds{1000};\n+ m_client->async_wait(tcp::socket::wait_read, asio::cancel_after(recv_timeout, asio::use_future))\n+ .wait();\n }\n \n size_t num_received = 0;\n- std::array<u8, RECV_MAX_SIZE> recv_data;\n- const sf::Socket::Status recv_stat = m_client->receive(recv_data.data(), bytes, num_received);\n- if (recv_stat == sf::Socket::Status::Disconnected)\n+ std::error_code ec;\n+ if (m_client->available(ec) != 0)\n+ num_received = m_client->read_some(asio::buffer(si_buffer, bytes), ec);\n+\n+ if (ec)', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 374, 'original_position': 374, 'commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Won't this approach prevent a peer disconnected socket (i.e. `read` returning 0 bytes) from going through the `Disconnect()` method?", 'created_at': '2026-11-13T13:56:47Z', 'updated_at': '2026-11-13T14:02:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4564157885', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4564157885'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15003#discussion_r4564157885'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15003'}}, 'original_commit_id': '2cc8d72ba0b9cc97744cacdc867e36fdc6b4944c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4564157885/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-13T02:59:56.603342 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 15014, 'pr_title': 'OGL: Only show the Video Info OSD message when initializing the backend', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15014#pullrequestreview-5885377972', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-13T01:51:41.966135 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 15013, 'pr_title': 'OGL: Call InitDriverInfo() before checking DriverDetails in PopulateConfig()', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15013#pullrequestreview-5884896398', 'comments': [{'id': 4558760790, 'node_id': 'PRRC_kwDOALCn2M8AAAABD7krVg', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4558760790', 'pull_request_review_id': 5884896398, 'diff_hunk': '@@ -115,7 +115,7 @@ void InitDriverInfo()\n {\n driver = DriverDetails::DRIVER_NOUVEAU;\n }\n- else if (svendor == "Intel Open Source Technology Center")\n+ else if (svendor == "Intel Open Source Technology Center" || svendor == "Intel")\n {\n driver = DriverDetails::DRIVER_I965;', 'path': 'Source/Core/VideoBackends/OGL/OGLConfig.cpp', 'position': 7, 'original_position': 7, 'commit_id': 'fd4c8faf60aaf45539168dc5aca671497f40cb29', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "I don't know, but I think it would make sense to put this Intel string checking change in a separate PR for its own discussion.", 'created_at': '2026-11-13T01:51:39Z', 'updated_at': '2026-11-13T01:51:39Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15013#discussion_r4558760790', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15013', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4558760790'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15013#discussion_r4558760790'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15013'}}, 'original_commit_id': 'fd4c8faf60aaf45539168dc5aca671497f40cb29', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4558760790/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4544693694, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-13T01:10:42.318798 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jpferraz-git', 'action': 'submitted', 'pr_id': 15013, 'pr_title': 'OGL: Call InitDriverInfo() before checking DriverDetails in PopulateConfig()', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/15013#pullrequestreview-5884572795', 'comments': [{'id': 4558475234, 'node_id': 'PRRC_kwDOALCn2M8AAAABD7TP4g', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4558475234', 'pull_request_review_id': 5884572795, 'diff_hunk': '@@ -115,7 +115,7 @@ void InitDriverInfo()\n {\n driver = DriverDetails::DRIVER_NOUVEAU;\n }\n- else if (svendor == "Intel Open Source Technology Center")\n+ else if (svendor == "Intel Open Source Technology Center" || svendor == "Intel")\n {\n driver = DriverDetails::DRIVER_I965;', 'path': 'Source/Core/VideoBackends/OGL/OGLConfig.cpp', 'position': 7, 'original_position': 7, 'commit_id': 'fd4c8faf60aaf45539168dc5aca671497f40cb29', 'user': {'login': 'jpferraz-git', 'id': 179407958, 'node_id': 'U_kgDOCrGMVg', 'avatar_url': 'https://avatars.githubusercontent.com/u/179407958?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpferraz-git', 'html_url': 'https://github.com/jpferraz-git', 'followers_url': 'https://api.github.com/users/jpferraz-git/followers', 'following_url': 'https://api.github.com/users/jpferraz-git/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpferraz-git/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpferraz-git/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpferraz-git/subscriptions', 'organizations_url': 'https://api.github.com/users/jpferraz-git/orgs', 'repos_url': 'https://api.github.com/users/jpferraz-git/repos', 'events_url': 'https://api.github.com/users/jpferraz-git/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpferraz-git/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'hmm yep, thats make sense, should i add a separate enum for svendor == "Intel"? \r\n ', 'created_at': '2026-11-13T01:10:39Z', 'updated_at': '2026-11-13T01:10:40Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15013#discussion_r4558475234', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15013', 'author_association': 'NONE', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4558475234'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15013#discussion_r4558475234'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15013'}}, 'original_commit_id': 'fd4c8faf60aaf45539168dc5aca671497f40cb29', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4558475234/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4544693694, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-12T19:36:08.662170 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'submitted', 'pr_id': 14671, 'pr_title': 'Android: Add RetroAchievements host override receiver', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14671#pullrequestreview-5880223316', 'comments': [{'id': 4554891603, 'node_id': 'PRRC_kwDOALCn2M8AAAABD34hUw', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4554891603', 'pull_request_review_id': 5880223316, 'diff_hunk': '@@ -0,0 +1,110 @@\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+package org.dolphinemu.dolphinemu.features.retroachievements\n+\n+import android.content.ContentProvider\n+import android.content.ContentValues\n+import android.database.Cursor\n+import android.net.Uri\n+import android.os.Bundle\n+import java.net.URI\n+import java.util.Locale\n+import org.dolphinemu.dolphinemu.features.settings.model.AchievementModel\n+\n+/**\n+ * Lets a companion app point the RetroAchievements client at a local proxy.\n+ *\n+ * The provider has to be exported without a permission to be reachable at all, so access is\n+ * decided here, against the calling package that Binder reports and the caller cannot set. A\n+ * caller is only served after the user allowed it in [RetroAchievementsHostOverrideAccessActivity].\n+ */\n+class RetroAchievementsHostOverrideProvider : ContentProvider() {\n+ override fun onCreate(): Boolean = true\n+\n+ override fun call(method: String, arg: String?, extras: Bundle?): Bundle {\n+ val context = context ?: return status(STATUS_UNAVAILABLE)\n+ val caller = callingPackage ?: return status(STATUS_DENIED)\n+ if (method != METHOD_SET_HOST_OVERRIDE && method != METHOD_CLEAR_HOST_OVERRIDE) {\n+ return status(STATUS_UNKNOWN_METHOD)\n+ }\n+ if (!RetroAchievementsHostOverrideAccess.awaitDirectoriesReady(context)) {\n+ return status(STATUS_UNAVAILABLE)\n+ }\n+ if (!RetroAchievementsHostOverrideAccess.isGranted(context, caller)) {\n+ return status(STATUS_DENIED)\n+ }\n+\n+ if (method == METHOD_SET_HOST_OVERRIDE) {\n+ val hostUrl = normalizeHostUrl(arg) ?: return status(STATUS_INVALID_HOST)\n+ RetroAchievementsHostOverrideAccess.runOnMainThread(context) {\n+ AchievementModel.setHostOverride(hostUrl)\n+ }\n+ } else {\n+ RetroAchievementsHostOverrideAccess.runOnMainThread(context) {\n+ AchievementModel.clearHostOverride()\n+ }', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/retroachievements/RetroAchievementsHostOverrideProvider.kt', 'position': 45, 'original_position': 45, 'commit_id': '8343bfcd38ec1922bed739418c9bea806f233955', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Isn't there a TOCTOU (time-of-check to time-of-use) issue here?\n\nFor instance, a granted app passes the initial checks, is then concurrently revoked by the user, but will go through via `setHostOverride` scheduled on the other thread.", 'created_at': '2026-11-12T18:52:07Z', 'updated_at': '2026-11-12T19:36:05Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14671#discussion_r4554891603', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14671', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4554891603'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14671#discussion_r4554891603'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14671'}}, 'original_commit_id': '8343bfcd38ec1922bed739418c9bea806f233955', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4554891603/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4555176461, 'node_id': 'PRRC_kwDOALCn2M8AAAABD4J6DQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4555176461', 'pull_request_review_id': 5880223316, 'diff_hunk': '@@ -0,0 +1,110 @@\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+package org.dolphinemu.dolphinemu.features.retroachievements\n+\n+import android.content.ContentProvider\n+import android.content.ContentValues\n+import android.database.Cursor\n+import android.net.Uri\n+import android.os.Bundle\n+import java.net.URI\n+import java.util.Locale\n+import org.dolphinemu.dolphinemu.features.settings.model.AchievementModel\n+\n+/**\n+ * Lets a companion app point the RetroAchievements client at a local proxy.\n+ *\n+ * The provider has to be exported without a permission to be reachable at all, so access is\n+ * decided here, against the calling package that Binder reports and the caller cannot set. A\n+ * caller is only served after the user allowed it in [RetroAchievementsHostOverrideAccessActivity].\n+ */\n+class RetroAchievementsHostOverrideProvider : ContentProvider() {\n+ override fun onCreate(): Boolean = true\n+\n+ override fun call(method: String, arg: String?, extras: Bundle?): Bundle {\n+ val context = context ?: return status(STATUS_UNAVAILABLE)\n+ val caller = callingPackage ?: return status(STATUS_DENIED)\n+ if (method != METHOD_SET_HOST_OVERRIDE && method != METHOD_CLEAR_HOST_OVERRIDE) {\n+ return status(STATUS_UNKNOWN_METHOD)\n+ }\n+ if (!RetroAchievementsHostOverrideAccess.awaitDirectoriesReady(context)) {\n+ return status(STATUS_UNAVAILABLE)\n+ }\n+ if (!RetroAchievementsHostOverrideAccess.isGranted(context, caller)) {\n+ return status(STATUS_DENIED)\n+ }\n+\n+ if (method == METHOD_SET_HOST_OVERRIDE) {\n+ val hostUrl = normalizeHostUrl(arg) ?: return status(STATUS_INVALID_HOST)\n+ RetroAchievementsHostOverrideAccess.runOnMainThread(context) {\n+ AchievementModel.setHostOverride(hostUrl)\n+ }\n+ } else {\n+ RetroAchievementsHostOverrideAccess.runOnMainThread(context) {\n+ AchievementModel.clearHostOverride()\n+ }', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/retroachievements/RetroAchievementsHostOverrideProvider.kt', 'position': 45, 'original_position': 45, 'commit_id': '8343bfcd38ec1922bed739418c9bea806f233955', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Won't this allow changing the setting while a game is running? Won't bad things happen if such case occurs?", 'created_at': '2026-11-12T19:16:49Z', 'updated_at': '2026-11-12T19:36:05Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14671#discussion_r4555176461', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14671', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4555176461'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14671#discussion_r4555176461'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14671'}}, 'original_commit_id': '8343bfcd38ec1922bed739418c9bea806f233955', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4555176461/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4555210543, 'node_id': 'PRRC_kwDOALCn2M8AAAABD4L_Lw', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4555210543', 'pull_request_review_id': 5880223316, 'diff_hunk': '@@ -78,15 +78,15 @@ void AchievementManager::Init(void* hwnd)\n std::lock_guard lg{m_lock};\n m_client = rc_client_create(MemoryPeeker, Request);\n }\n- std::string host_url = Config::Get(Config::RA_HOST_URL);\n- if (!host_url.empty())\n- rc_client_set_host(m_client, host_url.c_str());\n+ m_host_url = Config::Get(Config::RA_HOST_URL);\n+ rc_client_set_host(m_client, m_host_url.c_str());', 'path': 'Source/Core/Core/AchievementManager.cpp', 'position': 8, 'original_position': 8, 'commit_id': '8343bfcd38ec1922bed739418c9bea806f233955', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Wouldn\'t it be better to "pull" the settings from the proxy every times rather than saving it? Assuming the proxy is local, it\'d be cheap and will make sure it is reachable.', 'created_at': '2026-11-12T19:19:52Z', 'updated_at': '2026-11-12T19:36:05Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14671#discussion_r4555210543', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14671', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4555210543'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14671#discussion_r4555210543'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14671'}}, 'original_commit_id': '8343bfcd38ec1922bed739418c9bea806f233955', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4555210543/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4555361243, 'node_id': 'PRRC_kwDOALCn2M8AAAABD4VL2w', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4555361243', 'pull_request_review_id': 5880223316, 'diff_hunk': '@@ -0,0 +1,110 @@\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+package org.dolphinemu.dolphinemu.features.retroachievements\n+\n+import android.content.ContentProvider\n+import android.content.ContentValues\n+import android.database.Cursor\n+import android.net.Uri\n+import android.os.Bundle\n+import java.net.URI\n+import java.util.Locale\n+import org.dolphinemu.dolphinemu.features.settings.model.AchievementModel\n+\n+/**\n+ * Lets a companion app point the RetroAchievements client at a local proxy.\n+ *\n+ * The provider has to be exported without a permission to be reachable at all, so access is\n+ * decided here, against the calling package that Binder reports and the caller cannot set. A\n+ * caller is only served after the user allowed it in [RetroAchievementsHostOverrideAccessActivity].', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/retroachievements/RetroAchievementsHostOverrideProvider.kt', 'position': 19, 'original_position': 19, 'commit_id': '8343bfcd38ec1922bed739418c9bea806f233955', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Unless I misunderstood, I was seeing things the other way around. In other words, Dolphin doesn't expose a content provider but rather connect to one, as you said previously:\r\n\r\n> I'm open to a pull model: RAOfflineProxy exposes a content provider that returns whether the override is active and the host.\r\n\r\nMaybe I'm missing something, but is there a reason the existing API isn't used? https://raofflineproxy.com/automation-api.html#automation-api-android", 'created_at': '2026-11-12T19:33:32Z', 'updated_at': '2026-11-12T19:36:05Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14671#discussion_r4555361243', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14671', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4555361243'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14671#discussion_r4555361243'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14671'}}, 'original_commit_id': '8343bfcd38ec1922bed739418c9bea806f233955', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4555361243/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
Recent 'gh_push' events
2026-11-14T21:44:12.414624 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'after_sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-14T15:03:35-06:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/GSWE64.ini'], 'removed': [], 'message': 'GameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'hash': '542cce7ac175b61fa8ad6dbf56bdb9de4d84495e'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-14T15:44:09-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/GSWE64.ini'], 'removed': [], 'message': 'Merge pull request #15023 from jordan-woyak/rs2-remove-ws-code\n\nGameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'hash': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-14T20:57:35.191325 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'after_sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'commits': [{'author': {'name': 'Sintendo', 'email': '3380580+Sintendo@users.noreply.github.com', 'date': '2026-11-10T16:54:33+01:00', 'username': 'Sintendo'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp'], 'removed': [], 'message': 'Jit64: mfspr - Sign-extend slice_length\n\n`slice_length` is defined as an int, but was being zero-extended to 64\nbits on x64. We should match what we do for ARM64 and sign-extend, as\ndiscussed in PR #14944.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/b47056b6fdcbbafcf2dc2da1c252104be4dcca93', 'hash': 'b47056b6fdcbbafcf2dc2da1c252104be4dcca93'}, {'author': {'name': 'Sintendo', 'email': '3380580+Sintendo@users.noreply.github.com', 'date': '2026-11-10T17:06:46+01:00', 'username': 'Sintendo'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp'], 'removed': [], 'message': 'Jit64: mfspr - Fix comment formatting', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ad3598389ebc6ef2d93915b656c0c3478104ac77', 'hash': 'ad3598389ebc6ef2d93915b656c0c3478104ac77'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-14T14:57:32-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp'], 'removed': [], 'message': 'Merge pull request #15006 from Sintendo/mfspr-movsx\n\nJit64: mfspr - Sign-extend slice_length', 'url': 'https://github.com/dolphin-emu/dolphin/commit/334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'hash': '334334d42ab1f9b8d18ef078b2efbc94cfa89081'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-14T19:49:33.726823 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'after_sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'commits': [{'author': {'name': 'unexploredtest', 'email': 'unexploredtest@tutanota.com', 'date': '2025-05-23T23:42:32+03:30', 'username': 'unexploredtest'}, 'distinct': False, 'added': [], 'modified': ['Externals/MoltenVK/CMakeLists.txt', 'Externals/mbedtls/3rdparty/CMakeLists.txt', 'Externals/mbedtls/library/CMakeLists.txt', 'Source/Android/jni/CMakeLists.txt', 'Source/Core/CMakeLists.txt', 'Source/Core/Core/CMakeLists.txt', 'Source/Core/DolphinQt/CMakeLists.txt', 'Source/Core/MacUpdater/CMakeLists.txt', 'Source/Core/VideoBackends/Vulkan/CMakeLists.txt', 'Source/UnitTests/CMakeLists.txt'], 'removed': [], 'message': 'CMake: Fix relative pathing when project is imported', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4617fda478a97cf6fb29b1959f0a964f3ccc0033', 'hash': '4617fda478a97cf6fb29b1959f0a964f3ccc0033'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-14T13:49:30-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Externals/MoltenVK/CMakeLists.txt', 'Externals/mbedtls/3rdparty/CMakeLists.txt', 'Externals/mbedtls/library/CMakeLists.txt', 'Source/Android/jni/CMakeLists.txt', 'Source/Core/CMakeLists.txt', 'Source/Core/Core/CMakeLists.txt', 'Source/Core/DolphinQt/CMakeLists.txt', 'Source/Core/MacUpdater/CMakeLists.txt', 'Source/Core/VideoBackends/Vulkan/CMakeLists.txt', 'Source/UnitTests/CMakeLists.txt'], 'removed': [], 'message': 'Merge pull request #13704 from unexploredtest/cmake_source\n\nCMake: Fix relative pathing when project is imported', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'hash': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-14T19:03:10.581398 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': '761713cec9ce883d9ef8ea9a2cf65b6f09e79932', 'after_sha': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'date': '2026-11-03T14:14:04+01:00', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/CPU.cpp'], 'removed': [], 'message': 'CPU: Fix quickly-stopped games hanging Dolphin', 'url': 'https://github.com/dolphin-emu/dolphin/commit/0436c9f60eb1e815a65f01d5edb6a5a155911553', 'hash': '0436c9f60eb1e815a65f01d5edb6a5a155911553'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-11-14T20:03:07+01:00', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/HW/CPU.cpp'], 'removed': [], 'message': 'Merge pull request #14978 from JoshuaVandaele/quick-stop-hang\n\nCPU: Fix quickly-stopped games hanging Dolphin', 'url': 'https://github.com/dolphin-emu/dolphin/commit/be0e304c02341d676cfbbf0cefacb965d2b5be79', 'hash': 'be0e304c02341d676cfbbf0cefacb965d2b5be79'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-14T14:51:30.197533 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': '44e0c5663af1b37f71bad7fb73281f4d0677bd51', 'after_sha': '761713cec9ce883d9ef8ea9a2cf65b6f09e79932', 'commits': [{'author': {'name': 'dok.slade', 'email': 'dok.slade@gmail.com', 'date': '2026-11-11T16:55:50Z', 'username': 'dokslade'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Common/GL/GLX11Window.cpp'], 'removed': [], 'message': "GLX11Window: Don't override the host's event mask on the parent window\n\nGLX11Window::Create called XSelectInput(display, parent_window,\nStructureNotifyMask) on the host's display connection, which replaces\nthe event mask that the host (DolphinQt or DolphinNoGUI) selected for\nthe window instead of adding to it.\n\nAs a result, Qt stopped receiving FocusIn/FocusOut, key and mouse\nevents for the render window once an OpenGL context had been created\non it. The same issue made DolphinNoGUI lose its key and focus events\nwith OpenGL.\n\nThe GL code doesn't process any events itself, and the hosts already\nselect StructureNotify, so just drop the call. Also stop discarding\npending events in XSync, as the event queue belongs to the host.\n\nFixes https://bugs.dolphin-emu.org/issues/13354", 'url': 'https://github.com/dolphin-emu/dolphin/commit/fc58424b3c3b8231c48208da2fd716c9d746c033', 'hash': 'fc58424b3c3b8231c48208da2fd716c9d746c033'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-11-14T15:51:27+01:00', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Common/GL/GLX11Window.cpp'], 'removed': [], 'message': "Merge pull request #15012 from dokslade/gl-x11-event-mask\n\nGLX11Window: Don't override the host's event mask on the parent window", 'url': 'https://github.com/dolphin-emu/dolphin/commit/761713cec9ce883d9ef8ea9a2cf65b6f09e79932', 'hash': '761713cec9ce883d9ef8ea9a2cf65b6f09e79932'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-13T22:08:06.396631 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '5c496d1838a20660590fece1edfdf58148f80a60', 'after_sha': '44e0c5663af1b37f71bad7fb73281f4d0677bd51', 'commits': [{'author': {'name': 'Hamid Zare', 'email': '12127420+hamidzr@users.noreply.github.com', 'date': '2026-11-13T15:01:11-06:00', 'username': 'hamidzr'}, 'distinct': False, 'added': [], 'modified': ['docs/CustomPipelineGraphicsMod.md', 'docs/ResourcePacks.md'], 'removed': [], 'message': 'Fix typos in documentation\n\nSigned-off-by: Hamid Zare <12127420+hamidzr@users.noreply.github.com>', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c1e405f03043ac70020a3527e7e14ff6c41c0d10', 'hash': 'c1e405f03043ac70020a3527e7e14ff6c41c0d10'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-13T16:08:03-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['docs/CustomPipelineGraphicsMod.md', 'docs/ResourcePacks.md'], 'removed': [], 'message': 'Merge pull request #15022 from hamidzr/fixtypos\n\nFix typos in documentation', 'url': 'https://github.com/dolphin-emu/dolphin/commit/44e0c5663af1b37f71bad7fb73281f4d0677bd51', 'hash': '44e0c5663af1b37f71bad7fb73281f4d0677bd51'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-13T21:47:22.315193 {'source': 'ghhookparser', 'repo': 'dolphin-emu/netplay-index', 'pusher': 'dependabot[bot]', 'before_sha': '2348b731e93570120a09671f57d82497700b0661', 'after_sha': '0000000000000000000000000000000000000000', 'commits': [], 'base_ref_name': None, 'ref_name': 'dependabot/uv/tornado-6.6', 'ref_type': 'heads', 'created': False, 'deleted': True, 'forced': False, 'type': 'gh_push'}
2026-11-13T21:47:09.419468 {'source': 'ghhookparser', 'repo': 'dolphin-emu/netplay-index', 'pusher': 'dependabot[bot]', 'before_sha': '0000000000000000000000000000000000000000', 'after_sha': '1a00a607e216319ad66331ba4a6a50627c6d9715', 'commits': [{'author': {'name': 'dependabot[bot]', 'email': '49699333+dependabot[bot]@users.noreply.github.com', 'date': '2026-11-13T21:47:06Z', 'username': 'dependabot[bot]'}, 'distinct': True, 'added': [], 'modified': ['uv.lock'], 'removed': [], 'message': 'build(deps): bump tornado from 6.5.8 to 6.6.1\n\nBumps [tornado](https://github.com/tornadoweb/tornado) from 6.5.8 to 6.6.1.\n- [Changelog](https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst)\n- [Commits](https://github.com/tornadoweb/tornado/compare/v6.5.8...v6.6.1)\n\n---\nupdated-dependencies:\n- dependency-name: tornado\n dependency-version: 6.6.1\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>', 'url': 'https://github.com/dolphin-emu/netplay-index/commit/1a00a607e216319ad66331ba4a6a50627c6d9715', 'hash': '1a00a607e216319ad66331ba4a6a50627c6d9715'}], 'base_ref_name': None, 'ref_name': 'dependabot/uv/tornado-6.6.1', 'ref_type': 'heads', 'created': True, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-13T20:44:02.309880 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'e66427c87eb75e70a893270a8078045796b83df4', 'after_sha': '5c496d1838a20660590fece1edfdf58148f80a60', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-13T03:31:26-06:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/VideoCommon/PerformanceTracker.cpp'], 'removed': [], 'message': 'PerformanceTracker: Fix broken FPS calculation on Windows after a multi-second delay.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/63557b8a6713166770d49a649dbc84f6f1eca44a', 'hash': '63557b8a6713166770d49a649dbc84f6f1eca44a'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-13T14:43:59-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/VideoCommon/PerformanceTracker.cpp'], 'removed': [], 'message': 'Merge pull request #15019 from jordan-woyak/perf-track-fps-fix\n\nPerformanceTracker: Fix broken FPS calculation on Windows after a multi-second delay.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5c496d1838a20660590fece1edfdf58148f80a60', 'hash': '5c496d1838a20660590fece1edfdf58148f80a60'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-13T19:55:32.166842 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'e36cd326c0af3179bf75a8deb5e2ecf92ab78b72', 'after_sha': 'e66427c87eb75e70a893270a8078045796b83df4', 'commits': [{'author': {'name': 'dok.slade', 'email': 'dok.slade@gmail.com', 'date': '2026-11-11T21:05:24Z', 'username': 'dokslade'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/VideoBackends/OGL/OGLConfig.cpp', 'Source/Core/VideoBackends/OGL/OGLMain.cpp'], 'removed': [], 'message': 'OGL: Only show the Video Info OSD message when initializing the backend\n\nPopulateConfig is called through FillBackendInfo both from Initialize\nand from InitBackendInfo, which creates a temporary GL context to query\nthe backend\'s capabilities. InitBackendInfo runs when booting (from\nCore::Init) and when the graphics settings refresh the backend info, so\nthe "Video Info" message got queued two or three times, and all of them\nwere shown once the first frame was drawn.\n\nMove the OSD messages to Initialize so they\'re only added once per\nemulation start.\n\nFixes https://bugs.dolphin-emu.org/issues/13574', 'url': 'https://github.com/dolphin-emu/dolphin/commit/af2ccf4f72d6e3b001da54d7d0121370af87eda1', 'hash': 'af2ccf4f72d6e3b001da54d7d0121370af87eda1'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-13T13:55:28-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/VideoBackends/OGL/OGLConfig.cpp', 'Source/Core/VideoBackends/OGL/OGLMain.cpp'], 'removed': [], 'message': 'Merge pull request #15014 from dokslade/gl-osd-duplicate\n\nOGL: Only show the Video Info OSD message when initializing the backend', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e66427c87eb75e70a893270a8078045796b83df4', 'hash': 'e66427c87eb75e70a893270a8078045796b83df4'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-13T14:50:38.922606 {'source': 'ghhookparser', 'repo': 'dolphin-emu/netplay-index', 'pusher': 'dependabot[bot]', 'before_sha': '0000000000000000000000000000000000000000', 'after_sha': '0c9c824937815a2ad9644ac42908c12f49947df5', 'commits': [{'author': {'name': 'dependabot[bot]', 'email': '49699333+dependabot[bot]@users.noreply.github.com', 'date': '2026-11-13T14:50:36Z', 'username': 'dependabot[bot]'}, 'distinct': True, 'added': [], 'modified': ['uv.lock'], 'removed': [], 'message': "build(deps): bump soupsieve from 2.9.2 to 4.0\n\nBumps [soupsieve](https://github.com/facelessuser/soupsieve) from 2.9.2 to 4.0.\n- [Release notes](https://github.com/facelessuser/soupsieve/releases)\n- [Commits](https://github.com/facelessuser/soupsieve/compare/2.9.2...4.0)\n\n---\nupdated-dependencies:\n- dependency-name: soupsieve\n dependency-version: '4.0'\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>", 'url': 'https://github.com/dolphin-emu/netplay-index/commit/0c9c824937815a2ad9644ac42908c12f49947df5', 'hash': '0c9c824937815a2ad9644ac42908c12f49947df5'}], 'base_ref_name': None, 'ref_name': 'dependabot/uv/soupsieve-4.0', 'ref_type': 'heads', 'created': True, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-13T02:00:40.477984 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '9cef41db5f6a2492fd7800c285ca9b039406606d', 'after_sha': 'e36cd326c0af3179bf75a8deb5e2ecf92ab78b72', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-11T18:56:06-06:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Config/MainSettings.cpp', 'Source/Core/Core/Config/MainSettings.h', 'Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp', 'Source/Core/Core/HW/WiimoteReal/WiimoteReal.h'], 'removed': [], 'message': 'HW/WiimoteReal: Remove BBDumpPort feature.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/b4c90227c1f1035366f003d017327185979c2346', 'hash': 'b4c90227c1f1035366f003d017327185979c2346'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-12T20:00:37-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/Config/MainSettings.cpp', 'Source/Core/Core/Config/MainSettings.h', 'Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp', 'Source/Core/Core/HW/WiimoteReal/WiimoteReal.h'], 'removed': [], 'message': 'Merge pull request #15016 from jordan-woyak/remove-bb-dump-port\n\nHW/WiimoteReal: Remove BBDumpPort feature.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e36cd326c0af3179bf75a8deb5e2ecf92ab78b72', 'hash': 'e36cd326c0af3179bf75a8deb5e2ecf92ab78b72'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-13T01:49:07.495201 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '21f3f312177cf4f1daeb2f312f096e0cd7482087', 'after_sha': '9cef41db5f6a2492fd7800c285ca9b039406606d', 'commits': [{'author': {'name': 'Joey', 'email': '44435198+JoeysRetroHandhelds@users.noreply.github.com', 'date': '2026-11-02T22:01:29-06:00', 'username': 'JoeysRetroHandhelds'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/IOS/USB/Bluetooth/WiimoteDevice.cpp'], 'removed': [], 'message': 'WiimoteDevice: Don\'t send output reports to a null HID source\n\nReceiveL2capData forwarded HID output reports to m_hid_source without\nchecking it. SetSource accepts nullptr (e.g. Wii Remote set to "Real"\nwith no real remote connected), and the game\'s L2CAP channel can still\nbe open when that happens, so the next output report crashed the CPU\nthread with a null dereference.\n\nSeen on Android with Skylanders: Spyro\'s Adventure and Wii Remote 1 set\nto Real Wii Remote.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4dcc95c37d84037c38973e3136d31280a0339c55', 'hash': '4dcc95c37d84037c38973e3136d31280a0339c55'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-12T19:49:05-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/IOS/USB/Bluetooth/WiimoteDevice.cpp'], 'removed': [], 'message': "Merge pull request #14976 from JoeysRetroHandhelds/wiimote-null-hid-source\n\nWiimoteDevice: Don't send output reports to a null HID source", 'url': 'https://github.com/dolphin-emu/dolphin/commit/9cef41db5f6a2492fd7800c285ca9b039406606d', 'hash': '9cef41db5f6a2492fd7800c285ca9b039406606d'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-13T00:18:38.400168 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '4380df98287810ce9b69832b2f52023a220931e8', 'after_sha': '21f3f312177cf4f1daeb2f312f096e0cd7482087', 'commits': [{'author': {'name': 'Maxim Cournoyer', 'email': 'maxim@guixotic.coop', 'date': '2026-09-03T11:31:34+09:00'}, 'distinct': False, 'added': [], 'modified': ['CMake/DolphinLibraryTools.cmake'], 'removed': [], 'message': 'cmake: Find newer optional system libraries first.\n\nNew is usually better; currently the newest version is also the one that is\nshown when the search fails.\n\n* CMake/DolphinLibraryTools.cmake: Sort versions list provided by\nDOLPHIN_TRY_VERSIONS in descending order.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/b9bd69d57ec6f97447bd7382659a9c3c882dba9a', 'hash': 'b9bd69d57ec6f97447bd7382659a9c3c882dba9a'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-12T18:18:35-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['CMake/DolphinLibraryTools.cmake'], 'removed': [], 'message': 'Merge pull request #14841 from apteryks/try-newer-glslang-versions-first\n\ncmake: Try newer glslang versions first.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/21f3f312177cf4f1daeb2f312f096e0cd7482087', 'hash': '21f3f312177cf4f1daeb2f312f096e0cd7482087'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-13T00:16:14.517915 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'cf21d5dc0be92e274b15ab1917e7308f8139d310', 'after_sha': '4380df98287810ce9b69832b2f52023a220931e8', 'commits': [{'author': {'name': 'Lakhan Lothiyi', 'email': 'llsc12.dev@gmail.com', 'date': '2026-07-03T03:55:04+01:00', 'username': 'llsc12'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/CheatsManager.cpp', 'Source/Core/DolphinQt/CheatsManager.h'], 'removed': [], 'message': 'fix cheat manager crash', 'url': 'https://github.com/dolphin-emu/dolphin/commit/016e11d73621005cc2b7d20244884b72e286b4a5', 'hash': '016e11d73621005cc2b7d20244884b72e286b4a5'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-12T18:16:11-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinQt/CheatsManager.cpp', 'Source/Core/DolphinQt/CheatsManager.h'], 'removed': [], 'message': 'Merge pull request #14713 from llsc12/master\n\nFix cheatsmanager crash', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4380df98287810ce9b69832b2f52023a220931e8', 'hash': '4380df98287810ce9b69832b2f52023a220931e8'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-13T00:07:30.512629 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '836045f9cd3f31a596a9073065ad6fd81ab0cce1', 'after_sha': 'cf21d5dc0be92e274b15ab1917e7308f8139d310', 'commits': [{'author': {'name': 'Martino Fontana', 'email': 'tinozzo123@gmail.com', 'date': '2026-09-15T18:20:05+02:00', 'username': 'SuperSamus'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Common/MathUtil.h', 'Source/Core/VideoCommon/PerformanceTracker.cpp', 'Source/Core/VideoCommon/PerformanceTracker.h'], 'removed': [], 'message': "PerformanceTracker: Small cleanup, properly use RunningVariance for the standard deviation\n\nUpdateStats() was calculating the standard deviation from the entirety of m_dt_queue, which has a noticeable performance impact when the frame rates are very high.\nOn a scene so light it runs at 3000 FPS, UpdateStats() was taking around 5% of the profiling (at default 1s sample window). Now it doesn't.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/c6e63fb3ab481ec2b5fd41a8ea8ab9d7597250e1', 'hash': 'c6e63fb3ab481ec2b5fd41a8ea8ab9d7597250e1'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-12T18:07:27-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Common/MathUtil.h', 'Source/Core/VideoCommon/PerformanceTracker.cpp', 'Source/Core/VideoCommon/PerformanceTracker.h'], 'removed': [], 'message': 'Merge pull request #14877 from SuperSamus/performance-tracker-variance-fixup\n\nPerformanceTracker: Small cleanup, properly use RunningVariance for the standard deviation', 'url': 'https://github.com/dolphin-emu/dolphin/commit/cf21d5dc0be92e274b15ab1917e7308f8139d310', 'hash': 'cf21d5dc0be92e274b15ab1917e7308f8139d310'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-13T00:00:45.978459 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'cd92a628f37c19333f5c5ee84c43aeb4b48ec9e3', 'after_sha': '836045f9cd3f31a596a9073065ad6fd81ab0cce1', 'commits': [{'author': {'name': 'dok.slade', 'email': 'dok.slade@gmail.com', 'date': '2026-11-11T15:59:56Z', 'username': 'dokslade'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Config/FilesystemWidget.cpp'], 'removed': [], 'message': "DolphinQt: Fix use-after-free of FilesystemWidget context menu\n\nThe context menu was created with Qt::WA_DeleteOnClose, but its actions\nopen modal dialogs from within QMenu's own activation code. A nested\nevent loop could process the menu's deferred deletion before control\nreturned to QMenu, which then accessed freed memory, causing crashes or\nheap corruption.\n\nOwn the menu with a std::unique_ptr so it is only destroyed once\nQMenu::exec has returned.\n\nFixes https://bugs.dolphin-emu.org/issues/13816", 'url': 'https://github.com/dolphin-emu/dolphin/commit/3ad596102a29095b23e58d509e2fd5d130241350', 'hash': '3ad596102a29095b23e58d509e2fd5d130241350'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-12T18:00:42-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinQt/Config/FilesystemWidget.cpp'], 'removed': [], 'message': 'Merge pull request #15011 from dokslade/filesystemwidget-menu-uaf\n\nDolphinQt: Fix use-after-free of FilesystemWidget context menu', 'url': 'https://github.com/dolphin-emu/dolphin/commit/836045f9cd3f31a596a9073065ad6fd81ab0cce1', 'hash': '836045f9cd3f31a596a9073065ad6fd81ab0cce1'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-12T23:58:41.610580 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'db2afcbdf8f5175a6b8414d9f5e21c978775f651', 'after_sha': 'cd92a628f37c19333f5c5ee84c43aeb4b48ec9e3', 'commits': [{'author': {'name': 'VampireFlower', 'email': 'monstercatspedup1@gmail.com', 'date': '2026-09-18T08:25:45-06:00', 'username': 'VampireFlower'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceGecko.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceGecko.h'], 'removed': [], 'message': 'Optimize USB Gecko Emulation', 'url': 'https://github.com/dolphin-emu/dolphin/commit/3ce096543c55fc12ca308f0300641c2f2b803993', 'hash': '3ce096543c55fc12ca308f0300641c2f2b803993'}, {'author': {'name': 'VampireFlower', 'email': 'monstercatspedup1@gmail.com', 'date': '2026-09-19T17:41:47-06:00', 'username': 'VampireFlower'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceGecko.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceGecko.h'], 'removed': [], 'message': 'USB Gecko: Split transfer and receive locks & verify sent amount', 'url': 'https://github.com/dolphin-emu/dolphin/commit/af6c1f26d3ad3324b4273c49b08ee31d39500431', 'hash': 'af6c1f26d3ad3324b4273c49b08ee31d39500431'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-12T17:58:38-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceGecko.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceGecko.h'], 'removed': [], 'message': 'Merge pull request #14876 from VampireFlower/usbgecko\n\nOptimize USB Gecko Emulation', 'url': 'https://github.com/dolphin-emu/dolphin/commit/cd92a628f37c19333f5c5ee84c43aeb4b48ec9e3', 'hash': 'cd92a628f37c19333f5c5ee84c43aeb4b48ec9e3'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-11T20:08:30.787085 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'iwubcode', 'before_sha': 'c830c9ec4b1d9ebb1e14b1b592b8ba03a1a0b759', 'after_sha': 'db2afcbdf8f5175a6b8414d9f5e21c978775f651', 'commits': [{'author': {'name': 'Clownacy', 'email': 'Clownacy@users.noreply.github.com', 'date': '2025-06-29T10:51:41+01:00', 'username': 'Clownacy'}, 'distinct': False, 'added': ['Data/Sys/Shaders/crt_lottes_fast.glsl', 'Data/Sys/Shaders/crt_pi.glsl'], 'modified': [], 'removed': [], 'message': "Add CRT shaders\n\nI've ported a couple of shaders from RetroArch - particularly the\ncrt-pi and crt-lottes-fast ones. Unlike other shaders such as\ncrt-royale, these shaders are single-pass, allowing them to work\nwithin Dolphin's framework. These look pretty good when paired with\nnative resolution and SSAA.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/67c4c8fd7ff05982ea2344b4ec70e9f901a1a894', 'hash': '67c4c8fd7ff05982ea2344b4ec70e9f901a1a894'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-10-28T15:43:45-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Data/Sys/Shaders/crt_pi.glsl'], 'removed': [], 'message': 'Shaders/crt_pi: Alter scanline weight calculation to use a fixed number of scanlines.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/471988131524e6856d83ac3672d7853659abe0ce', 'hash': '471988131524e6856d83ac3672d7853659abe0ce'}, {'author': {'name': 'iwubcode', 'email': 'iwubcode@users.noreply.github.com', 'date': '2026-11-11T14:08:27-06:00', 'username': 'iwubcode'}, 'distinct': True, 'added': ['Data/Sys/Shaders/crt_lottes_fast.glsl', 'Data/Sys/Shaders/crt_pi.glsl'], 'modified': [], 'removed': [], 'message': 'Merge pull request #12014 from Clownacy/master\n\nAdd CRT shaders', 'url': 'https://github.com/dolphin-emu/dolphin/commit/db2afcbdf8f5175a6b8414d9f5e21c978775f651', 'hash': 'db2afcbdf8f5175a6b8414d9f5e21c978775f651'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-11T19:05:54.612692 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '36982a2b32e8dec9107618d5db923e5b8aabcd87', 'after_sha': 'c830c9ec4b1d9ebb1e14b1b592b8ba03a1a0b759', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'date': '2026-10-24T16:43:48+02:00', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Externals/glslang/CMakeLists.txt'], 'removed': [], 'message': 'Externals/glslang: Fix Clang header conflicts', 'url': 'https://github.com/dolphin-emu/dolphin/commit/7657e69805d89531a82169de1fd8231acdd6214a', 'hash': '7657e69805d89531a82169de1fd8231acdd6214a'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-11T13:05:51-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Externals/glslang/CMakeLists.txt'], 'removed': [], 'message': 'Merge pull request #15009 from JoshuaVandaele/clang-include-weirdness\n\nExternals/glslang: Fix Clang header conflicts', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c830c9ec4b1d9ebb1e14b1b592b8ba03a1a0b759', 'hash': 'c830c9ec4b1d9ebb1e14b1b592b8ba03a1a0b759'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-11T03:28:11.809494 {'source': 'ghhookparser', 'repo': 'dolphin-emu/sadm', 'pusher': 'OatmealDome', 'before_sha': 'b6f020f4f1666cdd151cea2f3283f714e6457d7b', 'after_sha': 'f2a02a6e487837a8c4a5fd9c5bb927b70ea9b0b3', 'commits': [{'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'date': '2026-11-10T19:03:24-05:00', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['roles/flatpak-worker/utils/clean_cache.sh'], 'removed': [], 'message': 'flatpak-worker: Decrease maximum cache size to 5GB', 'url': 'https://github.com/dolphin-emu/sadm/commit/f2a02a6e487837a8c4a5fd9c5bb927b70ea9b0b3', 'hash': 'f2a02a6e487837a8c4a5fd9c5bb927b70ea9b0b3'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
Recent 'internal_log' events
2026-11-14T23:47:53.948988 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'leoetlino,spxtr,Tilka,cscd98,gwicks,dreamsyntax,jjdelvalle,iwubcode,RisingFog,Sintendo,bentley,SuperSamus,Starsam80,cristian64,LPFaint99,aroulin,linkmauve,tygyh,Stevoisiak,corwin-mcknight,K0bin,SirMangler,mmastrac,magumagu,CasualPokePlayer,PatrickFerry,mitaclaw,CrystalGamma,Linktothepast,aldelaro5,krnlyng,Hydr8gon,Techjar,Parlane,shonumi,skidau,sepalani,nullgemm,yourWaifu,mbc07,Ziek,NanoByte011,Orphis,kayru,Gamer64ytb,LillyJadeKatrin,BhaaLseN,JoshuaVandaele,Lobsterzelda,moncefmechri,EmptyChaos,kamiyo,mahdihijazi,magcius,smurf3tte,deReeperJosh,Simonx22,adamdmoss,Filoppi,JosJuice,Buddybenj,Dentomologist,hrydgard,malleoz,Ebola16,CrossVR,glennricster,galop1n,neobrain,unknownbrackets,mandar1jn,Geotale,hackbar,CookiePLMonster,mrgreywater,randomstuff,FioraAeterna,orbea,Helios747,comex,MayImilae,meffij,ShimmerGlass,Sir-Walrus,tom-pratt,jezze,nickbeth,crediar,archshift,jloehr,Sam-Belliveau,marcan,rukai,skylersaleh,JordanTheToaster,Pokechu22,CelestialAmber,AdmiralCurtiss,hthh,jordan-woyak,DacoTaco,phire,Zopolis4,booto,endrift,mimimi085181,delroth,spycrab,TryTwo,RachelBryk,vladfi1,merryhime,riking,Linkinworm,OrN,ColinDTaylor,ligfx,TellowKrinkle,Phatcat,noahpistilli,zackhow,lioncash,Tinob,VampireFlower,LAGonauta,hdcmeta,rlnilsen,mathieui,OatmealDome,JMC47,degasus,zopieux')", 'type': 'internal_log'}
2026-11-14T23:47:52.340734 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-11-14T23:42:52.340256 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'leoetlino,spxtr,Tilka,cscd98,gwicks,dreamsyntax,jjdelvalle,iwubcode,RisingFog,Sintendo,bentley,SuperSamus,Starsam80,cristian64,LPFaint99,aroulin,linkmauve,tygyh,Stevoisiak,corwin-mcknight,K0bin,SirMangler,mmastrac,magumagu,CasualPokePlayer,PatrickFerry,mitaclaw,CrystalGamma,Linktothepast,aldelaro5,krnlyng,Hydr8gon,Techjar,Parlane,shonumi,skidau,sepalani,nullgemm,yourWaifu,mbc07,Ziek,NanoByte011,Orphis,kayru,Gamer64ytb,LillyJadeKatrin,BhaaLseN,JoshuaVandaele,Lobsterzelda,moncefmechri,EmptyChaos,kamiyo,mahdihijazi,magcius,smurf3tte,deReeperJosh,Simonx22,adamdmoss,Filoppi,JosJuice,Buddybenj,Dentomologist,hrydgard,malleoz,Ebola16,CrossVR,glennricster,galop1n,neobrain,unknownbrackets,mandar1jn,Geotale,hackbar,CookiePLMonster,mrgreywater,randomstuff,FioraAeterna,orbea,Helios747,comex,MayImilae,meffij,ShimmerGlass,Sir-Walrus,tom-pratt,jezze,nickbeth,crediar,archshift,jloehr,Sam-Belliveau,marcan,rukai,skylersaleh,JordanTheToaster,Pokechu22,CelestialAmber,AdmiralCurtiss,hthh,jordan-woyak,DacoTaco,phire,Zopolis4,booto,endrift,mimimi085181,delroth,spycrab,TryTwo,RachelBryk,vladfi1,merryhime,riking,Linkinworm,OrN,ColinDTaylor,ligfx,TellowKrinkle,Phatcat,noahpistilli,zackhow,lioncash,Tinob,VampireFlower,LAGonauta,hdcmeta,rlnilsen,mathieui,OatmealDome,JMC47,degasus,zopieux')", 'type': 'internal_log'}
2026-11-14T23:42:50.844772 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-11-14T23:42:42.601086 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,leoetlino,OatmealDome,CrossVR,iwubcode,Tilka,degasus,Pokechu22,linkmauve,AdmiralCurtiss,JosJuice,jordan-woyak,Dentomologist')", 'type': 'internal_log'}
2026-11-14T23:42:42.287818 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-11-14T23:37:50.844335 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'leoetlino,spxtr,Tilka,cscd98,gwicks,dreamsyntax,jjdelvalle,iwubcode,RisingFog,Sintendo,bentley,SuperSamus,Starsam80,cristian64,LPFaint99,aroulin,linkmauve,tygyh,Stevoisiak,corwin-mcknight,K0bin,SirMangler,mmastrac,magumagu,CasualPokePlayer,PatrickFerry,mitaclaw,CrystalGamma,Linktothepast,aldelaro5,krnlyng,Hydr8gon,Techjar,Parlane,shonumi,skidau,sepalani,nullgemm,yourWaifu,mbc07,Ziek,NanoByte011,Orphis,kayru,Gamer64ytb,LillyJadeKatrin,BhaaLseN,JoshuaVandaele,Lobsterzelda,moncefmechri,EmptyChaos,kamiyo,mahdihijazi,magcius,smurf3tte,deReeperJosh,Simonx22,adamdmoss,Filoppi,JosJuice,Buddybenj,Dentomologist,hrydgard,malleoz,Ebola16,CrossVR,glennricster,galop1n,neobrain,unknownbrackets,mandar1jn,Geotale,hackbar,CookiePLMonster,mrgreywater,randomstuff,FioraAeterna,orbea,Helios747,comex,MayImilae,meffij,ShimmerGlass,Sir-Walrus,tom-pratt,jezze,nickbeth,crediar,archshift,jloehr,Sam-Belliveau,marcan,rukai,skylersaleh,JordanTheToaster,Pokechu22,CelestialAmber,AdmiralCurtiss,hthh,jordan-woyak,DacoTaco,phire,Zopolis4,booto,endrift,mimimi085181,delroth,spycrab,TryTwo,RachelBryk,vladfi1,merryhime,riking,Linkinworm,OrN,ColinDTaylor,ligfx,TellowKrinkle,Phatcat,noahpistilli,zackhow,lioncash,Tinob,VampireFlower,LAGonauta,hdcmeta,rlnilsen,mathieui,OatmealDome,JMC47,degasus,zopieux')", 'type': 'internal_log'}
2026-11-14T23:37:49.271098 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-11-14T23:36:45.219978 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/buildbot.py', 'lineno': 131, 'msg': 'PR %s mergeable: %s (%s)', 'args': "(15024, None, 'unknown')", 'type': 'internal_log'}
2026-11-14T23:32:49.270655 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'leoetlino,spxtr,Tilka,cscd98,gwicks,dreamsyntax,jjdelvalle,iwubcode,RisingFog,Sintendo,bentley,SuperSamus,Starsam80,cristian64,LPFaint99,aroulin,linkmauve,tygyh,Stevoisiak,corwin-mcknight,K0bin,SirMangler,mmastrac,magumagu,CasualPokePlayer,PatrickFerry,mitaclaw,CrystalGamma,Linktothepast,aldelaro5,krnlyng,Hydr8gon,Techjar,Parlane,shonumi,skidau,sepalani,nullgemm,yourWaifu,mbc07,Ziek,NanoByte011,Orphis,kayru,Gamer64ytb,LillyJadeKatrin,BhaaLseN,JoshuaVandaele,Lobsterzelda,moncefmechri,EmptyChaos,kamiyo,mahdihijazi,magcius,smurf3tte,deReeperJosh,Simonx22,adamdmoss,Filoppi,JosJuice,Buddybenj,Dentomologist,hrydgard,malleoz,Ebola16,CrossVR,glennricster,galop1n,neobrain,unknownbrackets,mandar1jn,Geotale,hackbar,CookiePLMonster,mrgreywater,randomstuff,FioraAeterna,orbea,Helios747,comex,MayImilae,meffij,ShimmerGlass,Sir-Walrus,tom-pratt,jezze,nickbeth,crediar,archshift,jloehr,Sam-Belliveau,marcan,rukai,skylersaleh,JordanTheToaster,Pokechu22,CelestialAmber,AdmiralCurtiss,hthh,jordan-woyak,DacoTaco,phire,Zopolis4,booto,endrift,mimimi085181,delroth,spycrab,TryTwo,RachelBryk,vladfi1,merryhime,riking,Linkinworm,OrN,ColinDTaylor,ligfx,TellowKrinkle,Phatcat,noahpistilli,zackhow,lioncash,Tinob,VampireFlower,LAGonauta,hdcmeta,rlnilsen,mathieui,OatmealDome,JMC47,degasus,zopieux')", 'type': 'internal_log'}
2026-11-14T23:32:47.767283 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-11-14T23:32:42.287549 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,leoetlino,OatmealDome,CrossVR,iwubcode,Tilka,degasus,Pokechu22,linkmauve,AdmiralCurtiss,JosJuice,jordan-woyak,Dentomologist')", 'type': 'internal_log'}
2026-11-14T23:32:41.946406 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-11-14T23:27:47.766837 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'leoetlino,spxtr,Tilka,cscd98,gwicks,dreamsyntax,jjdelvalle,iwubcode,RisingFog,Sintendo,bentley,SuperSamus,Starsam80,cristian64,LPFaint99,aroulin,linkmauve,tygyh,Stevoisiak,corwin-mcknight,K0bin,SirMangler,mmastrac,magumagu,CasualPokePlayer,PatrickFerry,mitaclaw,CrystalGamma,Linktothepast,aldelaro5,krnlyng,Hydr8gon,Techjar,Parlane,shonumi,skidau,sepalani,nullgemm,yourWaifu,mbc07,Ziek,NanoByte011,Orphis,kayru,Gamer64ytb,LillyJadeKatrin,BhaaLseN,JoshuaVandaele,Lobsterzelda,moncefmechri,EmptyChaos,kamiyo,mahdihijazi,magcius,smurf3tte,deReeperJosh,Simonx22,adamdmoss,Filoppi,JosJuice,Buddybenj,Dentomologist,hrydgard,malleoz,Ebola16,CrossVR,glennricster,galop1n,neobrain,unknownbrackets,mandar1jn,Geotale,hackbar,CookiePLMonster,mrgreywater,randomstuff,FioraAeterna,orbea,Helios747,comex,MayImilae,meffij,ShimmerGlass,Sir-Walrus,tom-pratt,jezze,nickbeth,crediar,archshift,jloehr,Sam-Belliveau,marcan,rukai,skylersaleh,JordanTheToaster,Pokechu22,CelestialAmber,AdmiralCurtiss,hthh,jordan-woyak,DacoTaco,phire,Zopolis4,booto,endrift,mimimi085181,delroth,spycrab,TryTwo,RachelBryk,vladfi1,merryhime,riking,Linkinworm,OrN,ColinDTaylor,ligfx,TellowKrinkle,Phatcat,noahpistilli,zackhow,lioncash,Tinob,VampireFlower,LAGonauta,hdcmeta,rlnilsen,mathieui,OatmealDome,JMC47,degasus,zopieux')", 'type': 'internal_log'}
2026-11-14T23:27:46.199483 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-11-14T23:26:14.926538 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/buildbot.py', 'lineno': 131, 'msg': 'PR %s mergeable: %s (%s)', 'args': "(14995, None, 'unknown')", 'type': 'internal_log'}
2026-11-14T23:22:46.197798 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'leoetlino,spxtr,Tilka,cscd98,gwicks,dreamsyntax,jjdelvalle,iwubcode,RisingFog,Sintendo,bentley,SuperSamus,Starsam80,cristian64,LPFaint99,aroulin,linkmauve,tygyh,Stevoisiak,corwin-mcknight,K0bin,SirMangler,mmastrac,magumagu,CasualPokePlayer,PatrickFerry,mitaclaw,CrystalGamma,Linktothepast,aldelaro5,krnlyng,Hydr8gon,Techjar,Parlane,shonumi,skidau,sepalani,nullgemm,yourWaifu,mbc07,Ziek,NanoByte011,Orphis,kayru,Gamer64ytb,LillyJadeKatrin,BhaaLseN,JoshuaVandaele,Lobsterzelda,moncefmechri,EmptyChaos,kamiyo,mahdihijazi,magcius,smurf3tte,deReeperJosh,Simonx22,adamdmoss,Filoppi,JosJuice,Buddybenj,Dentomologist,hrydgard,malleoz,Ebola16,CrossVR,glennricster,galop1n,neobrain,unknownbrackets,mandar1jn,Geotale,hackbar,CookiePLMonster,mrgreywater,randomstuff,FioraAeterna,orbea,Helios747,comex,MayImilae,meffij,ShimmerGlass,Sir-Walrus,tom-pratt,jezze,nickbeth,crediar,archshift,jloehr,Sam-Belliveau,marcan,rukai,skylersaleh,JordanTheToaster,Pokechu22,CelestialAmber,AdmiralCurtiss,hthh,jordan-woyak,DacoTaco,phire,Zopolis4,booto,endrift,mimimi085181,delroth,spycrab,TryTwo,RachelBryk,vladfi1,merryhime,riking,Linkinworm,OrN,ColinDTaylor,ligfx,TellowKrinkle,Phatcat,noahpistilli,zackhow,lioncash,Tinob,VampireFlower,LAGonauta,hdcmeta,rlnilsen,mathieui,OatmealDome,JMC47,degasus,zopieux')", 'type': 'internal_log'}
2026-11-14T23:22:44.615500 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-11-14T23:22:41.945528 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,leoetlino,OatmealDome,CrossVR,iwubcode,Tilka,degasus,Pokechu22,linkmauve,AdmiralCurtiss,JosJuice,jordan-woyak,Dentomologist')", 'type': 'internal_log'}
2026-11-14T23:22:41.624381 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-11-14T23:18:02.273338 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/discord/gateway.py', 'lineno': 584, 'msg': 'Shard ID %s has successfully RESUMED session %s.', 'args': "(None, 'b01318681db6e2643e72f60bbf2728f5')", 'type': 'internal_log'}
2026-11-14T23:17:44.614509 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'leoetlino,spxtr,Tilka,cscd98,gwicks,dreamsyntax,jjdelvalle,iwubcode,RisingFog,Sintendo,bentley,SuperSamus,Starsam80,cristian64,LPFaint99,aroulin,linkmauve,tygyh,Stevoisiak,corwin-mcknight,K0bin,SirMangler,mmastrac,magumagu,CasualPokePlayer,PatrickFerry,mitaclaw,CrystalGamma,Linktothepast,aldelaro5,krnlyng,Hydr8gon,Techjar,Parlane,shonumi,skidau,sepalani,nullgemm,yourWaifu,mbc07,Ziek,NanoByte011,Orphis,kayru,Gamer64ytb,LillyJadeKatrin,BhaaLseN,JoshuaVandaele,Lobsterzelda,moncefmechri,EmptyChaos,kamiyo,mahdihijazi,magcius,smurf3tte,deReeperJosh,Simonx22,adamdmoss,Filoppi,JosJuice,Buddybenj,Dentomologist,hrydgard,malleoz,Ebola16,CrossVR,glennricster,galop1n,neobrain,unknownbrackets,mandar1jn,Geotale,hackbar,CookiePLMonster,mrgreywater,randomstuff,FioraAeterna,orbea,Helios747,comex,MayImilae,meffij,ShimmerGlass,Sir-Walrus,tom-pratt,jezze,nickbeth,crediar,archshift,jloehr,Sam-Belliveau,marcan,rukai,skylersaleh,JordanTheToaster,Pokechu22,CelestialAmber,AdmiralCurtiss,hthh,jordan-woyak,DacoTaco,phire,Zopolis4,booto,endrift,mimimi085181,delroth,spycrab,TryTwo,RachelBryk,vladfi1,merryhime,riking,Linkinworm,OrN,ColinDTaylor,ligfx,TellowKrinkle,Phatcat,noahpistilli,zackhow,lioncash,Tinob,VampireFlower,LAGonauta,hdcmeta,rlnilsen,mathieui,OatmealDome,JMC47,degasus,zopieux')", 'type': 'internal_log'}
2026-11-14T23:17:43.000837 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-11-14T23:12:43.000409 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'leoetlino,spxtr,Tilka,cscd98,gwicks,dreamsyntax,jjdelvalle,iwubcode,RisingFog,Sintendo,bentley,SuperSamus,Starsam80,cristian64,LPFaint99,aroulin,linkmauve,tygyh,Stevoisiak,corwin-mcknight,K0bin,SirMangler,mmastrac,magumagu,CasualPokePlayer,PatrickFerry,mitaclaw,CrystalGamma,Linktothepast,aldelaro5,krnlyng,Hydr8gon,Techjar,Parlane,shonumi,skidau,sepalani,nullgemm,yourWaifu,mbc07,Ziek,NanoByte011,Orphis,kayru,Gamer64ytb,LillyJadeKatrin,BhaaLseN,JoshuaVandaele,Lobsterzelda,moncefmechri,EmptyChaos,kamiyo,mahdihijazi,magcius,smurf3tte,deReeperJosh,Simonx22,adamdmoss,Filoppi,JosJuice,Buddybenj,Dentomologist,hrydgard,malleoz,Ebola16,CrossVR,glennricster,galop1n,neobrain,unknownbrackets,mandar1jn,Geotale,hackbar,CookiePLMonster,mrgreywater,randomstuff,FioraAeterna,orbea,Helios747,comex,MayImilae,meffij,ShimmerGlass,Sir-Walrus,tom-pratt,jezze,nickbeth,crediar,archshift,jloehr,Sam-Belliveau,marcan,rukai,skylersaleh,JordanTheToaster,Pokechu22,CelestialAmber,AdmiralCurtiss,hthh,jordan-woyak,DacoTaco,phire,Zopolis4,booto,endrift,mimimi085181,delroth,spycrab,TryTwo,RachelBryk,vladfi1,merryhime,riking,Linkinworm,OrN,ColinDTaylor,ligfx,TellowKrinkle,Phatcat,noahpistilli,zackhow,lioncash,Tinob,VampireFlower,LAGonauta,hdcmeta,rlnilsen,mathieui,OatmealDome,JMC47,degasus,zopieux')", 'type': 'internal_log'}
2026-11-14T23:12:41.624065 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,leoetlino,OatmealDome,CrossVR,iwubcode,Tilka,degasus,Pokechu22,linkmauve,AdmiralCurtiss,JosJuice,jordan-woyak,Dentomologist')", 'type': 'internal_log'}
Recent 'issue' events
2026-11-14T21:45:43.539934 {'source': 'redmine', 'new': False, 'update': 6, 'issue': 14182, 'title': 'Crash in Rogue Squadron 2, at the same time every launch.', 'author': 'Billiard26', 'type': 'issue'}
2026-11-14T21:08:37.972990 {'source': 'redmine', 'new': False, 'update': 5, 'issue': 14182, 'title': 'Crash in Rogue Squadron 2, at the same time every launch.', 'author': 'JosJuice', 'type': 'issue'}
2026-11-14T21:00:27.712954 {'source': 'redmine', 'new': False, 'update': 4, 'issue': 14182, 'title': 'Crash in Rogue Squadron 2, at the same time every launch.', 'author': 'JosJuice', 'type': 'issue'}
2026-11-14T20:59:16.778255 {'source': 'redmine', 'new': False, 'update': 3, 'issue': 14182, 'title': 'Crash in Rogue Squadron 2, at the same time every launch.', 'author': 'clairish', 'type': 'issue'}
2026-11-14T20:44:02.064959 {'source': 'redmine', 'new': False, 'update': 2, 'issue': 14182, 'title': 'Crash in Rogue Squadron 2, at the same time every launch.', 'author': 'Billiard26', 'type': 'issue'}
2026-11-14T20:40:37.444613 {'source': 'redmine', 'new': True, 'update': 0, 'issue': 14182, 'title': 'Crash in Rogue Squadron 2, at the same time every launch.', 'author': 'clairish', 'type': 'issue'}
2026-11-14T18:56:39.223556 {'source': 'redmine', 'new': False, 'update': 5, 'issue': 13119, 'title': 'Kirby Air Ride texture behavior does not match original hardware', 'author': 'flacs', 'type': 'issue'}
2026-11-14T15:14:38.145201 {'source': 'redmine', 'new': False, 'update': 15, 'issue': 13354, 'title': 'Games stop responding to input after losing focus once (Linux, OpenGL)', 'author': 'JosJuice', 'type': 'issue'}
2026-11-13T20:44:24.389420 {'source': 'redmine', 'new': False, 'update': 7, 'issue': 14181, 'title': 'FPS display continues to increases with play time.', 'author': 'Billiard26', 'type': 'issue'}
2026-11-13T19:56:18.349021 {'source': 'redmine', 'new': False, 'update': 3, 'issue': 13574, 'title': 'OGL Video Info OSD message appears multiple times on emulation startup', 'author': 'Billiard26', 'type': 'issue'}
2026-11-13T16:13:41.552614 {'source': 'redmine', 'new': False, 'update': 6, 'issue': 14181, 'title': 'FPS display continues to increases with play time.', 'author': 'AtomicCandy', 'type': 'issue'}
2026-11-13T10:12:56.212185 {'source': 'redmine', 'new': False, 'update': 4, 'issue': 14134, 'title': 'New Development Releases cannot run any game!', 'author': 'Billiard26', 'type': 'issue'}
2026-11-13T10:12:44.105611 {'source': 'redmine', 'new': False, 'update': 7, 'issue': 14147, 'title': 'Mac: Unable to resolve read address 812fffc8 PC 500', 'author': 'Billiard26', 'type': 'issue'}
2026-11-13T10:12:19.018201 {'source': 'redmine', 'new': False, 'update': 6, 'issue': 14147, 'title': 'Mac: Unable to resolve read address 812fffc8 PC 500', 'author': 'Billiard26', 'type': 'issue'}
2026-11-13T10:10:39.182429 {'source': 'redmine', 'new': False, 'update': 3, 'issue': 14134, 'title': 'New Development Releases cannot run any game!', 'author': 'Billiard26', 'type': 'issue'}
2026-11-13T10:07:06.587811 {'source': 'redmine', 'new': False, 'update': 5, 'issue': 14126, 'title': 'Aspect ratio problem in R:Racing', 'author': 'Billiard26', 'type': 'issue'}
2026-11-13T09:54:56.083451 {'source': 'redmine', 'new': False, 'update': 2, 'issue': 14178, 'title': 'macOS: PSVR2 Sense controllers cause excessive SDL CPU usage and severe emulation slowdown', 'author': 'Billiard26', 'type': 'issue'}
2026-11-13T09:50:30.364211 {'source': 'redmine', 'new': False, 'update': 5, 'issue': 14181, 'title': 'FPS display continues to increases with play time.', 'author': 'Billiard26', 'type': 'issue'}
2026-11-13T06:42:27.097806 {'source': 'redmine', 'new': False, 'update': 4, 'issue': 14181, 'title': 'FPS display continues to increases with play time.', 'author': 'AtomicCandy', 'type': 'issue'}
2026-11-13T05:43:06.459589 {'source': 'redmine', 'new': False, 'update': 3, 'issue': 14181, 'title': 'FPS display continues to increases with play time.', 'author': 'Billiard26', 'type': 'issue'}
2026-11-13T04:45:20.182458 {'source': 'redmine', 'new': False, 'update': 2, 'issue': 14181, 'title': 'FPS display continues to increases with play time.', 'author': 'Billiard26', 'type': 'issue'}
2026-11-13T04:29:48.839191 {'source': 'redmine', 'new': True, 'update': 0, 'issue': 14181, 'title': 'FPS display continues to increases with play time.', 'author': 'AtomicCandy', 'type': 'issue'}
2026-11-12T22:08:57.802497 {'source': 'redmine', 'new': False, 'update': 8, 'issue': 8037, 'title': '1080 Snowboarding (VC N64) Requires Accurate icache emulation', 'author': 'dok.slade', 'type': 'issue'}
2026-11-11T22:23:29.754680 {'source': 'redmine', 'new': False, 'update': 2, 'issue': 14180, 'title': '[Android] Add option to choose external display (XR glasses)', 'author': 'Billiard26', 'type': 'issue'}
2026-11-11T22:16:06.246209 {'source': 'redmine', 'new': True, 'update': 0, 'issue': 14180, 'title': '[Android] Add option to choose external display (XR glasses)', 'author': 'RationalRepublic', 'type': 'issue'}
Recent 'new_dev_version' events
2026-11-14T21:44:14.184083 {'source': 'repomanager', 'hash': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'branch': 'master', 'shortrev': '2609-238', 'author': 'Jordan Woyak', 'message': 'Merge pull request #15023 from jordan-woyak/rs2-remove-ws-code\n\nGameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'type': 'new_dev_version'}
2026-11-14T20:57:37.023061 {'source': 'repomanager', 'hash': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'branch': 'master', 'shortrev': '2609-236', 'author': 'Jordan Woyak', 'message': 'Merge pull request #15006 from Sintendo/mfspr-movsx\n\nJit64: mfspr - Sign-extend slice_length', 'url': 'https://github.com/dolphin-emu/dolphin/commit/334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'type': 'new_dev_version'}
2026-11-14T19:49:35.318785 {'source': 'repomanager', 'hash': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'branch': 'master', 'shortrev': '2609-233', 'author': 'Jordan Woyak', 'message': 'Merge pull request #13704 from unexploredtest/cmake_source\n\nCMake: Fix relative pathing when project is imported', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'type': 'new_dev_version'}
2026-11-14T19:03:12.080815 {'source': 'repomanager', 'hash': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'branch': 'master', 'shortrev': '2609-231', 'author': 'JosJuice', 'message': 'Merge pull request #14978 from JoshuaVandaele/quick-stop-hang\n\nCPU: Fix quickly-stopped games hanging Dolphin', 'url': 'https://github.com/dolphin-emu/dolphin/commit/be0e304c02341d676cfbbf0cefacb965d2b5be79', 'type': 'new_dev_version'}
2026-11-14T14:51:32.089839 {'source': 'repomanager', 'hash': '761713cec9ce883d9ef8ea9a2cf65b6f09e79932', 'branch': 'master', 'shortrev': '2609-229', 'author': 'JosJuice', 'message': "Merge pull request #15012 from dokslade/gl-x11-event-mask\n\nGLX11Window: Don't override the host's event mask on the parent window", 'url': 'https://github.com/dolphin-emu/dolphin/commit/761713cec9ce883d9ef8ea9a2cf65b6f09e79932', 'type': 'new_dev_version'}
2026-11-13T22:08:07.961607 {'source': 'repomanager', 'hash': '44e0c5663af1b37f71bad7fb73281f4d0677bd51', 'branch': 'master', 'shortrev': '2609-227', 'author': 'Jordan Woyak', 'message': 'Merge pull request #15022 from hamidzr/fixtypos\n\nFix typos in documentation', 'url': 'https://github.com/dolphin-emu/dolphin/commit/44e0c5663af1b37f71bad7fb73281f4d0677bd51', 'type': 'new_dev_version'}
2026-11-13T20:44:03.917925 {'source': 'repomanager', 'hash': '5c496d1838a20660590fece1edfdf58148f80a60', 'branch': 'master', 'shortrev': '2609-225', 'author': 'Jordan Woyak', 'message': 'Merge pull request #15019 from jordan-woyak/perf-track-fps-fix\n\nPerformanceTracker: Fix broken FPS calculation on Windows after a multi-second delay.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5c496d1838a20660590fece1edfdf58148f80a60', 'type': 'new_dev_version'}
2026-11-13T19:55:33.836573 {'source': 'repomanager', 'hash': 'e66427c87eb75e70a893270a8078045796b83df4', 'branch': 'master', 'shortrev': '2609-223', 'author': 'Jordan Woyak', 'message': 'Merge pull request #15014 from dokslade/gl-osd-duplicate\n\nOGL: Only show the Video Info OSD message when initializing the backend', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e66427c87eb75e70a893270a8078045796b83df4', 'type': 'new_dev_version'}
2026-11-13T02:00:42.000919 {'source': 'repomanager', 'hash': 'e36cd326c0af3179bf75a8deb5e2ecf92ab78b72', 'branch': 'master', 'shortrev': '2609-221', 'author': 'Jordan Woyak', 'message': 'Merge pull request #15016 from jordan-woyak/remove-bb-dump-port\n\nHW/WiimoteReal: Remove BBDumpPort feature.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e36cd326c0af3179bf75a8deb5e2ecf92ab78b72', 'type': 'new_dev_version'}
2026-11-13T01:49:09.060502 {'source': 'repomanager', 'hash': '9cef41db5f6a2492fd7800c285ca9b039406606d', 'branch': 'master', 'shortrev': '2609-219', 'author': 'Jordan Woyak', 'message': "Merge pull request #14976 from JoeysRetroHandhelds/wiimote-null-hid-source\n\nWiimoteDevice: Don't send output reports to a null HID source", 'url': 'https://github.com/dolphin-emu/dolphin/commit/9cef41db5f6a2492fd7800c285ca9b039406606d', 'type': 'new_dev_version'}
2026-11-13T00:18:40.280113 {'source': 'repomanager', 'hash': '21f3f312177cf4f1daeb2f312f096e0cd7482087', 'branch': 'master', 'shortrev': '2609-217', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14841 from apteryks/try-newer-glslang-versions-first\n\ncmake: Try newer glslang versions first.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/21f3f312177cf4f1daeb2f312f096e0cd7482087', 'type': 'new_dev_version'}
2026-11-13T00:16:16.313857 {'source': 'repomanager', 'hash': '4380df98287810ce9b69832b2f52023a220931e8', 'branch': 'master', 'shortrev': '2609-215', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14713 from llsc12/master\n\nFix cheatsmanager crash', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4380df98287810ce9b69832b2f52023a220931e8', 'type': 'new_dev_version'}
2026-11-13T00:07:32.202358 {'source': 'repomanager', 'hash': 'cf21d5dc0be92e274b15ab1917e7308f8139d310', 'branch': 'master', 'shortrev': '2609-213', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14877 from SuperSamus/performance-tracker-variance-fixup\n\nPerformanceTracker: Small cleanup, properly use RunningVariance for the standard deviation', 'url': 'https://github.com/dolphin-emu/dolphin/commit/cf21d5dc0be92e274b15ab1917e7308f8139d310', 'type': 'new_dev_version'}
2026-11-13T00:00:48.311128 {'source': 'repomanager', 'hash': '836045f9cd3f31a596a9073065ad6fd81ab0cce1', 'branch': 'master', 'shortrev': '2609-211', 'author': 'Jordan Woyak', 'message': 'Merge pull request #15011 from dokslade/filesystemwidget-menu-uaf\n\nDolphinQt: Fix use-after-free of FilesystemWidget context menu', 'url': 'https://github.com/dolphin-emu/dolphin/commit/836045f9cd3f31a596a9073065ad6fd81ab0cce1', 'type': 'new_dev_version'}
2026-11-12T23:58:43.338598 {'source': 'repomanager', 'hash': 'cd92a628f37c19333f5c5ee84c43aeb4b48ec9e3', 'branch': 'master', 'shortrev': '2609-209', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14876 from VampireFlower/usbgecko\n\nOptimize USB Gecko Emulation', 'url': 'https://github.com/dolphin-emu/dolphin/commit/cd92a628f37c19333f5c5ee84c43aeb4b48ec9e3', 'type': 'new_dev_version'}
2026-11-11T20:08:32.501086 {'source': 'repomanager', 'hash': 'db2afcbdf8f5175a6b8414d9f5e21c978775f651', 'branch': 'master', 'shortrev': '2609-206', 'author': 'iwubcode', 'message': 'Merge pull request #12014 from Clownacy/master\n\nAdd CRT shaders', 'url': 'https://github.com/dolphin-emu/dolphin/commit/db2afcbdf8f5175a6b8414d9f5e21c978775f651', 'type': 'new_dev_version'}
2026-11-11T19:05:56.691483 {'source': 'repomanager', 'hash': 'c830c9ec4b1d9ebb1e14b1b592b8ba03a1a0b759', 'branch': 'master', 'shortrev': '2609-203', 'author': 'Jordan Woyak', 'message': 'Merge pull request #15009 from JoshuaVandaele/clang-include-weirdness\n\nExternals/glslang: Fix Clang header conflicts', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c830c9ec4b1d9ebb1e14b1b592b8ba03a1a0b759', 'type': 'new_dev_version'}
Recent 'notification' events
2026-11-14T23:45:34.762389 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 edited pull request #15024: DiscIO/VolumeVerifier: Use WorkQueueThreadSP instead of std::async to reduce spawning of new threads. (\x0306master\x03...\x0306volume-verifier-threading\x03): \x1f\x0302https://dolp.in/pr15024\x03\x1f', 'type': 'notification'}
2026-11-14T23:36:44.960892 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 opened pull request #15024: DiscIO/VolumeVerifier: Use WorkQueueThreadSP instead of std::async to reduce spawning of new threads. (\x0306master\x03...\x0306volume-verifier-threading\x03): \x1f\x0302https://dolp.in/pr15024\x03\x1f', 'type': 'notification'}
2026-11-14T23:28:41.657157 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303T\ufeffilka\x03 commented on #14995 (AX: fix three bugs): \x1f\x0302https://dolp.in/pr14995#issuecomment-6885899398\x03\x1f', 'type': 'notification'}
2026-11-14T23:27:56.560760 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303T\ufeffilka\x03 edited pull request #14995: AX: fix three bugs (\x0306master\x03...\x0306ax_fixes\x03): \x1f\x0302https://dolp.in/pr14995\x03\x1f', 'type': 'notification'}
2026-11-14T23:26:14.597259 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303T\ufeffilka\x03 synchronized pull request #14995: AX: fix two bugs (\x0306master\x03...\x0306ax_fixes\x03): \x1f\x0302https://dolp.in/pr14995\x03\x1f', 'type': 'notification'}
2026-11-14T22:29:17.643302 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 requested a review from LillyJadeKatrin for pull request #15015: AchievementManager: Include the response code in the HTTP request failure error message. (\x0306master\x03...\x0306ra-http-logging\x03): \x1f\x0302https://dolp.in/pr15015\x03\x1f', 'type': 'notification'}
2026-11-14T22:15:46.493336 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #13624 \x0304failed\x03 on builders [pr-win-dbg-x64]: \x1f\x0302https://dolphin.ci/#/builders/31/builds/11039\x03\x1f', 'type': 'notification'}
2026-11-14T21:45:43.540316 {'source': 'notifications', 'msg': 'Update 6 to issue 14182 ("Crash in Rogue Squadron 2, at the same time every launch.") by \x0303B\ufeffilliard26\x03 - \x1f\x0302https://dolp.in/i14182/6\x03\x1f', 'type': 'notification'}
2026-11-14T21:44:12.420011 {'source': 'notifications', 'msg': 'ce74dd by \x0303J\ufeffordan Woyak\x03 [\x03090\x03|\x03092\x03|\x03040\x03] \x1f\x0302https://dolp.in/rce74dde6e8bd765817360422c0ac04cd717b9c3a\x03\x1f Merge pull request #15023 from jordan-woyak/rs2-remove-ws-code', 'type': 'notification'}
2026-11-14T21:44:12.416688 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x1f\x03] \x0303j\ufeffordan-woyak\x03 pushed \x021\x02 new commit to \x0306master\x03', 'type': 'notification'}
2026-11-14T21:44:12.299316 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 merged pull request #15023: GameSettings: Remove broken Rogue Squadron II widescreen gecko code. (\x0306master\x03...\x0306rs2-remove-ws-code\x03): \x1f\x0302https://dolp.in/pr15023\x03\x1f', 'type': 'notification'}
2026-11-14T21:43:39.407124 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 unlabeled pull request #13624: PerformanceTracker: Fix some interthread communication. Other cleanups. (\x0306master\x03...\x0306perf-metrics-atomics\x03): \x1f\x0302https://dolp.in/pr13624\x03\x1f', 'type': 'notification'}
2026-11-14T21:43:27.181286 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 synchronized pull request #13624: PerformanceTracker: Fix some interthread communication. Other cleanups. (\x0306master\x03...\x0306perf-metrics-atomics\x03): \x1f\x0302https://dolp.in/pr13624\x03\x1f', 'type': 'notification'}
2026-11-14T21:10:08.652364 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffosJuice\x03 approved pull request #15023 (GameSettings: Remove broken Rogue Squadron II widescreen gecko code.): \x1f\x0302https://dolp.in/pr15023#pullrequestreview-5907173823\x03\x1f', 'type': 'notification'}
2026-11-14T21:08:37.975869 {'source': 'notifications', 'msg': 'Update 5 to issue 14182 ("Crash in Rogue Squadron 2, at the same time every launch.") by \x0303J\ufeffosJuice\x03 - \x1f\x0302https://dolp.in/i14182/5\x03\x1f', 'type': 'notification'}
2026-11-14T21:05:12.557839 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 opened pull request #15023: GameSettings: Remove broken Rogue Squadron II widescreen gecko code. (\x0306master\x03...\x0306rs2-remove-ws-code\x03): \x1f\x0302https://dolp.in/pr15023\x03\x1f', 'type': 'notification'}
2026-11-14T21:00:27.713372 {'source': 'notifications', 'msg': 'Update 4 to issue 14182 ("Crash in Rogue Squadron 2, at the same time every launch.") by \x0303J\ufeffosJuice\x03 - \x1f\x0302https://dolp.in/i14182/4\x03\x1f', 'type': 'notification'}
2026-11-14T20:59:16.781218 {'source': 'notifications', 'msg': 'Update 3 to issue 14182 ("Crash in Rogue Squadron 2, at the same time every launch.") by \x0303c\ufefflairish\x03 - \x1f\x0302https://dolp.in/i14182/3\x03\x1f', 'type': 'notification'}
2026-11-14T20:57:35.208461 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 merged pull request #15006: Jit64: mfspr - Sign-extend slice_length (\x0306master\x03...\x0306mfspr-movsx\x03): \x1f\x0302https://dolp.in/pr15006\x03\x1f', 'type': 'notification'}
2026-11-14T20:57:35.192537 {'source': 'notifications', 'msg': '334334 by \x0303J\ufeffordan Woyak\x03 [\x03090\x03|\x03091\x03|\x03040\x03] \x1f\x0302https://dolp.in/r334334d42ab1f9b8d18ef078b2efbc94cfa89081\x03\x1f Merge pull request #15006 from Sintendo/mfspr-movsx', 'type': 'notification'}
2026-11-14T20:57:35.192376 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x1f\x03] \x0303j\ufeffordan-woyak\x03 pushed \x021\x02 new commit to \x0306master\x03', 'type': 'notification'}
2026-11-14T20:44:02.067585 {'source': 'notifications', 'msg': 'Update 2 to issue 14182 ("Crash in Rogue Squadron 2, at the same time every launch.") by \x0303B\ufeffilliard26\x03 - \x1f\x0302https://dolp.in/i14182/2\x03\x1f', 'type': 'notification'}
2026-11-14T20:40:37.444954 {'source': 'notifications', 'msg': 'Issue 14182 created: "Crash in Rogue Squadron 2, at the same time every launch." by \x0303c\ufefflairish\x03 - \x1f\x0302https://dolp.in/i14182\x03\x1f', 'type': 'notification'}
2026-11-14T20:38:35.776987 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 labeled pull request #13624: PerformanceTracker: Fix some interthread communication. Other cleanups. (\x0306master\x03...\x0306perf-metrics-atomics\x03): \x1f\x0302https://dolp.in/pr13624\x03\x1f', 'type': 'notification'}
2026-11-14T20:19:25.827630 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 edited pull request #13624: PerformanceTracker: Fix some interthread communication. Other cleanups. (\x0306master\x03...\x0306perf-metrics-atomics\x03): \x1f\x0302https://dolp.in/pr13624\x03\x1f', 'type': 'notification'}
Recent 'pull_request_fifoci_status' events
2026-11-14T23:48:00.137904 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '83f79b4336e3632384042f6840b8d0323211edc8', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14995, 'type': 'pull_request_fifoci_status'}
2026-11-14T23:32:21.267759 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'c377c5a134377f8956d5ced0083bacb53f0012a1', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14921, 'type': 'pull_request_fifoci_status'}
2026-11-14T23:30:33.860696 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 15023, 'type': 'pull_request_fifoci_status'}
2026-11-14T23:19:34.813474 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'e57ebb9bf349faa02bdcd0db260177e0ca34da93', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 13624, 'type': 'pull_request_fifoci_status'}
2026-11-14T23:19:29.615199 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'c377c5a134377f8956d5ced0083bacb53f0012a1', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14921, 'type': 'pull_request_fifoci_status'}
2026-11-14T23:08:35.169217 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'e57ebb9bf349faa02bdcd0db260177e0ca34da93', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 13624, 'type': 'pull_request_fifoci_status'}
2026-11-14T23:05:32.540540 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 15023, 'type': 'pull_request_fifoci_status'}
2026-11-14T22:46:09.720466 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 15023, 'type': 'pull_request_fifoci_status'}
2026-11-14T21:48:02.834824 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f52b1ff6d315215334454d69d16c3718b64cc6b1', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 13624, 'type': 'pull_request_fifoci_status'}
2026-11-14T21:30:07.335912 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'c377c5a134377f8956d5ced0083bacb53f0012a1', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14921, 'type': 'pull_request_fifoci_status'}
2026-11-14T20:49:08.385940 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'c377c5a134377f8956d5ced0083bacb53f0012a1', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14921, 'type': 'pull_request_fifoci_status'}
2026-11-14T16:21:02.711363 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'b05ae0b9298ebfb188ab1c248315f9ebea347f87', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14979, 'type': 'pull_request_fifoci_status'}
2026-11-14T16:08:28.159909 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'b05ae0b9298ebfb188ab1c248315f9ebea347f87', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14979, 'type': 'pull_request_fifoci_status'}
2026-11-14T16:00:26.167057 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'b05ae0b9298ebfb188ab1c248315f9ebea347f87', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14979, 'type': 'pull_request_fifoci_status'}
2026-11-14T15:58:26.171803 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'b05ae0b9298ebfb188ab1c248315f9ebea347f87', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14979, 'type': 'pull_request_fifoci_status'}
2026-11-14T15:47:35.552574 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'b05ae0b9298ebfb188ab1c248315f9ebea347f87', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14979, 'type': 'pull_request_fifoci_status'}
2026-11-14T00:06:50.763813 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '62e3ad90f3c4dae36b686f50c7d185c9180e106c', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 15007, 'type': 'pull_request_fifoci_status'}
2026-11-13T23:51:21.049789 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '62e3ad90f3c4dae36b686f50c7d185c9180e106c', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 15007, 'type': 'pull_request_fifoci_status'}
2026-11-13T23:41:52.155157 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '62e3ad90f3c4dae36b686f50c7d185c9180e106c', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 15007, 'type': 'pull_request_fifoci_status'}
2026-11-13T23:34:48.264373 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '62e3ad90f3c4dae36b686f50c7d185c9180e106c', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 15007, 'type': 'pull_request_fifoci_status'}
2026-11-13T23:30:58.958548 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '62e3ad90f3c4dae36b686f50c7d185c9180e106c', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 15007, 'type': 'pull_request_fifoci_status'}
2026-11-13T21:54:22.442285 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6280847d3898f52145f0f1d5f7a17d0e3af573a8', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 15017, 'type': 'pull_request_fifoci_status'}
2026-11-13T21:41:53.900492 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f40c96627dbae53f16f6d2030c823672c702cafb', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 15003, 'type': 'pull_request_fifoci_status'}
2026-11-13T21:34:57.059404 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6280847d3898f52145f0f1d5f7a17d0e3af573a8', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 15017, 'type': 'pull_request_fifoci_status'}
2026-11-13T21:27:19.145624 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6280847d3898f52145f0f1d5f7a17d0e3af573a8', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 15017, 'type': 'pull_request_fifoci_status'}
Recent 'raw_bb_hook' events
2026-11-14T23:48:10.690334 {'source': 'webserver', 'raw': {'buildid': 198894, 'number': 9680, 'builderid': 10, 'buildrequestid': 199601, 'workerid': 5, 'masterid': 1, 'started_at': 1794700079, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Trigger'], 'shortrev': ['61efa9', 'Trigger'], 'pr_id': [15024, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [9680, 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'repository': ['', 'Build'], 'branchname': ['pr-15024', 'Trigger'], 'branch': ['refs/pull/15024/head', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builderid': [10, 'Builder'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build']}, 'buildrequest': {'buildrequestid': 199601, 'buildsetid': 44579, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1794700079, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699518, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44579, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1794699518, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 198889, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': {'buildid': 198889, 'number': 11035, 'builderid': 27, 'buildrequestid': 199595, 'workerid': 10, 'masterid': 1, 'started_at': 1794699420, 'complete_at': 1794699518, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 27, 'name': 'pr-ubu-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 10, 'name': 'pr-fifoci-ogl-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/10/builds/9680'}, 'type': 'raw_bb_hook'}
2026-11-14T23:47:59.514427 {'source': 'webserver', 'raw': {'buildid': 198879, 'number': 9679, 'builderid': 10, 'buildrequestid': 199584, 'workerid': 5, 'masterid': 1, 'started_at': 1794699140, 'complete_at': 1794700079, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'shortrev': ['83f79b', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'builderid': [10, 'Builder'], 'codebase': ['', 'Build'], 'headrev': ['83f79b4336e3632384042f6840b8d0323211edc8', 'Trigger'], 'pr_id': [14995, 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'workername': ['altair-fifoci', 'Worker'], 'branch': ['refs/pull/14995/head', 'Build'], 'revision': ['83f79b4336e3632384042f6840b8d0323211edc8', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-ogl-lin-mesa', 'Worker'], 'branchname': ['pr-14995', 'Trigger'], 'buildnumber': [9679, 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'got_revision': ['83f79b4336e3632384042f6840b8d0323211edc8', 'GitNoBranch'], 'warnings-count': [0, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 199584, 'buildsetid': 44576, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1794699140, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794698875, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44576, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1794698875, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 198874, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13388, 'branch': 'refs/pull/14995/head', 'revision': '83f79b4336e3632384042f6840b8d0323211edc8', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794698785, 'patch': None}]}, 'parentbuild': {'buildid': 198874, 'number': 11034, 'builderid': 27, 'buildrequestid': 199578, 'workerid': 10, 'masterid': 1, 'started_at': 1794698790, 'complete_at': 1794698875, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 27, 'name': 'pr-ubu-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 10, 'name': 'pr-fifoci-ogl-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/10/builds/9679'}, 'type': 'raw_bb_hook'}
2026-11-14T23:46:00.974359 {'source': 'webserver', 'raw': {'buildid': 198893, 'number': 11043, 'builderid': 31, 'buildrequestid': 199596, 'workerid': 4, 'masterid': 1, 'started_at': 1794699802, 'complete_at': 1794699948, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-15024', 'Change'], 'shortrev': ['61efa9', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['c:\\buildbot\\pr-win-dbg-x64', 'Worker'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'build_url': ['https://dl.dolphin-emu.org/prs/7f/06/pr-15024-dolphin-latest-dbg-x64.7z', 'SetProperty'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'pr_id': [15024, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [31, 'Builder'], 'sln_exists': ['false', 'SetPropertyFromCommand Step'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'buildnumber': [11043, 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'warnings-count': [7, 'WarningCountingShellCommand'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/15024/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 199596, 'buildsetid': 44578, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1794699802, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 31, 'name': 'pr-win-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/31/builds/11043'}, 'type': 'raw_bb_hook'}
2026-11-14T23:43:36.483933 {'source': 'webserver', 'raw': {'buildid': 198891, 'number': 11035, 'builderid': 13, 'buildrequestid': 199592, 'workerid': 4, 'masterid': 1, 'started_at': 1794699629, 'complete_at': 1794699802, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'shortrev': ['61efa9', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'sln_exists': ['false', 'SetPropertyFromCommand Step'], 'warnings-count': [7, 'WarningCountingShellCommand'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [13, 'Builder'], 'buildnumber': [11035, 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['c:\\buildbot\\pr-win-arm64', 'Worker'], 'buildername': ['pr-win-arm64', 'Builder'], 'project': ['', 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'branchname': ['pr-15024', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'pr_id': [15024, 'Change'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/15024/head', 'Build'], 'repository': ['', 'Build'], 'build_url': ['https://dl.dolphin-emu.org/prs/ff/b8/pr-15024-dolphin-latest-arm64.7z', 'SetProperty']}, 'buildrequest': {'buildrequestid': 199592, 'buildsetid': 44578, 'builderid': 13, 'priority': 0, 'claimed': True, 'claimed_at': 1794699629, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 13, 'name': 'pr-win-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/13/builds/11035'}, 'type': 'raw_bb_hook'}
2026-11-14T23:43:35.929819 {'source': 'webserver', 'raw': {'buildid': 198893, 'number': 11043, 'builderid': 31, 'buildrequestid': 199596, 'workerid': 4, 'masterid': 1, 'started_at': 1794699802, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-15024', 'Change'], 'shortrev': ['61efa9', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'codebase': ['', 'Build'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'pr_id': [15024, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [31, 'Builder'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'buildnumber': [11043, 'Build'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/15024/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 199596, 'buildsetid': 44578, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1794699802, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 31, 'name': 'pr-win-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/31/builds/11043'}, 'type': 'raw_bb_hook'}
2026-11-14T23:42:07.791103 {'source': 'webserver', 'raw': {'buildid': 198892, 'number': 9355, 'builderid': 21, 'buildrequestid': 199605, 'workerid': 8, 'masterid': 1, 'started_at': 1794699727, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'shortrev': ['83f79b', 'Trigger'], 'branch': ['refs/pull/14995/head', 'Build'], 'revision': ['83f79b4336e3632384042f6840b8d0323211edc8', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'repository': ['', 'Build'], 'branchname': ['pr-14995', 'Trigger'], 'buildername': ['pr-fifoci-mtl-osx-m1', 'Builder'], 'workername': ['osx-m1', 'Worker'], 'codebase': ['', 'Build'], 'headrev': ['83f79b4336e3632384042f6840b8d0323211edc8', 'Trigger'], 'pr_id': [14995, 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'builderid': [21, 'Builder'], 'buildnumber': [9355, 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 199605, 'buildsetid': 44581, 'builderid': 21, 'priority': 0, 'claimed': True, 'claimed_at': 1794699727, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699727, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44581, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1794699727, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 198877, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13388, 'branch': 'refs/pull/14995/head', 'revision': '83f79b4336e3632384042f6840b8d0323211edc8', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794698785, 'patch': None}]}, 'parentbuild': {'buildid': 198877, 'number': 11053, 'builderid': 7, 'buildrequestid': 199572, 'workerid': 8, 'masterid': 1, 'started_at': 1794699020, 'complete_at': 1794699727, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 21, 'name': 'pr-fifoci-mtl-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/21/builds/9355'}, 'type': 'raw_bb_hook'}
2026-11-14T23:42:07.675627 {'source': 'webserver', 'raw': {'buildid': 198877, 'number': 11053, 'builderid': 7, 'buildrequestid': 199572, 'workerid': 8, 'masterid': 1, 'started_at': 1794699020, 'complete_at': 1794699727, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14995', 'Change'], 'shortrev': ['83f79b', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-osx-universal', 'Builder'], 'workername': ['osx-m1', 'Worker'], 'branch': ['refs/pull/14995/head', 'Build'], 'revision': ['83f79b4336e3632384042f6840b8d0323211edc8', 'Build'], 'project': ['', 'Build'], 'basedir': ['/Users/ci/worker/base', 'Worker'], 'got_revision': ['83f79b4336e3632384042f6840b8d0323211edc8', 'GitNoBranch'], 'headrev': ['83f79b4336e3632384042f6840b8d0323211edc8', 'Change'], 'pr_id': [14995, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [7, 'Builder'], 'buildnumber': [11053, 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'builddir': ['/Users/ci/worker/base/pr-osx-universal', 'Worker'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 199572, 'buildsetid': 44575, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1794699020, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794698785, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44575, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794698785, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13388, 'branch': 'refs/pull/14995/head', 'revision': '83f79b4336e3632384042f6840b8d0323211edc8', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794698785, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/7/builds/11053'}, 'type': 'raw_bb_hook'}
2026-11-14T23:42:03.927398 {'source': 'webserver', 'raw': {'buildid': 198890, 'number': 11034, 'builderid': 1, 'buildrequestid': 199587, 'workerid': 9, 'masterid': 1, 'started_at': 1794699559, 'complete_at': 1794699709, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-15024', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'workername': ['debian', 'Worker'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'pr_id': [15024, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/15024/head', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'shortrev': ['61efa9', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'project': ['', 'Build'], 'builderid': [1, 'Builder'], 'buildnumber': [11034, 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['/buildbot/pr-deb-dbg-x64', 'Worker']}, 'buildrequest': {'buildrequestid': 199587, 'buildsetid': 44578, 'builderid': 1, 'priority': 0, 'claimed': True, 'claimed_at': 1794699559, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 1, 'name': 'pr-deb-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/1/builds/11034'}, 'type': 'raw_bb_hook'}
2026-11-14T23:41:56.250181 {'source': 'webserver', 'raw': {'buildid': 198886, 'number': 6127, 'builderid': 44, 'buildrequestid': 199598, 'workerid': 14, 'masterid': 1, 'started_at': 1794699414, 'complete_at': 1794699707, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-15024', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'shortrev': ['61efa9', 'Change'], 'pr_id': [15024, 'Change'], 'buildername': ['pr-flatpak-arm64', 'Builder'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-arm64', 'Worker'], 'fm_build_url': ['https://flat-manager.dolphin-emu.org/api/v1/build/13672', 'SetPropertyFromCommand Step'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'scheduler': ['pr', 'Scheduler'], 'workername': ['deneb-flatpak', 'Worker'], 'buildnumber': [6127, 'Build'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'builderid': [44, 'Builder'], 'branch': ['refs/pull/15024/head', 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 199598, 'buildsetid': 44578, 'builderid': 44, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 44, 'name': 'pr-flatpak-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/44/builds/6127'}, 'type': 'raw_bb_hook'}
2026-11-14T23:41:24.735101 {'source': 'webserver', 'raw': {'buildid': 198888, 'number': 6183, 'builderid': 43, 'buildrequestid': 199597, 'workerid': 13, 'masterid': 1, 'started_at': 1794699414, 'complete_at': 1794699676, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branch': ['refs/pull/15024/head', 'Build'], 'fm_build_url': ['https://flat-manager.dolphin-emu.org/api/v1/build/13671', 'SetPropertyFromCommand Step'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'branchname': ['pr-15024', 'Change'], 'shortrev': ['61efa9', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'pr_id': [15024, 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'repository': ['', 'Build'], 'workername': ['altair-flatpak', 'Worker'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-flatpak-x64', 'Builder'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-x64', 'Worker'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'builderid': [43, 'Builder'], 'buildnumber': [6183, 'Build']}, 'buildrequest': {'buildrequestid': 199597, 'buildsetid': 44578, 'builderid': 43, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 43, 'name': 'pr-flatpak-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/43/builds/6183'}, 'type': 'raw_bb_hook'}
2026-11-14T23:40:55.685834 {'source': 'webserver', 'raw': {'buildid': 198881, 'number': 11036, 'builderid': 2, 'buildrequestid': 199588, 'workerid': 4, 'masterid': 1, 'started_at': 1794699414, 'complete_at': 1794699628, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-15024', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'shortrev': ['61efa9', 'Change'], 'builderid': [2, 'Builder'], 'branch': ['refs/pull/15024/head', 'Build'], 'pr_id': [15024, 'Change'], 'buildnumber': [11036, 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'warnings-count': [7, 'WarningCountingShellCommand'], 'build_url': ['https://dl.dolphin-emu.org/prs/ad/a9/pr-15024-dolphin-latest-x64.7z', 'SetProperty'], 'builddir': ['c:\\buildbot\\pr-win-x64', 'Worker'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'sln_exists': ['false', 'SetPropertyFromCommand Step']}, 'buildrequest': {'buildrequestid': 199588, 'buildsetid': 44578, 'builderid': 2, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': True, 'results': 0, 'submitted_at': 1794699414, 'complete_at': 1794699628, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 2, 'name': 'pr-win-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/2/builds/11036'}, 'type': 'raw_bb_hook'}
2026-11-14T23:40:55.379937 {'source': 'webserver', 'raw': {'buildid': 198891, 'number': 11035, 'builderid': 13, 'buildrequestid': 199592, 'workerid': 4, 'masterid': 1, 'started_at': 1794699629, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'shortrev': ['61efa9', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [13, 'Builder'], 'buildnumber': [11035, 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'codebase': ['', 'Build'], 'buildername': ['pr-win-arm64', 'Builder'], 'project': ['', 'Build'], 'branchname': ['pr-15024', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'pr_id': [15024, 'Change'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/15024/head', 'Build'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 199592, 'buildsetid': 44578, 'builderid': 13, 'priority': 0, 'claimed': True, 'claimed_at': 1794699629, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 13, 'name': 'pr-win-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/13/builds/11035'}, 'type': 'raw_bb_hook'}
2026-11-14T23:39:40.638637 {'source': 'webserver', 'raw': {'buildid': 198890, 'number': 11034, 'builderid': 1, 'buildrequestid': 199587, 'workerid': 9, 'masterid': 1, 'started_at': 1794699559, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-15024', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'workername': ['debian', 'Worker'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'pr_id': [15024, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/15024/head', 'Build'], 'shortrev': ['61efa9', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'project': ['', 'Build'], 'builderid': [1, 'Builder'], 'buildnumber': [11034, 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 199587, 'buildsetid': 44578, 'builderid': 1, 'priority': 0, 'claimed': True, 'claimed_at': 1794699559, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 1, 'name': 'pr-deb-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/1/builds/11034'}, 'type': 'raw_bb_hook'}
2026-11-14T23:39:40.445160 {'source': 'webserver', 'raw': {'buildid': 198884, 'number': 11033, 'builderid': 26, 'buildrequestid': 199594, 'workerid': 9, 'masterid': 1, 'started_at': 1794699414, 'complete_at': 1794699559, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'shortrev': ['61efa9', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-deb-x64', 'Builder'], 'buildnumber': [11033, 'Build'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'branchname': ['pr-15024', 'Change'], 'pr_id': [15024, 'Change'], 'project': ['', 'Build'], 'branch': ['refs/pull/15024/head', 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'workername': ['debian', 'Worker'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'builderid': [26, 'Builder'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'basedir': ['/buildbot', 'Worker'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['/buildbot/pr-deb-x64', 'Worker'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 199594, 'buildsetid': 44578, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 26, 'name': 'pr-deb-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/26/builds/11033'}, 'type': 'raw_bb_hook'}
2026-11-14T23:39:26.272959 {'source': 'webserver', 'raw': {'buildid': 198882, 'number': 287, 'builderid': 49, 'buildrequestid': 199599, 'workerid': 15, 'masterid': 1, 'started_at': 1794699414, 'complete_at': 1794699565, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-15024', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-appimage-x64', 'Builder'], 'workername': ['altair-appimage', 'Worker'], 'buildnumber': [287, 'Build'], 'branch': ['refs/pull/15024/head', 'Build'], 'codebase': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'shortrev': ['61efa9', 'Change'], 'pr_id': [15024, 'Change'], 'builderid': [49, 'Builder'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'project': ['', 'Build'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-appimage-x64', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 199599, 'buildsetid': 44578, 'builderid': 49, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 49, 'name': 'pr-appimage-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/49/builds/287'}, 'type': 'raw_bb_hook'}
2026-11-14T23:39:08.174044 {'source': 'webserver', 'raw': {'buildid': 198889, 'number': 11035, 'builderid': 27, 'buildrequestid': 199595, 'workerid': 10, 'masterid': 1, 'started_at': 1794699420, 'complete_at': 1794699518, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-ubu-x64', 'Worker'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'branchname': ['pr-15024', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'shortrev': ['61efa9', 'Change'], 'pr_id': [15024, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-ubu-x64', 'Builder'], 'builderid': [27, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [11035, 'Build'], 'branch': ['refs/pull/15024/head', 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 199595, 'buildsetid': 44578, 'builderid': 27, 'priority': 0, 'claimed': True, 'claimed_at': 1794699420, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 27, 'name': 'pr-ubu-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/27/builds/11035'}, 'type': 'raw_bb_hook'}
2026-11-14T23:38:47.810057 {'source': 'webserver', 'raw': {'buildid': 198883, 'number': 281, 'builderid': 50, 'buildrequestid': 199600, 'workerid': 16, 'masterid': 1, 'started_at': 1794699414, 'complete_at': 1794699526, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'shortrev': ['61efa9', 'Change'], 'pr_id': [15024, 'Change'], 'buildername': ['pr-appimage-arm64', 'Builder'], 'builderid': [50, 'Builder'], 'workername': ['deneb-appimage', 'Worker'], 'buildnumber': [281, 'Build'], 'branch': ['refs/pull/15024/head', 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'branchname': ['pr-15024', 'Change'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'scheduler': ['pr', 'Scheduler'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-appimage-arm64', 'Worker'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'warnings-count': [0, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 199600, 'buildsetid': 44578, 'builderid': 50, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 50, 'name': 'pr-appimage-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/50/builds/281'}, 'type': 'raw_bb_hook'}
2026-11-14T23:38:41.348076 {'source': 'webserver', 'raw': {'buildid': 198885, 'number': 11045, 'builderid': 11, 'buildrequestid': 199591, 'workerid': 1, 'masterid': 1, 'started_at': 1794699414, 'complete_at': 1794699476, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-15024', 'Change'], 'shortrev': ['61efa9', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'pr_id': [15024, 'Change'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'repository': ['', 'Build'], 'basedir': ['/usr/home/buildbot/freebsd', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'builderid': [11, 'Builder'], 'workername': ['freebsd', 'Worker'], 'buildnumber': [11045, 'Build'], 'branch': ['refs/pull/15024/head', 'Build'], 'builddir': ['/usr/home/buildbot/freebsd/pr-freebsd-x64', 'Worker'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 199591, 'buildsetid': 44578, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 11, 'name': 'pr-freebsd-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/11/builds/11045'}, 'type': 'raw_bb_hook'}
2026-11-14T23:38:29.873856 {'source': 'webserver', 'raw': {'buildid': 198887, 'number': 11041, 'builderid': 22, 'buildrequestid': 199593, 'workerid': 12, 'masterid': 1, 'started_at': 1794699414, 'complete_at': 1794699454, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'project': ['', 'Build'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'branchname': ['pr-15024', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'shortrev': ['61efa9', 'Change'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-android', 'Worker'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch'], 'pr_id': [15024, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'builderid': [22, 'Builder'], 'workername': ['android', 'Worker'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-android', 'Builder'], 'buildnumber': [11041, 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'branch': ['refs/pull/15024/head', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 199593, 'buildsetid': 44578, 'builderid': 22, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': True, 'results': 0, 'submitted_at': 1794699414, 'complete_at': 1794699454, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 22, 'name': 'pr-android', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/22/builds/11041'}, 'type': 'raw_bb_hook'}
2026-11-14T23:38:29.367848 {'source': 'webserver', 'raw': {'buildid': 198880, 'number': 11038, 'builderid': 9, 'buildrequestid': 199590, 'workerid': 10, 'masterid': 1, 'started_at': 1794699414, 'complete_at': 1794699420, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'shortrev': ['61efa9', 'Change'], 'pr_id': [15024, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['lint', 'Builder'], 'branchname': ['pr-15024', 'Change'], 'builderid': [9, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [11038, 'Build'], 'project': ['', 'Build'], 'branch': ['refs/pull/15024/head', 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'codebase': ['', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/lint', 'Worker'], 'got_revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 199590, 'buildsetid': 44578, 'builderid': 9, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': True, 'results': 0, 'submitted_at': 1794699414, 'complete_at': 1794699420, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 9, 'name': 'lint', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/9/builds/11038'}, 'type': 'raw_bb_hook'}
2026-11-14T23:37:52.813030 {'source': 'webserver', 'raw': {'buildid': 198889, 'number': 11035, 'builderid': 27, 'buildrequestid': 199595, 'workerid': 10, 'masterid': 1, 'started_at': 1794699420, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-15024', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'shortrev': ['61efa9', 'Change'], 'pr_id': [15024, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-ubu-x64', 'Builder'], 'builderid': [27, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [11035, 'Build'], 'branch': ['refs/pull/15024/head', 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 199595, 'buildsetid': 44578, 'builderid': 27, 'priority': 0, 'claimed': True, 'claimed_at': 1794699420, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 27, 'name': 'pr-ubu-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/27/builds/11035'}, 'type': 'raw_bb_hook'}
2026-11-14T23:37:51.174469 {'source': 'webserver', 'raw': {'buildid': 198885, 'number': 11045, 'builderid': 11, 'buildrequestid': 199591, 'workerid': 1, 'masterid': 1, 'started_at': 1794699414, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-15024', 'Change'], 'shortrev': ['61efa9', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'pr_id': [15024, 'Change'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'repository': ['', 'Build'], 'builderid': [11, 'Builder'], 'workername': ['freebsd', 'Worker'], 'buildnumber': [11045, 'Build'], 'branch': ['refs/pull/15024/head', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 199591, 'buildsetid': 44578, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 11, 'name': 'pr-freebsd-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/11/builds/11045'}, 'type': 'raw_bb_hook'}
2026-11-14T23:37:51.085831 {'source': 'webserver', 'raw': {'buildid': 198881, 'number': 11036, 'builderid': 2, 'buildrequestid': 199588, 'workerid': 4, 'masterid': 1, 'started_at': 1794699414, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-15024', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'shortrev': ['61efa9', 'Change'], 'builderid': [2, 'Builder'], 'branch': ['refs/pull/15024/head', 'Build'], 'pr_id': [15024, 'Change'], 'buildnumber': [11036, 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 199588, 'buildsetid': 44578, 'builderid': 2, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 2, 'name': 'pr-win-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/2/builds/11036'}, 'type': 'raw_bb_hook'}
2026-11-14T23:37:50.404916 {'source': 'webserver', 'raw': {'buildid': 198884, 'number': 11033, 'builderid': 26, 'buildrequestid': 199594, 'workerid': 9, 'masterid': 1, 'started_at': 1794699414, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'shortrev': ['61efa9', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-deb-x64', 'Builder'], 'buildnumber': [11033, 'Build'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'branchname': ['pr-15024', 'Change'], 'pr_id': [15024, 'Change'], 'project': ['', 'Build'], 'branch': ['refs/pull/15024/head', 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'workername': ['debian', 'Worker'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'builderid': [26, 'Builder'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 199594, 'buildsetid': 44578, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 26, 'name': 'pr-deb-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/26/builds/11033'}, 'type': 'raw_bb_hook'}
2026-11-14T23:37:50.147352 {'source': 'webserver', 'raw': {'buildid': 198887, 'number': 11041, 'builderid': 22, 'buildrequestid': 199593, 'workerid': 12, 'masterid': 1, 'started_at': 1794699414, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'project': ['', 'Build'], 'headrev': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Change'], 'branchname': ['pr-15024', 'Change'], 'baserev': ['ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'Change'], 'shortrev': ['61efa9', 'Change'], 'pr_id': [15024, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'builderid': [22, 'Builder'], 'workername': ['android', 'Worker'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-android', 'Builder'], 'buildnumber': [11041, 'Build'], 'revision': ['61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'Build'], 'branch': ['refs/pull/15024/head', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 199593, 'buildsetid': 44578, 'builderid': 22, 'priority': 0, 'claimed': True, 'claimed_at': 1794699414, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1794699414, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44578, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1794699414, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13389, 'branch': 'refs/pull/15024/head', 'revision': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1794699414, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 22, 'name': 'pr-android', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/22/builds/11041'}, 'type': 'raw_bb_hook'}
Recent 'raw_gh_hook' events
2026-11-14T23:45:34.762025 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'edited', 'number': 15024, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024', 'id': 5317443326, 'node_id': 'PR_kwDOALCn2M8AAAABPPG-_g', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15024', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/15024.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/15024.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15024', 'number': 15024, 'state': 'open', 'locked': False, 'title': 'DiscIO/VolumeVerifier: Use WorkQueueThreadSP instead of std::async to reduce spawning of new threads.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Existing code used `std::async` for each hash type for each each read.\r\nA typical `std::async` implementation might just spawn a new thread for each call which is maybe a bit excessive here.\r\n\r\nUsing `WorkQueueThreadSP` reduced verification time by a measurable amount for me.\r\nChecking all three hashes of a GameCube ISO on my local SSD went from taking ~2.30 seconds to ~1.86 seconds.\r\nA dual-layer Wii ISO ~11.05 seconds -> ~10.55 seconds.\r\n\r\nI\'ve also a changed a `std::vector` to `Common::UniqueBuffer` to avoid unnecessary zeroing. This didn\'t really improve anything by a measurable amount, but it doesn\'t hurt.\r\n\r\nThe "content" and "group" work still uses `std::async` which could be addressed in a future PR.', 'created_at': '2026-11-14T23:36:42Z', 'updated_at': '2026-11-14T23:45:32Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'b5e49fa60de9a7e676ae321f49777c06d3e5b887', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15024/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'head': {'label': 'jordan-woyak:volume-verifier-threading', 'ref': 'volume-verifier-threading', 'sha': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T23:30:03Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530584, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T23:35:03Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15024'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15024'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15024/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/61efa9be49faa1a306d070c841ad3e8fe8b3a118'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 3, 'additions': 39, 'deletions': 29, 'changed_files': 3}, 'changes': {'body': {'from': 'Existing code used `std::async` for each hash type for each each read.\nA typical `std::async` implementation might just spawn a new thread for each call which is maybe a bit excessive here.\n\nUsing `WorkQueueThreadSP` reduced verification time by a measurable amount for me.\nChecking all three hashes of a GameCube ISO on my local SSD went from taking ~2.30 seconds to ~1.86 seconds.\n\nI\'ve also a changed a `std::vector` to `Common::UniqueBuffer` to avoid unnecessary zeroing. This didn\'t really improve anything by a measurable amount, but it doesn\'t hurt.\n\nThe "content" and "group" work still uses `std::async` which could be addressed in a future PR.'}}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T23:35:03Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T23:36:44.959959 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'opened', 'number': 15024, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024', 'id': 5317443326, 'node_id': 'PR_kwDOALCn2M8AAAABPPG-_g', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15024', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/15024.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/15024.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15024', 'number': 15024, 'state': 'open', 'locked': False, 'title': 'DiscIO/VolumeVerifier: Use WorkQueueThreadSP instead of std::async to reduce spawning of new threads.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Existing code used `std::async` for each hash type for each each read.\nA typical `std::async` implementation might just spawn a new thread for each call which is maybe a bit excessive here.\n\nUsing `WorkQueueThreadSP` reduced verification time by a measurable amount for me.\nChecking all three hashes of a GameCube ISO on my local SSD went from taking ~2.30 seconds to ~1.86 seconds.\n\nI\'ve also a changed a `std::vector` to `Common::UniqueBuffer` to avoid unnecessary zeroing. This didn\'t really improve anything by a measurable amount, but it doesn\'t hurt.\n\nThe "content" and "group" work still uses `std::async` which could be addressed in a future PR.', 'created_at': '2026-11-14T23:36:42Z', 'updated_at': '2026-11-14T23:36:42Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15024/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'head': {'label': 'jordan-woyak:volume-verifier-threading', 'ref': 'volume-verifier-threading', 'sha': '61efa9be49faa1a306d070c841ad3e8fe8b3a118', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T23:30:03Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530584, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T23:35:03Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15024'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15024'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15024/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15024/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/61efa9be49faa1a306d070c841ad3e8fe8b3a118'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 3, 'additions': 39, 'deletions': 29, 'changed_files': 3}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T23:35:03Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T23:28:41.656635 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14995', 'id': 6266940391, 'node_id': 'PR_kwDOALCn2M8AAAABNm1WiA', 'number': 14995, 'title': 'AX: fix three bugs', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-11-08T02:59:20Z', 'updated_at': '2026-11-14T23:28:39Z', 'closed_at': None, 'assignee': None, 'author_association': 'MEMBER', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14995', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14995.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14995.patch', 'merged_at': None}, 'body': "The de-pop issue was reported in #14988.\n\nThe CMD_SUB_TO_LR bug was found by staring. No idea which games actually use this command. I assume it's one of the surround schemes.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6885899398', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14995#issuecomment-6885899398', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995', 'id': 6885899398, 'node_id': 'IC_kwDOALCn2M8AAAABmm58hg', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-14T23:28:39Z', 'updated_at': '2026-11-14T23:28:39Z', 'body': 'Rebased plus a GC surround bug fix.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6885899398/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None, 'minimized': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T23:14:55Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T23:27:56.560509 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'edited', 'number': 14995, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995', 'id': 5208102536, 'node_id': 'PR_kwDOALCn2M8AAAABNm1WiA', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14995', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14995.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14995.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995', 'number': 14995, 'state': 'open', 'locked': False, 'title': 'AX: fix three bugs', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "The de-pop issue was reported in #14988.\n\nThe CMD_SUB_TO_LR bug was found by staring. No idea which games actually use this command. I assume it's one of the surround schemes.", 'created_at': '2026-11-08T02:59:20Z', 'updated_at': '2026-11-14T23:27:53Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'ce5b2e83f39f89e1016ead52ad9e4f62c165ee4b', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/83f79b4336e3632384042f6840b8d0323211edc8', 'head': {'label': 'Tilka:ax_fixes', 'ref': 'ax_fixes', 'sha': '83f79b4336e3632384042f6840b8d0323211edc8', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16304949, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjMwNDk0OQ==', 'name': 'dolphin', 'full_name': 'Tilka/dolphin', 'private': False, 'owner': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/Tilka/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/Tilka/dolphin', 'forks_url': 'https://api.github.com/repos/Tilka/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Tilka/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Tilka/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Tilka/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Tilka/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Tilka/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Tilka/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Tilka/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Tilka/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Tilka/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Tilka/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Tilka/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Tilka/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Tilka/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Tilka/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Tilka/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Tilka/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Tilka/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Tilka/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Tilka/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Tilka/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Tilka/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Tilka/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Tilka/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Tilka/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Tilka/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Tilka/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Tilka/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Tilka/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Tilka/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Tilka/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Tilka/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Tilka/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Tilka/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Tilka/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Tilka/dolphin/deployments', 'created_at': '2014-01-28T07:24:53Z', 'updated_at': '2024-12-24T17:03:46Z', 'pushed_at': '2026-11-14T23:26:11Z', 'git_url': 'git://github.com/Tilka/dolphin.git', 'ssh_url': 'git@github.com:Tilka/dolphin.git', 'clone_url': 'https://github.com/Tilka/dolphin.git', 'svn_url': 'https://github.com/Tilka/dolphin', 'homepage': None, 'size': 526140, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 0, 'open_issues': 0, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T23:14:55Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14995'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/83f79b4336e3632384042f6840b8d0323211edc8'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 2, 'review_comments': 2, 'maintainer_can_modify': True, 'commits': 5, 'additions': 60, 'deletions': 32, 'changed_files': 5}, 'changes': {'title': {'from': 'AX: fix two bugs'}}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T23:14:55Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T23:26:14.596933 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14995, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995', 'id': 5208102536, 'node_id': 'PR_kwDOALCn2M8AAAABNm1WiA', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14995', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14995.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14995.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995', 'number': 14995, 'state': 'open', 'locked': False, 'title': 'AX: fix two bugs', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "The de-pop issue was reported in #14988.\n\nThe CMD_SUB_TO_LR bug was found by staring. No idea which games actually use this command. I assume it's one of the surround schemes.", 'created_at': '2026-11-08T02:59:20Z', 'updated_at': '2026-11-14T23:26:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '23e5c9082c1b769c7115d7a3418e781a564bf3c8', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/83f79b4336e3632384042f6840b8d0323211edc8', 'head': {'label': 'Tilka:ax_fixes', 'ref': 'ax_fixes', 'sha': '83f79b4336e3632384042f6840b8d0323211edc8', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16304949, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjMwNDk0OQ==', 'name': 'dolphin', 'full_name': 'Tilka/dolphin', 'private': False, 'owner': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/Tilka/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/Tilka/dolphin', 'forks_url': 'https://api.github.com/repos/Tilka/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Tilka/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Tilka/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Tilka/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Tilka/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Tilka/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Tilka/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Tilka/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Tilka/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Tilka/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Tilka/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Tilka/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Tilka/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Tilka/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Tilka/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Tilka/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Tilka/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Tilka/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Tilka/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Tilka/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Tilka/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Tilka/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Tilka/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Tilka/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Tilka/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Tilka/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Tilka/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Tilka/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Tilka/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Tilka/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Tilka/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Tilka/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Tilka/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Tilka/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Tilka/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Tilka/dolphin/deployments', 'created_at': '2014-01-28T07:24:53Z', 'updated_at': '2024-12-24T17:03:46Z', 'pushed_at': '2026-11-14T23:26:11Z', 'git_url': 'git://github.com/Tilka/dolphin.git', 'ssh_url': 'git@github.com:Tilka/dolphin.git', 'clone_url': 'https://github.com/Tilka/dolphin.git', 'svn_url': 'https://github.com/Tilka/dolphin', 'homepage': None, 'size': 526140, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 0, 'open_issues': 0, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T23:14:55Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14995'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14995/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14995/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/83f79b4336e3632384042f6840b8d0323211edc8'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 2, 'review_comments': 2, 'maintainer_can_modify': True, 'commits': 5, 'additions': 60, 'deletions': 32, 'changed_files': 5}, 'before': '9ded62049256a080f4715949a99414d6184b4442', 'after': '83f79b4336e3632384042f6840b8d0323211edc8', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T23:14:55Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T22:29:17.643048 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'review_requested', 'number': 15015, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15015', 'id': 5267091142, 'node_id': 'PR_kwDOALCn2M8AAAABOfFuxg', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15015', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/15015.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/15015.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15015', 'number': 15015, 'state': 'open', 'locked': False, 'title': 'AchievementManager: Include the response code in the HTTP request failure error message.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Users hit this error and we don't know why. Let's see what the response code is.", 'created_at': '2026-11-11T21:35:03Z', 'updated_at': '2026-11-14T22:29:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e902ff7bbb1d95cbfea742cae13f1cc6e7264bd5', 'assignees': [], 'requested_reviewers': [{'login': 'LillyJadeKatrin', 'id': 122337285, 'node_id': 'U_kgDOB0q4BQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/122337285?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/LillyJadeKatrin', 'html_url': 'https://github.com/LillyJadeKatrin', 'followers_url': 'https://api.github.com/users/LillyJadeKatrin/followers', 'following_url': 'https://api.github.com/users/LillyJadeKatrin/following{/other_user}', 'gists_url': 'https://api.github.com/users/LillyJadeKatrin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/LillyJadeKatrin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/LillyJadeKatrin/subscriptions', 'organizations_url': 'https://api.github.com/users/LillyJadeKatrin/orgs', 'repos_url': 'https://api.github.com/users/LillyJadeKatrin/repos', 'events_url': 'https://api.github.com/users/LillyJadeKatrin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/LillyJadeKatrin/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15015/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15015/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15015/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/451774eca139be7153d41c1f2e752b2ec6a16cb8', 'head': {'label': 'jordan-woyak:ra-http-logging', 'ref': 'ra-http-logging', 'sha': '451774eca139be7153d41c1f2e752b2ec6a16cb8', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T21:44:12Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530584, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'db2afcbdf8f5175a6b8414d9f5e21c978775f651', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T21:44:04Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15015'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15015'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15015'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15015/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15015/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15015/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/451774eca139be7153d41c1f2e752b2ec6a16cb8'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 6, 'deletions': 5, 'changed_files': 1}, 'requested_reviewer': {'login': 'LillyJadeKatrin', 'id': 122337285, 'node_id': 'U_kgDOB0q4BQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/122337285?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/LillyJadeKatrin', 'html_url': 'https://github.com/LillyJadeKatrin', 'followers_url': 'https://api.github.com/users/LillyJadeKatrin/followers', 'following_url': 'https://api.github.com/users/LillyJadeKatrin/following{/other_user}', 'gists_url': 'https://api.github.com/users/LillyJadeKatrin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/LillyJadeKatrin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/LillyJadeKatrin/subscriptions', 'organizations_url': 'https://api.github.com/users/LillyJadeKatrin/orgs', 'repos_url': 'https://api.github.com/users/LillyJadeKatrin/repos', 'events_url': 'https://api.github.com/users/LillyJadeKatrin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/LillyJadeKatrin/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T21:44:04Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563882, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T21:44:13.224396 {'source': 'webserver', 'gh_type': 'check_suite', 'raw': {'action': 'requested', 'check_suite': {'id': 118170308323, 'node_id': 'CS_kwDOALCn2M8AAAAbg3_O4w', 'head_branch': 'master', 'head_sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'status': 'queued', 'conclusion': None, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/check-suites/118170308323', 'before': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'after': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'pull_requests': [{'url': 'https://api.github.com/repos/Faster-Brawl/dolphin/pulls/5', 'id': 1222541325, 'number': 5, 'head': {'ref': 'master', 'sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': 'eb9e232680dfdc04ec2adab05dbc530b1e707fc9', 'repo': {'id': 577809188, 'url': 'https://api.github.com/repos/Faster-Brawl/dolphin', 'name': 'dolphin'}}}, {'url': 'https://api.github.com/repos/dirextric-auto/dolphin/pulls/1', 'id': 571486662, 'number': 1, 'head': {'ref': 'master', 'sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': '1e71904cb9930eccc036e2ce2360beaa746befa7', 'repo': {'id': 337848960, 'url': 'https://api.github.com/repos/dirextric-auto/dolphin', 'name': 'dolphin'}}}, {'url': 'https://api.github.com/repos/zurgeg/dolphin-vr-no-ovr/pulls/1', 'id': 518053317, 'number': 1, 'head': {'ref': 'master', 'sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'VR-Hydra', 'sha': 'ea9f95955e5335cc238b2f9c5a0a6dfdc8698aec', 'repo': {'id': 311469400, 'url': 'https://api.github.com/repos/zurgeg/dolphin-vr-no-ovr', 'name': 'dolphin-vr-no-ovr'}}}, {'url': 'https://api.github.com/repos/weihuoya/dolphin/pulls/1', 'id': 400884538, 'number': 1, 'head': {'ref': 'master', 'sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': '0f4c971326ae9389b3ad55b0fefacb708d148f4d', 'repo': {'id': 143011855, 'url': 'https://api.github.com/repos/weihuoya/dolphin', 'name': 'dolphin'}}}], 'app': {'id': 49947, 'client_id': 'Iv1.1fcaea7644d8b727', 'slug': 'dolphin-ci', 'node_id': 'MDM6QXBwNDk5NDc=', 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'name': 'Dolphin CI', 'description': 'Continuous Integration setup for [dolphin-emu.org](https://dolphin-emu.org/).', 'external_url': 'https://github.com/dolphin-emu', 'html_url': 'https://github.com/apps/dolphin-ci', 'created_at': '2019-12-26T22:26:07Z', 'updated_at': '2019-12-26T22:33:19Z', 'permissions': {'checks': 'write', 'contents': 'read', 'issues': 'write', 'members': 'read', 'metadata': 'read', 'pull_requests': 'write', 'statuses': 'write'}, 'events': ['check_run', 'commit_comment', 'issue_comment', 'pull_request', 'pull_request_review', 'pull_request_review_comment', 'push']}, 'created_at': '2026-11-14T21:44:12Z', 'updated_at': '2026-11-14T21:44:12Z', 'rerequestable': True, 'runs_rerequestable': True, 'latest_check_runs_count': 0, 'check_runs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/check-suites/118170308323/check-runs', 'head_commit': {'id': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'tree_id': '3c52f80381f50c14569794e3d0721e9e1ec62fbc', 'message': 'Merge pull request #15023 from jordan-woyak/rs2-remove-ws-code\n\nGameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'timestamp': '2026-11-14T21:44:09Z', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com'}}}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T21:44:04Z', 'pushed_at': '2026-11-14T21:44:10Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T21:44:12.414637 {'source': 'webserver', 'gh_type': 'push', 'raw': {'ref': 'refs/heads/master', 'before': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'after': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'name': 'dolphin-emu', 'email': None, 'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': 1374484077, 'updated_at': '2026-11-14T21:44:04Z', 'pushed_at': 1794692650, 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'stargazers': 15823, 'master_branch': 'master', 'organization': 'dolphin-emu', 'custom_properties': {}}, 'pusher': {'name': 'jordan-woyak', 'email': 'jordan.woyak@gmail.com'}, 'forced': False, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created': False, 'deleted': False, 'base_ref': None, 'compare': 'https://github.com/dolphin-emu/dolphin/compare/334334d42ab1...ce74dde6e8bd', 'commits': [{'id': '542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'tree_id': '73d977a5abca918504af84a04bcfb4bad521a25d', 'distinct': False, 'message': 'GameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'timestamp': '2026-11-14T15:03:35-06:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-14T15:03:35-06:00', 'username': 'jordan-woyak'}, 'committer': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-14T15:03:35-06:00', 'username': 'jordan-woyak'}, 'added': [], 'removed': [], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/GSWE64.ini']}, {'id': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'tree_id': '3c52f80381f50c14569794e3d0721e9e1ec62fbc', 'distinct': True, 'message': 'Merge pull request #15023 from jordan-woyak/rs2-remove-ws-code\n\nGameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'timestamp': '2026-11-14T15:44:09-06:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-14T15:44:09-06:00', 'username': 'jordan-woyak'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com', 'date': '2026-11-14T15:44:09-06:00', 'username': 'web-flow'}, 'added': [], 'removed': [], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/GSWE64.ini']}], 'head_commit': {'id': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'tree_id': '3c52f80381f50c14569794e3d0721e9e1ec62fbc', 'distinct': True, 'message': 'Merge pull request #15023 from jordan-woyak/rs2-remove-ws-code\n\nGameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'timestamp': '2026-11-14T15:44:09-06:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-14T15:44:09-06:00', 'username': 'jordan-woyak'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com', 'date': '2026-11-14T15:44:09-06:00', 'username': 'web-flow'}, 'added': [], 'removed': [], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/GSWE64.ini']}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T21:44:12.298837 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'closed', 'number': 15023, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023', 'id': 5316181381, 'node_id': 'PR_kwDOALCn2M8AAAABPN59hQ', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15023', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/15023.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/15023.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15023', 'number': 15023, 'state': 'closed', 'locked': False, 'title': 'GameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '@JMC47 told me this code was broken a long time ago.\nA user just ran into it being broken here: https://bugs.dolphin-emu.org/issues/14182', 'created_at': '2026-11-14T21:05:09Z', 'updated_at': '2026-11-14T21:44:10Z', 'closed_at': '2026-11-14T21:44:10Z', 'merged_at': '2026-11-14T21:44:10Z', 'merge_commit_sha': 'ce74dde6e8bd765817360422c0ac04cd717b9c3a', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15023/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'head': {'label': 'jordan-woyak:rs2-remove-ws-code', 'ref': 'rs2-remove-ws-code', 'sha': '542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T21:43:24Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530572, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T21:44:04Z', 'pushed_at': '2026-11-14T20:57:32Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15023'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15023'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15023/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/542cce7ac175b61fa8ad6dbf56bdb9de4d84495e'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 26, 'changed_files': 2}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T21:44:04Z', 'pushed_at': '2026-11-14T20:57:32Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T21:43:39.406743 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'unlabeled', 'number': 13624, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624', 'id': 2496504983, 'node_id': 'PR_kwDOALCn2M6UzaSX', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13624', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13624.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13624.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624', 'number': 13624, 'state': 'open', 'locked': False, 'title': 'PerformanceTracker: Fix some interthread communication. Other cleanups.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'VPS `PerformanceTracker::ImPlotPlotLines` unsafely accessed `m_last_time` in gpu-thread.\r\nThis was my fault from #13398.\r\n\r\n`ImPlotPlotLines` used this value for a `predicted_frame_time`, i.e. the right-most point in the performance graph that wouldn\'t be measured until after the very frame that\'s being generated.\r\n\r\nTwo problems:\r\n1. The cross thread variable usage was wrong.\r\n2. The predicted time value doesn\'t make sense for VPS because VPS is not necessarily tied to the presentation time.\r\n\r\nI removed the "predicted" value from the graph. Now only actually measured values are shown which eliminates both problems.\r\n\r\n~~I also cleaned up some other atomic usages.~~ (addressed in #14877)', 'created_at': '2025-05-02T23:13:54Z', 'updated_at': '2026-11-14T21:43:37Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '48aca64cba126df6c9d418574014cad794589220', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/e57ebb9bf349faa02bdcd0db260177e0ca34da93', 'head': {'label': 'jordan-woyak:perf-metrics-atomics', 'ref': 'perf-metrics-atomics', 'sha': 'e57ebb9bf349faa02bdcd0db260177e0ca34da93', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T21:43:24Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530572, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T20:57:32Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13624'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/e57ebb9bf349faa02bdcd0db260177e0ca34da93'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 2, 'additions': 16, 'deletions': 24, 'changed_files': 2}, 'label': {'id': 221808232, 'node_id': 'MDU6TGFiZWwyMjE4MDgyMzI=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP%20/%20do%20not%20merge', 'name': 'WIP / do not merge', 'color': '0052cc', 'default': False, 'description': 'Work in progress (do not merge)', 'archived_at': None, 'archived_by': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T20:57:32Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T21:43:27.180256 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 13624, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624', 'id': 2496504983, 'node_id': 'PR_kwDOALCn2M6UzaSX', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13624', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13624.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13624.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624', 'number': 13624, 'state': 'open', 'locked': False, 'title': 'PerformanceTracker: Fix some interthread communication. Other cleanups.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'VPS `PerformanceTracker::ImPlotPlotLines` unsafely accessed `m_last_time` in gpu-thread.\r\nThis was my fault from #13398.\r\n\r\n`ImPlotPlotLines` used this value for a `predicted_frame_time`, i.e. the right-most point in the performance graph that wouldn\'t be measured until after the very frame that\'s being generated.\r\n\r\nTwo problems:\r\n1. The cross thread variable usage was wrong.\r\n2. The predicted time value doesn\'t make sense for VPS because VPS is not necessarily tied to the presentation time.\r\n\r\nI removed the "predicted" value from the graph. Now only actually measured values are shown which eliminates both problems.\r\n\r\n~~I also cleaned up some other atomic usages.~~ (addressed in #14877)', 'created_at': '2025-05-02T23:13:54Z', 'updated_at': '2026-11-14T21:43:25Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1376d260767a19e85513f1fd003846de02256ddf', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 221808232, 'node_id': 'MDU6TGFiZWwyMjE4MDgyMzI=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP%20/%20do%20not%20merge', 'name': 'WIP / do not merge', 'color': '0052cc', 'default': False, 'description': 'Work in progress (do not merge)', 'archived_at': None, 'archived_by': None}], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/e57ebb9bf349faa02bdcd0db260177e0ca34da93', 'head': {'label': 'jordan-woyak:perf-metrics-atomics', 'ref': 'perf-metrics-atomics', 'sha': 'e57ebb9bf349faa02bdcd0db260177e0ca34da93', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T21:43:24Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530572, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T20:57:32Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13624'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/e57ebb9bf349faa02bdcd0db260177e0ca34da93'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 2, 'additions': 16, 'deletions': 24, 'changed_files': 2}, 'before': 'f52b1ff6d315215334454d69d16c3718b64cc6b1', 'after': 'e57ebb9bf349faa02bdcd0db260177e0ca34da93', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T20:57:32Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T21:10:08.649575 {'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 5907173823, 'node_id': 'PRR_kwDOALCn2M8AAAABYBhRvw', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "JMC removed it from the wiki a while ago. Let's remove it here too.", 'commit_id': '542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'state': 'approved', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15023#pullrequestreview-5907173823', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15023#pullrequestreview-5907173823'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023'}}, 'submitted_at': '2026-11-14T21:10:06Z', 'updated_at': '2026-11-14T21:10:06Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023', 'id': 5316181381, 'node_id': 'PR_kwDOALCn2M8AAAABPN59hQ', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15023', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/15023.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/15023.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15023', 'number': 15023, 'state': 'open', 'locked': False, 'title': 'GameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '@JMC47 told me this code was broken a long time ago.\nA user just ran into it being broken here: https://bugs.dolphin-emu.org/issues/14182', 'created_at': '2026-11-14T21:05:09Z', 'updated_at': '2026-11-14T21:05:09Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '326dbcf8c6725517c9d7400597b9273c1b467924', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15023/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'head': {'label': 'jordan-woyak:rs2-remove-ws-code', 'ref': 'rs2-remove-ws-code', 'sha': '542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T21:04:23Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530572, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T20:57:32Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15023'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15023'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15023/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/542cce7ac175b61fa8ad6dbf56bdb9de4d84495e'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T20:57:32Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T21:05:12.555050 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'opened', 'number': 15023, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023', 'id': 5316181381, 'node_id': 'PR_kwDOALCn2M8AAAABPN59hQ', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15023', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/15023.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/15023.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15023', 'number': 15023, 'state': 'open', 'locked': False, 'title': 'GameSettings: Remove broken Rogue Squadron II widescreen gecko code.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '@JMC47 told me this code was broken a long time ago.\nA user just ran into it being broken here: https://bugs.dolphin-emu.org/issues/14182', 'created_at': '2026-11-14T21:05:09Z', 'updated_at': '2026-11-14T21:05:09Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15023/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'head': {'label': 'jordan-woyak:rs2-remove-ws-code', 'ref': 'rs2-remove-ws-code', 'sha': '542cce7ac175b61fa8ad6dbf56bdb9de4d84495e', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T21:04:23Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530550, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T20:57:32Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15023'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15023'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15023/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15023/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/542cce7ac175b61fa8ad6dbf56bdb9de4d84495e'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 26, 'changed_files': 2}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T20:57:32Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T20:57:35.891200 {'source': 'webserver', 'gh_type': 'check_suite', 'raw': {'action': 'requested', 'check_suite': {'id': 118159537991, 'node_id': 'CS_kwDOALCn2M8AAAAbgtt3Rw', 'head_branch': 'master', 'head_sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'status': 'queued', 'conclusion': None, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/check-suites/118159537991', 'before': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'after': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'pull_requests': [{'url': 'https://api.github.com/repos/Faster-Brawl/dolphin/pulls/5', 'id': 1222541325, 'number': 5, 'head': {'ref': 'master', 'sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': 'eb9e232680dfdc04ec2adab05dbc530b1e707fc9', 'repo': {'id': 577809188, 'url': 'https://api.github.com/repos/Faster-Brawl/dolphin', 'name': 'dolphin'}}}, {'url': 'https://api.github.com/repos/dirextric-auto/dolphin/pulls/1', 'id': 571486662, 'number': 1, 'head': {'ref': 'master', 'sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': '1e71904cb9930eccc036e2ce2360beaa746befa7', 'repo': {'id': 337848960, 'url': 'https://api.github.com/repos/dirextric-auto/dolphin', 'name': 'dolphin'}}}, {'url': 'https://api.github.com/repos/zurgeg/dolphin-vr-no-ovr/pulls/1', 'id': 518053317, 'number': 1, 'head': {'ref': 'master', 'sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'VR-Hydra', 'sha': 'ea9f95955e5335cc238b2f9c5a0a6dfdc8698aec', 'repo': {'id': 311469400, 'url': 'https://api.github.com/repos/zurgeg/dolphin-vr-no-ovr', 'name': 'dolphin-vr-no-ovr'}}}, {'url': 'https://api.github.com/repos/weihuoya/dolphin/pulls/1', 'id': 400884538, 'number': 1, 'head': {'ref': 'master', 'sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': '0f4c971326ae9389b3ad55b0fefacb708d148f4d', 'repo': {'id': 143011855, 'url': 'https://api.github.com/repos/weihuoya/dolphin', 'name': 'dolphin'}}}], 'app': {'id': 49947, 'client_id': 'Iv1.1fcaea7644d8b727', 'slug': 'dolphin-ci', 'node_id': 'MDM6QXBwNDk5NDc=', 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'name': 'Dolphin CI', 'description': 'Continuous Integration setup for [dolphin-emu.org](https://dolphin-emu.org/).', 'external_url': 'https://github.com/dolphin-emu', 'html_url': 'https://github.com/apps/dolphin-ci', 'created_at': '2019-12-26T22:26:07Z', 'updated_at': '2019-12-26T22:33:19Z', 'permissions': {'checks': 'write', 'contents': 'read', 'issues': 'write', 'members': 'read', 'metadata': 'read', 'pull_requests': 'write', 'statuses': 'write'}, 'events': ['check_run', 'commit_comment', 'issue_comment', 'pull_request', 'pull_request_review', 'pull_request_review_comment', 'push']}, 'created_at': '2026-11-14T20:57:34Z', 'updated_at': '2026-11-14T20:57:34Z', 'rerequestable': True, 'runs_rerequestable': True, 'latest_check_runs_count': 0, 'check_runs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/check-suites/118159537991/check-runs', 'head_commit': {'id': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'tree_id': '0f6bb4693e37d3af1b15298025f49d923cbf7899', 'message': 'Merge pull request #15006 from Sintendo/mfspr-movsx\n\nJit64: mfspr - Sign-extend slice_length', 'timestamp': '2026-11-14T20:57:32Z', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com'}}}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T20:57:32Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T20:57:35.207825 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'closed', 'number': 15006, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15006', 'id': 5244617884, 'node_id': 'PR_kwDOALCn2M8AAAABOJqEnA', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/15006', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/15006.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/15006.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15006', 'number': 15006, 'state': 'closed', 'locked': False, 'title': 'Jit64: mfspr - Sign-extend slice_length', 'user': {'login': 'Sintendo', 'id': 3380580, 'node_id': 'MDQ6VXNlcjMzODA1ODA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3380580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Sintendo', 'html_url': 'https://github.com/Sintendo', 'followers_url': 'https://api.github.com/users/Sintendo/followers', 'following_url': 'https://api.github.com/users/Sintendo/following{/other_user}', 'gists_url': 'https://api.github.com/users/Sintendo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Sintendo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Sintendo/subscriptions', 'organizations_url': 'https://api.github.com/users/Sintendo/orgs', 'repos_url': 'https://api.github.com/users/Sintendo/repos', 'events_url': 'https://api.github.com/users/Sintendo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Sintendo/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '`slice_length` is defined as an int, but was being zero-extended to 64 bits on x64. We should match what we do for ARM64 and sign-extend, as discussed in 14944.\n\nAlso addresses the ugly formatting on the comment.', 'created_at': '2026-11-10T16:09:05Z', 'updated_at': '2026-11-14T20:57:33Z', 'closed_at': '2026-11-14T20:57:33Z', 'merged_at': '2026-11-14T20:57:32Z', 'merge_commit_sha': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15006/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15006/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15006/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/ad3598389ebc6ef2d93915b656c0c3478104ac77', 'head': {'label': 'Sintendo:mfspr-movsx', 'ref': 'mfspr-movsx', 'sha': 'ad3598389ebc6ef2d93915b656c0c3478104ac77', 'user': {'login': 'Sintendo', 'id': 3380580, 'node_id': 'MDQ6VXNlcjMzODA1ODA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3380580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Sintendo', 'html_url': 'https://github.com/Sintendo', 'followers_url': 'https://api.github.com/users/Sintendo/followers', 'following_url': 'https://api.github.com/users/Sintendo/following{/other_user}', 'gists_url': 'https://api.github.com/users/Sintendo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Sintendo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Sintendo/subscriptions', 'organizations_url': 'https://api.github.com/users/Sintendo/orgs', 'repos_url': 'https://api.github.com/users/Sintendo/repos', 'events_url': 'https://api.github.com/users/Sintendo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Sintendo/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 24194595, 'node_id': 'MDEwOlJlcG9zaXRvcnkyNDE5NDU5NQ==', 'name': 'dolphin', 'full_name': 'Sintendo/dolphin', 'private': False, 'owner': {'login': 'Sintendo', 'id': 3380580, 'node_id': 'MDQ6VXNlcjMzODA1ODA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3380580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Sintendo', 'html_url': 'https://github.com/Sintendo', 'followers_url': 'https://api.github.com/users/Sintendo/followers', 'following_url': 'https://api.github.com/users/Sintendo/following{/other_user}', 'gists_url': 'https://api.github.com/users/Sintendo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Sintendo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Sintendo/subscriptions', 'organizations_url': 'https://api.github.com/users/Sintendo/orgs', 'repos_url': 'https://api.github.com/users/Sintendo/repos', 'events_url': 'https://api.github.com/users/Sintendo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Sintendo/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/Sintendo/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/Sintendo/dolphin', 'forks_url': 'https://api.github.com/repos/Sintendo/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Sintendo/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Sintendo/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Sintendo/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Sintendo/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Sintendo/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Sintendo/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Sintendo/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Sintendo/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Sintendo/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Sintendo/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Sintendo/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Sintendo/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Sintendo/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Sintendo/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Sintendo/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Sintendo/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Sintendo/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Sintendo/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Sintendo/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Sintendo/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Sintendo/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Sintendo/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Sintendo/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Sintendo/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Sintendo/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Sintendo/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Sintendo/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Sintendo/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Sintendo/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Sintendo/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Sintendo/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Sintendo/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Sintendo/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Sintendo/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Sintendo/dolphin/deployments', 'created_at': '2014-09-18T15:52:53Z', 'updated_at': '2026-11-10T14:45:13Z', 'pushed_at': '2026-11-10T16:07:03Z', 'git_url': 'git://github.com/Sintendo/dolphin.git', 'ssh_url': 'git@github.com:Sintendo/dolphin.git', 'clone_url': 'https://github.com/Sintendo/dolphin.git', 'svn_url': 'https://github.com/Sintendo/dolphin', 'homepage': None, 'size': 525683, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '70c5a6ad0e62ce32d922dd2478d465e9f0f84424', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T19:49:31Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15006'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/15006'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15006'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/15006/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15006/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/15006/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/ad3598389ebc6ef2d93915b656c0c3478104ac77'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 5, 'deletions': 9, 'changed_files': 1}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T19:49:31Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T20:57:35.191337 {'source': 'webserver', 'gh_type': 'push', 'raw': {'ref': 'refs/heads/master', 'before': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'after': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'name': 'dolphin-emu', 'email': None, 'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': 1374484077, 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': 1794689852, 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 483, 'watchers': 15823, 'default_branch': 'master', 'stargazers': 15823, 'master_branch': 'master', 'organization': 'dolphin-emu', 'custom_properties': {}}, 'pusher': {'name': 'jordan-woyak', 'email': 'jordan.woyak@gmail.com'}, 'forced': False, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created': False, 'deleted': False, 'base_ref': None, 'compare': 'https://github.com/dolphin-emu/dolphin/compare/f9cb5f1c0844...334334d42ab1', 'commits': [{'id': 'b47056b6fdcbbafcf2dc2da1c252104be4dcca93', 'tree_id': 'cf7fc10a08eddbcecdf24c3f572f700221a027dc', 'distinct': False, 'message': 'Jit64: mfspr - Sign-extend slice_length\n\n`slice_length` is defined as an int, but was being zero-extended to 64\nbits on x64. We should match what we do for ARM64 and sign-extend, as\ndiscussed in PR #14944.', 'timestamp': '2026-11-10T16:55:20+01:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/b47056b6fdcbbafcf2dc2da1c252104be4dcca93', 'author': {'name': 'Sintendo', 'email': '3380580+Sintendo@users.noreply.github.com', 'date': '2026-11-10T16:54:33+01:00', 'username': 'Sintendo'}, 'committer': {'name': 'Sintendo', 'email': '3380580+Sintendo@users.noreply.github.com', 'date': '2026-11-10T16:55:20+01:00', 'username': 'Sintendo'}, 'added': [], 'removed': [], 'modified': ['Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp']}, {'id': 'ad3598389ebc6ef2d93915b656c0c3478104ac77', 'tree_id': '5c5f72cb64deef4f619c2e80633a3fb96625c74c', 'distinct': False, 'message': 'Jit64: mfspr - Fix comment formatting', 'timestamp': '2026-11-10T17:06:46+01:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ad3598389ebc6ef2d93915b656c0c3478104ac77', 'author': {'name': 'Sintendo', 'email': '3380580+Sintendo@users.noreply.github.com', 'date': '2026-11-10T17:06:46+01:00', 'username': 'Sintendo'}, 'committer': {'name': 'Sintendo', 'email': '3380580+Sintendo@users.noreply.github.com', 'date': '2026-11-10T17:06:46+01:00', 'username': 'Sintendo'}, 'added': [], 'removed': [], 'modified': ['Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp']}, {'id': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'tree_id': '0f6bb4693e37d3af1b15298025f49d923cbf7899', 'distinct': True, 'message': 'Merge pull request #15006 from Sintendo/mfspr-movsx\n\nJit64: mfspr - Sign-extend slice_length', 'timestamp': '2026-11-14T14:57:32-06:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-14T14:57:32-06:00', 'username': 'jordan-woyak'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com', 'date': '2026-11-14T14:57:32-06:00', 'username': 'web-flow'}, 'added': [], 'removed': [], 'modified': ['Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp']}], 'head_commit': {'id': '334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'tree_id': '0f6bb4693e37d3af1b15298025f49d923cbf7899', 'distinct': True, 'message': 'Merge pull request #15006 from Sintendo/mfspr-movsx\n\nJit64: mfspr - Sign-extend slice_length', 'timestamp': '2026-11-14T14:57:32-06:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/334334d42ab1f9b8d18ef078b2efbc94cfa89081', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-14T14:57:32-06:00', 'username': 'jordan-woyak'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com', 'date': '2026-11-14T14:57:32-06:00', 'username': 'web-flow'}, 'added': [], 'removed': [], 'modified': ['Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp']}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T20:38:35.775817 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'labeled', 'number': 13624, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624', 'id': 2496504983, 'node_id': 'PR_kwDOALCn2M6UzaSX', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13624', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13624.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13624.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624', 'number': 13624, 'state': 'open', 'locked': False, 'title': 'PerformanceTracker: Fix some interthread communication. Other cleanups.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'VPS `PerformanceTracker::ImPlotPlotLines` unsafely accessed `m_last_time` in gpu-thread.\r\nThis was my fault from #13398.\r\n\r\n`ImPlotPlotLines` used this value for a `predicted_frame_time`, i.e. the right-most point in the performance graph that wouldn\'t be measured until after the very frame that\'s being generated.\r\n\r\nTwo problems:\r\n1. The cross thread variable usage was wrong.\r\n2. The predicted time value doesn\'t make sense for VPS because VPS is not necessarily tied to the presentation time.\r\n\r\nI removed the "predicted" value from the graph. Now only actually measured values are shown which eliminates both problems.\r\n\r\n~~I also cleaned up some other atomic usages.~~ (addressed in #14877)', 'created_at': '2025-05-02T23:13:54Z', 'updated_at': '2026-11-14T20:38:33Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1376d260767a19e85513f1fd003846de02256ddf', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 221808232, 'node_id': 'MDU6TGFiZWwyMjE4MDgyMzI=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP%20/%20do%20not%20merge', 'name': 'WIP / do not merge', 'color': '0052cc', 'default': False, 'description': 'Work in progress (do not merge)', 'archived_at': None, 'archived_by': None}], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f52b1ff6d315215334454d69d16c3718b64cc6b1', 'head': {'label': 'jordan-woyak:perf-metrics-atomics', 'ref': 'perf-metrics-atomics', 'sha': 'f52b1ff6d315215334454d69d16c3718b64cc6b1', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T20:18:15Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530550, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T19:49:31Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13624'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f52b1ff6d315215334454d69d16c3718b64cc6b1'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 2, 'additions': 9, 'deletions': 20, 'changed_files': 2}, 'label': {'id': 221808232, 'node_id': 'MDU6TGFiZWwyMjE4MDgyMzI=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP%20/%20do%20not%20merge', 'name': 'WIP / do not merge', 'color': '0052cc', 'default': False, 'description': 'Work in progress (do not merge)', 'archived_at': None, 'archived_by': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T20:29:08Z', 'pushed_at': '2026-11-14T19:49:31Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3388, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3388, 'open_issues': 484, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T20:19:25.823126 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'edited', 'number': 13624, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624', 'id': 2496504983, 'node_id': 'PR_kwDOALCn2M6UzaSX', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13624', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13624.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13624.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624', 'number': 13624, 'state': 'open', 'locked': False, 'title': 'PerformanceTracker: Fix some interthread communication. Other cleanups.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'VPS `PerformanceTracker::ImPlotPlotLines` unsafely accessed `m_last_time` in gpu-thread.\r\nThis was my fault from #13398.\r\n\r\n`ImPlotPlotLines` used this value for a `predicted_frame_time`, i.e. the right-most point in the performance graph that wouldn\'t be measured until after the very frame that\'s being generated.\r\n\r\nTwo problems:\r\n1. The cross thread variable usage was wrong.\r\n2. The predicted time value doesn\'t make sense for VPS because VPS is not necessarily tied to the presentation time.\r\n\r\nI removed the "predicted" value from the graph. Now only actually measured values are shown which eliminates both problems.\r\n\r\n~~I also cleaned up some other atomic usages.~~ (addressed in #14877)', 'created_at': '2025-05-02T23:13:54Z', 'updated_at': '2026-11-14T20:19:23Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1376d260767a19e85513f1fd003846de02256ddf', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f52b1ff6d315215334454d69d16c3718b64cc6b1', 'head': {'label': 'jordan-woyak:perf-metrics-atomics', 'ref': 'perf-metrics-atomics', 'sha': 'f52b1ff6d315215334454d69d16c3718b64cc6b1', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T20:18:15Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530550, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T19:28:04Z', 'pushed_at': '2026-11-14T19:49:31Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15822, 'watchers_count': 15822, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 484, 'watchers': 15822, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13624'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f52b1ff6d315215334454d69d16c3718b64cc6b1'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 2, 'additions': 9, 'deletions': 20, 'changed_files': 2}, 'changes': {'body': {'from': 'VPS `PerformanceTracker::ImPlotPlotLines` unsafely accessed `m_last_time` in gpu-thread.\r\nThis was my fault from #13398.\r\n\r\n`ImPlotPlotLines` used this value for a `predicted_frame_time`, i.e. the right-most point in the performance graph that wouldn\'t be measured until after the very frame that\'s being generated.\r\n\r\nTwo problems:\r\n1. The cross thread variable usage was wrong.\r\n2. The predicted time value doesn\'t make sense for VPS because VPS is not necessarily tied to the presentation time.\r\n\r\nI removed the "predicted" value from the graph. Now only actually measured values are shown which eliminates both problems.\r\n\r\nI also cleaned up some other atomic usages.'}}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T19:28:04Z', 'pushed_at': '2026-11-14T19:49:31Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15822, 'watchers_count': 15822, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 484, 'watchers': 15822, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T20:18:18.358607 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 13624, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624', 'id': 2496504983, 'node_id': 'PR_kwDOALCn2M6UzaSX', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13624', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13624.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13624.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624', 'number': 13624, 'state': 'open', 'locked': False, 'title': 'PerformanceTracker: Fix some interthread communication. Other cleanups.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'VPS `PerformanceTracker::ImPlotPlotLines` unsafely accessed `m_last_time` in gpu-thread.\r\nThis was my fault from #13398.\r\n\r\n`ImPlotPlotLines` used this value for a `predicted_frame_time`, i.e. the right-most point in the performance graph that wouldn\'t be measured until after the very frame that\'s being generated.\r\n\r\nTwo problems:\r\n1. The cross thread variable usage was wrong.\r\n2. The predicted time value doesn\'t make sense for VPS because VPS is not necessarily tied to the presentation time.\r\n\r\nI removed the "predicted" value from the graph. Now only actually measured values are shown which eliminates both problems.\r\n\r\nI also cleaned up some other atomic usages.', 'created_at': '2025-05-02T23:13:54Z', 'updated_at': '2026-11-14T20:18:16Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f52b1ff6d315215334454d69d16c3718b64cc6b1', 'head': {'label': 'jordan-woyak:perf-metrics-atomics', 'ref': 'perf-metrics-atomics', 'sha': 'f52b1ff6d315215334454d69d16c3718b64cc6b1', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T20:18:15Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530550, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T19:28:04Z', 'pushed_at': '2026-11-14T19:49:31Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15822, 'watchers_count': 15822, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 484, 'watchers': 15822, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13624'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13624/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13624/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f52b1ff6d315215334454d69d16c3718b64cc6b1'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 2, 'additions': 9, 'deletions': 20, 'changed_files': 2}, 'before': 'a8125271159f23ab30fff0ad35cea4b1ff1c7187', 'after': 'f52b1ff6d315215334454d69d16c3718b64cc6b1', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T19:28:04Z', 'pushed_at': '2026-11-14T19:49:31Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15822, 'watchers_count': 15822, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 484, 'watchers': 15822, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T20:05:40.105434 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14921, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14921', 'id': 4766471865, 'node_id': 'PR_kwDOALCn2M8AAAABHBqWuQ', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14921', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14921.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14921.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14921', 'number': 14921, 'state': 'open', 'locked': False, 'title': 'Externals: Make mbedtls a submodule, update it to 2.28.10 and rename symbols.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Dependency mbedtls is updated from 2.28.0 to 2.28.10 and is now a git submodule.\r\nNote that we require 2.x because 3.x removed necessary SSLv3 features.\r\n\r\nThis replaces #13443 where it was mentioned that maybe this should not be a submodule in case we need to make bugfixes in this unmaintained version of mbedtls.\r\nI think it's still more organized to keep this as a submodule.\r\nIf we do need to make bugfixes we can make a fork of the mbedtls repo and change our submodule path to point to it.\r\nI think that's better than copy-pasting an entire other project into our Externals directory.\r\n\r\nI've included a simple CMakeLists.txt which alters the target names and a custom_config.h to macro all the symbol prefixes from mbedtls_ to mbedtls2_.\r\nI used `nm` `llvm-nm` to verify all the symbols were changed on Linux and Windows.\r\nI'd appreciate if someone could check the output on the other platforms in case mbedtls exposes additional symbols elsewhere.\r\n\r\nThis should allow linking to both mbedtls2 and mbedtls3/4.\r\nThis will probably be necessary for #14902 ", 'created_at': '2026-10-07T00:58:05Z', 'updated_at': '2026-11-14T20:05:38Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14921/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14921/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14921/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/c377c5a134377f8956d5ced0083bacb53f0012a1', 'head': {'label': 'jordan-woyak:mbedtls2-symbols', 'ref': 'mbedtls2-symbols', 'sha': 'c377c5a134377f8956d5ced0083bacb53f0012a1', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2026-06-27T21:22:47Z', 'pushed_at': '2026-11-14T20:05:35Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 530550, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T19:28:04Z', 'pushed_at': '2026-11-14T19:49:31Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15822, 'watchers_count': 15822, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 484, 'watchers': 15822, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14921'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14921'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14921'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14921/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14921/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14921/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/c377c5a134377f8956d5ced0083bacb53f0012a1'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 2, 'review_comments': 4, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1202, 'deletions': 163726, 'changed_files': 265}, 'before': '849e97e2e7c560e3e006b204995cf184433d6c1d', 'after': 'c377c5a134377f8956d5ced0083bacb53f0012a1', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T19:28:04Z', 'pushed_at': '2026-11-14T19:49:31Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563879, 'stargazers_count': 15822, 'watchers_count': 15822, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 484, 'watchers': 15822, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T19:49:35.520021 {'source': 'webserver', 'gh_type': 'check_suite', 'raw': {'action': 'requested', 'check_suite': {'id': 118143741269, 'node_id': 'CS_kwDOALCn2M8AAAAbgeptVQ', 'head_branch': 'master', 'head_sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'status': 'queued', 'conclusion': None, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/check-suites/118143741269', 'before': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'after': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'pull_requests': [{'url': 'https://api.github.com/repos/Faster-Brawl/dolphin/pulls/5', 'id': 1222541325, 'number': 5, 'head': {'ref': 'master', 'sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': 'eb9e232680dfdc04ec2adab05dbc530b1e707fc9', 'repo': {'id': 577809188, 'url': 'https://api.github.com/repos/Faster-Brawl/dolphin', 'name': 'dolphin'}}}, {'url': 'https://api.github.com/repos/dirextric-auto/dolphin/pulls/1', 'id': 571486662, 'number': 1, 'head': {'ref': 'master', 'sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': '1e71904cb9930eccc036e2ce2360beaa746befa7', 'repo': {'id': 337848960, 'url': 'https://api.github.com/repos/dirextric-auto/dolphin', 'name': 'dolphin'}}}, {'url': 'https://api.github.com/repos/zurgeg/dolphin-vr-no-ovr/pulls/1', 'id': 518053317, 'number': 1, 'head': {'ref': 'master', 'sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'VR-Hydra', 'sha': 'ea9f95955e5335cc238b2f9c5a0a6dfdc8698aec', 'repo': {'id': 311469400, 'url': 'https://api.github.com/repos/zurgeg/dolphin-vr-no-ovr', 'name': 'dolphin-vr-no-ovr'}}}, {'url': 'https://api.github.com/repos/weihuoya/dolphin/pulls/1', 'id': 400884538, 'number': 1, 'head': {'ref': 'master', 'sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': '0f4c971326ae9389b3ad55b0fefacb708d148f4d', 'repo': {'id': 143011855, 'url': 'https://api.github.com/repos/weihuoya/dolphin', 'name': 'dolphin'}}}], 'app': {'id': 49947, 'client_id': 'Iv1.1fcaea7644d8b727', 'slug': 'dolphin-ci', 'node_id': 'MDM6QXBwNDk5NDc=', 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'name': 'Dolphin CI', 'description': 'Continuous Integration setup for [dolphin-emu.org](https://dolphin-emu.org/).', 'external_url': 'https://github.com/dolphin-emu', 'html_url': 'https://github.com/apps/dolphin-ci', 'created_at': '2019-12-26T22:26:07Z', 'updated_at': '2019-12-26T22:33:19Z', 'permissions': {'checks': 'write', 'contents': 'read', 'issues': 'write', 'members': 'read', 'metadata': 'read', 'pull_requests': 'write', 'statuses': 'write'}, 'events': ['check_run', 'commit_comment', 'issue_comment', 'pull_request', 'pull_request_review', 'pull_request_review_comment', 'push']}, 'created_at': '2026-11-14T19:49:33Z', 'updated_at': '2026-11-14T19:49:33Z', 'rerequestable': True, 'runs_rerequestable': True, 'latest_check_runs_count': 0, 'check_runs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/check-suites/118143741269/check-runs', 'head_commit': {'id': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'tree_id': '4dc870a064362d5c3c96142392613f6341259af4', 'message': 'Merge pull request #13704 from unexploredtest/cmake_source\n\nCMake: Fix relative pathing when project is imported', 'timestamp': '2026-11-14T19:49:30Z', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com'}}}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T19:28:04Z', 'pushed_at': '2026-11-14T19:49:31Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563854, 'stargazers_count': 15822, 'watchers_count': 15822, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 484, 'watchers': 15822, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T19:49:33.989667 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'closed', 'number': 13704, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13704', 'id': 2540842317, 'node_id': 'PR_kwDOALCn2M6Xci1N', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13704', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13704.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13704.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13704', 'number': 13704, 'state': 'closed', 'locked': False, 'title': 'CMake: Fix relative pathing when project is imported', 'user': {'login': 'unexploredtest', 'id': 53617231, 'node_id': 'MDQ6VXNlcjUzNjE3MjMx', 'avatar_url': 'https://avatars.githubusercontent.com/u/53617231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/unexploredtest', 'html_url': 'https://github.com/unexploredtest', 'followers_url': 'https://api.github.com/users/unexploredtest/followers', 'following_url': 'https://api.github.com/users/unexploredtest/following{/other_user}', 'gists_url': 'https://api.github.com/users/unexploredtest/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/unexploredtest/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/unexploredtest/subscriptions', 'organizations_url': 'https://api.github.com/users/unexploredtest/orgs', 'repos_url': 'https://api.github.com/users/unexploredtest/repos', 'events_url': 'https://api.github.com/users/unexploredtest/events{/privacy}', 'received_events_url': 'https://api.github.com/users/unexploredtest/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Currently Dolphin uses CMAKE_SOURCE_DIR in several places for building the project which causes issues if included as an external project. Replacing CMAKE_SOURCE_DIR variables with the appropriate CMAKE_CURRENT_SOURCE_DIR equivalent fixes the issue and also doesn't change the behavior at all.", 'created_at': '2025-05-23T20:22:21Z', 'updated_at': '2026-11-14T19:49:31Z', 'closed_at': '2026-11-14T19:49:31Z', 'merged_at': '2026-11-14T19:49:31Z', 'merge_commit_sha': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13704/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13704/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13704/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/4617fda478a97cf6fb29b1959f0a964f3ccc0033', 'head': {'label': 'unexploredtest:cmake_source', 'ref': 'cmake_source', 'sha': '4617fda478a97cf6fb29b1959f0a964f3ccc0033', 'user': {'login': 'unexploredtest', 'id': 53617231, 'node_id': 'MDQ6VXNlcjUzNjE3MjMx', 'avatar_url': 'https://avatars.githubusercontent.com/u/53617231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/unexploredtest', 'html_url': 'https://github.com/unexploredtest', 'followers_url': 'https://api.github.com/users/unexploredtest/followers', 'following_url': 'https://api.github.com/users/unexploredtest/following{/other_user}', 'gists_url': 'https://api.github.com/users/unexploredtest/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/unexploredtest/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/unexploredtest/subscriptions', 'organizations_url': 'https://api.github.com/users/unexploredtest/orgs', 'repos_url': 'https://api.github.com/users/unexploredtest/repos', 'events_url': 'https://api.github.com/users/unexploredtest/events{/privacy}', 'received_events_url': 'https://api.github.com/users/unexploredtest/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 989095804, 'node_id': 'R_kgDOOvRnfA', 'name': 'dolphin', 'full_name': 'unexploredtest/dolphin', 'private': False, 'owner': {'login': 'unexploredtest', 'id': 53617231, 'node_id': 'MDQ6VXNlcjUzNjE3MjMx', 'avatar_url': 'https://avatars.githubusercontent.com/u/53617231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/unexploredtest', 'html_url': 'https://github.com/unexploredtest', 'followers_url': 'https://api.github.com/users/unexploredtest/followers', 'following_url': 'https://api.github.com/users/unexploredtest/following{/other_user}', 'gists_url': 'https://api.github.com/users/unexploredtest/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/unexploredtest/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/unexploredtest/subscriptions', 'organizations_url': 'https://api.github.com/users/unexploredtest/orgs', 'repos_url': 'https://api.github.com/users/unexploredtest/repos', 'events_url': 'https://api.github.com/users/unexploredtest/events{/privacy}', 'received_events_url': 'https://api.github.com/users/unexploredtest/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/unexploredtest/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/unexploredtest/dolphin', 'forks_url': 'https://api.github.com/repos/unexploredtest/dolphin/forks', 'keys_url': 'https://api.github.com/repos/unexploredtest/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/unexploredtest/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/unexploredtest/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/unexploredtest/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/unexploredtest/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/unexploredtest/dolphin/events', 'assignees_url': 'https://api.github.com/repos/unexploredtest/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/unexploredtest/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/unexploredtest/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/unexploredtest/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/unexploredtest/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/unexploredtest/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/unexploredtest/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/unexploredtest/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/unexploredtest/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/unexploredtest/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/unexploredtest/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/unexploredtest/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/unexploredtest/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/unexploredtest/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/unexploredtest/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/unexploredtest/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/unexploredtest/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/unexploredtest/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/unexploredtest/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/unexploredtest/dolphin/merges', 'archive_url': 'https://api.github.com/repos/unexploredtest/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/unexploredtest/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/unexploredtest/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/unexploredtest/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/unexploredtest/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/unexploredtest/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/unexploredtest/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/unexploredtest/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/unexploredtest/dolphin/deployments', 'created_at': '2025-05-23T14:47:44Z', 'updated_at': '2026-10-30T22:12:15Z', 'pushed_at': '2026-10-31T17:55:48Z', 'git_url': 'git://github.com/unexploredtest/dolphin.git', 'ssh_url': 'git@github.com:unexploredtest/dolphin.git', 'clone_url': 'https://github.com/unexploredtest/dolphin.git', 'svn_url': 'https://github.com/unexploredtest/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 521120, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 1, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '613db73aeb2c086a816592df2fb193d73130101b', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T19:28:04Z', 'pushed_at': '2026-11-14T19:03:07Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563854, 'stargazers_count': 15822, 'watchers_count': 15822, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 484, 'watchers': 15822, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13704'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13704'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13704'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13704/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13704/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13704/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/4617fda478a97cf6fb29b1959f0a964f3ccc0033'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'comments': 9, 'review_comments': 5, 'maintainer_can_modify': False, 'commits': 1, 'additions': 43, 'deletions': 43, 'changed_files': 10}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T19:28:04Z', 'pushed_at': '2026-11-14T19:03:07Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563854, 'stargazers_count': 15822, 'watchers_count': 15822, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 484, 'watchers': 15822, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T19:49:33.726830 {'source': 'webserver', 'gh_type': 'push', 'raw': {'ref': 'refs/heads/master', 'before': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'after': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'name': 'dolphin-emu', 'email': None, 'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': 1374484077, 'updated_at': '2026-11-14T19:28:04Z', 'pushed_at': 1794685771, 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563854, 'stargazers_count': 15822, 'watchers_count': 15822, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 484, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 484, 'watchers': 15822, 'default_branch': 'master', 'stargazers': 15822, 'master_branch': 'master', 'organization': 'dolphin-emu', 'custom_properties': {}}, 'pusher': {'name': 'jordan-woyak', 'email': 'jordan.woyak@gmail.com'}, 'forced': False, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created': False, 'deleted': False, 'base_ref': None, 'compare': 'https://github.com/dolphin-emu/dolphin/compare/be0e304c0234...f9cb5f1c0844', 'commits': [{'id': '4617fda478a97cf6fb29b1959f0a964f3ccc0033', 'tree_id': 'ef35fe21e30c278ff13fc4904221d3f7fd59da36', 'distinct': False, 'message': 'CMake: Fix relative pathing when project is imported', 'timestamp': '2026-10-31T21:23:34+03:30', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4617fda478a97cf6fb29b1959f0a964f3ccc0033', 'author': {'name': 'unexploredtest', 'email': 'unexploredtest@tutanota.com', 'date': '2025-05-23T23:42:32+03:30', 'username': 'unexploredtest'}, 'committer': {'name': 'unexploredtest', 'email': 'unexploredtest@tutanota.com', 'date': '2026-10-31T21:23:34+03:30', 'username': 'unexploredtest'}, 'added': [], 'removed': [], 'modified': ['Externals/MoltenVK/CMakeLists.txt', 'Externals/mbedtls/3rdparty/CMakeLists.txt', 'Externals/mbedtls/library/CMakeLists.txt', 'Source/Android/jni/CMakeLists.txt', 'Source/Core/CMakeLists.txt', 'Source/Core/Core/CMakeLists.txt', 'Source/Core/DolphinQt/CMakeLists.txt', 'Source/Core/MacUpdater/CMakeLists.txt', 'Source/Core/VideoBackends/Vulkan/CMakeLists.txt', 'Source/UnitTests/CMakeLists.txt']}, {'id': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'tree_id': '4dc870a064362d5c3c96142392613f6341259af4', 'distinct': True, 'message': 'Merge pull request #13704 from unexploredtest/cmake_source\n\nCMake: Fix relative pathing when project is imported', 'timestamp': '2026-11-14T13:49:30-06:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-14T13:49:30-06:00', 'username': 'jordan-woyak'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com', 'date': '2026-11-14T13:49:30-06:00', 'username': 'web-flow'}, 'added': [], 'removed': [], 'modified': ['Externals/MoltenVK/CMakeLists.txt', 'Externals/mbedtls/3rdparty/CMakeLists.txt', 'Externals/mbedtls/library/CMakeLists.txt', 'Source/Android/jni/CMakeLists.txt', 'Source/Core/CMakeLists.txt', 'Source/Core/Core/CMakeLists.txt', 'Source/Core/DolphinQt/CMakeLists.txt', 'Source/Core/MacUpdater/CMakeLists.txt', 'Source/Core/VideoBackends/Vulkan/CMakeLists.txt', 'Source/UnitTests/CMakeLists.txt']}], 'head_commit': {'id': 'f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'tree_id': '4dc870a064362d5c3c96142392613f6341259af4', 'distinct': True, 'message': 'Merge pull request #13704 from unexploredtest/cmake_source\n\nCMake: Fix relative pathing when project is imported', 'timestamp': '2026-11-14T13:49:30-06:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f9cb5f1c084447e2be560a8449e22d68e0fe656d', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-14T13:49:30-06:00', 'username': 'jordan-woyak'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com', 'date': '2026-11-14T13:49:30-06:00', 'username': 'web-flow'}, 'added': [], 'removed': [], 'modified': ['Externals/MoltenVK/CMakeLists.txt', 'Externals/mbedtls/3rdparty/CMakeLists.txt', 'Externals/mbedtls/library/CMakeLists.txt', 'Source/Android/jni/CMakeLists.txt', 'Source/Core/CMakeLists.txt', 'Source/Core/Core/CMakeLists.txt', 'Source/Core/DolphinQt/CMakeLists.txt', 'Source/Core/MacUpdater/CMakeLists.txt', 'Source/Core/VideoBackends/Vulkan/CMakeLists.txt', 'Source/UnitTests/CMakeLists.txt']}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T19:03:11.707917 {'source': 'webserver', 'gh_type': 'check_suite', 'raw': {'action': 'requested', 'check_suite': {'id': 118132761913, 'node_id': 'CS_kwDOALCn2M8AAAAbgULlOQ', 'head_branch': 'master', 'head_sha': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'status': 'queued', 'conclusion': None, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/check-suites/118132761913', 'before': '761713cec9ce883d9ef8ea9a2cf65b6f09e79932', 'after': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'pull_requests': [{'url': 'https://api.github.com/repos/Faster-Brawl/dolphin/pulls/5', 'id': 1222541325, 'number': 5, 'head': {'ref': 'master', 'sha': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': 'eb9e232680dfdc04ec2adab05dbc530b1e707fc9', 'repo': {'id': 577809188, 'url': 'https://api.github.com/repos/Faster-Brawl/dolphin', 'name': 'dolphin'}}}, {'url': 'https://api.github.com/repos/dirextric-auto/dolphin/pulls/1', 'id': 571486662, 'number': 1, 'head': {'ref': 'master', 'sha': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': '1e71904cb9930eccc036e2ce2360beaa746befa7', 'repo': {'id': 337848960, 'url': 'https://api.github.com/repos/dirextric-auto/dolphin', 'name': 'dolphin'}}}, {'url': 'https://api.github.com/repos/zurgeg/dolphin-vr-no-ovr/pulls/1', 'id': 518053317, 'number': 1, 'head': {'ref': 'master', 'sha': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'VR-Hydra', 'sha': 'ea9f95955e5335cc238b2f9c5a0a6dfdc8698aec', 'repo': {'id': 311469400, 'url': 'https://api.github.com/repos/zurgeg/dolphin-vr-no-ovr', 'name': 'dolphin-vr-no-ovr'}}}, {'url': 'https://api.github.com/repos/weihuoya/dolphin/pulls/1', 'id': 400884538, 'number': 1, 'head': {'ref': 'master', 'sha': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': '0f4c971326ae9389b3ad55b0fefacb708d148f4d', 'repo': {'id': 143011855, 'url': 'https://api.github.com/repos/weihuoya/dolphin', 'name': 'dolphin'}}}], 'app': {'id': 49947, 'client_id': 'Iv1.1fcaea7644d8b727', 'slug': 'dolphin-ci', 'node_id': 'MDM6QXBwNDk5NDc=', 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'name': 'Dolphin CI', 'description': 'Continuous Integration setup for [dolphin-emu.org](https://dolphin-emu.org/).', 'external_url': 'https://github.com/dolphin-emu', 'html_url': 'https://github.com/apps/dolphin-ci', 'created_at': '2019-12-26T22:26:07Z', 'updated_at': '2019-12-26T22:33:19Z', 'permissions': {'checks': 'write', 'contents': 'read', 'issues': 'write', 'members': 'read', 'metadata': 'read', 'pull_requests': 'write', 'statuses': 'write'}, 'events': ['check_run', 'commit_comment', 'issue_comment', 'pull_request', 'pull_request_review', 'pull_request_review_comment', 'push']}, 'created_at': '2026-11-14T19:03:10Z', 'updated_at': '2026-11-14T19:03:10Z', 'rerequestable': True, 'runs_rerequestable': True, 'latest_check_runs_count': 0, 'check_runs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/check-suites/118132761913/check-runs', 'head_commit': {'id': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'tree_id': 'c3401c36b1db432d36a2e7b4bd007dc2e00a843f', 'message': 'Merge pull request #14978 from JoshuaVandaele/quick-stop-hang\n\nCPU: Fix quickly-stopped games hanging Dolphin', 'timestamp': '2026-11-14T19:03:07Z', 'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com'}}}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T16:53:10Z', 'pushed_at': '2026-11-14T19:03:07Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563854, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 485, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 485, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-14T19:03:10.733316 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'closed', 'number': 14978, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14978', 'id': 5138005347, 'node_id': 'PR_kwDOALCn2M8AAAABMj-9Yw', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14978', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14978.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14978.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14978', 'number': 14978, 'state': 'closed', 'locked': False, 'title': 'CPU: Fix quickly-stopped games hanging Dolphin', 'user': {'login': 'JoshuaVandaele', 'id': 24195176, 'node_id': 'MDQ6VXNlcjI0MTk1MTc2', 'avatar_url': 'https://avatars.githubusercontent.com/u/24195176?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JoshuaVandaele', 'html_url': 'https://github.com/JoshuaVandaele', 'followers_url': 'https://api.github.com/users/JoshuaVandaele/followers', 'following_url': 'https://api.github.com/users/JoshuaVandaele/following{/other_user}', 'gists_url': 'https://api.github.com/users/JoshuaVandaele/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JoshuaVandaele/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JoshuaVandaele/subscriptions', 'organizations_url': 'https://api.github.com/users/JoshuaVandaele/orgs', 'repos_url': 'https://api.github.com/users/JoshuaVandaele/repos', 'events_url': 'https://api.github.com/users/JoshuaVandaele/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JoshuaVandaele/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Starting and quickly stopping a game will cause Dolphin to hang on a black window because `CPUManager::Init` reset the CPU state to `Stepping`, overwriting `PowerDown`. It's easier to reproduce this problem on a slow drive or by using the OmniDrive PR.", 'created_at': '2026-11-03T13:25:09Z', 'updated_at': '2026-11-14T19:03:08Z', 'closed_at': '2026-11-14T19:03:08Z', 'merged_at': '2026-11-14T19:03:08Z', 'merge_commit_sha': 'be0e304c02341d676cfbbf0cefacb965d2b5be79', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14978/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14978/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14978/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/0436c9f60eb1e815a65f01d5edb6a5a155911553', 'head': {'label': 'JoshuaVandaele:quick-stop-hang', 'ref': 'quick-stop-hang', 'sha': '0436c9f60eb1e815a65f01d5edb6a5a155911553', 'user': {'login': 'JoshuaVandaele', 'id': 24195176, 'node_id': 'MDQ6VXNlcjI0MTk1MTc2', 'avatar_url': 'https://avatars.githubusercontent.com/u/24195176?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JoshuaVandaele', 'html_url': 'https://github.com/JoshuaVandaele', 'followers_url': 'https://api.github.com/users/JoshuaVandaele/followers', 'following_url': 'https://api.github.com/users/JoshuaVandaele/following{/other_user}', 'gists_url': 'https://api.github.com/users/JoshuaVandaele/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JoshuaVandaele/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JoshuaVandaele/subscriptions', 'organizations_url': 'https://api.github.com/users/JoshuaVandaele/orgs', 'repos_url': 'https://api.github.com/users/JoshuaVandaele/repos', 'events_url': 'https://api.github.com/users/JoshuaVandaele/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JoshuaVandaele/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 915253252, 'node_id': 'R_kgDONo2oBA', 'name': 'dolphin', 'full_name': 'JoshuaVandaele/dolphin', 'private': False, 'owner': {'login': 'JoshuaVandaele', 'id': 24195176, 'node_id': 'MDQ6VXNlcjI0MTk1MTc2', 'avatar_url': 'https://avatars.githubusercontent.com/u/24195176?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JoshuaVandaele', 'html_url': 'https://github.com/JoshuaVandaele', 'followers_url': 'https://api.github.com/users/JoshuaVandaele/followers', 'following_url': 'https://api.github.com/users/JoshuaVandaele/following{/other_user}', 'gists_url': 'https://api.github.com/users/JoshuaVandaele/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JoshuaVandaele/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JoshuaVandaele/subscriptions', 'organizations_url': 'https://api.github.com/users/JoshuaVandaele/orgs', 'repos_url': 'https://api.github.com/users/JoshuaVandaele/repos', 'events_url': 'https://api.github.com/users/JoshuaVandaele/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JoshuaVandaele/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/JoshuaVandaele/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/JoshuaVandaele/dolphin', 'forks_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/forks', 'keys_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/events', 'assignees_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/merges', 'archive_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/deployments', 'created_at': '2025-01-11T11:19:57Z', 'updated_at': '2026-10-25T13:00:05Z', 'pushed_at': '2026-11-14T14:39:34Z', 'git_url': 'git://github.com/JoshuaVandaele/dolphin.git', 'ssh_url': 'git@github.com:JoshuaVandaele/dolphin.git', 'clone_url': 'https://github.com/JoshuaVandaele/dolphin.git', 'svn_url': 'https://github.com/JoshuaVandaele/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 522766, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 1, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'df4bd441dec5d6f3cff606eea76f183963e97a44', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T16:53:10Z', 'pushed_at': '2026-11-14T14:51:27Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563854, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 485, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 485, 'watchers': 15823, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14978'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14978'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14978'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14978/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14978/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14978/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/0436c9f60eb1e815a65f01d5edb6a5a155911553'}}, 'author_association': 'CONTRIBUTOR', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 5, 'deletions': 1, 'changed_files': 1}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-11-14T16:53:10Z', 'pushed_at': '2026-11-14T14:51:27Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 563854, 'stargazers_count': 15823, 'watchers_count': 15823, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3387, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 485, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3387, 'open_issues': 485, 'watchers': 15823, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}