Page MenuHomePhorge
Feed Search

Oct 3 2023

tomek added inline comments to D9268: [lib] Move current user updates logic into a spec.
Oct 3 2023, 12:25 PM
tomek added a comment to D9257: [lib] Move entries updates logic into a spec.
In D9257#272801, @kamil wrote:

Not a fan of keeping the solution with mutating input, but accepting this since fixing this is not a part of this work. Maybe we can at least create a task to improve this?

Oct 3 2023, 12:20 PM
tomek added inline comments to D9245: [lib] Create thread store ops from updates in a spec.
Oct 3 2023, 11:46 AM
tomek updated the diff for D9245: [lib] Create thread store ops from updates in a spec.

Add early return and use more functional approach

Oct 3 2023, 11:46 AM
tomek added a comment to D9320: [lib] don't dispatch policy acknowledgment action when user is not logged in.

Can you expand the test plan a little bit by e.g. checking that a modal doesn't show for logged-out users?

Oct 3 2023, 10:54 AM
tomek accepted D9320: [lib] don't dispatch policy acknowledgment action when user is not logged in.
Oct 3 2023, 10:53 AM
tomek accepted D9329: [lib] Remove convertClientToServerInfos from spec.
Oct 3 2023, 10:48 AM
tomek accepted D9328: [lib] Use new hashing functions in state check.
Oct 3 2023, 10:48 AM
tomek accepted D9327: [lib] Add hash functions to state sync spec.
Oct 3 2023, 10:25 AM
tomek requested changes to D9267: [keyserver] Add new hashing to keyserver state check.
Oct 3 2023, 10:14 AM
tomek requested changes to D9265: [lib/web/native] Add IntegrityStore.

Looks great, but there are a couple of issues.

Oct 3 2023, 9:52 AM
tomek requested changes to D9095: [native] Block editing messages on search and pinned messages screens, and of the first message in a thread.
Oct 3 2023, 9:20 AM

Sep 29 2023

tomek added inline comments to D9316: [Tunnelbroker] always persist WebSocket messages in database.
Sep 29 2023, 8:55 AM

Sep 28 2023

tomek requested review of D9319: [lib] Move message update reducer into specs.
Sep 28 2023, 3:43 PM
tomek requested review of D9318: [lib] Move local id update reducer into specs.
Sep 28 2023, 3:28 PM
tomek requested review of D9315: [lib] Move calendar filters update reducer into specs.
Sep 28 2023, 2:56 PM
tomek accepted D9306: [lib] Add top-level group chats to GENESIS chat mention candidates object.
Sep 28 2023, 12:19 PM
tomek accepted D8900: [lib] Add chat mention SearchIndex selector.
Sep 28 2023, 12:11 PM

Sep 26 2023

tomek accepted D9295: [keyserver] validate policies only for logged in users.

Is it valid to require policy acceptance only when a user is logged in? When a user isn't logged in, we don't allow them to do much, but I'm wondering, if from the legal perspective, we should require them to agree to something.

Sep 26 2023, 2:53 PM
tomek accepted D8910: [native] Show chats in mention typeahead tooltip.
Sep 26 2023, 2:50 PM
tomek requested review of D9296: [lib] Move user infos update reducer into specs.
Sep 26 2023, 11:09 AM

Sep 22 2023

tomek requested review of D9268: [lib] Move current user updates logic into a spec.
Sep 22 2023, 1:56 PM
tomek accepted D9253: [lib/keyserver] Improve state sync types.
Sep 22 2023, 10:24 AM

Sep 21 2023

tomek requested review of D9257: [lib] Move entries updates logic into a spec.
Sep 21 2023, 3:40 PM

Sep 20 2023

tomek accepted D9095: [native] Block editing messages on search and pinned messages screens, and of the first message in a thread.
Sep 20 2023, 12:42 PM
tomek requested review of D9245: [lib] Create thread store ops from updates in a spec.
Sep 20 2023, 12:39 PM
tomek requested review of D9244: [lib] Create empty specs for update types.
Sep 20 2023, 12:38 PM
tomek accepted D8900: [lib] Add chat mention SearchIndex selector.

Is the performance concern pointed out by @tomek going to lead to additional React render cycles? If yes, we should prioritize addressing it. cc @atul

