Skip to content

Fedify 2.0.17

Choose a tag to compare

@github-actions github-actions released this 15 May 11:43
· 1442 commits to main since this release
2.0.17
9269940

Released on May 15, 2026.

@fedify/fedify

  • Fixed doubleKnock() so transient transport failures such as DNS hiccups no longer leak raw TypeErrors. Idempotent authenticated document fetches are retried once, and remaining transport failures are reported as FetchError with the original error as the cause. [#762, #763]

  • Fixed a TypeError thrown when Activity Vocabulary constructors received a Temporal.Instant or Temporal.Duration produced by an implementation other than the bundled @js-temporal/polyfill (for example, the native Temporal shipped with Node.js 26+). Internal instanceof checks have been replaced with Symbol.toStringTag-based guards so any spec-conformant Temporal value is accepted. Generated *.d.ts declarations no longer import from @js-temporal/polyfill; they reference the ambient Temporal namespace through the esnext.temporal lib instead, which removes the nominal mismatch with native Temporal types. TypeScript 6.0 or later is required to consume the type declarations. [#767, #768]

@fedify/vocab-runtime

  • Added isTemporalInstant() and isTemporalDuration() type guards that accept both polyfill and native Temporal values via Symbol.toStringTag. [#767, #768]

  • Added the @fedify/vocab-runtime/temporal subpath export so consumers can import the new Temporal type guards without pulling in the rest of the runtime. [#767, #768]

@fedify/postgres

  • Generated *.d.ts declarations no longer import from @js-temporal/polyfill; they reference the ambient Temporal namespace through the esnext.temporal lib instead, so pollInterval and handlerTimeout accept native Temporal.Duration values from Node.js 26+ without a nominal type mismatch. TypeScript 6.0 or later is required to consume the type declarations. [#767, #768]

@fedify/redis

  • Generated *.d.ts declarations no longer import from @js-temporal/polyfill; they reference the ambient Temporal namespace through the esnext.temporal lib instead, so pollInterval accepts native Temporal.Duration values from Node.js 26+ without a nominal type mismatch. TypeScript 6.0 or later is required to consume the type declarations. [#767, #768]

@fedify/sqlite

  • Generated *.d.ts declarations no longer import from @js-temporal/polyfill; they reference the ambient Temporal namespace through the esnext.temporal lib instead, so pollInterval accepts native Temporal.Duration values from Node.js 26+ without a nominal type mismatch. TypeScript 6.0 or later is required to consume the type declarations. [#767, #768]