def retrieve_feedback_results(
        self, record_ids: Optional[List[str]] = None, timeout: float = 180
    ) -> pd.DataFrame:
        """Retrieve feedback results for all records in the app.

        Args:
            record_ids: List of record ids to retrieve feedback results for. If
                None, retrieves whatever results are available now.
            timeout: Timeout in seconds to wait.

        Returns:
            A dataframe with records as rows and feedbacks as columns.
        """
        TruSession().force_flush()
        if record_ids is not None:
            TruSession().wait_for_records(
                record_ids=record_ids, timeout=timeout
            )
            self._evaluator.compute_now(record_ids)
        records_df, feedback_cols = TruSession().get_records_and_feedback(
            record_ids=record_ids
        )
        records_df.set_index("record_id", inplace=True)
        return records_df[feedback_cols]
Retrieve feedback results for all records in the app.

        Args:
            record_ids: List of record ids to retrieve feedback results for. If
                None, retrieves whatever results are available now.
            timeout: Timeout in seconds to wait.

        Returns:
            A dataframe with records as rows and feedbacks as columns.
        
src/core/trulens/core/app.py