Sep 20 2023, 10:34 AM
tomek accepted D8897: [native] Refactor TypeaheadTooltip component.
Sep 20 2023, 10:00 AM

Sep 19 2023

tomek accepted D8896: [web][native] Rename usernamePrefix to textPrefix in TypeaheadMatchedStrings type.
Sep 19 2023, 4:04 PM
tomek accepted D8852: [web] Introduce markdown component for chat mentions.
Sep 19 2023, 4:02 PM
tomek accepted D9144: Enable encrypted notification coalescing in NSE on iOS.
Sep 19 2023, 3:42 PM
tomek accepted D8730: Implement displaying error message notification for cases that might cause empty notification on Android.
Sep 19 2023, 1:58 PM
tomek accepted D9211: [native] Memoize `flatList` in `ChatThreadList`.
In D9211#271306, @atul wrote:
In D9211#271261, @tomek wrote:

Have you tested if memoizing the list is beneficial? FlatList is already memoized internally (PureComponent) so wrapping it with memo shouldn't improve anything, but maybe I'm missing something.

Yeah, previously flatList would re-render when fixedSearch changed because it was in the chatThreadList dep list. Separating flatList out into its own useMemo seems to prevent that.

Sep 19 2023, 11:56 AM
tomek requested changes to D8730: Implement displaying error message notification for cases that might cause empty notification on Android.
Sep 19 2023, 11:51 AM
tomek accepted D9222: [lib] Don't drop messages in MessageStore that don't have a corresponding ThreadInfo.
Sep 19 2023, 10:19 AM
tomek added inline comments to D9225: [lib] Create function for extracing keyserver id from object id.
Sep 19 2023, 9:51 AM
tomek added inline comments to D9206: [native] Move rest of Search views to `ChatThreadListSearch`.
Sep 19 2023, 8:05 AM

Sep 18 2023

tomek accepted D9215: [native] Remove `boundChatListData` from `useThreadListSearch` dep list.
Sep 18 2023, 1:17 PM
tomek requested changes to D9211: [native] Memoize `flatList` in `ChatThreadList`.

Have you tested if memoizing the list is beneficial? FlatList is already memoized internally (PureComponent) so wrapping it with memo shouldn't improve anything, but maybe I'm missing something.

Sep 18 2023, 1:08 PM
tomek accepted D9210: [native] Add some basic memoization to `ChatThreadListSearch`.
Sep 18 2023, 1:01 PM
tomek accepted D9209: [native] Forward `searchInputRef` from `ChatThreadList` to `ChatThreadListSearch`.
Sep 18 2023, 11:13 AM
tomek accepted D9208: [native] Remove `renderSearch` in `ChatThreadList` and inline `ChatThreadListSearch` directly.
Sep 18 2023, 10:58 AM
tomek accepted D9207: [native] Move Reanimated code from `ChatThreadList` to `ChatThreadListSearch`.
Sep 18 2023, 10:51 AM
tomek accepted D9206: [native] Move rest of Search views to `ChatThreadListSearch`.
Sep 18 2023, 10:46 AM
tomek accepted D9199: Encrypt all notifications on the keyserver for Android devices.
Sep 18 2023, 10:41 AM

Sep 14 2023

tomek accepted D9201: [keyserver] Don't send empty ID cleanup query in notifs code.
Sep 14 2023, 1:19 PM
tomek accepted D9198: Enable encrypted notifications coalescing on in Androoid native code..
Sep 14 2023, 9:53 AM
tomek accepted D9185: [native] Extract default Redux state to separate file.
Sep 14 2023, 8:48 AM
tomek accepted D9186: [native] Avoid crashing Redux migration if inviteLinksStore isn't initialized.
Sep 14 2023, 8:47 AM

Sep 13 2023

tomek added inline comments to D8910: [native] Show chats in mention typeahead tooltip.
Sep 13 2023, 1:14 PM
tomek accepted D9175: [keyserver] Extract sendPushNotif.
Sep 13 2023, 1:02 PM
tomek accepted D9149: Encrypt all notifications on the keyserver for iOS devices.
Sep 13 2023, 10:29 AM
tomek accepted D9144: Enable encrypted notification coalescing in NSE on iOS.
Sep 13 2023, 10:26 AM
tomek added a comment to D9120: [native] update UserProfileBottomSheet to get a userInfo from a userID.
In D9120#269321, @inka wrote:

