{"push_id":1382084869,"size":24,"distinct_size":1,"ref":"refs/heads/2X","head":"465191b506c1d308c32157ad10f93d8a620cc9f8","before":"565d07afcc0132d45c6b4c133245bbcc83d1d246","commits":[{"sha":"faf2ed9b57e8ab52bd1008395eb78399c1332f42","author":{"name":"Phil Aquilina","email":"9e5380c23b28b93deaae0bcb9f4c7f8877236313@gmail.com"},"message":"Toaster - Prevent setState after unmount\n\nBug:\nWhen the toaster is dismissed via the close button the timer that runs\nthe toaster component's setState doesn't get cleared, which means it\nwill run after the toaster has unmounted.\n\nFix:\nUsing an instance variable to hold the timer reference. If the component\nis about to unmount, clear the reference.\n\nTesting:\nTested both letting the timeout animation run and hitting the dismiss\nbutton manually and both are good.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/faf2ed9b57e8ab52bd1008395eb78399c1332f42"},{"sha":"0b80d94b4e04ec65410af130166f7282c120e00c","author":{"name":"Phil Aquilina","email":"9e5380c23b28b93deaae0bcb9f4c7f8877236313@gmail.com"},"message":"Update page titles to match desktop's\n\nRight now, mweb titles are different than desktop's. For instance, on\nthe frontpage, currently we have \"Reddit - the Front Page of the\nInternet\", but desktop has \"reddit - the front page of the internet\".\nThis updates that title accordingly.\n\nOn comment's pages, I removed the \"reddit\" prefix entirely and moved\nthe post title to the first position to differentiate tabs better. This\nalso matches desktop's format.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/0b80d94b4e04ec65410af130166f7282c120e00c"},{"sha":"b01b9a5fb5fbcc5f06f6a0b08448c54a5d883f0e","author":{"name":"Phil Aquilina","email":"9e5380c23b28b93deaae0bcb9f4c7f8877236313@gmail.com"},"message":"Posting - disallow textareas to grow in height automatically\n\nBug:\nCurrently we have a \"feature\" that automatically grows the textarea on a\ntext based post as the user writes more content. Eventually though, this\ngets too large and the content goes underneath the virtual keyboard.\n\nFix:\nJust remove the feature entirely and allow user to resize vertically.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/b01b9a5fb5fbcc5f06f6a0b08448c54a5d883f0e"},{"sha":"fb8d78c45a6ce854f95ba17dedb741d5ebb3b567","author":{"name":"James Maa","email":"63d85411907cdb6983b281c3e7f0c193c15aed04@reddit.com"},"message":"Add _recentclicks2 and _recent_srs cookies to CookieSync","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/fb8d78c45a6ce854f95ba17dedb741d5ebb3b567"},{"sha":"90ba3c368b815ae529d8b0db253a3ce5b7b55dcb","author":{"name":"Phil Aquilina","email":"9e5380c23b28b93deaae0bcb9f4c7f8877236313@gmail.com"},"message":"Replying overhaul\n\nThis is an overhaul to replying incorporating our best practices. Which\nmeans:\n\n1. Real ajax requests using JSForm / removal of the reply POST handler.\n2. A success and failure toaster.\n3. Simplified reducer code for handling reply state.\n\nDetails:\nThis started off with a simple removal of the redirect that was\nhappening in the POST handler but I took it as an opportunity to clean\nsome of the older code (when we were still forming ideas on how this app\nshould work.)\n\nThere were two reducers addressing reply state. One seemed to handle the\nview and one seemed to handle fetching. Nothing seemed to be taking\nadvantage of the latter so I just nixed it entirely. You can see\nreplying works fine without it. The `replying` reducer now only handles\nwhether or not a user is currently replying to a comment.\n\nAs mentioned above, I've also added a success toaster which triggers if\na reply was successful. The pre-existing failure toaster triggers if\nnot. One thing to note is that this is not optimistic. This is due to\nneeding the canonical reply model from the api to update the state. I\nthink this is fine as from a user's perspective, it's not completely\nunexpected behavior.\n\nCaveats:\n- This is dependent on this [node-api-client\n  patch](https://github.com/reddit/node-api-client/pull/171). Without\n  it, a user is unable to reply to a reply unless he or she refreshes.\n\nWhat this looks like:\n![reply overhaul](https://cloud.githubusercontent.com/assets/787203/19630923/f9b64086-9948-11e6-8c8e-483d2c0c8b22.gif)","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/90ba3c368b815ae529d8b0db253a3ce5b7b55dcb"},{"sha":"d49cd7f617e3d4403e991e700d1d6f40d15ba4e9","author":{"name":"William Ting","email":"6ba02b3802eafdc22ec4a225bb3a716c788cfa77@reddit.com"},"message":"Whitelist /user/ for 2X.\n\n2X currently redirects /u/wting to /user/wting. Since that path isn't\nwhitelisted it results in showing the desktop version instead.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/d49cd7f617e3d4403e991e700d1d6f40d15ba4e9"},{"sha":"a1201cb40d54a666fb3d37515500b17479c2f8fa","author":{"name":"Shawn Krisman","email":"2295198bbf0c3b7bf5117f5654d07829df8197f1@reddit.com"},"message":"Add crawl event tracking.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/a1201cb40d54a666fb3d37515500b17479c2f8fa"},{"sha":"d43e3586dc02fc62896e9f2655b679e8732941c7","author":{"name":"Niranjan Ramadas","email":"ae2ba4ef92081ef9b8d263744fb727f37d79f1fc@gmail.com"},"message":"Fix loidcreated getting reset","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/d43e3586dc02fc62896e9f2655b679e8732941c7"},{"sha":"d0cda057c9da770bf0339546d4a1d947855d1cdb","author":{"name":"Phil Aquilina","email":"9e5380c23b28b93deaae0bcb9f4c7f8877236313@gmail.com"},"message":"Speed up voting\n\nProblem:\nVoting is noticeably slow sometimes and very bad on older phones. This\nis due to some sloppy selectors in our CommentsPage code - namely the\nfeatures selector and the comments selector, but in general most of the\nselectors weren't being selective enough.\n\nThe features selector was listening for ANY change in state. A simple\nupvote fits this criteria and therefore the whole page was re-rendering.\nListening for comments has a similar problem since a new comment, which\nis created when we vote, means the whole tree changes.\n\nFix:\nRemove these two selectors and make the rest of the selectors more\nspecific. This clean up should have the effect of speeding up any\nactions done on the comments pages.\n\nAdditional changes\nI've also cleaned up the voting component since its using the no-js\nway of doing things was also a source of slowness. I've simplified it\ndown to the bare essentials (the amount of code to get this to work\nbefore was ridiculous) and per Erica's recommendation, posts and\ncomments have the same CSS.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/d0cda057c9da770bf0339546d4a1d947855d1cdb"},{"sha":"e137abd88799ae499d3b91bd2e1d37cef656ce33","author":{"name":"William Ting","email":"6ba02b3802eafdc22ec4a225bb3a716c788cfa77@reddit.com"},"message":"Use r2 for all JSON, RSS, and XML related endpoints.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/e137abd88799ae499d3b91bd2e1d37cef656ce33"},{"sha":"afc5d33c789237e79949d77f1a08c1ca1ac8866b","author":{"name":"William Ting","email":"6ba02b3802eafdc22ec4a225bb3a716c788cfa77@reddit.com"},"message":"Remove unused endpoints.\n\n- report removed in this\n  [commit](https://github.com/reddit/reddit-mobile/commit/3af0b33161df61231387292fa61470fa9e1597b3#diff-79dad35511a55ef6ebdf34a68b034bdfL49)\n- vote removed in this\n  [commit](https://github.com/reddit/reddit-mobile/commit/d0cda057c9da770bf0339546d4a1d947855d1cdb#diff-79dad35511a55ef6ebdf34a68b034bdfL53)","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/afc5d33c789237e79949d77f1a08c1ca1ac8866b"},{"sha":"653d300d6e9412be00a68c91b70a4d6f60b7f0ec","author":{"name":"Phil Aquilina","email":"9e5380c23b28b93deaae0bcb9f4c7f8877236313@gmail.com"},"message":"Fix broken reducer test\n\nBug:\nOne of the replying tests is currently broken due to my not using the\naction creator. When I updated the payload in the action creator, I\nforgot to update the payload in the test.\n\nFix:\nJust use the action creator foo.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/653d300d6e9412be00a68c91b70a4d6f60b7f0ec"},{"sha":"745266974471e6cbc26098c065507fcc12afe3e0","author":{"name":"Phil Aquilina","email":"9e5380c23b28b93deaae0bcb9f4c7f8877236313@gmail.com"},"message":"Remove month abbreviation\n\nAs a possible solution to the ambiguous \"m\" problem, this patch removes\nthe month abbreviation entirely. I chose this path for a few reasons.\n\n1. The \"mo\" abbreviation looks a little weird to me. Ex text would be:\n  \"r/foobarsub ● 5mo ● u/thephilthe\"\n2. The math for calculating the month was an approximation based on 30\nday months, which seems too inaccurate.\n3. Finally, native apps don't show months either and in my opinion, it\nlooks ok.\n\nGeneral notes:\nI'm not entirely happy with this quick solution but I think it's better\nthan what we have. Looking around at how other apps handle this, most\nseem to fallback to the full date text after a day or so, giving more\ntime info as more time goes by. Taking our example above, depending on\nthe \"time ago\" date, the text might look something like:\n- \"r/foobarsub ● 5 mins ● u/thephilthe\"\n- \"r/foobarsub ● 8 hrs ● u/thephilthe\"\n- \"r/foobarsub ● 1 day ● u/thephilthe\"\n- \"r/foobarsub ● Aug 18 ● u/thephilthe\"\n- \"r/foobarsub ● Dec 20, 2015 ● u/thephilthe\"\n\nI find this to be far more informative than our ambiguous \"2 years ago\"\nformat. Auditing the places where we show this type of info, I think\nthis would work everywhere but obviously I'd like to get a designer's\nPOV on it.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/745266974471e6cbc26098c065507fcc12afe3e0"},{"sha":"313aa41867c5e0a07610853369f05d7d5e1d111c","author":{"name":"Phil Aquilina","email":"9e5380c23b28b93deaae0bcb9f4c7f8877236313@gmail.com"},"message":"Session refreshing on visibility changes\n\nBug:\nWhen a user has a reddit tab open and comes back to it some time later,\nthe session has expired. Any logged in action that user tries kicks them\nto the register screen because our js doesn't know to try to update the\nsession. A user hitting refresh fixes that since the cookies are still\nvalid.\n\nFix:\nThis adds a visibility check that fires every time a tab is focused,\nleveraging the [visibility\napi](https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API),\nwhich is [well supported](http://caniuse.com/#search=visibilitychange)\non mobile If the user had a refresh token and the token was expired, the\napp will fetch a new one upon being focused again. This is a nice all\naround solution since it avoids having to specially handle every logged\nin action.\n\nCaveats:\nI've cleaned up the session refresh code a bit, which was handling token\nrefreshing for new and very long sessions. One thing I added was a\nminimum to the refresh timer just for fear of ddos'ing ourselves. This\nis set at 5 minutes.\n\nTesting:\nI tested this on my iPhone by dropping the expiration down to 10\nseconds, opening the app in one tab, going to another, then coming back\nto the first after 10 seconds. Then hitting upvote. I did a similar test\nwith the open app and the lock screen. Both worked. I did this in both\nChrome and Safari. This still needs testing on android.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/313aa41867c5e0a07610853369f05d7d5e1d111c"},{"sha":"0c0f18436836462d8d9ed6c12c5722fc8203179c","author":{"name":"William Ting","email":"6ba02b3802eafdc22ec4a225bb3a716c788cfa77@reddit.com"},"message":"Reduce number of actions logged.\n\nWe currently default to 50 action steps logged. Since this exceeds our limits\nper log line (4096 bytes), it truncates the log lines resulting in unparseable\nJSON. As a result we can't programmatically analyze our error logs.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/0c0f18436836462d8d9ed6c12c5722fc8203179c"},{"sha":"535225dbfb18430fcdd4cbcf9668f563e096d987","author":{"name":"Shawn Krisman","email":"894dd73bfa1d71e3ae212dc270c321c3bc65e63e@hotmail.com"},"message":"Switched crawler header used. (#868)","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/535225dbfb18430fcdd4cbcf9668f563e096d987"},{"sha":"88908d1b591322cbce90c9acf47b2b7163f1be18","author":{"name":"Phil Aquilina","email":"9e5380c23b28b93deaae0bcb9f4c7f8877236313@gmail.com"},"message":"Correct types on the error toaster\n\nBug:\nThis copy was hardcoded to just 'comment' but the action applies to both\ncomments and posts. When something went wrong on a post upvote we'd show\n\"failed to upvote the comment\", which makes no sense.\n\nFix:\nUse the `type` (which is either 'post' or 'comment') in the copy.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/88908d1b591322cbce90c9acf47b2b7163f1be18"},{"sha":"765581a924728fb330409f81879b8468e2ef0c1e","author":{"name":"Prashant Singh","email":"8c4ca9439f76a7e29376bc6cba61ac77b9bee959@reddit.com"},"message":"Add amphtml link tags for self posts\n\nFor self post comments pages, we add a link tag with `rel=\"amphtml\"` to\nindicate to crawlers where they can find the AMP version of the page.\nBecause this is a crawler-targeted feature, we only need to do this for\ncompelte server renders.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/765581a924728fb330409f81879b8468e2ef0c1e"},{"sha":"ab11207ce4acbc79f14bb6d3ac3250490e95e6d2","author":{"name":"Joshua Uziel","email":"db4b2a61e8abc2d69656c76872c4964dfbbd9360@reddit.com"},"message":"Fix message thread replying\n\nIt turns out that we can only reply to a message\nthread if the other side has sent us a message.\nFor example, if there's one message in the thread\nand the current user sent it, they can't send\nfurther messages until the other side sends a reply.\n\nTake a look at all of the messages in a thread, find\nthe latest response from the other side and use that\nas the message id we respond to. Unfortunately the\nAPI appears to succeed if we reply to our own message,\nso this circumvents the issue.\n\nWe no longer show the replyToggle if the user can't\nyet reply to a thread.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/ab11207ce4acbc79f14bb6d3ac3250490e95e6d2"},{"sha":"acfff3d946aba870f7142e333cad636758086faa","author":{"name":"William Ting","email":"6ba02b3802eafdc22ec4a225bb3a716c788cfa77@reddit.com"},"message":"Truncate error stack trace.\n\nWe currently log the entire call stack, which sometimes exceeds our log line\nlimits (4096 bytes). By truncating to the first 2KB, it allows us to maintain\nJSON parseable log lines while still supporting source maps for the ~16 most\nrecent function calls of the call stack.","distinct":false,"url":"https://api.github.com/repos/wting/reddit-mobile/commits/acfff3d946aba870f7142e333cad636758086faa"}]}
{"actor":{"display_login":"wting"}}