{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":47238566,"defaultBranch":"master","name":"comm","ownerLogin":"CommE2E","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-12-02T05:12:05.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/76960940?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716924922.0","currentOid":""},"activityList":{"items":[{"before":"c91886c2bbb40be19030bc533ebb24ef07ba70fe","after":"0179df617f89f46397b6e9e9ad04a6e434b19154","ref":"refs/heads/master","pushedAt":"2024-05-28T20:02:57.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"vdhanan","name":"Varun Dhananjaya","path":"/vdhanan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15082471?s=80&v=4"},"commit":{"message":"[native_rust_library] fix serialization of BackupKeysResult\n\nSummary:\nthe validator in secondary-device-qr-code-scanner-react.js expects the field names to be camelCase\n\nDepends on D12211\n\nTest Plan:\n```\n const backupKeys = assertWithValidator(\n JSON.parse(backupKeysResponse),\n backupKeysValidator,\n );\n```\nthis assertion in secondary-device-qr-code-scanner-react.js was failing, but now succeeds\n\nReviewers: bartek, kamil\n\nReviewed By: bartek\n\nSubscribers: marcin, ashoat, tomek\n\nDifferential Revision: https://phab.comm.dev/D12212","shortMessageHtmlLink":"[native_rust_library] fix serialization of BackupKeysResult"}},{"before":"99b84b77df83143bd3415e1301ed9af2de2a5a91","after":"c91886c2bbb40be19030bc533ebb24ef07ba70fe","ref":"refs/heads/master","pushedAt":"2024-05-28T20:00:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"vdhanan","name":"Varun Dhananjaya","path":"/vdhanan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15082471?s=80&v=4"},"commit":{"message":"Update native_rust_library Cargo.lock\n\nSummary:\nMissed this when landing Cargo workspace.\nThe lockfile changed because `native_rust_library` depends on `comm-lib` which is now a part of the workspace and shares dependencies with other packages.\n\nTest Plan: `cargo build` in `native_rust_library`\n\nReviewers: varun, ashoat\n\nReviewed By: ashoat\n\nSubscribers: ashoat, tomek\n\nDifferential Revision: https://phab.comm.dev/D12231","shortMessageHtmlLink":"Update native_rust_library Cargo.lock"}},{"before":"d6d4e0d7379bc3d05c7d7064a25b402cb0270651","after":"99b84b77df83143bd3415e1301ed9af2de2a5a91","ref":"refs/heads/master","pushedAt":"2024-05-28T17:12:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Ashoat","name":"Ashoat Tevosyan","path":"/Ashoat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863579?s=80&v=4"},"commit":{"message":"[keyserver] Print error when failing to load Webpack-generated assets\n\nSummary: I was investigating an issue with my local dev environment recently and would have found these logs useful. In the past I've added these same logs when investigating other issues, so I think it would be helpful to just leave them in going forward. It might also be helpful for investigating issues in prod in the future.\n\nTest Plan: Confirm the logs were printed\n\nReviewers: tomek\n\nReviewed By: tomek\n\nDifferential Revision: https://phab.comm.dev/D12230","shortMessageHtmlLink":"[keyserver] Print error when failing to load Webpack-generated assets"}},{"before":"97c26e6c172ebb66707ec063802f1b4091267974","after":"d6d4e0d7379bc3d05c7d7064a25b402cb0270651","ref":"refs/heads/master","pushedAt":"2024-05-28T15:11:43.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"barthap","name":"Bartłomiej Klocek","path":"/barthap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/278340?s=80&v=4"},"commit":{"message":"[rust] Fix Clippy warnings\n\nSummary:\nFixed all remaining Clippy warnings for the workspace\n\nDepends on D12178\n\nTest Plan: No more Clippy warnings when running `cargo check` or `cargo clippy`\n\nReviewers: varun\n\nReviewed By: varun\n\nSubscribers: ashoat, tomek\n\nDifferential Revision: https://phab.comm.dev/D12179","shortMessageHtmlLink":"[rust] Fix Clippy warnings"}},{"before":"fa756c93c57b7c15d0f1968714f9e22bce913500","after":"97c26e6c172ebb66707ec063802f1b4091267974","ref":"refs/heads/master","pushedAt":"2024-05-28T13:05:22.000Z","pushType":"push","commitsCount":25,"pusher":{"login":"Ashoat","name":"Ashoat Tevosyan","path":"/Ashoat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863579?s=80&v=4"},"commit":{"message":"[native] Avoid showing iCloud password manager prompt when dismissing LogInPanel\n\nSummary:\nFor some reason, this prompt now appears when the `LogInPanel` is dismissed. It seems that switching to Reanimated 2 syntax here changed something about how the iOS password manager logic works with our code. (One big plus is that in `LogInPanel`, the username and password are now autocompleted together, instead of requiring two separate steps – cc @varun, who previously talked about this with me.)\n\nAnyways: it makes sense to show this prompt when the user attempts a login, but not when the user goes back.\n\nTo avoid showing the prompt, we can clear the password `TextInput` before it disappears from the screen.\n\nDepends on D12208\n\nTest Plan:\n| before | after |\n| {F1838435} | {F1838449} |\n\nReviewers: inka\n\nReviewed By: inka\n\nSubscribers: varun, tomek\n\nDifferential Revision: https://phab.comm.dev/D12209","shortMessageHtmlLink":"[native] Avoid showing iCloud password manager prompt when dismissing…"}},{"before":"70681d12e10855aa92ca73fb8120560191be15de","after":"fa756c93c57b7c15d0f1968714f9e22bce913500","ref":"refs/heads/master","pushedAt":"2024-05-28T12:41:08.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"barthap","name":"Bartłomiej Klocek","path":"/barthap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/278340?s=80&v=4"},"commit":{"message":"[lib][native][web] Add LogOutSecondaryDevice RPC to identity client\n\nSummary:\nAdded `LogOutSecondaryDevice` to Identity client on web and native.\nThe RPC is described in [[ https://linear.app/comm/issue/ENG-5293/add-support-for-logging-out-of-a-secondary-device#comment-d59b3ed0 | ENG-5293 ]] as a part of the \"CSAT invalidation flow\".\n\nDepends on D12121\n\nTest Plan:\n- Registered a user (Identity-auto created device list with primary device).\n- Logged in with a second device (secondary device added to the list)\n- Called the RPC on the secondary device\n - Confirmed that CSAT as well as device keys were cleared by viewing DDB tables\n - Confirmed that the device ID still exists on the device list\n\nReviewers: varun, kamil, will\n\nReviewed By: kamil\n\nSubscribers: ashoat, tomek\n\nDifferential Revision: https://phab.comm.dev/D12122","shortMessageHtmlLink":"[lib][native][web] Add LogOutSecondaryDevice RPC to identity client"}},{"before":"b51b09fb135959960ae2a2091a077bb8fa48d3b3","after":"70681d12e10855aa92ca73fb8120560191be15de","ref":"refs/heads/master","pushedAt":"2024-05-27T12:50:29.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"palys-swm","name":null,"path":"/palys-swm","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/54851691?s=80&v=4"},"commit":{"message":"[web] Replace persisted entries with the ones from initial redux state\n\nSummary:\nAfter we conclude that the migration was successful, we will replace this code with the one that replaces the entries only when they are missing from the store.\n\nDepends on D12164\n\nhttps://linear.app/comm/issue/ENG-3486/move-entrystore-to-sqlite\n\nTest Plan: Run `console.log(entryStoreOperations)` from tis code.\n\nReviewers: kamil, marcin\n\nReviewed By: marcin\n\nSubscribers: inka, ashoat\n\nDifferential Revision: https://phab.comm.dev/D12169","shortMessageHtmlLink":"[web] Replace persisted entries with the ones from initial redux state"}},{"before":"aa859aa231e31ba5202e01a3b8c9c9d13e67b98b","after":"b51b09fb135959960ae2a2091a077bb8fa48d3b3","ref":"refs/heads/master","pushedAt":"2024-05-27T12:43:35.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"marcinwasowicz","name":null,"path":"/marcinwasowicz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48218867?s=80&v=4"},"commit":{"message":"Connect pipes between C++ and JS for entry store\n\nSummary: This differential enables fetching data from SQLite to redux and reducers to create ops for entry store\n\nTest Plan: flow\n\nReviewers: tomek, kamil\n\nReviewed By: tomek\n\nSubscribers: ashoat\n\nDifferential Revision: https://phab.comm.dev/D12148","shortMessageHtmlLink":"Connect pipes between C++ and JS for entry store"}},{"before":"51249ca1a59b78f4336f54a17ffc2562e3200e2b","after":"aa859aa231e31ba5202e01a3b8c9c9d13e67b98b","ref":"refs/heads/master","pushedAt":"2024-05-24T16:31:22.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"vdhanan","name":"Varun Dhananjaya","path":"/vdhanan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15082471?s=80&v=4"},"commit":{"message":"[keyserver] call uploadSecondaryDeviceKeysAndLogIn\n\nSummary:\nDepends on D12155\n\nafter device list has been updated, secondary device should get a nonce from the keyserver, sign it, and then log in to identity\n\ni also took this chance to introduce a helper function to get the device key upload\n\nTest Plan:\nsuccessfully logged in to identity and got an access token\n\nchecked that the device key upload contents were all present and looked correct. the one-time keys are marked as published in the helper function, but i will have to mark the prekeys as published after the identity service call in the next diff.\n\nReviewers: bartek, marcin, kamil, ashoat\n\nReviewed By: ashoat\n\nSubscribers: tomek\n\nDifferential Revision: https://phab.comm.dev/D12161","shortMessageHtmlLink":"[keyserver] call uploadSecondaryDeviceKeysAndLogIn"}},{"before":"72f120f040455acd82cb8559e31c66d01eb9b17a","after":"51249ca1a59b78f4336f54a17ffc2562e3200e2b","ref":"refs/heads/master","pushedAt":"2024-05-24T16:17:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"InkaAlicja","name":"Inka Sokołowska","path":"/InkaAlicja","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/72438355?s=80&v=4"},"commit":{"message":"[native] Convert MediaGalleryMedia to Reanimated 2 syntax\n\nSummary: issue: [[https://linear.app/comm/issue/ENG-8153/convert-mediagallerymedia-to-reanimated-2-syntax | ENG-8153]]\n\nTest Plan:\nTested that the gallery still works - it's possible to send media, queue media, dequeue media\nTested that the \"zoom\" animation works, button opacity changes as expected, buttons resize as expected\n\nReviewers: ashoat, ginsu\n\nReviewed By: ashoat\n\nSubscribers: tomek\n\nDifferential Revision: https://phab.comm.dev/D12160","shortMessageHtmlLink":"[native] Convert MediaGalleryMedia to Reanimated 2 syntax"}},{"before":"04ed224b6e07d8de2c011fef16713f2803cd5cd7","after":"72f120f040455acd82cb8559e31c66d01eb9b17a","ref":"refs/heads/master","pushedAt":"2024-05-24T15:39:34.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"xsanm","name":"Kamil Kurowski","path":"/xsanm","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/30171233?s=80&v=4"},"commit":{"message":"[lib] creating `olm` session with device\n\nSummary:\nMethod to create a session with one peer.\n\nIt looks similar but differs from `createOlmSessionsWithOwnDevices` and trying to duplicate could make the code more complex - additionally `createOlmSessionsWithOwnDevices` is only for testing and will be removed\n\nDepends on D12130\n\nTest Plan: Call method and test if session creation works, in case of failure error is thrown\n\nReviewers: tomek, bartek\n\nReviewed By: bartek\n\nSubscribers: ashoat\n\nDifferential Revision: https://phab.comm.dev/D12131","shortMessageHtmlLink":"[lib] creating olm session with device"}},{"before":"cfbe3c01c838c58a40fdf85171cb1f52ae3cfb13","after":"04ed224b6e07d8de2c011fef16713f2803cd5cd7","ref":"refs/heads/master","pushedAt":"2024-05-24T14:40:45.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"Ashoat","name":"Ashoat Tevosyan","path":"/Ashoat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863579?s=80&v=4"},"commit":{"message":"Revert \"[native] Temporary changes for staff release\"\n\nThis reverts commit bc0e6098f69217359664e1d128a430a5e14c33f3.","shortMessageHtmlLink":"Revert \"[native] Temporary changes for staff release\""}},{"before":"4e0a2f9ed8ab88adced8df0ce40d202dff2ea488","after":"cfbe3c01c838c58a40fdf85171cb1f52ae3cfb13","ref":"refs/heads/master","pushedAt":"2024-05-24T14:37:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Ashoat","name":"Ashoat Tevosyan","path":"/Ashoat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863579?s=80&v=4"},"commit":{"message":"[web][keyserver] codeVersion -> 85","shortMessageHtmlLink":"[web][keyserver] codeVersion -> 85"}},{"before":"26a5957ea5d15568e29bbcafbcb271e053abc159","after":"4e0a2f9ed8ab88adced8df0ce40d202dff2ea488","ref":"refs/heads/master","pushedAt":"2024-05-24T14:16:12.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"marcinwasowicz","name":null,"path":"/marcinwasowicz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48218867?s=80&v=4"},"commit":{"message":"Enable backup restoration for SIWE users via testing buttons\n\nSummary: This differential introduces new screen that will carry downloading backup message, signing it and using for restoration. AS of this differential backup support for SIWE will just match what we currently have for password users - backup via testing buttons. However most of the code in this stack will be reused to implement full backup-restore feature.\n\nTest Plan:\n1. Sign in as SIWE\n2. Make drafts. Upload compaction.\n3. Log out.\n4. Sign in back.\n5. Restore from backup.\n6. Ensure drafts are back.\n\nReviewers: kamil, tomek, ginsu, inka, ashoat\n\nReviewed By: kamil, ashoat\n\nSubscribers: ashoat\n\nDifferential Revision: https://phab.comm.dev/D12036","shortMessageHtmlLink":"Enable backup restoration for SIWE users via testing buttons"}},{"before":"92fcaebcb29c719887fd1cf84b9d1d7953568677","after":"26a5957ea5d15568e29bbcafbcb271e053abc159","ref":"refs/heads/master","pushedAt":"2024-05-24T10:15:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsanm","name":"Kamil Kurowski","path":"/xsanm","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/30171233?s=80&v=4"},"commit":{"message":"[lib] implement removing OutboundP2P messages after confirmation\n\nSummary:\nAfter other peer process (backup message) we can remove it.\nWe track the order so when removing we can remove all older messages.\n\nTunnelbroker adds its own timestamp to message [see here](https://github.com/CommE2E/comm/blob/3e292a36a6967035143b9778768c2306a29a080a/services/tunnelbroker/src/constants.rs#L25) so we have to extract it. This is simple but moving this to function with descriptive name to improve readability.\n\nDepends on D12077, D12080\n\nTest Plan: Send confirmation and making sure that the message is removed\n\nReviewers: tomek, bartek\n\nReviewed By: bartek\n\nSubscribers: ashoat\n\nDifferential Revision: https://phab.comm.dev/D12111","shortMessageHtmlLink":"[lib] implement removing OutboundP2P messages after confirmation"}},{"before":"7064b47c433f40cfd6ae934bd4c40ede7eebb036","after":"92fcaebcb29c719887fd1cf84b9d1d7953568677","ref":"refs/heads/master","pushedAt":"2024-05-24T09:45:02.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"InkaAlicja","name":"Inka Sokołowska","path":"/InkaAlicja","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/72438355?s=80&v=4"},"commit":{"message":"[lib] Handle other tcomb types in extendResponderValidatorBase\n\nSummary:\nissue :[[https://linear.app/comm/issue/ENG-8179/review-types-in-extendrespondervalidatorbase | ENG-8179]]\n`maybe`, `union` and `interface` were handled in the previous diff\n`dict`, `list`, `enums`, `irreducible` cannot be the top-level type returned by the endpoint and at the same time have `AdditionalResponseFields` added\nSo `subtype` is the only type we have to handle. `subtype` is a `TRefinement`. It is a type + function that specifies some additional properties, narrowing the possible values. For example `t.Number` and `(item) => item % 2 === 1`, which defines odd numbers.\n\nTest Plan:\nChanged `inviteLinkVerificationResponseValidator` to be\n```\nexport const inviteLinkVerificationResponseValidator: TUnion =\n t.union([\n tShape({\n status: t.enums.of(['valid', 'already_joined']),\n community: tShape({\n name: t.String,\n id: tID,\n }),\n }),\n t.refinement(\n tShape({\n status: t.enums.of(['invalid', 'expired']),\n }),\n input => true,\n ),\n ]);\n```\nand checked that invite links work\n\nReviewers: tomek, ashoat, kamil\n\nReviewed By: ashoat\n\nDifferential Revision: https://phab.comm.dev/D12205","shortMessageHtmlLink":"[lib] Handle other tcomb types in extendResponderValidatorBase"}},{"before":"d07ef861c6db7363b6e2a99d9405a22a62b7c393","after":"7064b47c433f40cfd6ae934bd4c40ede7eebb036","ref":"refs/heads/master","pushedAt":"2024-05-24T06:35:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"barthap","name":"Bartłomiej Klocek","path":"/barthap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/278340?s=80&v=4"},"commit":{"message":"[terraform] Bump staging identity to 0.19\n\nSummary:\nUpdated Staging image. Changes since 0.18:\n- Added support for initial device list\n- Extended AuthResponse to return username\n\nTest Plan: terraform plan\n\nReviewers: will, varun\n\nReviewed By: varun\n\nSubscribers: ashoat, tomek\n\nDifferential Revision: https://phab.comm.dev/D12206","shortMessageHtmlLink":"[terraform] Bump staging identity to 0.19"}},{"before":"d3b9774af2c01d6598ce38e3915afc22e6354d72","after":"d07ef861c6db7363b6e2a99d9405a22a62b7c393","ref":"refs/heads/master","pushedAt":"2024-05-24T06:27:50.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"barthap","name":"Bartłomiej Klocek","path":"/barthap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/278340?s=80&v=4"},"commit":{"message":"[web] Retrieve username on secondary device login\n\nSummary:\nAddresses [[ https://linear.app/comm/issue/ENG-7215/retrieve-username-when-doing-qr-code-auth | ENG-7215 ]] on web.\nNow we have `username` in RCPs response, so we can simply pass it to `identityAuthResult`, replacing the empty string placeholder.\n\nDepends on D12134.\n\nTest Plan: Console.log the `identityAuthResult` in the `uploadKeysForRegisteredDeviceAndLogIn()` and confirmed the username was there during QR login.\n\nReviewers: inka, varun, will\n\nReviewed By: varun\n\nSubscribers: ashoat, tomek\n\nDifferential Revision: https://phab.comm.dev/D12135","shortMessageHtmlLink":"[web] Retrieve username on secondary device login"}},{"before":"5ef4977af924a23315fd1f17a13d9e3459d12d61","after":"d3b9774af2c01d6598ce38e3915afc22e6354d72","ref":"refs/heads/master","pushedAt":"2024-05-24T06:08:13.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"barthap","name":"Bartłomiej Klocek","path":"/barthap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/278340?s=80&v=4"},"commit":{"message":"[commtest] Add test for initial device list\n\nSummary:\nAdded a commtest test for initial device list.\n\nDepends on D12091\n\nTest Plan: Commtest\n\nReviewers: kamil, will, varun\n\nReviewed By: kamil\n\nSubscribers: ashoat, tomek\n\nDifferential Revision: https://phab.comm.dev/D12092","shortMessageHtmlLink":"[commtest] Add test for initial device list"}},{"before":"c5c181b5b06f60c71f102c092bbc1fe99d04a897","after":"5ef4977af924a23315fd1f17a13d9e3459d12d61","ref":"refs/heads/master","pushedAt":"2024-05-23T16:01:54.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"xsanm","name":"Kamil Kurowski","path":"/xsanm","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/30171233?s=80&v=4"},"commit":{"message":"[lib] implement Outbound P2P Messages API in `SQLiteAPI`\n\nSummary:\nUsing OutboundP2PMessage's from `/lib`.\n\nDepends on D12079\n\nTest Plan:\nAdded some messages from C++ code:\n```\n OutboundP2PMessage msg1 = {\n \"message_001\",\n \"device_01\",\n \"user_01\",\n \"1609459200\",\n \"Hello, world!\",\n \"SGVsbG8sIHdvcmxkIQ==\",\n \"encrypted\"\n };\n OutboundP2PMessage msg2 = {\n \"message_002\",\n \"device_01\",\n \"user_02\",\n \"1609459201\",\n \"Goodbye, world!\",\n \"R29vZGJ5ZSwgd29ybGQh\",\n \"encrypted\"};\n OutboundP2PMessage msg3 = {\n \"message_003\",\n \"device_03\",\n \"user_03\",\n \"1609459202\",\n \"Hello again, world!\",\n \"SGVsbG8gYWdhaW4sIHdvcmxkIQ==\",\n \"encrypted\"};\n\n const std::vector messages = {msg1, msg2, msg3};\n\n static std::string addMessage =\n \"REPLACE INTO outbound_p2p_messages (\"\n \" message_id, device_id, user_id, timestamp, plaintext, ciphertext, \"\n \"status\"\n \") \"\n \"VALUES (?, ?, ?, ?, ?, ?, ?);\";\n\n for (const OutboundP2PMessage &clientMessage : messages) {\n SQLiteOutboundP2PMessage message =\n clientMessage.toSQLiteOutboundP2PMessage();\n replaceEntity(\n SQLiteQueryExecutor::getConnection(), addMessage, message);\n }\n```\n\nExecute this code from `/lib`:\n```\n const m1 = await sqliteAPI.getAllOutboundP2PMessage();\n console.log(m1);\n const msg: OutboundP2PMessage = m1[1];\n await sqliteAPI.markOutboundP2PMessageAsSent(msg.messageID, msg.deviceID);\n const m2 = await sqliteAPI.getAllOutboundP2PMessage();\n console.log(m2);\n await sqliteAPI.removeOutboundP2PMessagesOlderThan(\n msg.messageID,\n msg.deviceID,\n );\n const m3 = await sqliteAPI.getAllOutboundP2PMessage();\n console.log(m3);\n```\nAnd verify results on both web and native\n\nReviewers: tomek, bartek, marcin\n\nReviewed By: marcin\n\nSubscribers: ashoat\n\nDifferential Revision: https://phab.comm.dev/D12080","shortMessageHtmlLink":"[lib] implement Outbound P2P Messages API in SQLiteAPI"}},{"before":"cdb9ee89587b512e68b419de38c0265f371feec2","after":"c5c181b5b06f60c71f102c092bbc1fe99d04a897","ref":"refs/heads/master","pushedAt":"2024-05-23T14:51:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"xsanm","name":"Kamil Kurowski","path":"/xsanm","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/30171233?s=80&v=4"},"commit":{"message":"[lib] add `deviceID` prop to Tunnelbroker's `MessageProcessed`\n\nSummary:\nThis is needed to remove processed message form `OutboundP2PMessage`'s table.\n\nDepends on D12076\n\nTest Plan: Test sending confirmation, use app for a while to make sure this not interfere with processing store ops (login/logout).\n\nReviewers: tomek, bartek\n\nReviewed By: bartek\n\nSubscribers: ashoat\n\nDifferential Revision: https://phab.comm.dev/D12077","shortMessageHtmlLink":"[lib] add deviceID prop to Tunnelbroker's MessageProcessed"}},{"before":"2ef4b1d61741986f8256c14637ec0860f663f9e2","after":"aad2a04163945d0869610cc781e828c879953eef","ref":"refs/heads/barthap/cargo-workspace","pushedAt":"2024-05-22T15:13:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"barthap","name":"Bartłomiej Klocek","path":"/barthap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/278340?s=80&v=4"},"commit":{"message":"[rust] Fix Clippy warnings\n\nSummary:\nFixed all remaining Clippy warnings for the workspace\n\nDepends on D12178\n\nTest Plan: No more Clippy warnings when running `cargo check` or `cargo clippy`\n\nReviewers: varun\n\nSubscribers: ashoat, tomek\n\nDifferential Revision: https://phab.comm.dev/D12179","shortMessageHtmlLink":"[rust] Fix Clippy warnings"}},{"before":"d941f8c8e21ac6ee37a9b8a480b150efa769fc65","after":"8a2bb10af83744ac019d8846619329fea409f226","ref":"refs/heads/ginsu-will-swm-hackathon","pushedAt":"2024-05-22T13:44:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ginsueddy","name":"Ginsu Eddy","path":"/ginsueddy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25470346?s=80&v=4"},"commit":{"message":"add message store local ops types to processMessageStoreOperations","shortMessageHtmlLink":"add message store local ops types to processMessageStoreOperations"}},{"before":"ba3b5838dff12f3ab1596e14dfb92a1969270e04","after":"d941f8c8e21ac6ee37a9b8a480b150efa769fc65","ref":"refs/heads/ginsu-will-swm-hackathon","pushedAt":"2024-05-22T13:25:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ginsueddy","name":"Ginsu Eddy","path":"/ginsueddy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25470346?s=80&v=4"},"commit":{"message":"fix web migration for local message info","shortMessageHtmlLink":"fix web migration for local message info"}},{"before":"2842c0cb14d674a6cd0c00aab32c8dffb96ff56e","after":"ba3b5838dff12f3ab1596e14dfb92a1969270e04","ref":"refs/heads/ginsu-will-swm-hackathon","pushedAt":"2024-05-22T12:42:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ginsueddy","name":"Ginsu Eddy","path":"/ginsueddy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25470346?s=80&v=4"},"commit":{"message":"wip web migration for local message info","shortMessageHtmlLink":"wip web migration for local message info"}},{"before":"7a6eac2f3b1df72d44967e8e720250205cc32a55","after":"2842c0cb14d674a6cd0c00aab32c8dffb96ff56e","ref":"refs/heads/ginsu-will-swm-hackathon","pushedAt":"2024-05-22T10:57:21.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"wyilio","name":"William Wang","path":"/wyilio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56137521?s=80&v=4"},"commit":{"message":"[native] Fix MediaGalleryKeyboard on Android\n\nSummary: This addresses [ENG-8159](https://linear.app/comm/issue/ENG-8159/android-device-cant-show-media-in-mediagallerykeyboard). See the inline comment for more details.\n\nTest Plan: Confirm that we can see media in the `MediaGalleryKeyboard` on my physical Android device\n\nReviewers: ginsu, bartek\n\nReviewed By: bartek\n\nSubscribers: tomek\n\nDifferential Revision: https://phab.comm.dev/D12167","shortMessageHtmlLink":"[native] Fix MediaGalleryKeyboard on Android"}},{"before":"001c4d8f0e1233b4ffd68f0eed0451bc9d84605c","after":"cdb9ee89587b512e68b419de38c0265f371feec2","ref":"refs/heads/master","pushedAt":"2024-05-22T10:24:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"barthap","name":"Bartłomiej Klocek","path":"/barthap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/278340?s=80&v=4"},"commit":{"message":"[protos][identity] Add username to AuthResponse\n\nSummary:\nAddress [[ https://linear.app/comm/issue/ENG-8137/extend-authresponse-to-include-useridentity | ENG-8137 ]].\n\nIt turns out to be simple to add username to the AuthResponse on Identity side.\nOn proto/RPC side, this is also backwards compatible from both sides. If the response doesn't contain username field (client has newer version than deployed Identity Service), it will be defaulted to empty string.\n\nTest Plan: Tested together with D12134 - verified `AuthResponse` to contain a username in all registration and login RPCs\n\nReviewers: ashoat, varun, will\n\nReviewed By: varun\n\nSubscribers: tomek\n\nDifferential Revision: https://phab.comm.dev/D12127","shortMessageHtmlLink":"[protos][identity] Add username to AuthResponse"}},{"before":"edfbc89a9744ec90b7fce0a51e1d68f1a4d17365","after":"7a6eac2f3b1df72d44967e8e720250205cc32a55","ref":"refs/heads/ginsu-will-swm-hackathon","pushedAt":"2024-05-22T09:57:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ginsueddy","name":"Ginsu Eddy","path":"/ginsueddy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25470346?s=80&v=4"},"commit":{"message":"native migration for local message info","shortMessageHtmlLink":"native migration for local message info"}},{"before":"16bd7386a16c13d4548048185f85c90fd657f1bf","after":"001c4d8f0e1233b4ffd68f0eed0451bc9d84605c","ref":"refs/heads/master","pushedAt":"2024-05-22T09:09:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Ashoat","name":"Ashoat Tevosyan","path":"/Ashoat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863579?s=80&v=4"},"commit":{"message":"[native] Fix MediaGalleryKeyboard on Android\n\nSummary: This addresses [ENG-8159](https://linear.app/comm/issue/ENG-8159/android-device-cant-show-media-in-mediagallerykeyboard). See the inline comment for more details.\n\nTest Plan: Confirm that we can see media in the `MediaGalleryKeyboard` on my physical Android device\n\nReviewers: ginsu, bartek\n\nReviewed By: bartek\n\nSubscribers: tomek\n\nDifferential Revision: https://phab.comm.dev/D12167","shortMessageHtmlLink":"[native] Fix MediaGalleryKeyboard on Android"}},{"before":"3f47c579be8c7242842c3aed8511c580a45e07d6","after":"edfbc89a9744ec90b7fce0a51e1d68f1a4d17365","ref":"refs/heads/ginsu-will-swm-hackathon","pushedAt":"2024-05-21T21:14:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ginsueddy","name":"Ginsu Eddy","path":"/ginsueddy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25470346?s=80&v=4"},"commit":{"message":"fix local in messageStorePruneActionType","shortMessageHtmlLink":"fix local in messageStorePruneActionType"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVj23vwA","startCursor":null,"endCursor":null}},"title":"Activity · CommE2E/comm"}