Is it possible that a user with this id will not be in our store?

Sep 13 2023, 10:02 AM
tomek added inline comments to D9141: [web] Use new intial redux state.
Sep 13 2023, 9:44 AM
tomek accepted D8847: [native] Change ChatContextProvider position.
Sep 13 2023, 9:39 AM
tomek accepted D8845: [native] Introduce markdown component for chat mentions.
Sep 13 2023, 9:37 AM
tomek added inline comments to D9115: [lib] move a shared type to lib.
Sep 13 2023, 9:32 AM

Sep 12 2023

tomek added inline comments to D8909: [native] Replace chat name with raw chat mention.
Sep 12 2023, 3:27 PM
tomek added inline comments to D8945: [web] Show chats in mention typeahead tooltip.
Sep 12 2023, 3:22 PM
tomek requested changes to D8900: [lib] Add chat mention SearchIndex selector.
Sep 12 2023, 3:05 PM
tomek added inline comments to D8899: [lib] Introduce SentencePrefixSearchIndex.
Sep 12 2023, 2:45 PM
tomek requested changes to D8897: [native] Refactor TypeaheadTooltip component.
Sep 12 2023, 2:27 PM
tomek requested changes to D8896: [web][native] Rename usernamePrefix to textPrefix in TypeaheadMatchedStrings type.
Sep 12 2023, 2:01 PM
tomek added inline comments to D8875: [web] Make chat mentions clickable.
Sep 12 2023, 9:20 AM
tomek requested changes to D8852: [web] Introduce markdown component for chat mentions.
Sep 12 2023, 9:18 AM
tomek added a comment to D8851: [web] Use chat mention candidates in markdown rules.

We probably should memoize the rules

Sep 12 2023, 9:11 AM
tomek accepted D8874: [native] Memorize ChatContextProvider.
Sep 12 2023, 8:56 AM
tomek requested changes to D8847: [native] Change ChatContextProvider position.

This looks strange. We were rendering ChatContextProvider quite high in the tree, a couple of levels above navigation. Now, in order to make it accessible in other places, we're placing it within navigation. So it seems we're reducing the number of places where it is accessible. Am I missing something?

Sep 12 2023, 8:56 AM
tomek added a comment to D8846: [native] Use chat mention candidates in markdown rules.

It might make sense to introduce a new hook that:

  1. Get the candidates using useThreadChatMentionCandidates
  2. Computes the rules using getDefaultTextMessageRules
  3. Memoizes them using memo
Sep 12 2023, 8:50 AM
tomek requested changes to D8845: [native] Introduce markdown component for chat mentions.
Sep 12 2023, 8:42 AM

Sep 11 2023

tomek added a comment to D9091: Schedule blob deletion on iOS.

One last question: Is it guaranteed that we call the notif's completionHandler only after the deletion tasks are finished?

It is not guaranteed and it is impossible to guarentee that since contentHandler is called quickly in the NSE while blob deletion takes place on the background thread in the main app so the system decides when it is best to call it. Additionally main app might not be running when NSE processes notification. However why would such guarantee be necessary in the first place? Blob download and persistence is synchronous and writing blob metadata to the storage which main app reads during deletion takes place afterwards. So the deletion process won't start until notification payload is persisted on the device so when user opens the app the message will be loaded and immediately visible in the app regardless on when delete requests are issued.

Sep 11 2023, 1:05 PM
tomek added inline comments to D8927: [keyserver] Introduce keyserver state sync spec.
Sep 11 2023, 12:47 PM
tomek accepted D9111: [keyserver] Remove old current user info.
Sep 11 2023, 12:32 PM
tomek accepted D9118: [native] Convert `ConnectedSwipeable` to functional component.
Sep 11 2023, 11:19 AM
tomek accepted D9091: Schedule blob deletion on iOS.

One last question: Is it guaranteed that we call the notif's completionHandler only after the deletion tasks are finished?

