{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":242174446,"defaultBranch":"main","name":"matrix-rust-sdk","ownerLogin":"matrix-org","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-02-21T15:47:16.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8418310?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717169571.0","currentOid":""},"activityList":{"items":[{"before":"778ef3f54324cced186678f485a2a15ac45314dd","after":"2663966b1f9c82f34ea2c67739d35ef149f8a981","ref":"refs/heads/rav/deduplicate_utds","pushedAt":"2024-05-31T15:51:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"richvdh","name":"Richard van der Hoff","path":"/richvdh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1389908?s=80&v=4"},"commit":{"message":"Update changelog","shortMessageHtmlLink":"Update changelog"}},{"before":"1b5db09f4a6b6d2e0dc9ee9de19fc13d4dabf34a","after":"778ef3f54324cced186678f485a2a15ac45314dd","ref":"refs/heads/rav/deduplicate_utds","pushedAt":"2024-05-31T15:49:34.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"richvdh","name":"Richard van der Hoff","path":"/richvdh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1389908?s=80&v=4"},"commit":{"message":"Update changelog","shortMessageHtmlLink":"Update changelog"}},{"before":"75456b8db743d715144de3ada4070ca6c00e6968","after":"1b5db09f4a6b6d2e0dc9ee9de19fc13d4dabf34a","ref":"refs/heads/rav/deduplicate_utds","pushedAt":"2024-05-31T15:38:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"richvdh","name":"Richard van der Hoff","path":"/richvdh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1389908?s=80&v=4"},"commit":{"message":"Update changelog","shortMessageHtmlLink":"Update changelog"}},{"before":null,"after":"75456b8db743d715144de3ada4070ca6c00e6968","ref":"refs/heads/rav/deduplicate_utds","pushedAt":"2024-05-31T15:32:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"richvdh","name":"Richard van der Hoff","path":"/richvdh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1389908?s=80&v=4"},"commit":{"message":"Remove redundant `UtdHookManager::known_utds`\n\nThis is now redundant.","shortMessageHtmlLink":"Remove redundant UtdHookManager::known_utds"}},{"before":"50e32e862248b531fa218d25c437602993350bb5","after":null,"ref":"refs/heads/bnjbvr/remove-unused-dependencies","pushedAt":"2024-05-31T15:26:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"}},{"before":"b029519248366931ba7244c490decd6028e09007","after":"6012c7d98b296fb769e18bf46b041376f52efeff","ref":"refs/heads/main","pushedAt":"2024-05-31T15:26:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"},"commit":{"message":"chore: remove unused dependencies\n\nThanks cargo-machete.","shortMessageHtmlLink":"chore: remove unused dependencies"}},{"before":"4c6f491fbdb1d79d89b04c9af7c1dd6bed055650","after":null,"ref":"refs/heads/bnjbvr/use-computed-display-name-in-search","pushedAt":"2024-05-31T14:44:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"}},{"before":null,"after":"4c6f491fbdb1d79d89b04c9af7c1dd6bed055650","ref":"refs/heads/bnjbvr/use-computed-display-name-in-search","pushedAt":"2024-05-31T14:44:03.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"},"commit":{"message":"room: cache the return of a previous call to `computed_display_name` and use that in search filters\n\nIt's not possible to use async code from a search filter, so we can't\njust plain call `Room::computed_display_name`. Also, it would be too\nexpensive to recompute it every single time we call that function, hence\nthe idea of caching the result.\n\nIdeally, we'd have something like a \"get_cached_or_recompute()` method,\nbut it would need to be async as well in the case we have to actually\ncompute the underlying `computed_display_name`. Instead, this commit\nproposes a stopgap that will store the outcome of\n`computed_display_name` in a local internal cache, and make it available\nin a sync method, so that the search filters may use it.\n\nIn theory, the computed display name could then be empty, but! the Room\nlist service that offers the filters is powered by a sliding sync that\npublishes `RoomInfo` updates for rooms, and `RoomInfo` will internally\ncall `computed_display_name` too.\n\nAll in all, it'd be better if there was a better proper caching, but\nthis can act as a stopgap solution in the meanwhile.","shortMessageHtmlLink":"room: cache the return of a previous call to computed_display_name …"}},{"before":null,"after":"50e32e862248b531fa218d25c437602993350bb5","ref":"refs/heads/bnjbvr/remove-unused-dependencies","pushedAt":"2024-05-31T14:38:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"},"commit":{"message":"chore: remove unused dependencies\n\nThanks cargo-machete.","shortMessageHtmlLink":"chore: remove unused dependencies"}},{"before":"4b88fe1078f6905cb9b67c8851478b035510804f","after":"908d8bc77528513f750ae8a37e28d419e7f32ab9","ref":"refs/heads/mauroromito/store_and_restore_composer_drafts","pushedAt":"2024-05-31T14:13:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Velin92","name":"Mauro","path":"/Velin92","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34335419?s=80&v=4"},"commit":{"message":"use event builder and renamed an API","shortMessageHtmlLink":"use event builder and renamed an API"}},{"before":"3d212c9d8eb0190b1d43672a92f5fd65cbc577b1","after":"4b88fe1078f6905cb9b67c8851478b035510804f","ref":"refs/heads/mauroromito/store_and_restore_composer_drafts","pushedAt":"2024-05-31T13:51:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Velin92","name":"Mauro","path":"/Velin92","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34335419?s=80&v=4"},"commit":{"message":"addressing pr comments","shortMessageHtmlLink":"addressing pr comments"}},{"before":"78d5984b646ae7fcb0add005dc27337092cf5c86","after":"84695adbb65a76e39421318d143f72e1a477dceb","ref":"refs/heads/bnjbvr/send-q-timeline-improvements","pushedAt":"2024-05-31T12:33:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"},"commit":{"message":"timeline: mark local echoes as not editable\n\nAlso reunify two methods that did the same thing, with slightly\ndifferent semantics, and test the one that wasn't tested at all.\n\nNote that `is_editable()` was already exposed to the FFI and used in EX\napps.","shortMessageHtmlLink":"timeline: mark local echoes as not editable"}},{"before":"27ece65006f6448965832dcaf2e470be2bfd7e99","after":null,"ref":"refs/heads/rav/no_rereport_late_utds","pushedAt":"2024-05-31T12:24:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"}},{"before":"61440c35611800bbbc90daeae8a59decc4f1fc7d","after":"b029519248366931ba7244c490decd6028e09007","ref":"refs/heads/main","pushedAt":"2024-05-31T12:24:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"},"commit":{"message":"utd hook: fix re-reporting of late-decrypted events (#3480)\n\nIf an event cannot be decrypted after a grace period, it is reported to the application (and thence Posthog) as a UTD event. Currently, if it is then successfully decrypted, the event is then re-reported as a \"late decryption\".\r\n\r\nThis does not match the expected behaviour in Posthog - an event is *either* a UTD, or a late decryption; it makes no sense for it to be both. This PR fixes the problem.\r\n\r\nI've attempted to make the commits sensible, but I'm not entirely sure I've succeeded. The tests do pass after each commit, though. The interesting change itself is somewhere in the middle; there is non-functional groundwork before and cleanup afterwards.\r\n\r\n---\r\n\r\n* ui: Factor out UTD report code to a closure\r\n\r\nFor now, this doesn't help much, but in future there will be more logic here,\r\nand it helps reduce the repetition between the delay and no-delay cases.\r\n\r\n* ui: Convert UtdHookManager::pending_delayed to a HashMap\r\n\r\n* ui: Store decryption time in `UtdHookManager::pending_delayed`\r\n\r\nThis is a step on getting rid of `known_utds`\r\n\r\n* ui: Fix re-reporting of late decryptions\r\n\r\nThis fixes the problem where a message that was previously reported as a UTD,\r\nand was then subsequently successfully decrypted, is then re-reported as a late\r\ndecryption. This artificially inflated the UTD metrics.\r\n\r\nWe do this by checking the `pending_delayed` list in `on_late_decrypt`, instead\r\nof the `known_utds` list. There is some associated reordering of code to get\r\nthe locking right.\r\n\r\n* ui: Remove unused \"utd report time\" from `UtdHookManager::known_utds`\r\n\r\n* ui: Replace `UtdHookManager::known_utds` with `reported_utds`\r\n\r\nKeep a list of the UTDs we've actually reported, rather than the union of those\r\nwe've reported together with those we might report in a while.\r\n\r\nI find this much easier to reason about.\r\n\r\n* Address minor review comments\r\n\r\n* Reinstate assertion in UTD hook tests\r\n\r\n* Reinstate `known_utds`","shortMessageHtmlLink":"utd hook: fix re-reporting of late-decrypted events (#3480)"}},{"before":"30062038bb34687de4c576f1f99847ff67ac185f","after":"e70e0e179a2e1f3c0f11ff1d4cfc9cb56ed17715","ref":"refs/heads/bnjbvr/send-q-in-timeline","pushedAt":"2024-05-31T12:17:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"},"commit":{"message":"fixup! ffi: expose the abort handle after sending an event","shortMessageHtmlLink":"fixup! ffi: expose the abort handle after sending an event"}},{"before":"4c6f491fbdb1d79d89b04c9af7c1dd6bed055650","after":null,"ref":"refs/heads/bnjbvr/use-computed-display-name-in-search","pushedAt":"2024-05-31T11:17:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"}},{"before":null,"after":"78d5984b646ae7fcb0add005dc27337092cf5c86","ref":"refs/heads/bnjbvr/send-q-timeline-improvements","pushedAt":"2024-05-31T11:05:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"},"commit":{"message":"timeline: mark local echoes as not editable\n\nAlso reunify two methods that did the same thing, with slightly\ndifferent semantics, and test the one that wasn't tested at all.\n\nNote that `is_editable()` was already exposed to the FFI and used in EX\napps.","shortMessageHtmlLink":"timeline: mark local echoes as not editable"}},{"before":"bc882ab805b52578c6fca9a1cc61848e0c585dd6","after":"27ece65006f6448965832dcaf2e470be2bfd7e99","ref":"refs/heads/rav/no_rereport_late_utds","pushedAt":"2024-05-31T10:58:00.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"richvdh","name":"Richard van der Hoff","path":"/richvdh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1389908?s=80&v=4"},"commit":{"message":"Reinstate `known_utds`","shortMessageHtmlLink":"Reinstate known_utds"}},{"before":"d5acee436c5a06d4a2b7e298ca2d1da6800413e0","after":null,"ref":"refs/heads/stefan/logPanicsOnAllSupportedPlatforms","pushedAt":"2024-05-31T07:06:25.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"poljar","name":"Damir Jelić","path":"/poljar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/552026?s=80&v=4"}},{"before":"9c4e547f5a9289a5c3c1b517b6b679d375e2f620","after":"61440c35611800bbbc90daeae8a59decc4f1fc7d","ref":"refs/heads/main","pushedAt":"2024-05-31T07:06:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poljar","name":"Damir Jelić","path":"/poljar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/552026?s=80&v=4"},"commit":{"message":"ffi: enable panic logging for all supported platforms not only android","shortMessageHtmlLink":"ffi: enable panic logging for all supported platforms not only android"}},{"before":null,"after":"d5acee436c5a06d4a2b7e298ca2d1da6800413e0","ref":"refs/heads/stefan/logPanicsOnAllSupportedPlatforms","pushedAt":"2024-05-31T06:50:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stefanceriu","name":"Stefan Ceriu","path":"/stefanceriu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/637564?s=80&v=4"},"commit":{"message":"ffi: enable panic logging for all supported platforms not only android","shortMessageHtmlLink":"ffi: enable panic logging for all supported platforms not only android"}},{"before":"eca011e9426ea30c2411379200799c5b1b81eb46","after":null,"ref":"refs/heads/jplatte/codecov-upload-dep-success","pushedAt":"2024-05-30T18:22:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"}},{"before":"7876c377153455437ff739f1640d8ac2d7322160","after":"9c4e547f5a9289a5c3c1b517b6b679d375e2f620","ref":"refs/heads/main","pushedAt":"2024-05-30T18:22:47.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"bnjbvr","name":"Benjamin Bouvier","path":"/bnjbvr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180019?s=80&v=4"},"commit":{"message":"ci: Error if coverage report files are not found","shortMessageHtmlLink":"ci: Error if coverage report files are not found"}},{"before":"ad3241e30ae4345f4bea9db6fee5ba535156c9b2","after":"eca011e9426ea30c2411379200799c5b1b81eb46","ref":"refs/heads/jplatte/codecov-upload-dep-success","pushedAt":"2024-05-30T17:35:41.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"jplatte","name":"Jonas Platte","path":"/jplatte","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/951129?s=80&v=4"},"commit":{"message":"ci: Error if coverage report files are not found","shortMessageHtmlLink":"ci: Error if coverage report files are not found"}},{"before":"cbdb44011b1b6b1c3b9da74bc2fe89e30bd9db17","after":"3d212c9d8eb0190b1d43672a92f5fd65cbc577b1","ref":"refs/heads/mauroromito/store_and_restore_composer_drafts","pushedAt":"2024-05-30T17:07:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Velin92","name":"Mauro","path":"/Velin92","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34335419?s=80&v=4"},"commit":{"message":"fixed a test","shortMessageHtmlLink":"fixed a test"}},{"before":"a61319d2c4ce83d0f2bfdea1a925c9a1eeddf33f","after":"cbdb44011b1b6b1c3b9da74bc2fe89e30bd9db17","ref":"refs/heads/mauroromito/store_and_restore_composer_drafts","pushedAt":"2024-05-30T16:58:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Velin92","name":"Mauro","path":"/Velin92","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34335419?s=80&v=4"},"commit":{"message":"removed unused let","shortMessageHtmlLink":"removed unused let"}},{"before":"b94d22a529e493d57d236bce738f57f528c7ccdb","after":"a61319d2c4ce83d0f2bfdea1a925c9a1eeddf33f","ref":"refs/heads/mauroromito/store_and_restore_composer_drafts","pushedAt":"2024-05-30T16:54:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Velin92","name":"Mauro","path":"/Velin92","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34335419?s=80&v=4"},"commit":{"message":"added docs","shortMessageHtmlLink":"added docs"}},{"before":null,"after":"ad3241e30ae4345f4bea9db6fee5ba535156c9b2","ref":"refs/heads/jplatte/codecov-upload-dep-success","pushedAt":"2024-05-30T16:53:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jplatte","name":"Jonas Platte","path":"/jplatte","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/951129?s=80&v=4"},"commit":{"message":"ci: Only run upload_coverage if coverage workflow succeeded","shortMessageHtmlLink":"ci: Only run upload_coverage if coverage workflow succeeded"}},{"before":"c52be25a96c04b586133fd5d792390cf43c7c1cf","after":"b94d22a529e493d57d236bce738f57f528c7ccdb","ref":"refs/heads/mauroromito/store_and_restore_composer_drafts","pushedAt":"2024-05-30T16:52:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Velin92","name":"Mauro","path":"/Velin92","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34335419?s=80&v=4"},"commit":{"message":"removed integration test","shortMessageHtmlLink":"removed integration test"}},{"before":"a9e18b8c4d805abf91e29bc4ad6d39c0302d8b73","after":"c52be25a96c04b586133fd5d792390cf43c7c1cf","ref":"refs/heads/mauroromito/store_and_restore_composer_drafts","pushedAt":"2024-05-30T16:50:26.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Velin92","name":"Mauro","path":"/Velin92","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34335419?s=80&v=4"},"commit":{"message":"doc improvement","shortMessageHtmlLink":"doc improvement"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEWS-qIAA","startCursor":null,"endCursor":null}},"title":"Activity · matrix-org/matrix-rust-sdk"}