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
@@ -6,7 +6,7 @@
 import { threadInfoSelector } from '../selectors/thread-selectors.js';
 import SentencePrefixSearchIndex from '../shared/sentence-prefix-search-index.js';
 import type {
-  MinimallyEncodedResolvedThreadInfo,
+  ResolvedThreadInfo,
   ThreadInfo,
 } from '../types/minimally-encoded-thread-permissions-types.js';
 import { threadTypes } from '../types/thread-types-enum.js';
@@ -78,7 +78,7 @@
 function getChatMentionCandidates(
   threadInfos: { +[id: string]: ThreadInfo },
   resolvedThreadInfos: {
-    +[id: string]: MinimallyEncodedResolvedThreadInfo,
+    +[id: string]: ResolvedThreadInfo,
   },
 ): {
   chatMentionCandidatesObj: ChatMentionCandidatesObj,
@@ -216,7 +216,7 @@
 function useChatMentionCandidatesObjAndUtils(): {
   chatMentionCandidatesObj: ChatMentionCandidatesObj,
   resolvedThreadInfos: {
-    +[id: string]: MinimallyEncodedResolvedThreadInfo,
+    +[id: string]: ResolvedThreadInfo,
   },
   communityThreadIDForGenesisThreads: { +[id: string]: string },
 } {
diff --git a/lib/permissions/minimally-encoded-thread-permissions-validators.js b/lib/permissions/minimally-encoded-thread-permissions-validators.js
--- a/lib/permissions/minimally-encoded-thread-permissions-validators.js
+++ b/lib/permissions/minimally-encoded-thread-permissions-validators.js
@@ -10,7 +10,7 @@
   MinimallyEncodedMemberInfo,
   RawThreadInfo,
   MinimallyEncodedRelativeMemberInfo,
-  MinimallyEncodedResolvedThreadInfo,
+  ResolvedThreadInfo,
   MinimallyEncodedRoleInfo,
   MinimallyEncodedThreadCurrentUserInfo,
   ThreadInfo,
@@ -62,8 +62,8 @@
     currentUser: minimallyEncodedThreadCurrentUserInfoValidator,
   });
 
-const minimallyEncodedResolvedThreadInfoValidator: TInterface<MinimallyEncodedResolvedThreadInfo> =
-  tShape<MinimallyEncodedResolvedThreadInfo>({
+const resolvedThreadInfoValidator: TInterface<ResolvedThreadInfo> =
+  tShape<ResolvedThreadInfo>({
     ...minimallyEncodedThreadInfoValidator.meta.props,
     uiName: t.String,
   });
@@ -90,6 +90,6 @@
   minimallyEncodedMemberInfoValidator,
   minimallyEncodedRelativeMemberInfoValidator,
   minimallyEncodedThreadInfoValidator,
-  minimallyEncodedResolvedThreadInfoValidator,
+  resolvedThreadInfoValidator,
   minimallyEncodedRawThreadInfoValidator,
 };
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 @@
   decodeChatMentionText,
 } from './mention-utils.js';
 import { useENSNames } from '../hooks/ens-cache.js';
-import type { MinimallyEncodedResolvedThreadInfo } from '../types/minimally-encoded-thread-permissions-types.js';
+import type { ResolvedThreadInfo } from '../types/minimally-encoded-thread-permissions-types.js';
 import type {
   ChatMentionCandidates,
   RelativeMemberInfo,
@@ -285,7 +285,7 @@
   chatMentionCandidates: ChatMentionCandidates,
   capture: Capture,
 ): {
-  threadInfo: ?MinimallyEncodedResolvedThreadInfo,
+  threadInfo: ?ResolvedThreadInfo,
   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
@@ -8,7 +8,7 @@
 import { useENSNames } from '../hooks/ens-cache.js';
 import { useUserSearchIndex } from '../selectors/nav-selectors.js';
 import type {
-  MinimallyEncodedResolvedThreadInfo,
+  ResolvedThreadInfo,
   ThreadInfo,
 } from '../types/minimally-encoded-thread-permissions-types.js';
 import { threadTypes } from '../types/thread-types-enum.js';
@@ -36,7 +36,7 @@
 
 type MentionTypeaheadChatSuggestionItem = {
   +type: 'chat',
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
 };
 
 export type MentionTypeaheadSuggestionItem =
@@ -76,9 +76,7 @@
   return text.replace(/\\]/g, ']');
 }
 