Sep 11 2023, 11:16 AM
tomek added inline comments to D9102: [native] Memoize construction of `sidebars` in `ChatThreadListItem`.
Sep 11 2023, 8:15 AM

Sep 8 2023

tomek accepted D9105: [web] Hide databaseModule behind a function.
Sep 8 2023, 12:34 PM
tomek accepted D9103: [native] Memoize `swipeableThread` in `ChatThreadListItem`.

While introducing a lot of memoization, we should also check how it affects memory usage

Sep 8 2023, 9:34 AM
tomek accepted D9102: [native] Memoize construction of `sidebars` in `ChatThreadListItem`.
Sep 8 2023, 9:26 AM
tomek accepted D9100: [native] Memoize `SwipeableThread`.
Sep 8 2023, 9:22 AM

Sep 7 2023

tomek closed D9086: [keyserver] Read calendar query directly from viewer..
Sep 7 2023, 2:28 PM
tomek closed D9081: [keyserver] Handle new session state sync.
Sep 7 2023, 2:28 PM
tomek committed rCOMMa544318ebcdb: [keyserver] Read calendar query directly from viewer..
Sep 7 2023, 2:28 PM
tomek committed rCOMM3e12758d7209: [keyserver] Handle new session state sync.
Sep 7 2023, 2:28 PM
tomek added inline comments to D9095: [native] Block editing messages on search and pinned messages screens, and of the first message in a thread.
Sep 7 2023, 9:34 AM
tomek requested changes to D9091: Schedule blob deletion on iOS.

Overall, it makes sense, but I have a couple of questions.

Sep 7 2023, 9:22 AM

Sep 6 2023

tomek added a comment to D9092: [lib] Create selectors for fetching data needed to call servers.

Not sure how these will be used, but I'm wondering what is the benefit of having a selector returning

type ServersCallState = {
  +cookies: { +[keyserverID: string]: ?string },
  +urlPrefixes: { +[keyserverID: string]: string },
  +sessionIDs: { +[keyserverID: string]: ?string },
  +connectionStatuses: { +[keyserverID: string]: ConnectionStatus },
  +lastCommunicatedPlatformDetails: {
    +[keyserverID: string]: ?PlatformDetails,
  },
  +currentUserInfo: ?CurrentUserInfo,
};

over a simpler selector that could return

{ +[keyserverID: string]: KeyserverInfo }

where

type KeyserverInfo = {
  +cookie?: ?string,
  +sessionID?: ?string,
  +updatesCurrentAsOf: number, 
  +urlPrefix: string,
  +connection: ConnectionInfo,
};

From the caller's point of view, the difference doesn't seem to be significant, e.g.

result.cookies[serverID]

vs

result[serverID].cookie

But I'm probably missing something.

Sep 6 2023, 1:22 PM
tomek accepted D9069: Schedule blob deletion on Android when large notifications arrives.

Looks good!

Sep 6 2023, 9:44 AM

Sep 5 2023

tomek requested review of D9086: [keyserver] Read calendar query directly from viewer..
Sep 5 2023, 3:49 PM
tomek closed D9049: [lib] Refactor the remaining part of the hash logic using specs.
Sep 5 2023, 2:03 PM
tomek committed rCOMM0a98395dfdab: [lib] Refactor the remaining part of the hash logic using specs.
Sep 5 2023, 2:03 PM
tomek closed D9048: [lib] Use specs to determine hash value for inner infos.
Sep 5 2023, 2:03 PM
tomek committed rCOMM212bd4eb85b9: [lib] Use specs to determine hash value for inner infos.
Sep 5 2023, 2:03 PM
tomek closed D9030: [lib] Convert infos to server as a part of a spec.
Sep 5 2023, 2:03 PM
tomek closed D9031: [lib] Use specs to determine hash value for top-level infos.
Sep 5 2023, 2:03 PM
tomek committed rCOMM32c3af6167c3: [lib] Convert infos to server as a part of a spec.
Sep 5 2023, 2:03 PM
tomek committed rCOMM5daaf661b987: [lib] Use specs to determine hash value for top-level infos.
Sep 5 2023, 2:03 PM
tomek closed D9025: [lib] Make selector types more consistent.
Sep 5 2023, 2:03 PM