{"action":"created","comment":{"url":"https://api.github.com/repos/ParabolInc/action/pulls/comments/156268657","pull_request_review_id":82716965,"id":156268657,"diff_hunk":"@@ -4,16 +4,21 @@ import getPubSub from 'server/utils/getPubSub';\n const defaultFilterFn = () => true;\n \n const makeSubscribeIter = (channelName, options = {}) => {\n-  const {filterFn = defaultFilterFn, resolve} = options;\n+  const {dataLoader, filterFn = defaultFilterFn, resolve} = options;\n   const asyncIterator = getPubSub().asyncIterator(channelName);\n   const getNextPromise = async () => {\n     const nextRes = await asyncIterator.next();\n     const {value, done} = nextRes;\n     if (done) {\n       return asyncIterator.return();\n     }\n-\n     if (filterFn(value)) {\n+      if (value.operationId) {\n+        if (!dataLoader) console.log('NO DL', channelName);","path":"src/server/graphql/makeSubscribeIter.js","position":16,"original_position":16,"commit_id":"8b308cf2cb97da45b8d1e7a5c21ecbcd33da8f15","original_commit_id":"8b308cf2cb97da45b8d1e7a5c21ecbcd33da8f15","user":{"login":"mattkrick","id":5514175,"avatar_url":"https://avatars0.githubusercontent.com/u/5514175?v=4","gravatar_id":"","url":"https://api.github.com/users/mattkrick","html_url":"https://github.com/mattkrick","followers_url":"https://api.github.com/users/mattkrick/followers","following_url":"https://api.github.com/users/mattkrick/following{/other_user}","gists_url":"https://api.github.com/users/mattkrick/gists{/gist_id}","starred_url":"https://api.github.com/users/mattkrick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattkrick/subscriptions","organizations_url":"https://api.github.com/users/mattkrick/orgs","repos_url":"https://api.github.com/users/mattkrick/repos","events_url":"https://api.github.com/users/mattkrick/events{/privacy}","received_events_url":"https://api.github.com/users/mattkrick/received_events","type":"User","site_admin":false},"body":"ah good call, i'll just remove this & the else clause, they were just to help in dev.","created_at":"2017-12-12T04:22:34Z","updated_at":"2017-12-12T04:22:35Z","html_url":"https://github.com/ParabolInc/action/pull/1460#discussion_r156268657","pull_request_url":"https://api.github.com/repos/ParabolInc/action/pulls/1460","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/ParabolInc/action/pulls/comments/156268657"},"html":{"href":"https://github.com/ParabolInc/action/pull/1460#discussion_r156268657"},"pull_request":{"href":"https://api.github.com/repos/ParabolInc/action/pulls/1460"}},"in_reply_to_id":156151261},"pull_request":{"url":"https://api.github.com/repos/ParabolInc/action/pulls/1460","id":149955785,"html_url":"https://github.com/ParabolInc/action/pull/1460","diff_url":"https://github.com/ParabolInc/action/pull/1460.diff","patch_url":"https://github.com/ParabolInc/action/pull/1460.patch","issue_url":"https://api.github.com/repos/ParabolInc/action/issues/1460","number":1460,"state":"open","locked":false,"title":"Projects to relay","user":{"login":"mattkrick","id":5514175,"avatar_url":"https://avatars0.githubusercontent.com/u/5514175?v=4","gravatar_id":"","url":"https://api.github.com/users/mattkrick","html_url":"https://github.com/mattkrick","followers_url":"https://api.github.com/users/mattkrick/followers","following_url":"https://api.github.com/users/mattkrick/following{/other_user}","gists_url":"https://api.github.com/users/mattkrick/gists{/gist_id}","starred_url":"https://api.github.com/users/mattkrick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattkrick/subscriptions","organizations_url":"https://api.github.com/users/mattkrick/orgs","repos_url":"https://api.github.com/users/mattkrick/repos","events_url":"https://api.github.com/users/mattkrick/events{/privacy}","received_events_url":"https://api.github.com/users/mattkrick/received_events","type":"User","site_admin":false},"body":"it's time to bite the bullet. this will fix up faulty cache invalidations, speed up dashboard loading by a bunch, and enable us to point to a specific card on the dashboard, which is necessary when a notification says \"you've got a new card, click to see it\".\r\n\r\nthis refactor is really painful because  Relay makes you use a \"Global ID\" for entities, which is `base64(type, id)`. That means if a function can get called from something populated by both cashay & relay, then we have to handle both. It's also a challenge because foreign keys need to be converted to Global IDs, too. For example, if a team has an `activeFacilitator` then team.activeFacilitator must get matched with a TeamMember.id. A project has a teamMemberId, too. So, now that it comes from Relay we have to make sure the IDs are correct there, too.\r\n... All of that to say, despite being 200 changed files, I'm really surprised it isn't bigger. \r\n\r\ntests:\r\n- [ ] UI should be exactly the same, except load no less than 400% faster (also implements optimistic UI on just about everything)\r\n- [ ] meeting facilitator shouldn't lose their facilitator role if they lose connectivity for a second (we now check every 5 seconds, instead of immediately)\r\n- [ ] fix #1536 where notification subscriptions don't work right\r\n\r\nthings out of scope, but still need fixing (for another, smaller, PR):\r\n- [ ] a teamMemberRemoved subscription. without it, if a teamMember is removed, lists won't update in real time.\r\n- [ ] colocate notification data needs to speicific components. without it, it'll get a little unruly\r\n- [ ] implement dataLoader throughout. this will reduce the number of lookups for all hits to graphql.\r\n","created_at":"2017-11-01T03:39:47Z","updated_at":"2017-12-12T04:22:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8d670099a02a11718d6716416582a394c19d8dc5","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/ParabolInc/action/pulls/1460/commits","review_comments_url":"https://api.github.com/repos/ParabolInc/action/pulls/1460/comments","review_comment_url":"https://api.github.com/repos/ParabolInc/action/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ParabolInc/action/issues/1460/comments","statuses_url":"https://api.github.com/repos/ParabolInc/action/statuses/8b308cf2cb97da45b8d1e7a5c21ecbcd33da8f15","head":{"label":"ParabolInc:projects-to-relay","ref":"projects-to-relay","sha":"8b308cf2cb97da45b8d1e7a5c21ecbcd33da8f15","user":{"login":"ParabolInc","id":14169569,"avatar_url":"https://avatars1.githubusercontent.com/u/14169569?v=4","gravatar_id":"","url":"https://api.github.com/users/ParabolInc","html_url":"https://github.com/ParabolInc","followers_url":"https://api.github.com/users/ParabolInc/followers","following_url":"https://api.github.com/users/ParabolInc/following{/other_user}","gists_url":"https://api.github.com/users/ParabolInc/gists{/gist_id}","starred_url":"https://api.github.com/users/ParabolInc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ParabolInc/subscriptions","organizations_url":"https://api.github.com/users/ParabolInc/orgs","repos_url":"https://api.github.com/users/ParabolInc/repos","events_url":"https://api.github.com/users/ParabolInc/events{/privacy}","received_events_url":"https://api.github.com/users/ParabolInc/received_events","type":"Organization","site_admin":false},"repo":{"id":48384473,"name":"action","full_name":"ParabolInc/action","owner":{"login":"ParabolInc","id":14169569,"avatar_url":"https://avatars1.githubusercontent.com/u/14169569?v=4","gravatar_id":"","url":"https://api.github.com/users/ParabolInc","html_url":"https://github.com/ParabolInc","followers_url":"https://api.github.com/users/ParabolInc/followers","following_url":"https://api.github.com/users/ParabolInc/following{/other_user}","gists_url":"https://api.github.com/users/ParabolInc/gists{/gist_id}","starred_url":"https://api.github.com/users/ParabolInc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ParabolInc/subscriptions","organizations_url":"https://api.github.com/users/ParabolInc/orgs","repos_url":"https://api.github.com/users/ParabolInc/repos","events_url":"https://api.github.com/users/ParabolInc/events{/privacy}","received_events_url":"https://api.github.com/users/ParabolInc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ParabolInc/action","description":"A multiplayer web application for building smarter, more agile teams.","fork":false,"url":"https://api.github.com/repos/ParabolInc/action","forks_url":"https://api.github.com/repos/ParabolInc/action/forks","keys_url":"https://api.github.com/repos/ParabolInc/action/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ParabolInc/action/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ParabolInc/action/teams","hooks_url":"https://api.github.com/repos/ParabolInc/action/hooks","issue_events_url":"https://api.github.com/repos/ParabolInc/action/issues/events{/number}","events_url":"https://api.github.com/repos/ParabolInc/action/events","assignees_url":"https://api.github.com/repos/ParabolInc/action/assignees{/user}","branches_url":"https://api.github.com/repos/ParabolInc/action/branches{/branch}","tags_url":"https://api.github.com/repos/ParabolInc/action/tags","blobs_url":"https://api.github.com/repos/ParabolInc/action/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ParabolInc/action/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ParabolInc/action/git/refs{/sha}","trees_url":"https://api.github.com/repos/ParabolInc/action/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ParabolInc/action/statuses/{sha}","languages_url":"https://api.github.com/repos/ParabolInc/action/languages","stargazers_url":"https://api.github.com/repos/ParabolInc/action/stargazers","contributors_url":"https://api.github.com/repos/ParabolInc/action/contributors","subscribers_url":"https://api.github.com/repos/ParabolInc/action/subscribers","subscription_url":"https://api.github.com/repos/ParabolInc/action/subscription","commits_url":"https://api.github.com/repos/ParabolInc/action/commits{/sha}","git_commits_url":"https://api.github.com/repos/ParabolInc/action/git/commits{/sha}","comments_url":"https://api.github.com/repos/ParabolInc/action/comments{/number}","issue_comment_url":"https://api.github.com/repos/ParabolInc/action/issues/comments{/number}","contents_url":"https://api.github.com/repos/ParabolInc/action/contents/{+path}","compare_url":"https://api.github.com/repos/ParabolInc/action/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ParabolInc/action/merges","archive_url":"https://api.github.com/repos/ParabolInc/action/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ParabolInc/action/downloads","issues_url":"https://api.github.com/repos/ParabolInc/action/issues{/number}","pulls_url":"https://api.github.com/repos/ParabolInc/action/pulls{/number}","milestones_url":"https://api.github.com/repos/ParabolInc/action/milestones{/number}","notifications_url":"https://api.github.com/repos/ParabolInc/action/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ParabolInc/action/labels{/name}","releases_url":"https://api.github.com/repos/ParabolInc/action/releases{/id}","deployments_url":"https://api.github.com/repos/ParabolInc/action/deployments","created_at":"2015-12-21T17:16:49Z","updated_at":"2017-12-08T06:59:51Z","pushed_at":"2017-12-12T04:17:55Z","git_url":"git://github.com/ParabolInc/action.git","ssh_url":"git@github.com:ParabolInc/action.git","clone_url":"https://github.com/ParabolInc/action.git","svn_url":"https://github.com/ParabolInc/action","homepage":"http://parabol.co/beta","size":24922,"stargazers_count":418,"watchers_count":418,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":75,"mirror_url":null,"archived":false,"open_issues_count":343,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":75,"open_issues":343,"watchers":418,"default_branch":"master"}},"base":{"label":"ParabolInc:epic8.5","ref":"epic8.5","sha":"4f3f600af2933acf159513fa14b2bea70d05b003","user":{"login":"ParabolInc","id":14169569,"avatar_url":"https://avatars1.githubusercontent.com/u/14169569?v=4","gravatar_id":"","url":"https://api.github.com/users/ParabolInc","html_url":"https://github.com/ParabolInc","followers_url":"https://api.github.com/users/ParabolInc/followers","following_url":"https://api.github.com/users/ParabolInc/following{/other_user}","gists_url":"https://api.github.com/users/ParabolInc/gists{/gist_id}","starred_url":"https://api.github.com/users/ParabolInc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ParabolInc/subscriptions","organizations_url":"https://api.github.com/users/ParabolInc/orgs","repos_url":"https://api.github.com/users/ParabolInc/repos","events_url":"https://api.github.com/users/ParabolInc/events{/privacy}","received_events_url":"https://api.github.com/users/ParabolInc/received_events","type":"Organization","site_admin":false},"repo":{"id":48384473,"name":"action","full_name":"ParabolInc/action","owner":{"login":"ParabolInc","id":14169569,"avatar_url":"https://avatars1.githubusercontent.com/u/14169569?v=4","gravatar_id":"","url":"https://api.github.com/users/ParabolInc","html_url":"https://github.com/ParabolInc","followers_url":"https://api.github.com/users/ParabolInc/followers","following_url":"https://api.github.com/users/ParabolInc/following{/other_user}","gists_url":"https://api.github.com/users/ParabolInc/gists{/gist_id}","starred_url":"https://api.github.com/users/ParabolInc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ParabolInc/subscriptions","organizations_url":"https://api.github.com/users/ParabolInc/orgs","repos_url":"https://api.github.com/users/ParabolInc/repos","events_url":"https://api.github.com/users/ParabolInc/events{/privacy}","received_events_url":"https://api.github.com/users/ParabolInc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ParabolInc/action","description":"A multiplayer web application for building smarter, more agile teams.","fork":false,"url":"https://api.github.com/repos/ParabolInc/action","forks_url":"https://api.github.com/repos/ParabolInc/action/forks","keys_url":"https://api.github.com/repos/ParabolInc/action/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ParabolInc/action/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ParabolInc/action/teams","hooks_url":"https://api.github.com/repos/ParabolInc/action/hooks","issue_events_url":"https://api.github.com/repos/ParabolInc/action/issues/events{/number}","events_url":"https://api.github.com/repos/ParabolInc/action/events","assignees_url":"https://api.github.com/repos/ParabolInc/action/assignees{/user}","branches_url":"https://api.github.com/repos/ParabolInc/action/branches{/branch}","tags_url":"https://api.github.com/repos/ParabolInc/action/tags","blobs_url":"https://api.github.com/repos/ParabolInc/action/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ParabolInc/action/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ParabolInc/action/git/refs{/sha}","trees_url":"https://api.github.com/repos/ParabolInc/action/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ParabolInc/action/statuses/{sha}","languages_url":"https://api.github.com/repos/ParabolInc/action/languages","stargazers_url":"https://api.github.com/repos/ParabolInc/action/stargazers","contributors_url":"https://api.github.com/repos/ParabolInc/action/contributors","subscribers_url":"https://api.github.com/repos/ParabolInc/action/subscribers","subscription_url":"https://api.github.com/repos/ParabolInc/action/subscription","commits_url":"https://api.github.com/repos/ParabolInc/action/commits{/sha}","git_commits_url":"https://api.github.com/repos/ParabolInc/action/git/commits{/sha}","comments_url":"https://api.github.com/repos/ParabolInc/action/comments{/number}","issue_comment_url":"https://api.github.com/repos/ParabolInc/action/issues/comments{/number}","contents_url":"https://api.github.com/repos/ParabolInc/action/contents/{+path}","compare_url":"https://api.github.com/repos/ParabolInc/action/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ParabolInc/action/merges","archive_url":"https://api.github.com/repos/ParabolInc/action/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ParabolInc/action/downloads","issues_url":"https://api.github.com/repos/ParabolInc/action/issues{/number}","pulls_url":"https://api.github.com/repos/ParabolInc/action/pulls{/number}","milestones_url":"https://api.github.com/repos/ParabolInc/action/milestones{/number}","notifications_url":"https://api.github.com/repos/ParabolInc/action/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ParabolInc/action/labels{/name}","releases_url":"https://api.github.com/repos/ParabolInc/action/releases{/id}","deployments_url":"https://api.github.com/repos/ParabolInc/action/deployments","created_at":"2015-12-21T17:16:49Z","updated_at":"2017-12-08T06:59:51Z","pushed_at":"2017-12-12T04:17:55Z","git_url":"git://github.com/ParabolInc/action.git","ssh_url":"git@github.com:ParabolInc/action.git","clone_url":"https://github.com/ParabolInc/action.git","svn_url":"https://github.com/ParabolInc/action","homepage":"http://parabol.co/beta","size":24922,"stargazers_count":418,"watchers_count":418,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":75,"mirror_url":null,"archived":false,"open_issues_count":343,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":75,"open_issues":343,"watchers":418,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ParabolInc/action/pulls/1460"},"html":{"href":"https://github.com/ParabolInc/action/pull/1460"},"issue":{"href":"https://api.github.com/repos/ParabolInc/action/issues/1460"},"comments":{"href":"https://api.github.com/repos/ParabolInc/action/issues/1460/comments"},"review_comments":{"href":"https://api.github.com/repos/ParabolInc/action/pulls/1460/comments"},"review_comment":{"href":"https://api.github.com/repos/ParabolInc/action/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ParabolInc/action/pulls/1460/commits"},"statuses":{"href":"https://api.github.com/repos/ParabolInc/action/statuses/8b308cf2cb97da45b8d1e7a5c21ecbcd33da8f15"}},"author_association":"OWNER"}}
{"actor":{"display_login":"mattkrick"}}