{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":350867591,"defaultBranch":"main","name":"tabulous","ownerLogin":"feugy","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-03-23T21:52:58.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/186268?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1699711370.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"0edff7f82dfb6e396cd8af020bc44795b723c17a","ref":"refs/heads/feat/reset-game","pushedAt":"2023-11-11T14:02:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"tmp","shortMessageHtmlLink":"tmp"}},{"before":"8aa6ab510acc6118c49a7a1e764bd2146ead4433","after":null,"ref":"refs/heads/feat/scores","pushedAt":"2023-10-14T13:07:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"}},{"before":"7114ffe271a0c1cee629e85230005f2c4966d591","after":"b790f19e83b89118043bcd8249c6d626cb97dc90","ref":"refs/heads/main","pushedAt":"2023-10-14T13:07:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"feat(web): introduce score tracking (#169)\n\n- fix(web): anchorable flip is ignore when loading game.\r\n- fix(web): lost meshes when decrementing a quantifiable.\r\n- fix(web): game loading screen hides game aside tabs.\r\n- feat(server)!: GraphQL game queries now return serialized preferences.\r\n- feat(server): bundles game descriptors on server start with esbuild.\r\n- feat(server): returns bundled rule engine when promoting and joining a game.\r\n- feat(server): supports multiple anchors and migrate existing games.\r\n- feat(web): initializes rule engine with bundled scripts and computes score on game init, joined player, and every action.\r\n- feat(web): displays game scores, loads serialized preferences, provides preferences to `computeScore()`.\r\n- feat(web): supports anchors with multiple snapped meshes.\r\n- feat(game-utils): supports multiple anchors.\r\n- feat(game-utils): allows testing random game code.\r\n- feat(mah-jong): supports multiple anchors and computes score.\r\n- feat(draughts): supports multiple anchors and computes score.\r\n- feat(klondike): supports multiple anchors.\r\n- feat(chess): supports multiple anchors.\r\n- feat(playground): supports multiple anchors.\r\n- chore(server): configures repositories `isProduction` option.\r\n- refactor(web): moves some types to `@tabulous/types`.\r\n- refactor(game-utils): takes `findPlayerPreferences()` from web.","shortMessageHtmlLink":"feat(web): introduce score tracking (#169)"}},{"before":"61de453c254a5fc0bd3219b0e330dc5167c1fa71","after":"8aa6ab510acc6118c49a7a1e764bd2146ead4433","ref":"refs/heads/feat/scores","pushedAt":"2023-10-14T12:57:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore: fixes integration tests","shortMessageHtmlLink":"chore: fixes integration tests"}},{"before":"0dac73322beeb74ad8ad5d279eb52c2a978c69a4","after":"61de453c254a5fc0bd3219b0e330dc5167c1fa71","ref":"refs/heads/feat/scores","pushedAt":"2023-10-14T12:16:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore: fixes integration tests","shortMessageHtmlLink":"chore: fixes integration tests"}},{"before":"234b7cbf800dd42263959365291017dbdb60be4f","after":"0dac73322beeb74ad8ad5d279eb52c2a978c69a4","ref":"refs/heads/feat/scores","pushedAt":"2023-10-14T08:12:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore(ci): upgrade web integration tests to pnpm@8","shortMessageHtmlLink":"chore(ci): upgrade web integration tests to pnpm@8"}},{"before":null,"after":"234b7cbf800dd42263959365291017dbdb60be4f","ref":"refs/heads/feat/scores","pushedAt":"2023-10-14T07:51:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore(web): deserialize preference string on game update","shortMessageHtmlLink":"chore(web): deserialize preference string on game update"}},{"before":"fc9f25cc45ade1191d3a21df922d918788b5e4ae","after":"7114ffe271a0c1cee629e85230005f2c4966d591","ref":"refs/heads/main","pushedAt":"2023-09-29T22:42:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore: improves packaging for deployment","shortMessageHtmlLink":"chore: improves packaging for deployment"}},{"before":"be6190c3fe4b38d0dc3db49e8c34217b2b249d13","after":"fc9f25cc45ade1191d3a21df922d918788b5e4ae","ref":"refs/heads/main","pushedAt":"2023-09-29T21:39:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"fix(server): fails to start due to listCatalog GraphQL query","shortMessageHtmlLink":"fix(server): fails to start due to listCatalog GraphQL query"}},{"before":"a560bb1a7dac01aede6cc2ad5217c6c91372b76a","after":"be6190c3fe4b38d0dc3db49e8c34217b2b249d13","ref":"refs/heads/main","pushedAt":"2023-09-29T21:00:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore: fixes game-utils deployment","shortMessageHtmlLink":"chore: fixes game-utils deployment"}},{"before":"845d376b61052625e57025771c4a51e992850082","after":null,"ref":"refs/heads/feat/scores","pushedAt":"2023-09-29T20:22:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"}},{"before":"680f90752654895d0d5e0f2eb3f54eb23f7796ac","after":"a560bb1a7dac01aede6cc2ad5217c6c91372b76a","ref":"refs/heads/main","pushedAt":"2023-09-29T20:22:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore: introduces @tabulous/types and @tabulous/game-utils (#168)\n\n- fix(web): die do not display the same face in multiplayer (states are correct).\r\n- chore: introduces @tabulous/types and @tabulous/game-utils.","shortMessageHtmlLink":"chore: introduces @tabulous/types and @tabulous/game-utils (#168)"}},{"before":null,"after":"845d376b61052625e57025771c4a51e992850082","ref":"refs/heads/feat/scores","pushedAt":"2023-09-29T20:07:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore: introduces @tabulous/types and @tabulous/game-utils","shortMessageHtmlLink":"chore: introduces @tabulous/types and @tabulous/game-utils"}},{"before":"73d8ede1544d86bca664eb1a7336fafe21068ddd","after":null,"ref":"refs/heads/feat/pure-engine","pushedAt":"2023-09-25T07:10:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"}},{"before":"907bcc04f0c68082bfd412100015ac3f3ed89083","after":"680f90752654895d0d5e0f2eb3f54eb23f7796ac","ref":"refs/heads/main","pushedAt":"2023-09-25T07:10:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"feat(web): handles 3d state while replaying (#167)\n\n- fix(server): no redirection to home/lobby closure when owner deletes the current game/lobby.\r\n- fix(web): peer do not apply host game state on game sync.\r\n- fix(web): when receiving game or stream update, aside jumps to the player tab.\r\n- fix(web): peers muted/stopped states are reset when reconnecting to game.\r\n- feat(web): joins a simulation engine to the real engine, to maintain game state while replaying.\r\n- feat(server, web): records hand actions in history.\r\n- refactor(web): binds manager singletons to the 3d engine.","shortMessageHtmlLink":"feat(web): handles 3d state while replaying (#167)"}},{"before":"67658c3e3de98a9ee697bde198241394304db514","after":"73d8ede1544d86bca664eb1a7336fafe21068ddd","ref":"refs/heads/feat/pure-engine","pushedAt":"2023-09-25T06:46:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore: fixes violations","shortMessageHtmlLink":"chore: fixes violations"}},{"before":"bbb2bc69d0b6b669e8ccd4f9097dbefd2348905d","after":"67658c3e3de98a9ee697bde198241394304db514","ref":"refs/heads/feat/pure-engine","pushedAt":"2023-09-25T06:14:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"fix(web): peers muted/stopped states are reset when reconnecting to game","shortMessageHtmlLink":"fix(web): peers muted/stopped states are reset when reconnecting to game"}},{"before":null,"after":"bbb2bc69d0b6b669e8ccd4f9097dbefd2348905d","ref":"refs/heads/feat/pure-engine","pushedAt":"2023-09-25T05:25:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"fix(web): peers muted/stopped states are reset when reconnecting to game","shortMessageHtmlLink":"fix(web): peers muted/stopped states are reset when reconnecting to game"}},{"before":"145a3baf22b59db2cca80e83d1a0bf5f7eac747f","after":null,"ref":"refs/heads/feat/replay","pushedAt":"2023-09-16T15:47:22.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"}},{"before":"e4d771a4d691e142eb9052b8091d20af1d678fbe","after":"907bcc04f0c68082bfd412100015ac3f3ed89083","ref":"refs/heads/main","pushedAt":"2023-09-16T15:47:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"feat(web): first implementation of game replay (#166)\n\n- fix(web): wrong angle when rotating multiple stacked card.\r\n- fix(web): wrong elevation when dragging a mah-jong tile from hand.\r\n- fix(klondike): some cards are missing symbols.\r\n- feat(server): supports player actions and moves history.\r\n- feat(web): brings a first implementation for game replay.\r\n- feat(klondike): automatically flips first discarded card.\r\n- refactor(server): introduces play action to distinguish draws.\r\n- chore: updates all dependencies.\r\n- chore: patches vitest to fix OOM errors when diffing meshes.","shortMessageHtmlLink":"feat(web): first implementation of game replay (#166)"}},{"before":"6a926b4c0168e4dd5e03058f8929b21f49452329","after":"145a3baf22b59db2cca80e83d1a0bf5f7eac747f","ref":"refs/heads/feat/replay","pushedAt":"2023-09-16T15:29:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore(web): animates replayed moves and allows configuring all loggers at once","shortMessageHtmlLink":"chore(web): animates replayed moves and allows configuring all logger…"}},{"before":"15d82977b206c36aac652a278153bdc778af425d","after":"6a926b4c0168e4dd5e03058f8929b21f49452329","ref":"refs/heads/feat/replay","pushedAt":"2023-09-16T09:17:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore: fix a few violations","shortMessageHtmlLink":"chore: fix a few violations"}},{"before":"d0b5fe93defef8a957c12eb379a282743c040e2c","after":"15d82977b206c36aac652a278153bdc778af425d","ref":"refs/heads/feat/replay","pushedAt":"2023-09-16T09:03:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore: fix a few violations","shortMessageHtmlLink":"chore: fix a few violations"}},{"before":"3ce6cb4b7d48587a43cf3bd665a5f3876d06a830","after":"d0b5fe93defef8a957c12eb379a282743c040e2c","ref":"refs/heads/feat/replay","pushedAt":"2023-09-16T08:50:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore: fix a few violations","shortMessageHtmlLink":"chore: fix a few violations"}},{"before":"e71e6427ec1f6e44c675f87dfcafd5fefc41ff30","after":"3ce6cb4b7d48587a43cf3bd665a5f3876d06a830","ref":"refs/heads/feat/replay","pushedAt":"2023-09-16T08:43:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"chore: fix a few violations","shortMessageHtmlLink":"chore: fix a few violations"}},{"before":null,"after":"e71e6427ec1f6e44c675f87dfcafd5fefc41ff30","ref":"refs/heads/feat/replay","pushedAt":"2023-09-16T08:22:52.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"feat(web): brings a first implementation for game replay\nfix(web): wrong angle when rotating multiple stacked card\nfix( web): wrong elevation when dragging a mah-jong tile from hand","shortMessageHtmlLink":"feat(web): brings a first implementation for game replay"}},{"before":"856a982cab4252af603c7e284406e015953812da","after":null,"ref":"refs/heads/feat/flip-snapped","pushedAt":"2023-08-24T16:04:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"}},{"before":"2aa963190dda055278bf86786b65946ddd389f68","after":"e4d771a4d691e142eb9052b8091d20af1d678fbe","ref":"refs/heads/main","pushedAt":"2023-08-24T16:04:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"feat(web): (un)flips snapped mesh on anchors (#165)\n\n- fix(web): cannot connect with peers.\r\n- fix(web): mesh on table are not interactive through the open hand.\r\n- feat(web): (un)flips snapped mesh on anchors.\r\n- style(web): restores text font.\r\n- refactor(web): RTC data channel already guarantees message ordering.","shortMessageHtmlLink":"feat(web): (un)flips snapped mesh on anchors (#165)"}},{"before":null,"after":"856a982cab4252af603c7e284406e015953812da","ref":"refs/heads/feat/flip-snapped","pushedAt":"2023-08-24T15:35:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"},"commit":{"message":"feat(web): (un)flips snapped mesh on anchors","shortMessageHtmlLink":"feat(web): (un)flips snapped mesh on anchors"}},{"before":"0f0f5064489461953c767e7112bdca74c662f0e6","after":null,"ref":"refs/heads/fix/small-bugs","pushedAt":"2023-08-21T19:09:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"feugy","name":"Damien Simonin Feugas","path":"/feugy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/186268?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADrNIriQA","startCursor":null,"endCursor":null}},"title":"Activity · feugy/tabulous"}