IGPAPI
    Preparing search index...

    Variable DirectInboxScreenConst

    DirectInboxScreen: ScreenDefinition<
        "DirectInbox",
        "tab",
        undefined,
        {
            seq_id: number;
            threads: readonly {
                is_group: boolean;
                last_activity_at: string;
                muted: boolean;
                preview: readonly {
                    item_id: string;
                    item_type: string;
                    media?: | {
                        height: number;
                        media_type: 1;
                        pk: string;
                        url: string;
                        width: number;
                    }
                    | {
                        height: number;
                        media_type: 2;
                        pk: string;
                        url: string;
                        width: number;
                    }
                    | {
                        media_type: 8;
                        pk: string;
                        slides: readonly { media_type: (...)
                        | (...); pk: string; url: string }[];
                    };
                    text?: string;
                    timestamp: string;
                    user_id: string;
                }[];
                thread_id: string;
                thread_title: string;
                thread_v2_id: string;
                users: readonly { full_name: string; pk: string; username: string }[];
            }[];
        },
        { seq_id: number },

            | IgApiError
            | RequestError
            | ParseError
            | TransportError
            | InvalidSkipOrdinalsError
            | ScreenEnterNavigationError,
        PlainJsonApiHttp
        | MobileApplication
        | MobileNavigation,
        {
            openNewMessage: (
                self: ScreenHandle,
                state: { seq_id: number },
            ) => ScreenEdgeBound<
                ScreenEdgeShape<
                    ScreenDefinition<
                        "DirectRecipientPicker",
                        "screen",
                        { seq_id: number },
                        {
                            recipients: readonly {
                                full_name: string;
                                pk: string;
                                seq_id: number;
                                username: string;
                            }[];
                        },
                        { seq_id: number },

                            | IgCheckpointError
                            | IgAccountSuspendedError
                            | IgAccountDisabledError
                            | IgLoginRequiredError
                            | IgUserLoggedOutError
                            | InvalidSkipOrdinalsError
                            | ScreenEnterNavigationError,
                        GraphqlJsonHttp
                        | MobileApplication
                        | MobileNavigation,
                        {
                            search: (
                                self: ScreenHandle,
                                state: { seq_id: number },
                            ) => (
                                ...args: [query: string],
                            ) => Effect<
                                readonly (...)[],
                                (...) | (...) | (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...),
                            >;
                        },
                        {
                            recipients: {
                                at: "recipients";
                                item: ScreenItemDefinition<
                                    "DirectRecipient",
                                    { full_name: string; pk: string; seq_id: number; username: string },
                                    { full_name: string; pk: string; seq_id: number; username: string },
                                    { seq_id: number; userId: string },
                                    never,
                                    never,
                                    { openThread: (self: ..., state: ...) => ... },
                                >;
                                key: "pk";
                            };
                        },
                        never,
                    >,
                    [],
                >,
                (
                    ...args: [],
                ) => Effect<
                    AssembledHandle<
                        "DirectRecipientPicker",
                        "screen",
                        {
                            recipients: readonly {
                                full_name: string;
                                pk: string;
                                seq_id: number;
                                username: string;
                            }[];
                        },
                        {
                            search: (
                                self: ScreenHandle,
                                state: { seq_id: number },
                            ) => (...args: [query: ...]) => Effect<(...), (...), (...)>;
                        },
                        {
                            recipients: {
                                at: "recipients";
                                item: ScreenItemDefinition<
                                    "DirectRecipient",
                                    { full_name: ...; pk: ...; seq_id: ...; username: ... },
                                    { full_name: ...; pk: ...; seq_id: ...; username: ... },
                                    { seq_id: ...; userId: ... },
                                    never,
                                    never,
                                    { openThread: ... },
                                >;
                                key: "pk";
                            };
                        },
                        ScreenHandle,
                        "required",
                    >,
                    | IgCheckpointError
                    | IgAccountSuspendedError
                    | IgAccountDisabledError
                    | IgLoginRequiredError
                    | IgUserLoggedOutError
                    | InvalidSkipOrdinalsError
                    | ScreenDataError
                    | ScreenEnterNavigationError
                    | ScreenEnterConcurrentError
                    | ScreenNotOnTopError
                    | ScreenEdgeInputError,
                >,
            >;
        },
        {
            threads: {
                at: "threads";
                item: ScreenItemDefinition<
                    "DirectInboxThread",
                    {
                        is_group: boolean;
                        last_activity_at: string;
                        muted: boolean;
                        preview: readonly {
                            item_id: string;
                            item_type: string;
                            media?: | {
                                height: number;
                                media_type: 1;
                                pk: string;
                                url: string;
                                width: number;
                            }
                            | {
                                height: number;
                                media_type: 2;
                                pk: string;
                                url: string;
                                width: number;
                            }
                            | {
                                media_type: 8;
                                pk: string;
                                slides: readonly { media_type: ...; pk: ...; url: ... }[];
                            };
                            text?: string;
                            timestamp: string;
                            user_id: string;
                        }[];
                        thread_id: string;
                        thread_title: string;
                        thread_v2_id: string;
                        users: readonly { full_name: string; pk: string; username: string }[];
                    },
                    {
                        is_group: boolean;
                        last_activity_at: string;
                        muted: boolean;
                        preview: readonly {
                            item_id: string;
                            item_type: string;
                            media?: | {
                                height: number;
                                media_type: 1;
                                pk: string;
                                url: string;
                                width: number;
                            }
                            | {
                                height: number;
                                media_type: 2;
                                pk: string;
                                url: string;
                                width: number;
                            }
                            | {
                                media_type: 8;
                                pk: string;
                                slides: readonly { media_type: ...; pk: ...; url: ... }[];
                            };
                            text?: string;
                            timestamp: string;
                            user_id: string;
                        }[];
                        thread_id: string;
                        thread_title: string;
                        thread_v2_id: string;
                        users: readonly { full_name: string; pk: string; username: string }[];
                    },
                    { peerUserIds: string[]; thread_id: string; thread_v2_id: string },
                    never,
                    never,
                    {
                        open: (
                            self: ScreenHandle,
                            state: {
                                peerUserIds: readonly string[];
                                thread_id: string;
                                thread_v2_id: string;
                            },
                        ) => ScreenEdgeBound<
                            ScreenEdgeShape<
                                ScreenDefinition<
                                    "DirectThread",
                                    "screen",
                                    | {
                                        kind: ...;
                                        peerUserIds: ...;
                                        send_attribution?: ...;
                                        thread_id: ...;
                                        thread_v2_id: ...;
                                    }
                                    | { kind: ...; recipient: ...; send_attribution?: ...; seq_id: ... },
                                    {
                                        media: readonly (...)[];
                                        messages: readonly (...)[];
                                        thread: (...) | (...);
                                        users: readonly (...)[];
                                    },
                                    unknown,
                                    unknown,
                                    unknown,
                                    {
                                        openCustomizeChat: (self: ..., state: ...) => ...;
                                        openThreadDetails: (self: ..., state: ...) => ...;
                                        sendMessage: (self: ..., state: ...) => ...;
                                    },
                                    {
                                        media: { at: ...; by: ...; key: ...; variants: ... };
                                        messages: { at: ...; item: ...; key: ... };
                                        participants: { at: ...; item: ...; key: ... };
                                    },
                                    never,
                                >,
                                [],
                            >,
                            (
                                ...args: [],
                            ) => Effect<
                                AssembledHandle<
                                    "DirectThread",
                                    "screen",
                                    { media: ...; messages: ...; thread: ...; users: ... },
                                    { openCustomizeChat: ...; openThreadDetails: ...; sendMessage: ... },
                                    { media: ...; messages: ...; participants: ... },
                                    ScreenHandle,
                                    "required",
                                >,
                                unknown,
                            >,
                        >;
                    },
                >;
                key: "thread_v2_id";
            };
        },
        never,
    > = ...

    DirectInboxFragment:direct_inbox, the Direct tab (Android 451). The tab refresh (direct_v2/inbox/) is sent while the previous screen is still in front, then the tab comes to front. The inbox's own extras are not sent: the app's pending-inbox and presence queries are GraphQL calls whose shapes the library has no builder for (the REST bricks send another wire), the app's quick_reply/get form is signed differently from the brick's, and feed/get_latest_reel_media needs tray participants the library does not keep.

    mode is a fact of the presented profile, read by directInboxFeed itself: the 451 profile sends mode=2, the 448 profile sends none.

    The answer's seq_id is kept, and it is required: the app's "New message" flow reports it as the participant lookup's seq_id (the group-creation recording's lookup sends the inbox answer's sequence), and openNewMessage hands it to the picker. A snapshot without one is not an inbox answer and fails the data check; no fallback number stands in for it.