Page MenuHomePhabricator
Feed Advanced Search

Mar 28 2024

tomek closed D11284: [native][web] Queue new ops.
Mar 28 2024, 8:11 AM
tomek committed rCOMM6bbac957a45f: [native][web] Queue new ops (authored by tomek).
[native][web] Queue new ops
Mar 28 2024, 8:11 AM
tomek committed rCOMMb80ef60087c4: [lib] Add an optional ID field to all the actions (authored by tomek).
[lib] Add an optional ID field to all the actions
Mar 28 2024, 8:11 AM
tomek closed D11280: [lib] Add a reducer that handles successful ops processing.
Mar 28 2024, 8:11 AM
tomek closed D11279: [lib] Add an action representing a successful processing.
Mar 28 2024, 8:11 AM
tomek committed rCOMMbac8331a77bc: [lib] Add a reducer that handles successful ops processing (authored by tomek).
[lib] Add a reducer that handles successful ops processing
Mar 28 2024, 8:11 AM
tomek committed rCOMM4345df3c396a: [lib] Add an action representing a successful processing (authored by tomek).
[lib] Add an action representing a successful processing
Mar 28 2024, 8:11 AM
tomek closed D11259: [lib] Create a redux store where ops will be stored.
Mar 28 2024, 8:11 AM
tomek committed rCOMMa6d8818e3171: [lib] Create a redux store where ops will be stored (authored by tomek).
[lib] Create a redux store where ops will be stored
Mar 28 2024, 8:11 AM
tomek updated the diff for D11366: [lib] Introduce a handler that processes the ops.

Rebase

Mar 28 2024, 7:44 AM
tomek updated the diff for D11281: [lib] Add an optional ID field to all the actions.

Rebase

Mar 28 2024, 7:42 AM
tomek updated the diff for D11259: [lib] Create a redux store where ops will be stored.

Rebase

Mar 28 2024, 7:41 AM
tomek updated the diff for D11369: [lib] Create a wrapper over dispatch.

Rename

Mar 28 2024, 7:04 AM
tomek updated the diff for D11368: [native][web] Remove processing the ops from reducers.

Rename and invert a condition

Mar 28 2024, 4:59 AM
tomek added inline comments to D11367: [lib] Handle processing of the ops.
Mar 28 2024, 4:05 AM
tomek accepted D11433: [lib][web][native] add unlinkFarcasterAccount to IdentityServiceClient interface and implementations.
Mar 28 2024, 3:54 AM

Mar 27 2024

tomek requested review of D11369: [lib] Create a wrapper over dispatch.
Mar 27 2024, 9:18 AM
tomek requested review of D11368: [native][web] Remove processing the ops from reducers.
Mar 27 2024, 9:15 AM
tomek requested review of D11367: [lib] Handle processing of the ops.
Mar 27 2024, 9:13 AM
tomek updated the summary of D11366: [lib] Introduce a handler that processes the ops.
Mar 27 2024, 8:56 AM
tomek updated the summary of D11366: [lib] Introduce a handler that processes the ops.
Mar 27 2024, 8:55 AM
tomek updated the diff for D11366: [lib] Introduce a handler that processes the ops.

Use the new approach where we have only one queue and process the ops one by one

Mar 27 2024, 8:54 AM
tomek updated the summary of D11284: [native][web] Queue new ops.
Mar 27 2024, 8:53 AM
tomek updated the diff for D11284: [native][web] Queue new ops.

Update queueing logic

Mar 27 2024, 8:51 AM
tomek added a comment to D11281: [lib] Add an optional ID field to all the actions.

After today's meeting, I wonder if we still need to add this ID to all actions

Mar 27 2024, 8:50 AM
tomek updated the diff for D11281: [lib] Add an optional ID field to all the actions.

Rebase

Mar 27 2024, 8:48 AM
tomek updated the summary of D11280: [lib] Add a reducer that handles successful ops processing.
Mar 27 2024, 8:47 AM
tomek updated the diff for D11280: [lib] Add a reducer that handles successful ops processing.

Simplify

Mar 27 2024, 8:45 AM
tomek updated the diff for D11279: [lib] Add an action representing a successful processing.

Simplify the action

Mar 27 2024, 7:28 AM
tomek updated the summary of D11259: [lib] Create a redux store where ops will be stored.
Mar 27 2024, 7:27 AM
tomek updated the diff for D11259: [lib] Create a redux store where ops will be stored.

Update the types

Mar 27 2024, 7:26 AM
tomek updated the diff for D11259: [lib] Create a redux store where ops will be stored.

Keep only one queue
https://linear.app/comm/issue/ENG-7040/implement-generating-and-awaiting-processed-ops#comment-bc0834f4

Mar 27 2024, 4:36 AM
tomek accepted D11390: [keyserver][lib] Introduce relationshipActions.FARCASTER_MUTUAL.
Mar 27 2024, 1:58 AM

Mar 25 2024

tomek closed D11354: [web] Introduce a migration that adds an actualizedCalendarQuery.
Mar 25 2024, 7:13 AM
tomek committed rCOMM4454bfe362d2: [web] Introduce a migration that adds an actualizedCalendarQuery (authored by tomek).
[web] Introduce a migration that adds an actualizedCalendarQuery
Mar 25 2024, 7:13 AM
tomek accepted D11376: [keyserver] Debounce one-time key refresh request.

This looks reasonable, but I'm wondering if we shouldn't solve this on Identity service: it knows how many keys are there, and how many keys are needed to fulfill requests, and could ask a keyserver for the appropriate number. Also, it should know that a keyserver was asked for the keys recently and can decide either to not ask for more or to ask for e.g. only one more.

Mar 25 2024, 6:51 AM
tomek accepted D11375: [keyserver] Make keyserver handle one-time key refresh requests sequentially.
Mar 25 2024, 6:43 AM
tomek accepted D11374: [lib] Avoid clearing CSAT on identityRegisterActionTypes.success.
Mar 25 2024, 6:16 AM

Mar 22 2024

tomek accepted D8665: Implement native iOS code to fetch data from blob service and keyserver code to upload notification payload if it exceeds APNs limits.
Mar 22 2024, 10:09 AM
tomek requested changes to D9091: Schedule blob deletion on iOS.

Similar to Android - shouldn't we have a separate holder for each recipient?

Mar 22 2024, 9:42 AM
tomek requested changes to D9069: Schedule blob deletion on Android when large notifications arrives.

When creating a blob, we're setting one holder for the content. Then we send the same hash and holder to multiple recipients. After the processing, the recipient schedules blob deletion which means that other recipients may be unable to download the blob - as it is already deleted.

Mar 22 2024, 9:37 AM
tomek accepted D8566: Upload/download large notification payload from the keyserver/Android NSE if its size exceeds FCM limits.

All the comments are minor except the one about badgeOnly handling which seems confusing.

Mar 22 2024, 9:05 AM
tomek accepted D11349: [native] migrate integrityStore to SQLite.

At some point we should also blacklist integrityStore on native so that it isn't persisted using redux-persist

Mar 22 2024, 8:40 AM
tomek added inline comments to D11349: [native] migrate integrityStore to SQLite.
Mar 22 2024, 4:22 AM

Mar 21 2024

tomek requested review of D11366: [lib] Introduce a handler that processes the ops.
Mar 21 2024, 8:32 AM
tomek updated the diff for D11284: [native][web] Queue new ops.

Generate an ID if it isn't provided

Mar 21 2024, 8:10 AM
tomek updated the diff for D11280: [lib] Add a reducer that handles successful ops processing.

Simplify reducer logic

Mar 21 2024, 8:08 AM
tomek updated the diff for D11279: [lib] Add an action representing a successful processing.

Simplify the action

Mar 21 2024, 8:04 AM
tomek updated the diff for D11259: [lib] Create a redux store where ops will be stored.

We don't need a second ID - removing the ops ID

Mar 21 2024, 8:02 AM
tomek added inline comments to D11284: [native][web] Queue new ops.
Mar 21 2024, 5:10 AM
tomek updated the diff for D11284: [native][web] Queue new ops.

Rebase, rename

Mar 21 2024, 5:10 AM
tomek updated the diff for D11281: [lib] Add an optional ID field to all the actions.

Rebase, update Redux types

Mar 21 2024, 5:07 AM
tomek updated the diff for D11280: [lib] Add a reducer that handles successful ops processing.

Rename, rebase

Mar 21 2024, 5:05 AM
tomek updated the diff for D11279: [lib] Add an action representing a successful processing.

Rebase

Mar 21 2024, 5:01 AM
tomek updated the diff for D11259: [lib] Create a redux store where ops will be stored.

Update types

Mar 21 2024, 4:59 AM
tomek updated the diff for D11259: [lib] Create a redux store where ops will be stored.

Add a comment. Update the types.

Mar 21 2024, 4:56 AM
tomek accepted D11365: [lib] Fix auth with non authoritative keyserver error.
Mar 21 2024, 1:38 AM
tomek added inline comments to D11349: [native] migrate integrityStore to SQLite.
Mar 21 2024, 12:56 AM

Mar 20 2024

tomek accepted D11359: [lib] integrity reducer tests.
Mar 20 2024, 5:22 AM
tomek accepted D11358: [native][web] Read integrity thread hashes from SQLite on app start.
Mar 20 2024, 5:21 AM
tomek accepted D11357: [native][web] Start processing integrity store with sqlite operations.
Mar 20 2024, 5:06 AM
tomek requested changes to D11349: [native] migrate integrityStore to SQLite.
Mar 20 2024, 5:02 AM

Mar 19 2024

tomek requested review of D11354: [web] Introduce a migration that adds an actualizedCalendarQuery.
Mar 19 2024, 8:46 AM
tomek accepted D11333: [lib] Split implementations of `[client/server]ThreadInfoFromRawThreadInfo`.
Mar 19 2024, 5:21 AM
tomek accepted D11318: [lib] Introduce `threadInfoFromRawThreadInfo` wrapper that computes `currentUser` and passes to `baseThreadInfoFromRawThreadInfo`.

After reading the description it sounds like

By updating memberHasAdminPowers and appendUserInfo to depend on community root roles instead of computed member.permissions, we can avoid storing/persisting/sending that data to the clients.

is the main goal. What is the impact of doing this? How much can we save?

Mar 19 2024, 5:17 AM
tomek accepted D11317: [lib] Update `clientThreadFrozenDueToBlock` and `getMinimallyEncodedCurrentUser` signatures to include `communityThreadInfo`.

It seems like changing the code to check permissions in communityThreadInfo is a huge amount of work. Could you explain why we have to do this and what are the consequences of not doing it?

Mar 19 2024, 5:11 AM
tomek accepted D11308: [native][web] Update `ChatInputBar` to pass `communityThreadInfo` to `threadFrozenDueToViewerBlock`.
Mar 19 2024, 5:07 AM
tomek accepted D11311: [lib] Separate `serverThreadFrozenDueToBlock` and `clientThreadFrozenDueToBlock`.

Separate serverThreadFrozenDueToBlock and clientThreadFrozenDueToBlock

Why do we want to do that?

Mar 19 2024, 5:04 AM
tomek accepted D11286: [lib] Introduce `persistedRoleInfoValidator` and use in `convertClientDBThreadInfoToRawThreadInfo`.
Mar 19 2024, 5:01 AM
tomek accepted D11276: [lib] Remove usage of `memberHasAdminPowers` in `useThreadSearchIndex`.
Mar 19 2024, 3:40 AM
tomek added inline comments to D8665: Implement native iOS code to fetch data from blob service and keyserver code to upload notification payload if it exceeds APNs limits.
Mar 19 2024, 3:35 AM

Mar 18 2024

tomek requested review of D11281: [lib] Add an optional ID field to all the actions.

Can you explain more about why it's necessary to include these field on all actions?

We need to know when the processing of an action is finished. This processing consists of generating 0 or more ops and applying them on the DB. We're introducing a new store, where the ops will be put and a handler that listens for new ops, applies them on the DB, and removes them from the store.

Mar 18 2024, 8:56 AM
tomek added a comment to D11271: [lib] Don't sync users with non-authoritative keyservers.

Is this is a temporary hack, shouldn't we have a Linear task to revert it?

Mar 18 2024, 1:53 AM

Mar 8 2024

tomek requested review of D11284: [native][web] Queue new ops.
Mar 8 2024, 9:30 AM
tomek accepted D11265: [lib] Log out when invalidating session with authoritative keyserver in useKeyserverRecoveryLogIn.
Mar 8 2024, 7:24 AM
tomek added inline comments to D11090: Update unread count storage from JS and NSE.
Mar 8 2024, 5:40 AM
tomek closed D11271: [lib] Don't sync users with non-authoritative keyservers.
Mar 8 2024, 4:55 AM
tomek committed rCOMMc40428a2d017: [lib] Don't sync users with non-authoritative keyservers (authored by tomek).
[lib] Don't sync users with non-authoritative keyservers
Mar 8 2024, 4:55 AM
tomek closed D11270: [lib] Disable edit button when link secret isn't changed.
Mar 8 2024, 4:55 AM
tomek committed rCOMM756091f20eca: [lib] Disable edit button when link secret isn't changed (authored by tomek).
[lib] Disable edit button when link secret isn't changed
Mar 8 2024, 4:55 AM
tomek requested review of D11281: [lib] Add an optional ID field to all the actions.
Mar 8 2024, 2:44 AM
tomek requested review of D11280: [lib] Add a reducer that handles successful ops processing.
Mar 8 2024, 1:16 AM
tomek requested review of D11279: [lib] Add an action representing a successful processing.
Mar 8 2024, 12:51 AM

Mar 7 2024

tomek added inline comments to D11259: [lib] Create a redux store where ops will be stored.
Mar 7 2024, 7:59 AM
tomek added inline comments to D11234: Implement notifications sessions storage on top of MMKV. Migrate existing notifs account to SQLite.
Mar 7 2024, 5:50 AM
tomek requested review of D11271: [lib] Don't sync users with non-authoritative keyservers.
Mar 7 2024, 5:07 AM
tomek closed D11269: [keyserver] Immediately delete invite link blob.
Mar 7 2024, 4:56 AM
tomek committed rCOMM94db9c7acad4: [keyserver] Immediately delete invite link blob (authored by tomek).
[keyserver] Immediately delete invite link blob
Mar 7 2024, 4:56 AM
tomek requested review of D11270: [lib] Disable edit button when link secret isn't changed.
Mar 7 2024, 4:15 AM
tomek requested review of D11269: [keyserver] Immediately delete invite link blob.
Mar 7 2024, 3:59 AM
tomek added inline comments to D11234: Implement notifications sessions storage on top of MMKV. Migrate existing notifs account to SQLite.
Mar 7 2024, 3:33 AM
tomek accepted D11258: [scripts] Hide password.

This looks really hacky, but we probably don't have a clear way of doing this.

Mar 7 2024, 3:24 AM
tomek accepted D11263: [lib] Remove usage of `memberHasAdminPowers` in `useKeyserverAdmin`.
Mar 7 2024, 1:26 AM
tomek accepted D11261: [lib] Omit `isDefault` field in `rawThreadInfoFromServerThreadInfo`.
Mar 7 2024, 1:18 AM

Mar 6 2024

tomek requested review of D11259: [lib] Create a redux store where ops will be stored.
Mar 6 2024, 10:51 AM
tomek accepted D11254: [lib] Remove `isDefault` field from `RoleInfo` in `patchRoleInfoWithSpecialRole`.

This migration wasn't already applied, right?

Mar 6 2024, 4:32 AM
tomek accepted D11253: [lib] Remove `isDefault` field from `RoleInfo`.

Do we have a task for the migration?

Mar 6 2024, 4:23 AM
tomek accepted D11252: [lib] Make `specialRoles` field of `RoleInfo` required.
Mar 6 2024, 4:21 AM
tomek accepted D11209: [lib] Update `threadHasAdminRole` to consider `specialField`.
In D11209#324884, @atul wrote:

However, if there is no specialRole field encountered, we will assume we're dealing with a Server/"legacy" type and fallback to sketchy string search.

What is the scenario when this can happen?

There are three places where threadHasAdminRole is encountered:

  1. lib/shared/thread-utils: getAvailableThreadMemberActions()
  2. lib/selectors/thread-selectors: baseOtherUsersButNoOtherAdmins()
  3. keyserver/src/updaters/thread-updaters: leaveThread()

getAvailableThreadMemberActions is used in

  • native/chat/settings/thread-settings-member.react.js
  • web/modals/threads/members/member.react.js

Which are all expected to have the specialRole field in RoleInfos.

baseOtherUsersButNoOtherAdmins is a Redux selector that is only used on the client, where again we expect the specialRole field in RoleInfos.

leaveThread() is part of thread-updaters on the keyserver and calls threadHasAdminRole with LegacyRawThreadInfo | RawThreadInfo returned from rawThreadInfosFromServerThreadInfos. This is the scenario where we need to handle RoleInfos without the specialRole field patched in.

Mar 6 2024, 4:18 AM
tomek accepted D11205: [lib][native] Introduce `useRoleNamesToSpecialRole` to remove `"Admins"` string check in `RolePanelEntry`.
Mar 6 2024, 3:56 AM