{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":237852090,"defaultBranch":"main","name":"joist-orm","ownerLogin":"joist-orm","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-02-02T23:24:07.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/149845836?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716517014.0","currentOid":""},"activityList":{"items":[{"before":"d4f6803b03e88997918de4f5c888ed1ee5e5cc77","after":"e9346aee370800b3e058d56cbb78339b3df0e4cb","ref":"refs/heads/main","pushedAt":"2024-05-24T02:16:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"chore(release): 1.168.1 [skip ci]\n\n## [1.168.1](https://github.com/joist-orm/joist-orm/compare/v1.168.0...v1.168.1) (2024-05-24)\n\n### Bug Fixes\n\n* Fix lens finds going through overwriteExisting path. ([#1098](https://github.com/joist-orm/joist-orm/issues/1098)) ([d4f6803](https://github.com/joist-orm/joist-orm/commit/d4f6803b03e88997918de4f5c888ed1ee5e5cc77))","shortMessageHtmlLink":"chore(release): 1.168.1 [skip ci]"}},{"before":"1a2ade90950ba530d9813d58f8f8d594e30d75c6","after":null,"ref":"refs/heads/fix-lens-hydrate-perf","pushedAt":"2024-05-24T02:12:50.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"}},{"before":"8c197ce6d1b8bec00d3ffe68e7e7ac481bb235e9","after":"d4f6803b03e88997918de4f5c888ed1ee5e5cc77","ref":"refs/heads/main","pushedAt":"2024-05-24T02:12:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"fix: Fix lens finds going through overwriteExisting path. (#1098)\n\nThe `EM.hydrate` method is a somewhat private-ish method for loading\r\nan entity from a row result set.\r\n\r\nIt has conditional behavior on what to do if, when hydrating a row, that\r\nrow has already been loaded into an in-memory entity.\r\n\r\nThe safest option is to ignore the new hydrate, because it might right\r\nover WIP changes in the current EM/entity.\r\n\r\nHowever, the prior default was `overwriteExisting: true`, and then we\r\njust put `overwriteExisting: false` in a bunch of places. Which was\r\nfine, except we forgot one, in the lensDataLoader.\r\n\r\nThis surfaced as a bug in production not because of the incorrect overwriteExisting\r\nbehavior, but because it highlighted that the overwriteExisting behavior was really\r\npretty slow, because it had not been optimized to use the lazy row/data\r\nserde hand-off.\r\n\r\nThis PR flips the default of hydrate to `overwriteExisting: false`,\r\nwhich technically fixes the perf bug by skipping any hydrate logic for\r\nrows that are already loaded, but we do go ahead and optimize the\r\n`overwriteExisting: true` codepath as well.","shortMessageHtmlLink":"fix: Fix lens finds going through overwriteExisting path. (#1098)"}},{"before":null,"after":"1a2ade90950ba530d9813d58f8f8d594e30d75c6","ref":"refs/heads/fix-lens-hydrate-perf","pushedAt":"2024-05-24T01:55:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"fix: Fix lens finds going through overwriteExisting path.\n\nThe `EM.hydrate` method is a somewhat private-ish method for loading\nan entity from a row result set.\n\nIt has conditional behavior on what to do if, when hydrating a row, that\nrow has already been loaded into an in-memory entity.\n\nThe safest option is to ignore the new hydrate, because it might right\nover WIP changes in the current EM/entity.\n\nHowever, the prior default was `overwriteExisting: true`, and then we\njust put `overwriteExisting: false` in a bunch of places. Which was\nfine, except we forgot one, in the lensDataLoader.\n\nThis surfaced as a bug in production not because of the incorrect overwriteExisting\nbehavior, but because it highlighted that the overwriteExisting behavior was really\npretty slow, because it had not been optimized to use the lazy row/data\nserde hand-off.\n\nThis PR flips the default of hydrate to `overwriteExisting: false`,\nwhich technically fixes the perf bug by skipping any hydrate logic for\nrows that are already loaded, but we do go ahead and optimize the\n`overwriteExisting: true` codepath as well.","shortMessageHtmlLink":"fix: Fix lens finds going through overwriteExisting path."}},{"before":"ed4be3d0e5347a9fdca386a42a9bb9045b6714d6","after":"8c197ce6d1b8bec00d3ffe68e7e7ac481bb235e9","ref":"refs/heads/main","pushedAt":"2024-05-19T14:34:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"chore(release): 1.168.0 [skip ci]\n\n# [1.168.0](https://github.com/joist-orm/joist-orm/compare/v1.167.0...v1.168.0) (2024-05-19)\n\n### Features\n\n* m2m change detection follow up ([#1046](https://github.com/joist-orm/joist-orm/issues/1046)) ([ed4be3d](https://github.com/joist-orm/joist-orm/commit/ed4be3d0e5347a9fdca386a42a9bb9045b6714d6))","shortMessageHtmlLink":"chore(release): 1.168.0 [skip ci]"}},{"before":"cb2b0a7065a07b3d9e784d029cf33e6af2254c5c","after":"ed4be3d0e5347a9fdca386a42a9bb9045b6714d6","ref":"refs/heads/main","pushedAt":"2024-05-19T14:29:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"feat: m2m change detection follow up (#1046)\n\n* Delegating the clean up of the join rows items to the entity manager, to be called after the hook cycles is evaluated, so we get the changes on m2m relations for every hook\r\n\r\n* adding unit test to ensure m2m relation changes are identified on afterComimt hooks\r\n\r\n* fixing getProperties issue with new transient fields for Book's hooks example\r\n\r\n* updating unit test from false to undefined assertion\r\n\r\n* introducing flag for join rows, to denote their state on the flush cycle, updating driver to use it, exposing reset function\r\n\r\n* using arrow function for resetAfterFlushed to prevent losing scope, and use\r\n\r\n* Bump versions.\r\n\r\n---------\r\n\r\nCo-authored-by: Luis Arturo Muñoz Bogarin \r\nCo-authored-by: Stephen Haberman ","shortMessageHtmlLink":"feat: m2m change detection follow up (#1046)"}},{"before":"93cf7e573a07781aa777c6ddbddedc915ca5fc53","after":"d21c3027faea5ca1a3c570fb83c8d0599a5491bb","ref":"refs/heads/gh-pages","pushedAt":"2024-05-19T13:55:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[skip ci] docs(ugly-queries): Copy edits. cb2b0a7065a07b3d9e784d029cf33e6af2254c5c","shortMessageHtmlLink":"[skip ci] docs(ugly-queries): Copy edits. cb2b0a7"}},{"before":"d976e4a275bfb2f0d62e0834736da40f8d289157","after":"cb2b0a7065a07b3d9e784d029cf33e6af2254c5c","ref":"refs/heads/main","pushedAt":"2024-05-19T13:53:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"docs(ugly-queries): Copy edits.","shortMessageHtmlLink":"docs(ugly-queries): Copy edits."}},{"before":"590ddcdbfe383ecbd5130fa74d8dadbe3fadf6f3","after":null,"ref":"refs/heads/add-poly-component-test","pushedAt":"2024-05-19T13:17:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"}},{"before":"620d9799c8fcea17a56b0aad2eac9dc0284b3c91","after":"d976e4a275bfb2f0d62e0834736da40f8d289157","ref":"refs/heads/main","pushedAt":"2024-05-19T13:17:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"chore: Add test for poly component finds w/or. (#1095)\n\nThis shows that `LEFT OUTER JOIN`s are being used, so that comments\r\nwith just the book FK set, or just the author FK set, will match.\r\n\r\nFixes #1094.","shortMessageHtmlLink":"chore: Add test for poly component finds w/or. (#1095)"}},{"before":null,"after":"590ddcdbfe383ecbd5130fa74d8dadbe3fadf6f3","ref":"refs/heads/add-poly-component-test","pushedAt":"2024-05-19T13:00:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"chore: Add test for poly component finds w/or.\n\nThis shows that `LEFT OUTER JOIN`s are being used, so that comments\nwith just the book FK set, or just the author FK set, will match.\n\nFixes #1094.","shortMessageHtmlLink":"chore: Add test for poly component finds w/or."}},{"before":"89b8635e32d9328d355d8af3ddac2dd916248813","after":"93cf7e573a07781aa777c6ddbddedc915ca5fc53","ref":"refs/heads/gh-pages","pushedAt":"2024-05-18T18:58:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[skip ci] docs(ugly-queries): Copy edits. 620d9799c8fcea17a56b0aad2eac9dc0284b3c91","shortMessageHtmlLink":"[skip ci] docs(ugly-queries): Copy edits. 620d979"}},{"before":"2fb702972499c36e974c199ac617595bc5ae35e5","after":"620d9799c8fcea17a56b0aad2eac9dc0284b3c91","ref":"refs/heads/main","pushedAt":"2024-05-18T18:57:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"docs(ugly-queries): Copy edits.","shortMessageHtmlLink":"docs(ugly-queries): Copy edits."}},{"before":"5eb613696eb55209314645c737a17f7be6c21e10","after":"89b8635e32d9328d355d8af3ddac2dd916248813","ref":"refs/heads/gh-pages","pushedAt":"2024-05-18T18:51:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[skip ci] docs(no-ugly-queries): Publish. 2fb702972499c36e974c199ac617595bc5ae35e5","shortMessageHtmlLink":"[skip ci] docs(no-ugly-queries): Publish. 2fb7029"}},{"before":"ac054e5a5f6e2471bf3dcb1fa8545fd371a2d30c","after":"2fb702972499c36e974c199ac617595bc5ae35e5","ref":"refs/heads/main","pushedAt":"2024-05-18T18:50:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"docs(no-ugly-queries): Publish.","shortMessageHtmlLink":"docs(no-ugly-queries): Publish."}},{"before":"c3561b97cd06fef9ba0c40d561ca0dc9dfc95108","after":"5eb613696eb55209314645c737a17f7be6c21e10","ref":"refs/heads/gh-pages","pushedAt":"2024-05-18T18:08:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[skip ci] docs(faq): Add note about Zod. ac054e5a5f6e2471bf3dcb1fa8545fd371a2d30c","shortMessageHtmlLink":"[skip ci] docs(faq): Add note about Zod. ac054e5"}},{"before":"ac33e36805d149d245f66df4f9c27d88e1aa5551","after":"ac054e5a5f6e2471bf3dcb1fa8545fd371a2d30c","ref":"refs/heads/main","pushedAt":"2024-05-18T18:07:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"docs(faq): Add note about Zod.","shortMessageHtmlLink":"docs(faq): Add note about Zod."}},{"before":null,"after":"0489139a83f1b7cdc88dbb9e10c7e73446b0977e","ref":"refs/heads/feat-filter-o2m-by-cti-subtype","pushedAt":"2024-05-18T13:16:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"feat: Filter o2m by CTI subtypes.","shortMessageHtmlLink":"feat: Filter o2m by CTI subtypes."}},{"before":"1a67c5a4b17e94742e0737705ad15413a3769bf3","after":"ac33e36805d149d245f66df4f9c27d88e1aa5551","ref":"refs/heads/main","pushedAt":"2024-05-18T13:11:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"chore(release): 1.167.0 [skip ci]\n\n# [1.167.0](https://github.com/joist-orm/joist-orm/compare/v1.166.0...v1.167.0) (2024-05-18)\n\n### Features\n\n* Allow filtering m2o by CTI subtypes. ([#1093](https://github.com/joist-orm/joist-orm/issues/1093)) ([1a67c5a](https://github.com/joist-orm/joist-orm/commit/1a67c5a4b17e94742e0737705ad15413a3769bf3))","shortMessageHtmlLink":"chore(release): 1.167.0 [skip ci]"}},{"before":"95dd7138f417b5c08ce8fa077221aad24cd0f92b","after":null,"ref":"refs/heads/feat-filter-by-cti-subtypes","pushedAt":"2024-05-18T13:08:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"}},{"before":"fd586dcf48d1d26667f3ff2f2fcdf2a311a134e3","after":"1a67c5a4b17e94742e0737705ad15413a3769bf3","ref":"refs/heads/main","pushedAt":"2024-05-18T13:06:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"feat: Allow filtering m2o by CTI subtypes. (#1093)\n\n* feat: Allow filtering m2o by CTI subtypes.\r\n\r\nUsing the same trick/infra as filtering by poly components, we expose\r\nthe subtypes of pointing-to-CTI m2o fields as sibling suffixes.\r\n\r\n* Fix compile error.","shortMessageHtmlLink":"feat: Allow filtering m2o by CTI subtypes. (#1093)"}},{"before":"fd9ce8002341d7b1965964e521d651b98f12b0bf","after":"95dd7138f417b5c08ce8fa077221aad24cd0f92b","ref":"refs/heads/feat-filter-by-cti-subtypes","pushedAt":"2024-05-18T04:39:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"Fix compile error.","shortMessageHtmlLink":"Fix compile error."}},{"before":null,"after":"fd9ce8002341d7b1965964e521d651b98f12b0bf","ref":"refs/heads/feat-filter-by-cti-subtypes","pushedAt":"2024-05-18T03:00:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"feat: Allow filtering m2o by CTI subtypes.\n\nUsing the same trick/infra as filtering by poly components, we expose\nthe subtypes of pointing-to-CTI m2o fields as sibling suffixes.","shortMessageHtmlLink":"feat: Allow filtering m2o by CTI subtypes."}},{"before":"33b26b47413467598a2e26e0cf9460f98c9dd6a0","after":"fd586dcf48d1d26667f3ff2f2fcdf2a311a134e3","ref":"refs/heads/main","pushedAt":"2024-05-18T01:41:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"chore(release): 1.166.0 [skip ci]\n\n# [1.166.0](https://github.com/joist-orm/joist-orm/compare/v1.165.2...v1.166.0) (2024-05-18)\n\n### Features\n\n* Support filtering by poly components ([#1092](https://github.com/joist-orm/joist-orm/issues/1092)) ([2f76e62](https://github.com/joist-orm/joist-orm/commit/2f76e62793f609a4ed0cf8e40d04d54f65469778))","shortMessageHtmlLink":"chore(release): 1.166.0 [skip ci]"}},{"before":"74cd35c3fffb82d89bf0dcdd3dd8f1ac511a8444","after":"c3561b97cd06fef9ba0c40d561ca0dc9dfc95108","ref":"refs/heads/gh-pages","pushedAt":"2024-05-18T01:38:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[skip ci] docs(find): Format, mention pruning. 33b26b47413467598a2e26e0cf9460f98c9dd6a0","shortMessageHtmlLink":"[skip ci] docs(find): Format, mention pruning. 33b26b4"}},{"before":"2f76e62793f609a4ed0cf8e40d04d54f65469778","after":"33b26b47413467598a2e26e0cf9460f98c9dd6a0","ref":"refs/heads/main","pushedAt":"2024-05-18T01:37:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"docs(find): Format, mention pruning.","shortMessageHtmlLink":"docs(find): Format, mention pruning."}},{"before":"0d9de7d81f1c58c0035cb089d7ecad1fbae8446b","after":null,"ref":"refs/heads/feat-filter-by-poly-components","pushedAt":"2024-05-18T01:36:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"}},{"before":"b862a92e290922e6afbb6b9b86d7726ad8880c2c","after":"2f76e62793f609a4ed0cf8e40d04d54f65469778","ref":"refs/heads/main","pushedAt":"2024-05-18T01:36:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"feat: Support filtering by poly components (#1092)\n\n* wip\r\n\r\n* Populate the new polyComponentFields.","shortMessageHtmlLink":"feat: Support filtering by poly components (#1092)"}},{"before":"6e381bc1860751a60a1df93376bcec9b0c136659","after":"0d9de7d81f1c58c0035cb089d7ecad1fbae8446b","ref":"refs/heads/feat-filter-by-poly-components","pushedAt":"2024-05-18T00:51:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"Populate the new polyComponentFields.","shortMessageHtmlLink":"Populate the new polyComponentFields."}},{"before":null,"after":"6e381bc1860751a60a1df93376bcec9b0c136659","ref":"refs/heads/feat-filter-by-poly-components","pushedAt":"2024-05-17T23:26:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephenh","name":"Stephen Haberman","path":"/stephenh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6401?s=80&v=4"},"commit":{"message":"wip","shortMessageHtmlLink":"wip"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEUpljFwA","startCursor":null,"endCursor":null}},"title":"Activity · joist-orm/joist-orm"}