Skip to content

Conversation

r-4bb1t
Copy link
Contributor

@r-4bb1t r-4bb1t commented Aug 15, 2025

Summary

Add --timeout option to fedify lookup command.

Related Issue

Changes

  • added --timeout option to fedify lookup command to set network request time limits
  • added unit tests for functionality

Benefits

  • users can now specify request timeouts for fedify lookup command to prevent indefinite waits on slow or unresponsive servers.

Checklist

  • Did you add a changelog entry to the CHANGES.md?
  • Did you write some relevant docs about this change (if it's a new feature)?
  • Did you write a regression test to reproduce the bug (if it's a bug fix)?
  • Did you write some tests for this change (if it's a new feature)?
  • Did you run deno task test-all on your machine?

Additional Notes

Include any other information, context, or considerations.

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.

Summary of Changes

Hello @r-4bb1t, 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 introduces a new --timeout option to the fedify lookup command, allowing users to specify a time limit for network requests. This enhancement prevents the command from hanging indefinitely when connecting to slow or unresponsive servers, significantly improving user experience and command reliability. The changes include the implementation of a robust timeout mechanism using AbortSignal and improved error handling for network operations.

Highlights

  • New --timeout option: The fedify lookup command now supports a --timeout option, enabling users to set a maximum duration for network requests, preventing indefinite waits.
  • Timeout mechanism implementation: New utility functions, createTimeoutSignal and clearTimeoutSignal, have been implemented to manage AbortSignal instances for controlling network request timeouts.
  • Improved error handling: Error handling for network operations has been enhanced to gracefully manage and report timeout-related failures, providing user-friendly messages and suggestions.
  • New unit tests: Comprehensive unit tests have been added to validate the functionality of the new timeout signal creation and clearing mechanisms, ensuring reliability.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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.

@github-actions github-actions bot added component/cli CLI tools related difficulty/beginner Beginner friendly priority/low Low priority issues type/enhancement Improvements to existing features labels Aug 15, 2025
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 introduces a --timeout option to the fedify lookup command, which is a valuable addition for handling slow network requests. The implementation correctly adds the command-line option and uses an AbortSignal for timeouts. The unit tests for the new timeout logic are also well-written. However, I've identified a potential resource leak where the timeout timer isn't cleared if a request completes before the timeout occurs. Additionally, there's some duplicated error handling logic that could be refactored for better maintainability. Addressing these points will make the new feature more robust.

@r-4bb1t r-4bb1t force-pushed the feat/258-add-timeout-to-lookup branch from 11344dd to 4eda72b Compare August 15, 2025 05:44
@dahlia
Copy link
Member

dahlia commented Aug 15, 2025

The build fails, but it's not due to you. Could you rebase your commits on the latest main branch? The build was fixed there.

@r-4bb1t r-4bb1t force-pushed the feat/258-add-timeout-to-lookup branch from 5cafca6 to 04b893e Compare August 15, 2025 09:02
Copy link
Member

@dahlia dahlia left a comment

Choose a reason for hiding this comment

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

Looks fine in general. Left few trivial comments.

@r-4bb1t r-4bb1t force-pushed the feat/258-add-timeout-to-lookup branch from 04b893e to 978f429 Compare August 15, 2025 09:18
Copy link
Contributor

github-actions bot commented Aug 15, 2025

The docs for this pull request have been published:

https://62dd9417.fedify.pages.dev

Copy link
Contributor

The latest push to this pull request has been published to JSR and npm as a pre-release:

Package Version JSR npm
@fedify/fedify 1.9.0-pr.372.1384+978f4295 JSR npm
@fedify/cli 1.9.0-pr.372.1384+978f4295 JSR
@fedify/amqp 1.9.0-pr.372.1384+978f4295 JSR npm
@fedify/elysia 1.9.0-pr.372.1384+978f4295 npm
@fedify/express 1.9.0-pr.372.1384+978f4295 JSR npm
@fedify/h3 1.9.0-pr.372.1384+978f4295 JSR npm
@fedify/nestjs 1.9.0-pr.372.1384+978f4295 npm
@fedify/next 1.9.0-pr.372.1384+978f4295 npm
@fedify/postgres 1.9.0-pr.372.1384+978f4295 JSR npm
@fedify/redis 1.9.0-pr.372.1384+978f4295 JSR npm
@fedify/sqlite 1.9.0-pr.372.1384+978f4295 JSR npm
@fedify/testing 1.9.0-pr.372.1384+978f4295 JSR npm

@r-4bb1t r-4bb1t requested a review from dahlia August 15, 2025 09:58
@dahlia dahlia merged commit aa466d0 into fedify-dev:main Aug 15, 2025
9 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/cli CLI tools related difficulty/beginner Beginner friendly priority/low Low priority issues type/enhancement Improvements to existing features
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add --timeout option to fedify lookup command
2 participants