-function getRawChatMention(
-  threadInfo: MinimallyEncodedResolvedThreadInfo,
-): string {
+function getRawChatMention(threadInfo: ResolvedThreadInfo): 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 { MinimallyEncodedResolvedThreadInfo } from '../types/minimally-encoded-thread-permissions-types.js';
+import type { ResolvedThreadInfo } from '../types/minimally-encoded-thread-permissions-types.js';
 
 describe('encodeChatMentionText', () => {
   it('should encode closing brackets', () => {
@@ -36,7 +36,7 @@
   it('should return raw chat mention', () =>
     expect(
       getRawChatMention({
-        ...(({}: any): MinimallyEncodedResolvedThreadInfo),
+        ...(({}: any): ResolvedThreadInfo),
         id: '256|123',
         uiName: 'thread-name',
       }),
@@ -45,7 +45,7 @@
   it('should return raw chat mention with encoded text', () =>
     expect(
       getRawChatMention({
-        ...(({}: any): MinimallyEncodedResolvedThreadInfo),
+        ...(({}: any): ResolvedThreadInfo),
         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
@@ -2,7 +2,7 @@
 
 import t, { type TUnion } from 'tcomb';
 
-import type { MinimallyEncodedResolvedThreadInfo } from './minimally-encoded-thread-permissions-types.js';
+import type { ResolvedThreadInfo } from './minimally-encoded-thread-permissions-types.js';
 import { tID, tShape, tString } from '../utils/validation-utils.js';
 
 export const calendarThreadFilterTypes = Object.freeze({
@@ -41,6 +41,6 @@
 };
 
 export type FilterThreadInfo = {
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
   +numVisibleEntries: number,
 };
diff --git a/lib/types/minimally-encoded-thread-permissions-types.js b/lib/types/minimally-encoded-thread-permissions-types.js
--- a/lib/types/minimally-encoded-thread-permissions-types.js
+++ b/lib/types/minimally-encoded-thread-permissions-types.js
@@ -222,7 +222,7 @@
   };
 };
 
-export type MinimallyEncodedResolvedThreadInfo = $ReadOnly<{
+export type ResolvedThreadInfo = $ReadOnly<{
   ...ThreadInfo,
   +uiName: string,
 }>;
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
@@ -18,7 +18,7 @@
   MinimallyEncodedMemberInfo,
   RawThreadInfo,
   MinimallyEncodedRelativeMemberInfo,
-  MinimallyEncodedResolvedThreadInfo,
+  ResolvedThreadInfo,
   MinimallyEncodedRoleInfo,
   ThreadInfo,
 } from './minimally-encoded-thread-permissions-types.js';
@@ -467,7 +467,7 @@
 export type ThreadStoreThreadInfos = LegacyRawThreadInfos;
 
 export type ChatMentionCandidate = {
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
   +rawChatName: string | ThreadEntity,
 };
 export type 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,8 +5,8 @@
 import { values } from './objects.js';
 import { threadInFilterList, threadIsChannel } from '../shared/thread-utils.js';
 import type {
+  ResolvedThreadInfo,
   ThreadInfo,
-  MinimallyEncodedResolvedThreadInfo,
   RawThreadInfo,
 } from '../types/minimally-encoded-thread-permissions-types.js';
 import { communitySubthreads } from '../types/thread-types-enum.js';
@@ -26,7 +26,7 @@
   childThreadInfosMap: {
     +[id: string]: $ReadOnlyArray<ThreadInfo>,
   },
-  communities: $ReadOnlyArray<MinimallyEncodedResolvedThreadInfo>,
+  communities: $ReadOnlyArray<ResolvedThreadInfo>,
   labelStyles: $ReadOnlyArray<LabelStyleType>,
   maxDepth: number,
 ): $ReadOnlyArray<CommunityDrawerItemData<LabelStyleType>> {
@@ -78,10 +78,10 @@
 }
 
 function useAppendCommunitySuffix(
-  communities: $ReadOnlyArray<MinimallyEncodedResolvedThreadInfo>,
-): $ReadOnlyArray<MinimallyEncodedResolvedThreadInfo> {
+  communities: $ReadOnlyArray<ResolvedThreadInfo>,
+): $ReadOnlyArray<ResolvedThreadInfo> {
   return React.useMemo(() => {
-    const result: MinimallyEncodedResolvedThreadInfo[] = [];
+    const result: ResolvedThreadInfo[] = [];
     const names = new Map<string, number>();
 
     for (const chat of communities) {
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
@@ -10,7 +10,7 @@
 } from './entity-text.js';
 import type { UseENSNamesOptions } from '../hooks/ens-cache.js';
 import type {
-  MinimallyEncodedResolvedThreadInfo,
+  ResolvedThreadInfo,
   ThreadInfo,
 } from '../types/minimally-encoded-thread-permissions-types.js';
 import { values } from '../utils/objects.js';
@@ -18,7 +18,7 @@
 function useResolvedThreadInfos(
   threadInfos: $ReadOnlyArray<ThreadInfo>,
   options?: ?UseENSNamesOptions,
-): $ReadOnlyArray<MinimallyEncodedResolvedThreadInfo> {
+): $ReadOnlyArray<ResolvedThreadInfo> {
   const entityText = React.useMemo(
     () => threadInfos.map(threadInfo => threadInfo.uiName),
     [threadInfos],
@@ -48,7 +48,7 @@
 
 function useResolvedOptionalThreadInfos(
   threadInfos: ?$ReadOnlyArray<ThreadInfo>,
-): ?$ReadOnlyArray<MinimallyEncodedResolvedThreadInfo> {
+): ?$ReadOnlyArray<ResolvedThreadInfo> {
   const entityText = React.useMemo(() => {
     if (!threadInfos) {
       return null;
@@ -87,7 +87,7 @@
   },
   options?: ?UseENSNamesOptions,
 ): {
-  +[id: string]: MinimallyEncodedResolvedThreadInfo,
+  +[id: string]: ResolvedThreadInfo,
 } {
   const threadInfosArray = React.useMemo(
     () => values(threadInfosObj),
@@ -99,7 +99,7 @@
   );
   return React.useMemo(() => {
     const obj: {
-      [string]: MinimallyEncodedResolvedThreadInfo,
+      [string]: ResolvedThreadInfo,
     } = {};
     for (const resolvedThreadInfo of resolvedThreadInfosArray) {
       obj[resolvedThreadInfo.id] = resolvedThreadInfo;
@@ -108,9 +108,7 @@
   }, [resolvedThreadInfosArray]);
 }
 
-function useResolvedThreadInfo(
-  threadInfo: ThreadInfo,
-): MinimallyEncodedResolvedThreadInfo {
+function useResolvedThreadInfo(threadInfo: ThreadInfo): ResolvedThreadInfo {
   const resolutionInput = React.useMemo(() => [threadInfo], [threadInfo]);
   const [resolvedThreadInfo] = useResolvedThreadInfos(resolutionInput);
   return resolvedThreadInfo;
@@ -118,7 +116,7 @@
 
 function useResolvedOptionalThreadInfo(
   threadInfo: ?ThreadInfo,
-): ?MinimallyEncodedResolvedThreadInfo {
+): ?ResolvedThreadInfo {
   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
@@ -10,7 +10,7 @@
 import type { AvatarSize } from 'lib/types/avatar-types.js';
 import type {
   ThreadInfo,
-  MinimallyEncodedResolvedThreadInfo,
+  ResolvedThreadInfo,
   RawThreadInfo,
 } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import { threadTypes } from 'lib/types/thread-types-enum.js';
@@ -24,7 +24,7 @@
     | RawThreadInfo
     | LegacyThreadInfo
     | ThreadInfo
-    | MinimallyEncodedResolvedThreadInfo,
+    | ResolvedThreadInfo,
   +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
@@ -43,7 +43,7 @@
 } from 'lib/types/entry-types.js';
 import type { LoadingStatus } from 'lib/types/loading-types.js';
 import type {
-  MinimallyEncodedResolvedThreadInfo,
+  ResolvedThreadInfo,
   ThreadInfo,
 } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import type { Dispatch } from 'lib/types/redux-types.js';
@@ -194,7 +194,7 @@
 };
 type Props = {
   ...SharedProps,
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
   // 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
@@ -26,7 +26,7 @@
 } from 'lib/shared/thread-utils.js';
 import type { LoadingStatus } from 'lib/types/loading-types.js';
 import type {
-  MinimallyEncodedResolvedThreadInfo,
+  ResolvedThreadInfo,
   ThreadInfo,
 } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import type {
@@ -117,7 +117,7 @@
 type Props = {
   ...BaseProps,
   // Redux state
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
   +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
@@ -3,13 +3,13 @@
 import * as React from 'react';
 import { View } from 'react-native';
 
-import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
+import type { ResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 
 import EditThreadAvatar from '../../avatars/edit-thread-avatar.react.js';
 import { useStyles } from '../../themes/colors.js';
 
 type Props = {
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
   +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
@@ -3,7 +3,7 @@
 import * as React from 'react';
 import { Text, View } from 'react-native';
 
-import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
+import type { ResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 
 import type { ThreadSettingsNavigate } from './thread-settings.react.js';
 import Button from '../../components/button.react.js';
@@ -12,7 +12,7 @@
 import type { ViewStyle } from '../../types/styles.js';
 
 type Props = {
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
   +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
@@ -15,7 +15,7 @@
 } from 'lib/actions/thread-actions.js';
 import { createLoadingStatusSelector } from 'lib/selectors/loading-selectors.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/minimally-encoded-thread-permissions-types.js';
 import type {
   ChangeThreadSettingsPayload,
   UpdateThreadRequest,
@@ -61,7 +61,7 @@
 };
 
 type BaseProps = {
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
   +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
@@ -34,7 +34,7 @@
 } from 'lib/shared/thread-utils.js';
 import threadWatcher from 'lib/shared/thread-watcher.js';
 import type {
-  MinimallyEncodedResolvedThreadInfo,
+  ResolvedThreadInfo,
   ThreadInfo,
 } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import type { RelationshipButton } from 'lib/types/relationship-types.js';
@@ -136,20 +136,20 @@
   | {
       +itemType: 'avatar',
       +key: string,
-      +threadInfo: MinimallyEncodedResolvedThreadInfo,
+      +threadInfo: ResolvedThreadInfo,
       +canChangeSettings: boolean,
     }
   | {
       +itemType: 'name',
       +key: string,
-      +threadInfo: MinimallyEncodedResolvedThreadInfo,
+      +threadInfo: ResolvedThreadInfo,
       +nameEditValue: ?string,
       +canChangeSettings: boolean,
     }
   | {
       +itemType: 'color',
       +key: string,
-      +threadInfo: MinimallyEncodedResolvedThreadInfo,
+      +threadInfo: ResolvedThreadInfo,
       +colorEditValue: string,
       +canChangeSettings: boolean,
       +navigate: ThreadSettingsNavigate,
@@ -158,7 +158,7 @@
   | {
       +itemType: 'description',
       +key: string,
-      +threadInfo: MinimallyEncodedResolvedThreadInfo,
+      +threadInfo: ResolvedThreadInfo,
       +descriptionEditValue: ?string,
       +descriptionTextHeight: ?number,
       +canChangeSettings: boolean,
@@ -166,23 +166,23 @@
   | {
       +itemType: 'parent',
       +key: string,
-      +threadInfo: MinimallyEncodedResolvedThreadInfo,
-      +parentThreadInfo: ?MinimallyEncodedResolvedThreadInfo,
+      +threadInfo: ResolvedThreadInfo,
+      +parentThreadInfo: ?ResolvedThreadInfo,
     }
   | {
       +itemType: 'visibility',
       +key: string,
-      +threadInfo: MinimallyEncodedResolvedThreadInfo,
+      +threadInfo: ResolvedThreadInfo,
     }
   | {
       +itemType: 'pushNotifs',
       +key: string,
-      +threadInfo: MinimallyEncodedResolvedThreadInfo,
+      +threadInfo: ResolvedThreadInfo,
     }
   | {
       +itemType: 'homeNotifs',
       +key: string,
-      +threadInfo: MinimallyEncodedResolvedThreadInfo,
+      +threadInfo: ResolvedThreadInfo,
     }
   | {
       +itemType: 'seeMore',
@@ -192,7 +192,7 @@
   | {
       +itemType: 'childThread',
       +key: string,
-      +threadInfo: MinimallyEncodedResolvedThreadInfo,
+      +threadInfo: ResolvedThreadInfo,
       +firstListItem: boolean,
       +lastListItem: boolean,
     }
@@ -204,7 +204,7 @@
       +itemType: 'member',
       +key: string,
       +memberInfo: RelativeMemberInfo,
-      +threadInfo: MinimallyEncodedResolvedThreadInfo,
+      +threadInfo: ResolvedThreadInfo,
       +canEdit: boolean,
       +navigate: ThreadSettingsNavigate,
       +firstListItem: boolean,
@@ -226,14 +226,14 @@
   | {
       +itemType: 'promoteSidebar' | 'leaveThread' | 'deleteThread',
       +key: string,
-      +threadInfo: MinimallyEncodedResolvedThreadInfo,
+      +threadInfo: ResolvedThreadInfo,
       +navigate: ThreadSettingsNavigate,
       +buttonStyle: ViewStyle,
     }
   | {
       +itemType: 'editRelationship',
       +key: string,
-      +threadInfo: MinimallyEncodedResolvedThreadInfo,
+      +threadInfo: ResolvedThreadInfo,
       +navigate: ThreadSettingsNavigate,
       +buttonStyle: ViewStyle,
       +relationshipButton: RelationshipButton,
@@ -265,9 +265,9 @@
   // Redux state
   +userInfos: UserInfos,
   +viewerID: ?string,
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
-  +parentThreadInfo: ?MinimallyEncodedResolvedThreadInfo,
-  +childThreadInfos: ?$ReadOnlyArray<MinimallyEncodedResolvedThreadInfo>,
+  +threadInfo: ResolvedThreadInfo,
+  +parentThreadInfo: ?ResolvedThreadInfo,
+  +childThreadInfos: ?$ReadOnlyArray<ResolvedThreadInfo>,
   +somethingIsSaving: boolean,
   +styles: $ReadOnly<typeof unboundStyles>,
   +indicatorStyle: IndicatorStyle,
@@ -345,8 +345,8 @@
       (propsAndState: PropsAndState) => propsAndState.navigation.navigate,
       (propsAndState: PropsAndState) => propsAndState.route.key,
       (
-        threadInfo: MinimallyEncodedResolvedThreadInfo,
-        parentThreadInfo: ?MinimallyEncodedResolvedThreadInfo,
+        threadInfo: ResolvedThreadInfo,
+        parentThreadInfo: ?ResolvedThreadInfo,
         nameEditValue: ?string,
         colorEditValue: string,
         descriptionEditValue: ?string,
@@ -501,9 +501,9 @@
       (propsAndState: PropsAndState) => propsAndState.childThreadInfos,
       (propsAndState: PropsAndState) => propsAndState.numSubchannelsShowing,
       (
-        threadInfo: MinimallyEncodedResolvedThreadInfo,
+        threadInfo: ResolvedThreadInfo,
         navigate: ThreadSettingsNavigate,
-        childThreads: ?$ReadOnlyArray<MinimallyEncodedResolvedThreadInfo>,
+        childThreads: ?$ReadOnlyArray<ResolvedThreadInfo>,
         numSubchannelsShowing: number,
       ) => {
         const listData: ChatSettingsItem[] = [];
@@ -568,7 +568,7 @@
       (propsAndState: PropsAndState) => propsAndState.numSidebarsShowing,
       (
         navigate: ThreadSettingsNavigate,
-        childThreads: ?$ReadOnlyArray<MinimallyEncodedResolvedThreadInfo>,
+        childThreads: ?$ReadOnlyArray<ResolvedThreadInfo>,
         numSidebarsShowing: number,
       ) => {
         const listData: ChatSettingsItem[] = [];
@@ -627,7 +627,7 @@
       (propsAndState: PropsAndState) => propsAndState.numMembersShowing,
       (propsAndState: PropsAndState) => propsAndState.verticalBounds,
       (
-        threadInfo: MinimallyEncodedResolvedThreadInfo,
+        threadInfo: ResolvedThreadInfo,
         canStartEditing: boolean,
         navigate: ThreadSettingsNavigate,
         routeKey: string,
@@ -737,8 +737,8 @@
       (propsAndState: PropsAndState) => propsAndState.userInfos,
       (propsAndState: PropsAndState) => propsAndState.viewerID,
       (
-        threadInfo: MinimallyEncodedResolvedThreadInfo,
-        parentThreadInfo: ?MinimallyEncodedResolvedThreadInfo,
+        threadInfo: ResolvedThreadInfo,
+        parentThreadInfo: ?ResolvedThreadInfo,
         navigate: ThreadSettingsNavigate,
         styles: $ReadOnly<typeof unboundStyles>,
         userInfos: UserInfos,
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,7 @@
 import * as React from 'react';
 
 import type {
-  MinimallyEncodedResolvedThreadInfo,
+  ResolvedThreadInfo,
   ThreadInfo,
 } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import { useResolvedThreadInfo } from 'lib/utils/entity-helpers.js';
@@ -40,7 +40,7 @@
 };
 type Props = {
   ...SharedProps,
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
   +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 { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
+import type { ResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-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: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
   +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
@@ -34,7 +34,7 @@
   type CalendarQuery,
 } 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/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 { dateString } from 'lib/utils/date-utils.js';
@@ -64,7 +64,7 @@
 };
 type Props = {
   ...BaseProps,
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
   +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
@@ -2,13 +2,13 @@
 
 import * as React from 'react';
 
-import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
+import type { ResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 
 import css from './markdown.css';
 import { useOnClickThread } from '../selectors/thread-selectors.js';
 
 type MarkdownChatMentionProps = {
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
   +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
@@ -20,7 +20,7 @@
   type RestoreEntryPayload,
 } 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/minimally-encoded-thread-permissions-types.js';
 import type { UserInfo } from 'lib/types/user-types.js';
 import { useResolvedThreadInfo } from 'lib/utils/entity-helpers.js';
 import {
@@ -40,7 +40,7 @@
 };
 type Props = {
   ...BaseProps,
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
   +loggedIn: boolean,
   +restoreLoadingStatus: LoadingStatus,
   +calendarQuery: () => CalendarQuery,
diff --git a/web/navigation-sidebar/community-list-item.react.js b/web/navigation-sidebar/community-list-item.react.js
--- a/web/navigation-sidebar/community-list-item.react.js
+++ b/web/navigation-sidebar/community-list-item.react.js
@@ -3,7 +3,7 @@
 import * as React from 'react';
 
 import { unreadCountSelectorForCommunity } from 'lib/selectors/thread-selectors.js';
-import type { MinimallyEncodedResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
+import type { ResolvedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 
 import css from './community-list-item.css';
 import { navigationSidebarLabelTooltipMargin } from './navigation-sidebar-constants.js';
@@ -14,7 +14,7 @@
 import { tooltipPositions } from '../tooltips/tooltip-utils.js';
 
 type Props = {
-  +threadInfo: MinimallyEncodedResolvedThreadInfo,
+  +threadInfo: ResolvedThreadInfo,
 };
 
 function CommunityListItem(props: Props): React.Node {