{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":771783126,"defaultBranch":"main","name":"tetris","ownerLogin":"0xjmux","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-03-14T00:04:28.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/20913473?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1721511528.0","currentOid":""},"activityList":{"items":[{"before":"6e297b57ceb243d2b9b64032843fd76bbe73a7ff","after":null,"ref":"refs/tags/v1.0.1","pushedAt":"2024-07-20T21:38:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"}},{"before":"6e297b57ceb243d2b9b64032843fd76bbe73a7ff","after":"25f2f0d421b9340f36a6647810e802a4fc53a279","ref":"refs/heads/main","pushedAt":"2024-07-20T21:37:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"updates to workflow","shortMessageHtmlLink":"updates to workflow"}},{"before":"f51e2310d1693bb6bd6a3a1bad99e713a32e0d22","after":"6e297b57ceb243d2b9b64032843fd76bbe73a7ff","ref":"refs/heads/main","pushedAt":"2024-07-20T21:34:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"readme cleanup and registry GH action","shortMessageHtmlLink":"readme cleanup and registry GH action"}},{"before":"8623aa7eb324fa72b9d38bebe1fd02f9c61abace","after":"f51e2310d1693bb6bd6a3a1bad99e713a32e0d22","ref":"refs/heads/main","pushedAt":"2024-07-20T21:23:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"updated readme, gitignore","shortMessageHtmlLink":"updated readme, gitignore"}},{"before":null,"after":"42b2fe0c3cb1671b0669b7d3925103a0d67c59c4","ref":"refs/heads/ncurses_render_fix","pushedAt":"2024-07-20T21:16:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"attempt to fix ncurse rendering lines from last month","shortMessageHtmlLink":"attempt to fix ncurse rendering lines from last month"}},{"before":"3ce6f2f199e7cf92d25af5781f7c2c2670965f16","after":"8623aa7eb324fa72b9d38bebe1fd02f9c61abace","ref":"refs/heads/main","pushedAt":"2024-05-04T20:08:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"added comment to CMakeLists explaining ESP-IDF conditional","shortMessageHtmlLink":"added comment to CMakeLists explaining ESP-IDF conditional"}},{"before":"e0d3978419eb7c4355cf7d30d380a471e73fb0bf","after":"3ce6f2f199e7cf92d25af5781f7c2c2670965f16","ref":"refs/heads/main","pushedAt":"2024-05-04T17:09:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"fixed CMakeLists indent and cleaned up tetris CMakeLists","shortMessageHtmlLink":"fixed CMakeLists indent and cleaned up tetris CMakeLists"}},{"before":"399887cb571283a21bb8c5399717e6ff46432ef8","after":"e0d3978419eb7c4355cf7d30d380a471e73fb0bf","ref":"refs/heads/main","pushedAt":"2024-05-04T16:18:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"add idf_component manifest and gate IDF build options behind ifs","shortMessageHtmlLink":"add idf_component manifest and gate IDF build options behind ifs"}},{"before":"4edc43c53c066ba3b6eaa35b344dfcacadf17055","after":"399887cb571283a21bb8c5399717e6ff46432ef8","ref":"refs/heads/main","pushedAt":"2024-05-04T16:01:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"Create LICENSE","shortMessageHtmlLink":"Create LICENSE"}},{"before":"cdf601508347932b26c0014c60d50a349a4de6b9","after":"4edc43c53c066ba3b6eaa35b344dfcacadf17055","ref":"refs/heads/main","pushedAt":"2024-05-04T04:51:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"fixed TETRIS_COLS back to orig value of 16, even though embedded hw uses 8","shortMessageHtmlLink":"fixed TETRIS_COLS back to orig value of 16, even though embedded hw u…"}},{"before":"061cb049edeaa97002e0fd1887b225185b051f0d","after":"cdf601508347932b26c0014c60d50a349a4de6b9","ref":"refs/heads/main","pushedAt":"2024-05-04T04:48:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"changes from inclusion into esp-idf project","shortMessageHtmlLink":"changes from inclusion into esp-idf project"}},{"before":"4286314678f0b4ee1f24bd7c51a820fd3f2cce4b","after":"061cb049edeaa97002e0fd1887b225185b051f0d","ref":"refs/heads/main","pushedAt":"2024-03-31T16:55:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"Reduce max board size to 128x128 for space savings\n\nMax board size used to be 256x256, but since `tetris_location` has to be\nable to represent negative values for offset calculation, that meant it\nneeded to use `int16_t`. Since the piece array uses 4*4*7\ntetris_locations, this added up to a good amount of space.\n\nBy reducing the max board size to 128x128 (still larger than should ever\nbe needed), `tetris_location` can use a `int8_t`, which means a 50%\nreduction in needed space.\n\nChanges:\n* Readme reorganized, controls added, more detail\n * `Cmake options listed in README\n* Updated `tetris_location` size to uint8_t\n* Updated check_and_clear_rows() to use the uint8_t values, which meant\n I could eliminate my array conversion functions since they're no\n longer needed. Simplification is always good.\n* Tests updated to reflect the removal of array conversion and the\n modification of the smallest_in_arr() function signature to use\n uint8_t instead of int16","shortMessageHtmlLink":"Reduce max board size to 128x128 for space savings"}},{"before":"0305e2a00ad3bcbf32740ab02ad0c7f2cc628767","after":"4286314678f0b4ee1f24bd7c51a820fd3f2cce4b","ref":"refs/heads/main","pushedAt":"2024-03-27T19:36:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"Fix memleak and check against unitialized value (See issue #3)","shortMessageHtmlLink":"Fix memleak and check against unitialized value (See issue #3)"}},{"before":"31afd275f81480eb140dd9b92d0811162f2e2e6e","after":"0305e2a00ad3bcbf32740ab02ad0c7f2cc628767","ref":"refs/heads/main","pushedAt":"2024-03-27T19:11:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"Readme updated, Ask on quit added to driver\n\n* Readme updated with more detailed docs\n* Game driver asks if you're sure you want to quit without exiting\n* Game driver tested with various different board sizes (45x20,\n 16x32,50x50, ...). All worked!\n* DEBUG_T added as Compilation macro to tetris/CMakeLists.txt so it can\n be enabled/disabled at build time and builds tested with it disabled.\n Any prints that weren't gated before are now.\n* CI updated so runs include DEBUG_T flag","shortMessageHtmlLink":"Readme updated, Ask on quit added to driver"}},{"before":"7242afdc6931e1e3c681321557423af7f51ffdab","after":"31afd275f81480eb140dd9b92d0811162f2e2e6e","ref":"refs/heads/main","pushedAt":"2024-03-23T20:16:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"gravity bugfix, update display_board signature\n\n* Fix bug introduced in last commit when I tried to explicitly cast a uint\n to an int variable; it prevented the gravity check from ever activating,\n so pieces wouldn't ever actually be added to be board.\n* Changed display_board to take TetrisBoard instead of TetrisBoard*","shortMessageHtmlLink":"gravity bugfix, update display_board signature"}},{"before":"99e1e33afcc9f6bcb793b77606a8ac746ba3b508","after":"7242afdc6931e1e3c681321557423af7f51ffdab","ref":"refs/heads/main","pushedAt":"2024-03-23T19:21:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"Code cleanup and fix for non-updating gravity_tick_rate_usec\n\n* Deleted display.h and display.c and moved the one function in there\n into driver_tetris.c\n* Cleaned up code in tetris.c/tetris.h and in driver_tetris.c/.h\n* removed comments about past bugs and commented out code that hasn't\n been used in a while\n* added commments in tetris.c/.h to make understanding code in its\n current state easier\n* moved create_tetris_piece() into utils since it's not used by normal\n game, and created function check_occ_cells_above_highest() to\n automatically check all rows about the highest occupied one for cells\n that shouldn't be there\n* fixed gravity tick rate change bug, added `#define`s for values, and\n added unit tests to verify it's working\n* updated CMake build commands to separate PRINT_BOARD_IN_TESTS and\n UNIT_TEST_CI macro options\n* cleaned up tetris.h header file to group related functions together\n* revised readme, and added \"About\" section along with compilation\n commands and controls\n* tried to fix ncurses color issue but something's up with the rendering\n of COLOR_GREEN in TERM on my machine\n*\n*","shortMessageHtmlLink":"Code cleanup and fix for non-updating gravity_tick_rate_usec"}},{"before":"6a23430be5cabd2172b3ed1d0c78ca487a1f07b3","after":"99e1e33afcc9f6bcb793b77606a8ac746ba3b508","ref":"refs/heads/main","pushedAt":"2024-03-23T06:39:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"recreated val_in_arr() for use in clear_rows()\n\nFound a bug where when an S_PIECE is used to clear a row, it'll add the\nsame row multiple times to rows_to_clear[]. This wouldn't really be a\nproblem except it also increments rows_idx, which is used as the number\nof rows to clear - so the game could try to clear more than 1 rows\nstarting with the very bottom, which would be undefined behavior.\n\nasserts are great","shortMessageHtmlLink":"recreated val_in_arr() for use in clear_rows()"}},{"before":"7e13edcdfe97e2afe5f57cd250c539355d582a43","after":"6a23430be5cabd2172b3ed1d0c78ca487a1f07b3","ref":"refs/heads/main","pushedAt":"2024-03-23T06:10:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"Addressed possible cause of premature crash, plus a lot of tests\n\n* Fixed tg_update_score so it changes lines_cleared_last_level in right\n direction\n* debugging prints peppered through problem code areas\n* clear_rows modified so it won't try to move rows above the top of the\n board down, which is a possible cause of the premature crash as a\n result of garbage data I've been seeing (Issue #2). Garbage data ends up in the\n first few rows, pieces can't move down into it, they stop falling, and\n then the game_over condition activates.\n * to fix this, added another loop to clear_rows() so that it stops\n once it would start touching the top of the board, and will fill\n rows at the top with BG_COLOR without trying to read OOB\n* lines_cleared_since_last_level static var that was a part of\n tg_update_score moved to TetrisGame struct for easier monitoring and\n testing; moving it makes replicating crash conditions in unit test\n suites much easier.\n* print_board_state() function updated to take `bool ini_out` argument,\n which prepends boards printed to .ini files with the `;` comment\n character\n* several new unit test cases added to `suite_1.c`, mostly for\n clear_rows() and relating functions.\n* a couple new savegame .ini files added; some of these will likely be\n removed in the future, but they're very useful for replicating\n specific board conditions for testing.\n* ini saving functionality moved to utils.c so it's all aggregated in\n the same place","shortMessageHtmlLink":"Addressed possible cause of premature crash, plus a lot of tests"}},{"before":"e78a80fc36ffb2f9ffb60bfd92556da8d77a8ed9","after":"7e13edcdfe97e2afe5f57cd250c539355d582a43","ref":"refs/heads/main","pushedAt":"2024-03-23T06:09:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"Addressed possible cause of premature crash, plus a lot of tests\n\n* Fixed tg_update_score so it changes lines_cleared_last_level in right\n direction\n* debugging prints peppered through problem code areas\n* clear_rows modified so it won't try to move rows above the top of the\n board down, which is a possible cause of the premature crash as a\n result of garbage data I've been seeing. Garbage data ends up in the\n first few rows, pieces can't move down into it, they stop falling, and\n then the game_over condition activates.\n * to fix this, added another loop to clear_rows() so that it stops\n once it would start touching the top of the board, and will fill\n rows at the top with BG_COLOR without trying to read OOB\n* lines_cleared_since_last_level static var that was a part of\n tg_update_score moved to TetrisGame struct for easier monitoring and\n testing; moving it makes replicating crash conditions in unit test\n suites much easier.\n* print_board_state() function updated to take `bool ini_out` argument,\n which prepends boards printed to .ini files with the `;` comment\n character\n* several new unit test cases added to `suite_1.c`, mostly for\n clear_rows() and relating functions.\n* a couple new savegame .ini files added; some of these will likely be\n removed in the future, but they're very useful for replicating\n specific board conditions for testing.\n* ini saving functionality moved to utils.c so it's all aggregated in\n the same place","shortMessageHtmlLink":"Addressed possible cause of premature crash, plus a lot of tests"}},{"before":"b0c2bc8ce163e03a2817a92b6149669c63d37ebd","after":"e78a80fc36ffb2f9ffb60bfd92556da8d77a8ed9","ref":"refs/heads/main","pushedAt":"2024-03-21T23:53:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"Improvements and tests related to Issue #1\n\n* also fix an issue regarding ini parsing - now when a game board is\n prettyprinted to a .ini file, all lines are prepended with comments so\n there aren't parsing errors during reading.\n* existing ini files were updated to reflect this change, as was\n print_board_state()\n* test_clearRowsDumpedGame_2() was created to piece-by-piece manually\n step through the game state process of lowering a piece and clearing\n the associated rows.\n* Helper functions were added to tetris_test_helpers() to simplify the\n process of testing the whole game board for invalid states (like\n filled rows being left over after a row clear).","shortMessageHtmlLink":"Improvements and tests related to Issue #1"}},{"before":"0c33305bf76716b5bc2bee991534f033d9358524","after":null,"ref":"refs/heads/gameover_bugfix","pushedAt":"2024-03-21T23:49:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"}},{"before":"d4d3991259db163915070769325e2ffcd6e5ba71","after":"b0c2bc8ce163e03a2817a92b6149669c63d37ebd","ref":"refs/heads/main","pushedAt":"2024-03-21T23:49:27.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"Merge pull request #2 from 0xjmux/gameover_bugfix\n\nGameover bugfix","shortMessageHtmlLink":"Merge pull request #2 from 0xjmux/gameover_bugfix"}},{"before":null,"after":"0c33305bf76716b5bc2bee991534f033d9358524","ref":"refs/heads/gameover_bugfix","pushedAt":"2024-03-21T23:47:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"Fixed double modification of highest_occupied_cell on row clear\n\nI think this fixes Issue #1; I was mistakenly updating the\nhighest_occupied_cell twice, once correctly in clear_rows() and then\nonce in the wrong direction in update_score(). Since it was updated\ntwice, it would never move down when rows were cleared - resulting in\nthe highest cell only climbing during gameplay, eventually reaching the\ngameover condition.\n\nhttps://github.com/0xjmux/tetris/issues/1","shortMessageHtmlLink":"Fixed double modification of highest_occupied_cell on row clear"}},{"before":"10302c752cafa21945881fa1be2ba9c855adc949","after":"d4d3991259db163915070769325e2ffcd6e5ba71","ref":"refs/heads/main","pushedAt":"2024-03-21T01:52:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"removed env from CI cmake build cmd","shortMessageHtmlLink":"removed env from CI cmake build cmd"}},{"before":"6f04a3bec2d01b926109f72db042dc54d5036dd0","after":"10302c752cafa21945881fa1be2ba9c855adc949","ref":"refs/heads/main","pushedAt":"2024-03-21T01:50:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"added scoring logic to tg_tick, and attempted CI fix","shortMessageHtmlLink":"added scoring logic to tg_tick, and attempted CI fix"}},{"before":"7e75c856a1267d83da68504297b8b8236707e909","after":"6f04a3bec2d01b926109f72db042dc54d5036dd0","ref":"refs/heads/main","pushedAt":"2024-03-21T00:59:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"Adding filesaving and restoring functionality, bugfixes, and a bunch\nmore\nThis is a big one.\n* utils.h and utils.c created so game driver and unit tests can share\n same helper functions (DRY)\n * sleep_millis and print_board_state moved to utils\n* created debug flags for debug window in game, and made this and\n several other things into CMake options\n* options like DEBUG_T_WIN moved to CMake\n* changed gamesave function to save board in MUCH easier to parse format\n* used inih library to write parser for saved game states.\n* wrote tests for parser to verify correct functionality\n* added first saved game state to ./test/files/ for unit testing\n purposes - this way I can run tests against actual saved game states.\n* broke up check_and_spawn_new_piece with new function\n check_and_clear_rows to make testing easier, and keep function length\n under 1 pg\n* wrote first test for check_and_clear_rows\n\n* clearing rows now works in-game!\n* fixed bug where highest row would be changed to whatever the highest\n row of the last active_piece was\n* fixed check_game_over condition in tg_tick() to prevent exiting when\n game *isn't* over\n* updated issues with piece positioning that was causing weird in-game\n rotations","shortMessageHtmlLink":"Adding filesaving and restoring functionality, bugfixes, and a bunch"}},{"before":"34efdc6cdbe236ee6627107c3b0f1f5ce005f635","after":"7e75c856a1267d83da68504297b8b8236707e909","ref":"refs/heads/main","pushedAt":"2024-03-20T19:16:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"README updates and enabled CI build flag in GH actions","shortMessageHtmlLink":"README updates and enabled CI build flag in GH actions"}},{"before":"a787ef006bd9bd00c04b3d50b5368b3a8636a995","after":"34efdc6cdbe236ee6627107c3b0f1f5ce005f635","ref":"refs/heads/main","pushedAt":"2024-03-20T06:00:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"debugging, and added functionality for saving game state to disk","shortMessageHtmlLink":"debugging, and added functionality for saving game state to disk"}},{"before":"5b5e47bed5ffcbc947d0654f7fad60693bee0318","after":"a787ef006bd9bd00c04b3d50b5368b3a8636a995","ref":"refs/heads/main","pushedAt":"2024-03-20T03:00:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"fixed timing check, all tests should pass","shortMessageHtmlLink":"fixed timing check, all tests should pass"}},{"before":"c367c01f8b56fcae1ac6b871d666b9e788524acc","after":"5b5e47bed5ffcbc947d0654f7fad60693bee0318","ref":"refs/heads/main","pushedAt":"2024-03-20T02:51:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xjmux","name":"Jacob","path":"/0xjmux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20913473?s=80&v=4"},"commit":{"message":"updates to build files to fix tests failing to run","shortMessageHtmlLink":"updates to build files to fix tests failing to run"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEhMOD9QA","startCursor":null,"endCursor":null}},"title":"Activity · 0xjmux/tetris"}