Skip to content

Conversation

@safaricd
Copy link
Collaborator

Change Description

We had an issue in telemetry where an exception was raised whenever the script running TabPFN didn't had file-system read access. This was reported by one user via Discord:

Hi, I'm running TabPFN on a machine that doesn't always have access to the home (~) directory, but TabPFN keeps crashing because its telemetry wants to access ~/.config/.tabpfn. I disabled the telemetry using the tag but the error still occurs.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @safaricd, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a critical issue where the telemetry system would cause the application to crash in environments with restricted file system access. By implementing robust error handling around file path resolution and data persistence operations, the changes ensure that the application can gracefully manage scenarios where it cannot access or write to its configuration files, thus improving stability without completely disabling telemetry.

Highlights

  • Robust File Access: Introduced new utility functions (_safe_state_path, _safe_write_data_to_file) to gracefully handle potential exceptions when accessing or writing to the telemetry state file, preventing application crashes due to file system permission issues.
  • Error Handling for State Loading: The load_state function now uses _safe_state_path and returns a default empty state if the state file path cannot be determined or accessed, ensuring the application doesn't crash on startup in restricted environments.
  • Error Handling for State Saving: The save_state function now also uses _safe_state_path and wraps the write operation in a try-except block, silently ignoring any errors during the saving process to prevent crashes when file writing is not permitted.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request addresses an issue where the application would crash if it lacked file-system access to the telemetry state directory. The fix involves wrapping file system operations in try...except blocks to silently handle errors, preventing crashes. The changes are logical and correctly solve the reported problem. I've added a couple of suggestions to use more specific exception handlers instead of the broad except Exception, which will make the code more robust and easier to debug in the future.

Copy link
Contributor

@brendan-priorlabs brendan-priorlabs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. No access to the homedir is a new one for me!

@safaricd safaricd merged commit c2e13fd into main Nov 13, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants