diff --git a/lib/components/chat-mention-provider.react.js b/lib/components/chat-mention-provider.react.js
--- a/lib/components/chat-mention-provider.react.js
+++ b/lib/components/chat-mention-provider.react.js
@@ -10,7 +10,7 @@
 import type {
   ChatMentionCandidates,
   ChatMentionCandidatesObj,
-  ResolvedThreadInfo,
+  LegacyResolvedThreadInfo,
   ThreadInfo,
 } from '../types/thread-types.js';
 import { useResolvedThreadInfosObj } from '../utils/entity-helpers.js';
@@ -73,14 +73,14 @@
 }
 
 function getChatMentionCandidates(threadInfos: {
-  +[id: string]: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +[id: string]: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
 }): {
   chatMentionCandidatesObj: ChatMentionCandidatesObj,
   communityThreadIDForGenesisThreads: { +[id: string]: string },
 } {
   const result: {
     [string]: {
-      [string]: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      [string]: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
     },
   } = {};
   const visitedGenesisThreads = new Set<string>();
diff --git a/lib/shared/markdown.js b/lib/shared/markdown.js
--- a/lib/shared/markdown.js
+++ b/lib/shared/markdown.js
@@ -8,7 +8,7 @@
 } from './mention-utils.js';
 import type { MinimallyEncodedResolvedThreadInfo } from '../types/minimally-encoded-thread-permissions-types.js';
 import type {
-  ResolvedThreadInfo,
+  LegacyResolvedThreadInfo,
   ChatMentionCandidates,
   RelativeMemberInfo,
 } from '../types/thread-types.js';
@@ -257,7 +257,7 @@
   chatMentionCandidates: ChatMentionCandidates,
   capture: Capture,
 ): {
-  threadInfo: ?ResolvedThreadInfo | ?MinimallyEncodedResolvedThreadInfo,
+  threadInfo: ?LegacyResolvedThreadInfo | ?MinimallyEncodedResolvedThreadInfo,
   content: string,
   hasAccessToChat: boolean,
 } {
diff --git a/lib/shared/mention-utils.js b/lib/shared/mention-utils.js
--- a/lib/shared/mention-utils.js
+++ b/lib/shared/mention-utils.js
@@ -7,7 +7,7 @@
 import type { MinimallyEncodedResolvedThreadInfo } from '../types/minimally-encoded-thread-permissions-types.js';
 import { threadTypes } from '../types/thread-types-enum.js';
 import type {
-  ResolvedThreadInfo,
+  LegacyResolvedThreadInfo,
   ChatMentionCandidates,
   RelativeMemberInfo,
   ThreadInfo,
@@ -31,7 +31,7 @@
 
 type MentionTypeaheadChatSuggestionItem = {
   +type: 'chat',
-  +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
 };
 
 export type MentionTypeaheadSuggestionItem =
@@ -72,7 +72,7 @@
 }
 
 function getRawChatMention(
-  threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
 ): string {
   return `@[[${threadInfo.id}:${encodeChatMentionText(threadInfo.uiName)}]]`;
 }
diff --git a/lib/shared/mention-utils.test.js b/lib/shared/mention-utils.test.js
--- a/lib/shared/mention-utils.test.js
+++ b/lib/shared/mention-utils.test.js
@@ -6,7 +6,7 @@
   getRawChatMention,
   renderChatMentionsWithAltText,
 } from './mention-utils.js';
