{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":12289824,"defaultBranch":"main","name":"rails","ownerLogin":"jhawthorn","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2013-08-22T06:17:20.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/131752?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1713825210.0","currentOid":""},"activityList":{"items":[{"before":"3cf6122ccc1a87b061f6fad58c8fc3e6c6ed3e5a","after":null,"ref":"refs/heads/backtrace_cleaner_3_4","pushedAt":"2024-04-22T22:33:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}},{"before":"5d39f4b933a6743a0b0cd769f585461689405308","after":"3cf6122ccc1a87b061f6fad58c8fc3e6c6ed3e5a","ref":"refs/heads/backtrace_cleaner_3_4","pushedAt":"2024-04-22T21:08:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Fix ActionView backtrace filtering on Ruby 3.4+","shortMessageHtmlLink":"Fix ActionView backtrace filtering on Ruby 3.4+"}},{"before":"1290f1d52726c058e5c80809096405a6a0357f72","after":"5d39f4b933a6743a0b0cd769f585461689405308","ref":"refs/heads/backtrace_cleaner_3_4","pushedAt":"2024-04-18T17:31:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Fix ActionView backtrace filtering on Ruby 3.4+","shortMessageHtmlLink":"Fix ActionView backtrace filtering on Ruby 3.4+"}},{"before":null,"after":"1290f1d52726c058e5c80809096405a6a0357f72","ref":"refs/heads/backtrace_cleaner_3_4","pushedAt":"2024-04-17T22:18:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Fix ActionView backtrace filtering on Ruby 3.4+","shortMessageHtmlLink":"Fix ActionView backtrace filtering on Ruby 3.4+"}},{"before":"0f870c435403989613b8d189984d8b5b8e84cc0b","after":null,"ref":"refs/heads/translation_exception","pushedAt":"2024-02-21T21:46:43.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}},{"before":null,"after":"0f870c435403989613b8d189984d8b5b8e84cc0b","ref":"refs/heads/translation_exception","pushedAt":"2024-02-21T21:21:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Respect raise_on_missing_ in controller\n\nPreviously raise_on_missing_translations was not being respected in a\ncontroller. This commit brings back the correct behaviour.","shortMessageHtmlLink":"Respect raise_on_missing_ in controller"}},{"before":"48856482c8909d6f2d1cfeab3c651d75b3d7bb4d","after":null,"ref":"refs/heads/key-provider","pushedAt":"2024-02-13T21:53:46.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}},{"before":"26c177b2cf09da97d7cb31bdd846c7a8d16cf2ad","after":"48856482c8909d6f2d1cfeab3c651d75b3d7bb4d","ref":"refs/heads/key-provider","pushedAt":"2024-02-08T23:16:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Remove memoization of key provider\n\nThis is necessary to allow key_provider to be changed dynamically using\nwith_encryption_context.\n\nCo-authored-by: Kyle Stevens ","shortMessageHtmlLink":"Remove memoization of key provider"}},{"before":null,"after":"26c177b2cf09da97d7cb31bdd846c7a8d16cf2ad","ref":"refs/heads/key-provider","pushedAt":"2024-02-08T02:46:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Remove memoization of key provider\n\nThis is necessary to allow key_provider to be changed dynamically using\nwith_encryption_context.","shortMessageHtmlLink":"Remove memoization of key provider"}},{"before":"afefa5034baa8f3be8840601de3033d8b6256250","after":null,"ref":"refs/heads/retry_checkout_after_reap","pushedAt":"2023-12-09T01:12:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}},{"before":null,"after":"afefa5034baa8f3be8840601de3033d8b6256250","ref":"refs/heads/retry_checkout_after_reap","pushedAt":"2023-11-27T23:04:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Retry new connection on checkout after reap\n\nWhen we reap connections, we check if they are inactive (connected and\nresponding to ping in most adapters) and if so we remove the connection\ninstead of checking it back in.\n\nHowever, in acquire_connection, we weren't checking after reaping\nwhether we were allowed to build a new connection, only whether an\nexisting one was in the available pool.\n\nThis still leaves a race condition where if the background reaper thread\nruns while a thread is polling and finds a free inactive connection, it\ncould have the same issue and not wake the waiting thread. However we\ndon't really expect the reaper to solve this (it only runs every 60\nseconds by default, far too slow to solve for a blocked thread). I think\nthis should be fixed, just separately.","shortMessageHtmlLink":"Retry new connection on checkout after reap"}},{"before":"591c4aa1eae35136708849a4fd9574ed37d7744e","after":null,"ref":"refs/heads/eager_load_formatter","pushedAt":"2023-11-22T22:17:10.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}},{"before":"139491a00c8f886d689ed823359ae51ff2716190","after":"972ca8fa3cd94d5db50420eff7b3c25d94c180d1","ref":"refs/heads/reap_always_checkin","pushedAt":"2023-11-16T21:11:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Checkin even stale connections from reap\n\nPreviously when we reaped connections, we checked if they were inactive\n(connected and responding to ping in most adapters) and if so we would\nremove the connection instead of checking it back in.\n\nRemoving the connection would not wake a thread waiting on the queue for\na connection. This commit changes that to always re-check in the\nconnection.","shortMessageHtmlLink":"Checkin even stale connections from reap"}},{"before":null,"after":"139491a00c8f886d689ed823359ae51ff2716190","ref":"refs/heads/reap_always_checkin","pushedAt":"2023-11-16T21:10:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Checkin even stale connections from reap\n\nPreviously when we reaped connections, we checked if they were inactive\n(connected and responding to ping in most adapters) and if so we would\nremove the connection instead of checking it back in.\n\nRemoving the connection would not wake a thread waiting on the queue for\na connection. This commit changes that to always re-check in the\nconnection.","shortMessageHtmlLink":"Checkin even stale connections from reap"}},{"before":"42ad4d6b0bfc14e16050f9945a8b2ac5c87c294f","after":null,"ref":"refs/heads/eager_load_as_callbacks","pushedAt":"2023-11-08T19:27:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}},{"before":"c0369d287dac2a54c367dd39e131b5242842a6a5","after":"591c4aa1eae35136708849a4fd9574ed37d7744e","ref":"refs/heads/eager_load_formatter","pushedAt":"2023-11-08T04:35:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Eager load Journey Formatter cache\n\nThis cache is used when url_for is called without a named route (ie.\nwhen it's called with hash options). Eager loading avoids building the\ncache on the first call and potentially allows the memory to be shared\nvia CoW on forking servers.","shortMessageHtmlLink":"Eager load Journey Formatter cache"}},{"before":null,"after":"c0369d287dac2a54c367dd39e131b5242842a6a5","ref":"refs/heads/eager_load_formatter","pushedAt":"2023-11-08T04:15:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Eager load formatter","shortMessageHtmlLink":"Eager load formatter"}},{"before":"4f9c5945f6fe63736aa61465770f9afb4754f2de","after":"42ad4d6b0bfc14e16050f9945a8b2ac5c87c294f","ref":"refs/heads/eager_load_as_callbacks","pushedAt":"2023-11-08T00:19:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Eager load ActiveSupport::Callback procs\n\nFollow up to previous commit where these procs were allows to be shared\nbetween subclasses. This change allocates the procs as they are first\ndeclared.","shortMessageHtmlLink":"Eager load ActiveSupport::Callback procs"}},{"before":null,"after":"4f9c5945f6fe63736aa61465770f9afb4754f2de","ref":"refs/heads/eager_load_as_callbacks","pushedAt":"2023-11-08T00:18:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}},{"before":null,"after":"9f9321cc7c1725294a462a7305cb84fcd07a8c68","ref":"refs/heads/routes_format_memory","pushedAt":"2023-11-07T23:53:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Reduce memory usage from Formatter cache\n\nPreviously this used Hashes and Arrays exclusively as an ad-hoc data\nstructure. This ended up with a lot of empty arrays as well as hashes of\nsize 1 with only the key ___routes.\n\nThis introduces a CacheNode class which we can use to store the routes\nlist separately (and avoids allocating the array and hash when\nunneeded).\n\nThis also converts the one level hash with array keys ex.\n\n { [:controller, \"home\"] => ... }\n\ninto a two-level hash. ex.\n\n { :controller => {\"home\" => ...} }\n\nThis avoids array allocations in exchange for more hash allocations, I\nexpect this to work out for the better as there is a ton of duplication\nof the key names (specifically :controller and :action in normal apps).","shortMessageHtmlLink":"Reduce memory usage from Formatter cache"}},{"before":"7beaacce51f7a01833835ff8de1b8813be852991","after":null,"ref":"refs/heads/notification_exception_groups","pushedAt":"2023-10-30T15:25:32.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}},{"before":null,"after":"7beaacce51f7a01833835ff8de1b8813be852991","ref":"refs/heads/notification_exception_groups","pushedAt":"2023-10-25T21:00:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Fix exception guards on multiple subscriber types\n\nPreviously in https://github.com/rails/rails/pull/43282, which shipped\nwith Rails 7.0, we added the guarantee that if an exception occurred\nwithin an ActiveSupport::Notificaitons subscriber that the remaining\nsubscribers would still be run.\n\nThis was broken in https://github.com/rails/rails/pull/44469, where the\ndifferent types of subscribers were broken into groups by type for\nperformance. Although we would guard exceptions and allways run all (or\nnone) of the same group, that didn't work cross-group with different\ntypes of subscriber.","shortMessageHtmlLink":"Fix exception guards on multiple subscriber types"}},{"before":"578cdf800451573f5469c0699019e93ccedca3ec","after":null,"ref":"refs/heads/callbacks_sharing","pushedAt":"2023-10-23T04:07:02.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}},{"before":"2b49a081445aeac8b76411d4c60011ccd26f6ed0","after":"578cdf800451573f5469c0699019e93ccedca3ec","ref":"refs/heads/callbacks_sharing","pushedAt":"2023-10-21T13:51:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Avoid empty Arrays in ActiveSupport::Callbacks\n\nActiveSupport::Callbacks often ended up with empty Arrays: on callbacks\nwithout a conditional, and on callback sequences which had no before\nand/or after callbacks.","shortMessageHtmlLink":"Avoid empty Arrays in ActiveSupport::Callbacks"}},{"before":"06e064877c7f6a806a710f31d9f3284510e629f0","after":"2b49a081445aeac8b76411d4c60011ccd26f6ed0","ref":"refs/heads/callbacks_sharing","pushedAt":"2023-10-21T03:33:48.000Z","pushType":"push","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}},{"before":"e2a635ce1a4d09a26bf3da7c4c0d1575e5ad4fcb","after":"06e064877c7f6a806a710f31d9f3284510e629f0","ref":"refs/heads/callbacks_sharing","pushedAt":"2023-10-21T01:09:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}},{"before":null,"after":"e2a635ce1a4d09a26bf3da7c4c0d1575e5ad4fcb","ref":"refs/heads/callbacks_sharing","pushedAt":"2023-10-16T12:50:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Remove unnecessary build() method","shortMessageHtmlLink":"Remove unnecessary build() method"}},{"before":"08d58e77ed585e6bc888a7636a93ece990a94f12","after":null,"ref":"refs/heads/get-rid-of-trilogy-errors-merge","pushedAt":"2023-08-04T06:17:25.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}},{"before":null,"after":"08d58e77ed585e6bc888a7636a93ece990a94f12","ref":"refs/heads/get-rid-of-trilogy-errors-merge","pushedAt":"2023-08-03T23:17:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'Shopify/get-rid-of-trilogy-errors'","shortMessageHtmlLink":"Merge remote-tracking branch 'Shopify/get-rid-of-trilogy-errors'"}},{"before":"ebe0c4066b5b2a4b0e08220b04b33243b54d8e34","after":null,"ref":"refs/heads/faster_json_escape","pushedAt":"2023-07-31T21:15:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jhawthorn","name":"John Hawthorn","path":"/jhawthorn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131752?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEN3105QA","startCursor":null,"endCursor":null}},"title":"Activity ยท jhawthorn/rails"}