Skip to content

Conversation

@r-4bb1t
Copy link
Contributor

@r-4bb1t r-4bb1t commented Jul 20, 2025

Summary

Add AbortSignal to fedify lookup.

Related Issue

Changes

  • modified lookupWebFinger to accept an optional signal parameter of type AbortSignal
  • added request cancellation handling using AbortSignal in lookupWebFinger
  • added test cases in lookupObject to cover request cancellation scenarios

Benefits

  • allows canceling lookupWebFinger requests
  • prepares for future support of --timeout option in the fedify lookup command

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?

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 the capability to cancel lookupWebFinger and lookupObject requests by integrating AbortSignal support. This enhancement provides better control over potentially long-running lookups and serves as a foundational step for implementing future timeout functionalities within the fedify lookup command.

Highlights

  • Request Cancellation: Implemented AbortSignal support in both lookupWebFinger and lookupObject functions, enabling callers to cancel ongoing network requests.
  • API Enhancement: The LookupWebFingerOptions and LookupObjectOptions interfaces have been extended to include an optional signal property, allowing an AbortSignal to be passed for request control.
  • Comprehensive Testing: New test cases have been added for both lookupObject and lookupWebFinger to thoroughly validate various cancellation scenarios, including immediate aborts, cancellation during active requests, and successful requests with an AbortSignal.
  • Changelog Update: The CHANGES.md file has been updated to document the new AbortSignal support for lookupWebFinger().
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 is currently in preview and 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 to provide feedback.

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/webfinger WebFinger related status/in progress In progress type/enhancement Improvements to existing features labels Jul 20, 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 cancellation support to lookupWebFinger and lookupObject. The cancellation is only partially implemented for lookupObject because the subsequent document loading via documentLoader is not cancellable. I've suggested adding a test case to cover this missing scenario.

@r-4bb1t r-4bb1t marked this pull request as draft July 20, 2025 12:37
@github-actions
Copy link
Contributor

github-actions bot commented Jul 20, 2025

The docs for this pull request have been published:

https://b0adef85.fedify.pages.dev

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.

You should add a signal option to the GetNodeInfoOptions interface as well. See also fedify/nodeinfo/client.ts.

@r-4bb1t r-4bb1t force-pushed the feat/51-use-signal-in-lookup branch from 6219e63 to 7aa5e14 Compare August 3, 2025 04:01
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.

You need to get rid of every file under fedify/ directory.

@r-4bb1t r-4bb1t force-pushed the feat/51-use-signal-in-lookup branch 2 times, most recently from 37d811f to d2f15e5 Compare August 3, 2025 06:03
@r-4bb1t r-4bb1t requested a review from dahlia August 3, 2025 06:25
@r-4bb1t r-4bb1t marked this pull request as ready for review August 3, 2025 06:26
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.

I think you also need to add signal?: AbortSignal field to the DoubleKnockOptions interface.

https://github.com/fedify-dev/fedify/blob/main/packages/fedify/src/sig/http.ts#L1217-L1240

@r-4bb1t r-4bb1t force-pushed the feat/51-use-signal-in-lookup branch 2 times, most recently from dfd3187 to 31fed91 Compare August 3, 2025 07:49
@r-4bb1t r-4bb1t requested a review from dahlia August 3, 2025 08:25
@r-4bb1t r-4bb1t force-pushed the feat/51-use-signal-in-lookup branch from 71e15b1 to 85fe243 Compare August 3, 2025 08:26
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.

👍

@github-actions
Copy link
Contributor

github-actions bot commented Aug 3, 2025

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.8.1-pr.315.1293+85fe2430 JSR npm
@fedify/cli 1.8.1-pr.315.1293+85fe2430 JSR
@fedify/amqp 1.8.1-pr.315.1293+85fe2430 JSR npm
@fedify/express 1.8.1-pr.315.1293+85fe2430 JSR npm
@fedify/h3 1.8.1-pr.315.1293+85fe2430 JSR npm
@fedify/nestjs 1.8.1-pr.315.1293+85fe2430 npm
@fedify/postgres 1.8.1-pr.315.1293+85fe2430 JSR npm
@fedify/redis 1.8.1-pr.315.1293+85fe2430 JSR npm
@fedify/sqlite 1.8.1-pr.315.1293+85fe2430 JSR npm
@fedify/testing 1.8.1-pr.315.1293+85fe2430 JSR npm

@dahlia dahlia merged commit 2250de9 into fedify-dev:main Aug 3, 2025
17 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component/webfinger WebFinger related status/in progress In progress type/enhancement Improvements to existing features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Utilize AbortController (Request.signal) for APIs that make outgoing requests

2 participants