-import type { ResolvedThreadInfo } from '../types/thread-types.js';
+import type { LegacyResolvedThreadInfo } from '../types/thread-types.js';
 
 describe('encodeChatMentionText', () => {
   it('should encode closing brackets', () => {
@@ -36,7 +36,7 @@
   it('should return raw chat mention', () =>
     expect(
       getRawChatMention({
-        ...(({}: any): ResolvedThreadInfo),
+        ...(({}: any): LegacyResolvedThreadInfo),
         id: '256|123',
         uiName: 'thread-name',
       }),
@@ -45,7 +45,7 @@
   it('should return raw chat mention with encoded text', () =>
     expect(
       getRawChatMention({
-        ...(({}: any): ResolvedThreadInfo),
+        ...(({}: any): LegacyResolvedThreadInfo),
         id: '256|123',
         uiName: 'thread-]name]]',
       }),
diff --git a/lib/types/filter-types.js b/lib/types/filter-types.js
--- a/lib/types/filter-types.js
+++ b/lib/types/filter-types.js
@@ -3,7 +3,7 @@
 import t, { type TUnion } from 'tcomb';
 
 import type { MinimallyEncodedResolvedThreadInfo } from './minimally-encoded-thread-permissions-types.js';
-import type { ResolvedThreadInfo } from './thread-types.js';
+import type { LegacyResolvedThreadInfo } from './thread-types.js';
 import { tID, tShape, tString } from '../utils/validation-utils.js';
 
 export const calendarThreadFilterTypes = Object.freeze({
@@ -42,6 +42,6 @@
 };
 
 export type FilterThreadInfo = {
-  +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
   +numVisibleEntries: number,
 };
diff --git a/lib/types/thread-types.js b/lib/types/thread-types.js
--- a/lib/types/thread-types.js
+++ b/lib/types/thread-types.js
@@ -188,7 +188,7 @@
 
 export type ThreadInfo = LegacyThreadInfo | MinimallyEncodedThreadInfo;
 
-export type ResolvedThreadInfo = {
+export type LegacyResolvedThreadInfo = {
   +id: string,
   +type: ThreadType,
   +name: ?string,
@@ -484,7 +484,7 @@
 export type ThreadStoreThreadInfos = LegacyRawThreadInfos;
 
 export type ChatMentionCandidates = {
-  +[id: string]: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +[id: string]: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
 };
 export type ChatMentionCandidatesObj = {
   +[id: string]: ChatMentionCandidates,
diff --git a/lib/utils/drawer-utils.react.js b/lib/utils/drawer-utils.react.js
--- a/lib/utils/drawer-utils.react.js
+++ b/lib/utils/drawer-utils.react.js
@@ -5,7 +5,7 @@
 import type { MinimallyEncodedResolvedThreadInfo } from '../types/minimally-encoded-thread-permissions-types.js';
 import { communitySubthreads } from '../types/thread-types-enum.js';
 import type {
-  ResolvedThreadInfo,
+  LegacyResolvedThreadInfo,
   RawThreadInfo,
   ThreadInfo,
 } from '../types/thread-types.js';
@@ -25,7 +25,7 @@
     +[id: string]: $ReadOnlyArray<ThreadInfo>,
   },
   communities: $ReadOnlyArray<
-    ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+    LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
   >,
   labelStyles: $ReadOnlyArray<LabelStyleType>,
   maxDepth: number,
@@ -78,7 +78,7 @@
 }
 
 function appendSuffix<
-  T: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  T: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
 >(chats: $ReadOnlyArray<T>): T[] {
   const result: T[] = [];
   const names = new Map<string, number>();
diff --git a/lib/utils/entity-helpers.js b/lib/utils/entity-helpers.js
--- a/lib/utils/entity-helpers.js
+++ b/lib/utils/entity-helpers.js
@@ -12,7 +12,7 @@
 import type { MinimallyEncodedResolvedThreadInfo } from '../types/minimally-encoded-thread-permissions-types.js';
 import type {
   LegacyThreadInfo,
-  ResolvedThreadInfo,
+  LegacyResolvedThreadInfo,
   ThreadInfo,
 } from '../types/thread-types.js';
 import { values } from '../utils/objects.js';
@@ -20,7 +20,9 @@
 function useResolvedThreadInfos(
   threadInfos: $ReadOnlyArray<ThreadInfo>,
   options?: ?UseENSNamesOptions,
-): $ReadOnlyArray<ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo> {
+): $ReadOnlyArray<
+  LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+> {
   const entityText = React.useMemo(
     () => threadInfos.map(threadInfo => threadInfo.uiName),
     [threadInfos],
@@ -58,7 +60,7 @@
 
 function useResolvedOptionalThreadInfos(
   threadInfos: ?$ReadOnlyArray<LegacyThreadInfo>,
-): ?$ReadOnlyArray<ResolvedThreadInfo> {
+): ?$ReadOnlyArray<LegacyResolvedThreadInfo> {
   const entityText = React.useMemo(() => {
     if (!threadInfos) {
       return null;
@@ -94,7 +96,9 @@
 function useResolvedThreadInfosObj(
   threadInfosObj: { +[id: string]: ThreadInfo },
   options?: ?UseENSNamesOptions,
-): { +[id: string]: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo } {
+): {
+  +[id: string]: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+} {
   const threadInfosArray = React.useMemo(
     () => values(threadInfosObj),
     [threadInfosObj],
@@ -105,7 +109,7 @@
   );
   return React.useMemo(() => {
     const obj: {
-      [string]: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      [string]: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
     } = {};
     for (const resolvedThreadInfo of resolvedThreadInfosArray) {
       obj[resolvedThreadInfo.id] = resolvedThreadInfo;
@@ -116,7 +120,7 @@
 
 function useResolvedThreadInfo(
   threadInfo: ThreadInfo,
-): ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo {
+): LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo {
   const resolutionInput = React.useMemo(() => [threadInfo], [threadInfo]);
   const [resolvedThreadInfo] = useResolvedThreadInfos(resolutionInput);
   return resolvedThreadInfo;
@@ -124,7 +128,7 @@
 
 function useResolvedOptionalThreadInfo(
   threadInfo: ?ThreadInfo,
-): ?ResolvedThreadInfo | ?MinimallyEncodedResolvedThreadInfo {
+): ?LegacyResolvedThreadInfo | ?MinimallyEncodedResolvedThreadInfo {
   const resolutionInput = React.useMemo(
     () => (threadInfo ? [threadInfo] : []),
     [threadInfo],
diff --git a/native/avatars/thread-avatar.react.js b/native/avatars/thread-avatar.react.js
--- a/native/avatars/thread-avatar.react.js
+++ b/native/avatars/thread-avatar.react.js
@@ -11,7 +11,7 @@
 import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import { threadTypes } from 'lib/types/thread-types-enum.js';
 import type {
-  ResolvedThreadInfo,
+  LegacyResolvedThreadInfo,
   RawThreadInfo,
   ThreadInfo,
 } from 'lib/types/thread-types.js';
@@ -23,7 +23,7 @@
   +threadInfo:
     | RawThreadInfo
     | ThreadInfo
-    | ResolvedThreadInfo
+    | LegacyResolvedThreadInfo
     | MinimallyEncodedResolvedThreadInfo,
   +size: AvatarSize,
 };
diff --git a/native/calendar/entry.react.js b/native/calendar/entry.react.js
--- a/native/calendar/entry.react.js
+++ b/native/calendar/entry.react.js
@@ -45,7 +45,10 @@
 import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import type { Dispatch } from 'lib/types/redux-types.js';
 import { threadPermissions } from 'lib/types/thread-permission-types.js';
-import type { ResolvedThreadInfo, ThreadInfo } from 'lib/types/thread-types.js';
+import type {
+  LegacyResolvedThreadInfo,
+  ThreadInfo,
+} from 'lib/types/thread-types.js';
 import {
   useDispatchActionPromise,
   type DispatchActionPromise,
@@ -192,7 +195,7 @@
 };
 type Props = {
   ...SharedProps,
-  +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
   // Redux state
   +calendarQuery: () => CalendarQuery,
   +online: boolean,
diff --git a/native/chat/settings/delete-thread.react.js b/native/chat/settings/delete-thread.react.js
--- a/native/chat/settings/delete-thread.react.js
+++ b/native/chat/settings/delete-thread.react.js
@@ -27,7 +27,7 @@
 import type { LoadingStatus } from 'lib/types/loading-types.js';
 import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import type {
-  ResolvedThreadInfo,
+  LegacyResolvedThreadInfo,
   LeaveThreadPayload,
   ThreadInfo,
 } from 'lib/types/thread-types.js';
@@ -115,7 +115,7 @@
 type Props = {
   ...BaseProps,
   // Redux state
-  +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
   +shouldUseDeleteConfirmationAlert: boolean,
   +loadingStatus: LoadingStatus,
   +colors: Colors,
diff --git a/native/chat/settings/thread-settings-avatar.react.js b/native/chat/settings/thread-settings-avatar.react.js
--- a/native/chat/settings/thread-settings-avatar.react.js
+++ b/native/chat/settings/thread-settings-avatar.react.js
@@ -4,13 +4,13 @@
 import { View } from 'react-native';
 
 import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import { type ResolvedThreadInfo } from 'lib/types/thread-types.js';
+import { type LegacyResolvedThreadInfo } from 'lib/types/thread-types.js';
 
 import EditThreadAvatar from '../../avatars/edit-thread-avatar.react.js';
 import { useStyles } from '../../themes/colors.js';
 
 type Props = {
-  +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
   +canChangeSettings: boolean,
 };
 function ThreadSettingsAvatar(props: Props): React.Node {
diff --git a/native/chat/settings/thread-settings-delete-thread.react.js b/native/chat/settings/thread-settings-delete-thread.react.js
--- a/native/chat/settings/thread-settings-delete-thread.react.js
+++ b/native/chat/settings/thread-settings-delete-thread.react.js
@@ -4,7 +4,7 @@
 import { Text, View } from 'react-native';
 
 import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { ResolvedThreadInfo } from 'lib/types/thread-types.js';
+import type { LegacyResolvedThreadInfo } from 'lib/types/thread-types.js';
 
 import type { ThreadSettingsNavigate } from './thread-settings.react.js';
 import Button from '../../components/button.react.js';
@@ -13,7 +13,7 @@
 import type { ViewStyle } from '../../types/styles.js';
 
 type Props = {
-  +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
   +navigate: ThreadSettingsNavigate,
   +buttonStyle: ViewStyle,
 };
diff --git a/native/chat/settings/thread-settings-name.react.js b/native/chat/settings/thread-settings-name.react.js
--- a/native/chat/settings/thread-settings-name.react.js
+++ b/native/chat/settings/thread-settings-name.react.js
@@ -17,7 +17,7 @@
 import type { LoadingStatus } from 'lib/types/loading-types.js';
 import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import {
-  type ResolvedThreadInfo,
+  type LegacyResolvedThreadInfo,
   type ChangeThreadSettingsPayload,
   type UpdateThreadRequest,
 } from 'lib/types/thread-types.js';
@@ -62,7 +62,7 @@
 };
 
 type BaseProps = {
-  +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
   +nameEditValue: ?string,
   +setNameEditValue: (value: ?string, callback?: () => void) => void,
   +canChangeSettings: boolean,
diff --git a/native/chat/settings/thread-settings.react.js b/native/chat/settings/thread-settings.react.js
--- a/native/chat/settings/thread-settings.react.js
+++ b/native/chat/settings/thread-settings.react.js
@@ -38,7 +38,7 @@
 import { threadPermissions } from 'lib/types/thread-permission-types.js';
 import { threadTypes } from 'lib/types/thread-types-enum.js';
 import {
-  type ResolvedThreadInfo,
+  type LegacyResolvedThreadInfo,
   type RelativeMemberInfo,
   type ThreadInfo,
 } from 'lib/types/thread-types.js';
@@ -137,20 +137,26 @@
   | {
       +itemType: 'avatar',
       +key: string,
-      +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      +threadInfo:
+        | LegacyResolvedThreadInfo
+        | MinimallyEncodedResolvedThreadInfo,
       +canChangeSettings: boolean,
     }
   | {
       +itemType: 'name',
       +key: string,
-      +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      +threadInfo:
+        | LegacyResolvedThreadInfo
+        | MinimallyEncodedResolvedThreadInfo,
       +nameEditValue: ?string,
       +canChangeSettings: boolean,
     }
   | {
       +itemType: 'color',
       +key: string,
-      +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      +threadInfo:
+        | LegacyResolvedThreadInfo
+        | MinimallyEncodedResolvedThreadInfo,
       +colorEditValue: string,
       +canChangeSettings: boolean,
       +navigate: ThreadSettingsNavigate,
@@ -159,7 +165,9 @@
   | {
       +itemType: 'description',
       +key: string,
-      +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      +threadInfo:
+        | LegacyResolvedThreadInfo
+        | MinimallyEncodedResolvedThreadInfo,
       +descriptionEditValue: ?string,
       +descriptionTextHeight: ?number,
       +canChangeSettings: boolean,
@@ -167,25 +175,33 @@
   | {
       +itemType: 'parent',
       +key: string,
-      +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      +threadInfo:
+        | LegacyResolvedThreadInfo
+        | MinimallyEncodedResolvedThreadInfo,
       +parentThreadInfo:
-        | ?ResolvedThreadInfo
+        | ?LegacyResolvedThreadInfo
         | ?MinimallyEncodedResolvedThreadInfo,
     }
   | {
       +itemType: 'visibility',
       +key: string,
-      +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      +threadInfo:
+        | LegacyResolvedThreadInfo
+        | MinimallyEncodedResolvedThreadInfo,
     }
   | {
       +itemType: 'pushNotifs',
       +key: string,
-      +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      +threadInfo:
+        | LegacyResolvedThreadInfo
+        | MinimallyEncodedResolvedThreadInfo,
     }
   | {
       +itemType: 'homeNotifs',
       +key: string,
-      +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      +threadInfo:
+        | LegacyResolvedThreadInfo
+        | MinimallyEncodedResolvedThreadInfo,
     }
   | {
       +itemType: 'seeMore',
@@ -195,7 +211,9 @@
   | {
       +itemType: 'childThread',
       +key: string,
-      +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      +threadInfo:
+        | LegacyResolvedThreadInfo
+        | MinimallyEncodedResolvedThreadInfo,
       +firstListItem: boolean,
       +lastListItem: boolean,
     }
@@ -207,7 +225,9 @@
       +itemType: 'member',
       +key: string,
       +memberInfo: RelativeMemberInfo,
-      +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      +threadInfo:
+        | LegacyResolvedThreadInfo
+        | MinimallyEncodedResolvedThreadInfo,
       +canEdit: boolean,
       +navigate: ThreadSettingsNavigate,
       +firstListItem: boolean,
@@ -229,14 +249,18 @@
   | {
       +itemType: 'promoteSidebar' | 'leaveThread' | 'deleteThread',
       +key: string,
-      +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      +threadInfo:
+        | LegacyResolvedThreadInfo
+        | MinimallyEncodedResolvedThreadInfo,
       +navigate: ThreadSettingsNavigate,
       +buttonStyle: ViewStyle,
     }
   | {
       +itemType: 'editRelationship',
       +key: string,
-      +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+      +threadInfo:
+        | LegacyResolvedThreadInfo
+        | MinimallyEncodedResolvedThreadInfo,
       +navigate: ThreadSettingsNavigate,
       +buttonStyle: ViewStyle,
       +relationshipButton: RelationshipButton,
@@ -268,9 +292,11 @@
   // Redux state
   +userInfos: UserInfos,
   +viewerID: ?string,
-  +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
-  +parentThreadInfo: ?ResolvedThreadInfo | ?MinimallyEncodedResolvedThreadInfo,
-  +childThreadInfos: ?$ReadOnlyArray<ResolvedThreadInfo>,
+  +threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +parentThreadInfo:
+    | ?LegacyResolvedThreadInfo
+    | ?MinimallyEncodedResolvedThreadInfo,
+  +childThreadInfos: ?$ReadOnlyArray<LegacyResolvedThreadInfo>,
   +somethingIsSaving: boolean,
   +styles: $ReadOnly<typeof unboundStyles>,
   +indicatorStyle: IndicatorStyle,
@@ -348,9 +374,11 @@
       (propsAndState: PropsAndState) => propsAndState.navigation.navigate,
       (propsAndState: PropsAndState) => propsAndState.route.key,
       (
-        threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+        threadInfo:
+          | LegacyResolvedThreadInfo
+          | MinimallyEncodedResolvedThreadInfo,
         parentThreadInfo:
-          | ?ResolvedThreadInfo
+          | ?LegacyResolvedThreadInfo
           | ?MinimallyEncodedResolvedThreadInfo,
         nameEditValue: ?string,
         colorEditValue: string,
@@ -506,10 +534,12 @@
       (propsAndState: PropsAndState) => propsAndState.childThreadInfos,
       (propsAndState: PropsAndState) => propsAndState.numSubchannelsShowing,
       (
-        threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+        threadInfo:
+          | LegacyResolvedThreadInfo
+          | MinimallyEncodedResolvedThreadInfo,
         navigate: ThreadSettingsNavigate,
         childThreads: ?$ReadOnlyArray<
-          ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+          LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
         >,
         numSubchannelsShowing: number,
       ) => {
@@ -576,7 +606,7 @@
       (
         navigate: ThreadSettingsNavigate,
         childThreads: ?$ReadOnlyArray<
-          ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+          LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
         >,
         numSidebarsShowing: number,
       ) => {
@@ -636,7 +666,9 @@
       (propsAndState: PropsAndState) => propsAndState.numMembersShowing,
       (propsAndState: PropsAndState) => propsAndState.verticalBounds,
       (
-        threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+        threadInfo:
+          | LegacyResolvedThreadInfo
+          | MinimallyEncodedResolvedThreadInfo,
         canStartEditing: boolean,
         navigate: ThreadSettingsNavigate,
         routeKey: string,
@@ -746,9 +778,11 @@
       (propsAndState: PropsAndState) => propsAndState.userInfos,
       (propsAndState: PropsAndState) => propsAndState.viewerID,
       (
-        threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+        threadInfo:
+          | LegacyResolvedThreadInfo
+          | MinimallyEncodedResolvedThreadInfo,
         parentThreadInfo:
-          | ?ResolvedThreadInfo
+          | ?LegacyResolvedThreadInfo
           | ?MinimallyEncodedResolvedThreadInfo,
         navigate: ThreadSettingsNavigate,
         styles: $ReadOnly<typeof unboundStyles>,
diff --git a/native/components/thread-list-thread.react.js b/native/components/thread-list-thread.react.js
--- a/native/components/thread-list-thread.react.js
+++ b/native/components/thread-list-thread.react.js
@@ -3,7 +3,10 @@
 import * as React from 'react';
 
 import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { ResolvedThreadInfo, ThreadInfo } from 'lib/types/thread-types.js';
+import type {
+  LegacyResolvedThreadInfo,
+  ThreadInfo,
+} from 'lib/types/thread-types.js';
 import { useResolvedThreadInfo } from 'lib/utils/entity-helpers.js';
 
 import Button from './button.react.js';
@@ -38,7 +41,7 @@
 };
 type Props = {
   ...SharedProps,
-  +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
   +colors: Colors,
   +styles: $ReadOnly<typeof unboundStyles>,
 };
diff --git a/native/markdown/markdown-chat-mention.react.js b/native/markdown/markdown-chat-mention.react.js
--- a/native/markdown/markdown-chat-mention.react.js
+++ b/native/markdown/markdown-chat-mention.react.js
@@ -3,14 +3,14 @@
 import * as React from 'react';
 import { Text, StyleSheet } from 'react-native';
 
-import type { ResolvedThreadInfo } from 'lib/types/thread-types.js';
+import type { LegacyResolvedThreadInfo } from 'lib/types/thread-types.js';
 
 import { useMarkdownOnPressUtils } from './markdown-utils.js';
 import { useNavigateToThreadWithFadeAnimation } from '../chat/message-list-types.js';
 
 type TextProps = React.ElementConfig<typeof Text>;
 type Props = {
-  +threadInfo: ResolvedThreadInfo,
+  +threadInfo: LegacyResolvedThreadInfo,
   +children: React.Node,
   ...TextProps,
 };
diff --git a/web/calendar/entry.react.js b/web/calendar/entry.react.js
--- a/web/calendar/entry.react.js
+++ b/web/calendar/entry.react.js
@@ -37,7 +37,7 @@
 import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import type { Dispatch } from 'lib/types/redux-types.js';
 import { threadPermissions } from 'lib/types/thread-permission-types.js';
-import type { ResolvedThreadInfo } from 'lib/types/thread-types.js';
+import type { LegacyResolvedThreadInfo } from 'lib/types/thread-types.js';
 import {
   type DispatchActionPromise,
   useDispatchActionPromise,
@@ -65,7 +65,7 @@
 };
 type Props = {
   ...BaseProps,
-  +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
   +loggedIn: boolean,
   +calendarQuery: () => CalendarQuery,
   +online: boolean,
diff --git a/web/markdown/markdown-chat-mention.react.js b/web/markdown/markdown-chat-mention.react.js
--- a/web/markdown/markdown-chat-mention.react.js
+++ b/web/markdown/markdown-chat-mention.react.js
@@ -3,13 +3,13 @@
 import * as React from 'react';
 
 import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { ResolvedThreadInfo } from 'lib/types/thread-types.js';
+import type { LegacyResolvedThreadInfo } from 'lib/types/thread-types.js';
 
 import css from './markdown.css';
 import { useOnClickThread } from '../selectors/thread-selectors.js';
 
 type MarkdownChatMentionProps = {
-  +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
   +hasAccessToChat: boolean,
   +text: string,
 };
diff --git a/web/modals/history/history-entry.react.js b/web/modals/history/history-entry.react.js
--- a/web/modals/history/history-entry.react.js
+++ b/web/modals/history/history-entry.react.js
@@ -21,7 +21,7 @@
 } from 'lib/types/entry-types.js';
 import type { LoadingStatus } from 'lib/types/loading-types.js';
 import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { ResolvedThreadInfo } from 'lib/types/thread-types.js';
+import type { LegacyResolvedThreadInfo } from 'lib/types/thread-types.js';
 import type { UserInfo } from 'lib/types/user-types.js';
 import {
   type DispatchActionPromise,
@@ -41,7 +41,7 @@
 };
 type Props = {
   ...BaseProps,
-  +threadInfo: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: LegacyResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
   +loggedIn: boolean,
   +restoreLoadingStatus: LoadingStatus,
   +calendarQuery: () => CalendarQuery,