洪 民憙 (Hong Minhee) :nonbinary:'s avatar

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,107 following1,898 followers

An intersectionalist, feminist, and socialist living in Seoul (UTC+09:00). @tokolovesme's spouse. Who's behind @fedify, @hollo, and @botkit. Write some free software in , , , & . They/them.

서울에 사는 交叉女性主義者이자 社會主義者. 金剛兔(@tokolovesme)의 配偶者. @fedify, @hollo, @botkit 메인테이너. , , , 等으로 自由 소프트웨어 만듦.

()

Pinned

@hongminhee@hollo.social

Hello! I'm Hong Minhee (洪 民憙), an open source software engineer in my late 30s, living in Seoul, Korea. I'm bisexual and non-binary (they/them), and an enthusiastic advocate of free/open source software and the fediverse.

I work full-time on @fedify, an ActivityPub server framework in TypeScript, funded by @sovtechfund. I'm also the creator of @hollo, a single-user ActivityPub microblog; @botkit, an ActivityPub bot framework; Hackers' Pub, a fediverse platform for software developers; and LogTape, a logging library for JavaScript and TypeScript.

I have a long interest in East Asian languages (CJK) and Unicode. I post mostly in English here, though occasionally in Japanese or in mixed-script Korean (國漢文混用體), a traditional writing style that interleaves Chinese characters with the native Korean alphabet. Wanting to write in that style was actually one of the reasons I joined the fediverse. Feel free to talk to me in English, Korean, Japanese, or even Literary Chinese!

en.wikipedia.org

Korean mixed script - Wikipedia

Pinned

はじめまして!ソウル在住の30代後半のオープンソースソフトウェアエンジニア、洪 民憙ホン・ミンヒと申します。バイセクシュアル(bisexual)・ノンバイナリー(non-binary)で、自由・オープンソースソフトウェア(F/OSS)とフェディバース(fediverse)の熱烈な支持者です。

STF(@sovtechfund)の支援を受け、TypeScript用ActivityPubサーバーフレームワーク「@fedify」の開発に専念しています。他にも、おひとり様向けのActivityPubマイクロブログ「@hollo」、ActivityPubボットフレームワーク「@botkit」、ソフトウェア開発者向けフェディバースプラットフォームHackers' Pub、JavaScript・TypeScript用ロギングライブラリLogTapeなどの制作者でもあります。

東アジア言語(いわゆるCJK)とUnicodeにも興味があります。このアカウントでは主に英語で投稿していますが、時々日本語や国漢文混用体(漢字ハングル混じり文)の韓国語でも書いています。実はこの文体で書きたくてフェディバースを始めた、という経緯もあります。日本語、英語、韓国語、漢文でも気軽に話しかけてください!

speakerdeck.com

国漢文混用体からHolloまで

本発表では、韓国語の「国漢文混用体」(漢字ハングル混じり文)を自分のフェディバース投稿に実装したいという小さな目標から始まった旅路を共有します。 この目標を達成するために、ActivityPubのJSON-LDの複雑さやHTTP Signatures、WebFingerなどの仕様を理解する必要性に…

Pinned

安寧(안녕)하세요! 저는 서울에 살고 있는 30() 後半(후반)의 오픈 소스 소프트웨어 엔지니어 洪民憙(홍민희)입니다. 兩性愛者(양성애자)(bisexual)이자 논바이너리(non-binary)이며, 自由(자유)·오픈 소스 소프트웨어(F/OSS)와 聯合宇宙(연합우주)(fediverse)의 熱烈(열렬)支持者(지지자)이기도 합니다.

STF(@sovtechfund)의 支援(지원)을 받아 TypeScript() ActivityPub 서버 프레임워크 @fedify 開發(개발)專業(전업)으로 ()하고 있습니다. 그 ()에도 싱글 유저() ActivityPub 마이크로블로그 @hollo, ActivityPub 봇 프레임워크 @botkit, 소프트웨어 開發者(개발자)를 위한 聯合宇宙(연합우주) 플랫폼 Hackers' Pub, JavaScript·TypeScript() 로깅 라이브러리 LogTape ()製作者(제작자)이기도 합니다.

()아시아 言語(언어)(이른바 CJK)와 Unicode에도 關心(관심)이 많습니다. 이 計定(계정)에서는 ()英語(영어)로 포스팅하지만, 때때로 日本語(일본어)國漢文混用體(국한문 혼용체) 韓國語(한국어)로도 씁니다. 聯合宇宙(연합우주)에 오게 된 動機(동기) () 하나가 바로 國漢文混用體(국한문 혼용체)로 글을 쓰고 싶었기 때문이기도 하고요. 韓國語(한국어), 英語(영어), 日本語(일본어), 아니면 漢文(한문)으로도 말을 걸어주세요!

logtape.org

LogTape

Unobtrusive logging library with zero dependencies—library-first design for Deno, Node.js, Bun, browsers, and edge functions

‘앞/전’과 ‘뒤/후’의 비대칭성은 한국어 학습자들에게 지옥을 선사할 것이다.

참고로 이거 다 국립국어원의 잘못이 아니라 한국어의 잘못임. 이건 표준국어대사전이 그냥 현실을 반영했을 뿐이다. 즉 이 글을 읽고 있는 당신도 0.000001% 정도 잘못이 있다.

- ‘앞일’은 미래인데(예: 앞일을 예측하다), ‘뒷일’도 미래다(예: 뒷일을 부탁하네). 맞죠?

- 마찬가지로, ‘앞길’은 미래다(예: 앞길이 창창한 젊은이). 그런데 ‘뒷길’도 미래다(예: 자식의 뒷길을 생각하면 걱정이 앞선다).

- ‘뒷날’도 미래고(예: 우리는 뒷날 또 만나게 되었다), ‘훗날’도 미래다(예: 훗날을 기약하다). 그런데 ‘앞날’도 미래다(예: 앞날이 창창하다). 희한하게 ‘전날’만 과거이다.

- 그런데 ‘앞날’은
간혹 과거를 가리킬 수도 있다(예: 일찍이 앞날의 폭군은 있었고…).

- 관형사형에 ‘뒤’나 ‘후’를 붙여서 시점을 나타낼 수 있다(예: “고친 뒤의 모습” 또는 “고친 후의 모습”). 그런데 반대로 하려면 관형사형이 아니라 명사형을 써야 한다(예: “고치기 전의 모습”). 그리고, ‘전’만 쓸 수 있다. ‘앞’은 여기서 아예 쓸 수 없다.

- ‘후일’은 미래의 아무 날이나 다 가리키며, 특정한 날을 가리킬 수 없다. 반면 ‘전일’은 직전, 즉 인접한 과거의 1일만 가리킨다.

- 그런데 또 ‘전날’은 인접한 과거의 1일을 가리킬 수도 있고, 과거의 아무 날을 가리킬 수도 있다.

- 그런데 또 ‘훗날’은 미래의 아무 날을 뜻하며, 인접한 미래의 1일을 가리킬 수 없다.

- ‘전년’과 ‘후년’은 각각 과거의 아무 해, 또는 미래의 아무 해를 가리킬 수 있다. 대, 대칭인가?!

- 하지만 특정한 해를 가리키는 경우, ‘전년’은 인접한 과거의 해를 가리킨다. 반면 ‘후년’은 ‘올해의 다음다음 해’이다.

- …뭐라고? 왜냐하면 미래의 해들은 순서대로 ‘내년’-‘후년’-‘내후년’이기 때문이다. 책상 엎어버리고 싶죠?

- 참고로 ‘내후년’은 동음이의어이다. 올해가 2025년이라면 내후년은 2027년을 가리킬 수도 있고 2028년을 가리킬 수도 있다. (이게 언어냐?)

- ‘후년’이 ‘올해의 다음다음 해’가 되는 이 원리는 오직 ‘년’에만 적용된다. 예를 들어 ‘후일’, ‘후주’, ‘후월’ 등에는 그런 의미가 없다.

- ‘후일’은 미래의 아무 날이다. 하지만 ‘후주’와 ‘후월’은 인접한 미래의 것 하나만 가리킨다.

- ‘전년’은 인접한 과거의 해이지만, 과거의 모든 해를 다 가리킬 수도 있다(예: 우리는 전년의 기록들을 검토하여 그 사람의 행적을 조사해 보기로 했다).

- 반면 ‘전일’, ‘전주’, ‘전월’은 오직 인접한 과거의 하나만 가리킬 수 있다.

- ‘전달’과 ‘훗달’도 비대칭이다.

도대체 이걸 어떻게 배워서 쓰라는 것인지. 생각해 보면 나도 실제로 이렇게 쓰고 있다는 것도 기가 찬다.

그밖에:

- ‘지난날’에는 특정한 날을 가리키는 뜻이 전혀 없다. 반면 ‘지난주’, ‘지난달’, ‘지난해’는 모두 과거의 인접한 하나만 가리킨다.

- ‘다음 날’과 ‘다음날’은 의미가 완전히 다르다. ‘다음날’은 ‘정하여지지 아니한 미래의 어떤 날’이다. 따라서 인접한 미래의 1일을 가리킬 때에는 ‘다음 날’만 쓸 수 있다. (도저히 못 외우시겠으면 그냥 ‘이튿날’로 피신하시라…)

주소하니까 생각난 거지만, 한국에서 도로명주소 제대로 적는 건 우체국 외에 없지 않을까. 특히 “〇〇로n(번)길”을 중간에 공백을 삽입해서 “〇〇로␣n(번)길”이라고 적는 건 내노라하는 펌에서 나오는 서면 등에서도 무시로 보임. 도로명주소와 상세주소 사이에 쉼표(,)를 넣지 않는 것도 예사고.

사실 난 전자는 몰라도 후자는 굳이 그렇게 쓰라고 하는 쪽의 문제가 맞다고 보는데, “〇〇로n길 m, x동 y호”보다 그냥 “〇〇로n길 m번 x동 y호”라고 적으라고 하는 게 일반대중이 쉽게 배우고 규격에 맞춰서 잘 적을 거라고 생각함.

@nesroch@mastodon.online

분명 예전에는 일본에서 주소 적을 때 「何町2―3―4」이라고 적고 끝냈던 것 같은데 요즘은 신기하게 「何町2丁目3―4」라고 적는 게 훨씬 보편적이 된 것 같아서, 조금 조사를 해보니까, 보통 우편번호 넣으면 주소 1번 필드에 「〇〇県〇〇市何町」까지는 자동입력되고 쵸메(丁目)와 번지수를 주소 2번 필드에 채워넣는 식으로 주소 입력을 받는데, 그냥 “숫자―숫자―숫자” 식으로 입력하면 엑셀 등에서 그걸 “연-월-일” 포맷으로 인식, 자동변환해 DB가 망가져버리는 경우가 종종 생겨서 그런 상황을 막으려 입력할 때 숫자와 대시만 쓰지 말고 문자를 넣어달라는 사이트가 많이 생기고, 그게 정착한 모양.

솔직하게는 역시 개발자가 제대로 문자열 이스케이프 처리 안 해둔 걸 UX 나빠지게 이용자에게 덮어씌우는 건 만국공통인가 싶은 생각이 들기는 하는데, 어쨌든 이런 디테일한 부분의 관습이 몇 년만에 확 달라지는 걸 보는 건 매우 흥미로운 경험이긴 한 것 같음.

@antfu.me@bsky.brid.gy

Want to fork and rewrite markdown-it for async and TypeScript...

@hongminhee@hackers.pub

Fedify에 꽤 예전 버전부터 존재했던 보안 취약점(CVE-2025-54888)이 어제 저녁에 발견되어서 (Ghost 팀에서 보고해 줬다), 오늘 아침에는 각종 관련 소프트웨어에 모두 보안 패치를 적용하느라 푸닥거리를 엄청 했다.

다 하고 나니까 오전이 사라져 있었다.

hollo.social

All #Fedify users must immedia…

All #Fedify users must immediately update to the latest patched versions. A #critical authentication bypass #vulnerability ([CVE-2025-54888](https://github.com/fedify-dev/fedify/security/advisories/GHSA-6jcc-xgcr-q3h4)) has been discovered in Fedify that allows attackers to impersonate any #ActivityPub actor by sending forged activities signed with their own keys. This vulnerability affects all Fedify instances and enables complete actor impersonation across the federation network. Attackers can send fake posts and messages as any user, create or remove follows as any user, boost and share content as any user, and completely compromise the federation trust model. The vulnerability affects all Fedify instances but does not propagate to other ActivityPub implementations like Mastodon, which properly validate authentication before processing activities. The following versions contain the #security fix: [1.3.20](https://github.com/fedify-dev/fedify/releases/tag/1.3.20), [1.4.13](https://github.com/fedify-dev/fedify/releases/tag/1.4.13), [1.5.5](https://github.com/fedify-dev/fedify/releases/tag/1.5.5), [1.6.8](https://github.com/fedify-dev/fedify/releases/tag/1.6.8), [1.7.9](https://github.com/fedify-dev/fedify/releases/tag/1.7.9), and [1.8.5](https://github.com/fedify-dev/fedify/releases/tag/1.8.5). Users should update immediately using their package manager with commands such as `npm update @fedify/fedify`, `yarn upgrade @fedify/fedify`, `pnpm update @fedify/fedify`, `bun update @fedify/fedify`, or `deno update @fedify/fedify`. After updating, redeploy your application immediately and monitor recent activities for any suspicious content. Please also inform other Fedify operators about this critical update to ensure the security of the entire federation network. The safety and security of our community depends on immediate action. Please update now and feel free to leave comments below if you have any questions. #fedidev

All users must immediately update to the latest patched versions. A authentication bypass (CVE-2025-54888) has been discovered in Fedify that allows attackers to impersonate any actor by sending forged activities signed with their own keys.

This vulnerability affects all Fedify instances and enables complete actor impersonation across the federation network. Attackers can send fake posts and messages as any user, create or remove follows as any user, boost and share content as any user, and completely compromise the federation trust model. The vulnerability affects all Fedify instances but does not propagate to other ActivityPub implementations like Mastodon, which properly validate authentication before processing activities.

The following versions contain the fix: 1.3.20, 1.4.13, 1.5.5, 1.6.8, 1.7.9, and 1.8.5. Users should update immediately using their package manager with commands such as npm update @fedify/fedify, yarn upgrade @fedify/fedify, pnpm update @fedify/fedify, bun update @fedify/fedify, or deno update @fedify/fedify.

After updating, redeploy your application immediately and monitor recent activities for any suspicious content. Please also inform other Fedify operators about this critical update to ensure the security of the entire federation network.

The safety and security of our community depends on immediate action. Please update now and feel free to leave comments below if you have any questions.

Release Fedify 1.8.5 · fedify-dev/fedify

Released on August 8, 2025. @fedify/fedify Fixed a critical authentication bypass vulnerability in the inbox handler that allowed unauthenticated attackers to impersonate any ActivityPub actor. Th...

@botkit@hollo.social

🔒 Security Update for BotKit Users

We've released patch versions BotKit 0.1.2 and 0.2.2 to address CVE-2025-54888, a security discovered in . These updates incorporate the latest patched version of Fedify to ensure your bots remain secure.

We strongly recommend all users update to the latest patch version immediately. Thank you for keeping the safe! 🛡️

github.com

Improper Authentication and Incorrect Authorization in @fedify/fedify

### Summary An authentication bypass vulnerability allows any unauthenticated attacker to impersonate any ActivityPub actor by sending forged activities signed with their own keys. Activities are...

@hollo@hollo.social · Reply to Hollo :hollo:

为了解决底层 Fedify 框架的安全漏洞,我们发布了 Hollo 安全更新。(0.4.120.5.70.6.6)这些更新包含了修复 CVE-2025-54888 的最新 Fedify 安全补丁。

我们强烈建议所有 Hollo 实例管理员尽快更新到相应发布分支的最新版本。

更新方法:

  • Railway 用户:进入项目仪表板,选择您的 Hollo 服务,点击部署中的三点菜单,然后选择"Redeploy"
  • Docker 用户:使用 docker pull ghcr.io/fedify-dev/hollo:latest 拉取最新镜像并重启容器
  • 手动安装用户:运行 git pull 获取最新代码,然后执行 pnpm install 并重启服务

github.com

Improper Authentication and Incorrect Authorization in @fedify/fedify

### Summary An authentication bypass vulnerability allows any unauthenticated attacker to impersonate any ActivityPub actor by sending forged activities signed with their own keys. Activities are...

@hollo@hollo.social · Reply to Hollo :hollo:

Fedifyフレームワークの脆弱性に対処するため、Holloのセキュリティアップデートをリリースしました。(0.4.120.5.70.6.6)これらのアップデートには、CVE-2025-54888を修正する最新のFedifyセキュリティパッチが含まれています。

すべてのHolloインスタンス管理者の皆様には、できるだけ早く該当するリリースブランチの最新バージョンにアップデートしていただくことを強く推奨いたします。

アップデート方法:

  • Railwayユーザー: プロジェクトダッシュボードでHolloサービスを選択し、deploymentsの三点メニューをクリックして「Redeploy」を選択してください
  • Dockerユーザーdocker pull ghcr.io/fedify-dev/hollo:latestで最新イメージを取得し、コンテナを再起動してください
  • 手動インストールユーザーgit pullで最新コードを取得した後、pnpm installを実行してサービスを再起動してください

github.com

Improper Authentication and Incorrect Authorization in @fedify/fedify

### Summary An authentication bypass vulnerability allows any unauthenticated attacker to impersonate any ActivityPub actor by sending forged activities signed with their own keys. Activities are...

@hollo@hollo.social · Reply to Hollo :hollo:

Fedify 프레임워크의 해결하기 위해 보안 업데이트를 릴리스했습니다 (0.4.12, 0.5.7, 0.6.6). 이번 업데이트는 CVE-2025-54888을 수정하는 최신 Fedify 보안 패치를 포함합니다.

모든 Hollo 인스턴스 관리자분들께서는 가능한 한 빨리 해당 릴리스 브랜치의 최신 버전으로 업데이트하시기를 강력히 권장합니다.

업데이트 방법:

  • Railway 사용자: 프로젝트 대시보드에서 Hollo 서비스를 선택하고, deployments의 점 세 개 메뉴를 클릭한 후 “Redeploy”를 선택하세요
  • Docker 사용자: docker pull ghcr.io/fedify-dev/hollo:latest로 최신 이미지를 받고 컨테이너를 재시작하세요
  • 수동 설치 사용자: git pull로 최신 코드를 받은 후 pnpm install을 실행하고 서비스를 재시작하세요

github.com

Improper Authentication and Incorrect Authorization in @fedify/fedify

### Summary An authentication bypass vulnerability allows any unauthenticated attacker to impersonate any ActivityPub actor by sending forged activities signed with their own keys. Activities are...

@hollo@hollo.social

We've released updates for (0.4.12, 0.5.7, and 0.6.6) to address a in the underlying framework. These updates incorporate the latest Fedify security patches that fix CVE-2025-54888.

We strongly recommend all Hollo instance administrators update to the latest version for their respective release branch as soon as possible.

Update Instructions:

  • Railway users: Go to your project dashboard, select your Hollo service, click the three dots menu in deployments, and choose “Redeploy”
  • Docker users: Pull the latest image with docker pull ghcr.io/fedify-dev/hollo:latest and restart your containers
  • Manual installations: Run git pull to get the latest code, then pnpm install and restart your service

github.com

Improper Authentication and Incorrect Authorization in @fedify/fedify

### Summary An authentication bypass vulnerability allows any unauthenticated attacker to impersonate any ActivityPub actor by sending forged activities signed with their own keys. Activities are...

🚨 緊急セキュリティアップデート通知

Fedifyで非常に深刻なセキュリティ脆弱性(CVE-2025-54888)が発見され、ホットフィックスを緊急リリースいたしました。

全ユーザーは直ちに最新のパッチバージョンにアップデートしてください。

詳細とアップデート方法については、以下のリンクをご参照ください:

https://github.com/fedify-dev/fedify/discussions/361

github.com

Fedify security updates: 1.3.20, 1.4.13, 1.5.5, 1.6.8, 1.7.9, and 1.8.5 · fedify-dev/fedify · Discussion #361

All Fedify users must immediately update to the latest patched versions. A critical authentication bypass vulnerability (CVE-2025-54888) has been discovered in Fedify that allows attackers to imper...

🚨 긴급 보안 업데이트 공지

Fedify에서 매우 심각한 보안 취약점(CVE-2025-54888)이 발견되어 핫픽스를 긴급 배포했습니다.

모든 사용자는 즉시 최신 패치 버전으로 업데이트해야 합니다.

자세한 내용과 업데이트 방법은 아래 링크를 참고해 주세요:

https://github.com/fedify-dev/fedify/discussions/361

github.com

Fedify security updates: 1.3.20, 1.4.13, 1.5.5, 1.6.8, 1.7.9, and 1.8.5 · fedify-dev/fedify · Discussion #361

All Fedify users must immediately update to the latest patched versions. A critical authentication bypass vulnerability (CVE-2025-54888) has been discovered in Fedify that allows attackers to imper...

All users must immediately update to the latest patched versions. A authentication bypass (CVE-2025-54888) has been discovered in Fedify that allows attackers to impersonate any actor by sending forged activities signed with their own keys.

This vulnerability affects all Fedify instances and enables complete actor impersonation across the federation network. Attackers can send fake posts and messages as any user, create or remove follows as any user, boost and share content as any user, and completely compromise the federation trust model. The vulnerability affects all Fedify instances but does not propagate to other ActivityPub implementations like Mastodon, which properly validate authentication before processing activities.

The following versions contain the fix: 1.3.20, 1.4.13, 1.5.5, 1.6.8, 1.7.9, and 1.8.5. Users should update immediately using their package manager with commands such as npm update @fedify/fedify, yarn upgrade @fedify/fedify, pnpm update @fedify/fedify, bun update @fedify/fedify, or deno update @fedify/fedify.

After updating, redeploy your application immediately and monitor recent activities for any suspicious content. Please also inform other Fedify operators about this critical update to ensure the security of the entire federation network.

The safety and security of our community depends on immediate action. Please update now and feel free to leave comments below if you have any questions.

Release Fedify 1.8.5 · fedify-dev/fedify

Released on August 8, 2025. @fedify/fedify Fixed a critical authentication bypass vulnerability in the inbox handler that allowed unauthenticated attackers to impersonate any ActivityPub actor. Th...

@syuilo@misskey.io

To everyone in the Fediverse,
I'm syuilo, the creator of Misskey.
Please consider supporting Misskey — a completely free and open-source software!

Misskey is not a business venture; it's developed by a small group of dedicated volunteers, and our funding is very limited.

I believe that for the health and diversity of the Fediverse, it's important to have not only a few dominant platforms but also smaller projects like Misskey.
(Imagine a world where the only web browser is Chrome — what would that be like?)

In order to continue the development of Misskey and to further improve its compatibility with the broader Fediverse, your support would be greatly appreciated.

You can support us via:

-
Patreon
-
GitHub Sponsors
-
PayPal

👉 Misskey Repository

Thank you all for your support!

github.com

GitHub - misskey-dev/misskey: 🌎 A completely free and open interplanetary microblogging platform 🚀

🌎 A completely free and open interplanetary microblogging platform 🚀 - misskey-dev/misskey

@owa@mastodon.social

🇯🇵 Japan has officially banned Apple’s iOS browser engine restrictions.

Starting Dec 2025, iPhones must allow real Firefox, Chrome, Opera, Brave, Vivaldi and others to run their own engines, just like on desktop.

This is a major step forward for browser competition.

Full analysis here:

/1
open-web-advocacy.org/blog/jap

open-web-advocacy.org

Japan: Apple Must Lift Engine Ban by December - Open Web Advocacy

We're thrilled to announce Fedify 1.8.1, a mega release made possible through the incredible efforts of contributors from South Korea's (Open Source Contribution Academy). This release marks a significant milestone in 's development, bringing major architectural changes, new packages, and numerous enhancements across the board.

Note: Version 1.8.0 was skipped due to a versioning error.

🎉 Major Milestone: Monorepo Architecture

Fedify has been restructured as a , consolidating all packages into a single repository with unified versioning. This change streamlines development and ensures all packages are released together with consistent version numbers.

Consolidated Packages

All existing Fedify packages now live under one roof:

  • @fedify/fedify — Main library
  • @fedify/cli — CLI toolchain
  • @fedify/amqp — AMQP/RabbitMQ driver
  • @fedify/express — Express integration
  • @fedify/h3 — h3 framework integration
  • @fedify/postgres — PostgreSQL drivers
  • @fedify/redis — Redis drivers

🆕 New Packages

This release introduces four new packages to the Fedify ecosystem:

  • @fedify/elysiaElysia integration for Bun-powered applications
  • @fedify/nestjsNestJS integration for enterprise Node.js apps
  • @fedify/sqlite — SQLite driver compatible with Bun, Deno, and Node.js
  • @fedify/testing — Testing utilities with mock Federation and Context classes

@fedify/fedify

Custom Collection Dispatchers

A powerful new feature that allows you to create custom collections beyond the standard ActivityPub collections. This enables implementation of domain-specific collections while maintaining federation compatibility.

Contributors: ChanHaeng Lee [#310, #332]

  • Added comprehensive types and interfaces for custom collection handling
  • New methods on Federatable interface: setCollectionDispatcher() and setOrderedCollectionDispatcher()
  • Added getCollectionUri() method to the Context interface
  • Full support for paginated custom collections

Compare-and-Swap (CAS) Support for KV Stores

Key–value stores now optionally support CAS operations for atomic updates, enabling optimistic locking and preventing lost updates in concurrent environments.

  • Added optional KvStore.cas() method
  • Implemented in MemoryKvStore and DenoKvStore
  • Useful for implementing distributed locks and counters

Fediverse Handle Utilities

New utility functions make working with handles more convenient.

Contributors: ChanHaeng Lee [#278]

  • parseFediverseHandle() — Parse handles into components
  • isFediverseHandle() — Validate handle format
  • toAcctUrl() — Convert handles to URLs
  • FediverseHandle interface for type safety

Enhanced HTTP Request APIs

Contributors: Lee ByeongJun [#248, #281], Hyunchae Kim [#51, #315]

  • Added LookupWebFingerOptions.maxRedirection option for controlling redirect behavior
  • APIs now support AbortSignal for request cancellation
  • New DocumentLoaderOptions interface
  • Added signal options to LookupObjectOptions, LookupWebFingerOptions, and DoubleKnockOptions

@fedify/cli

New Commands and Enhancements

The CLI has received significant improvements thanks to our OSSCA contributors:

fedify webfinger Command

Contributors: ChanHaeng Lee [#260, #278], KeunHyeong Park [#311, #328]

Look up WebFinger information for any fediverse resource:

  • Supports handles (@user@server) and URLs
  • --user-agent option for custom User-Agent headers
  • --allow-private-address for local testing
  • --max-redirection to control redirect following

fedify nodeinfo Command

Contributors: Hyeonseo Kim [#267, #331, #168, #282, #304]

Replaces the deprecated fedify node command with improved terminal rendering.

Enhanced fedify lookup Command

Contributors: Jiwon Kwon [#169, #348, #261, #321]

  • Terminal-specific image display for Kitty, WezTerm, Konsole, Warp, Wayst, st, and iTerm
  • -o/--output option to save results to files

Improved fedify inbox Command

Contributors: Hasang Cho [#262, #285], Jang Hanarae [#191, #342]

  • --actor-name and --actor-summary options for customizing temporary actors
  • Now displays object types contained in activities

fedify init --dry-run

Contributors: Lee ByeongJun [#263, #298]

Preview project initialization without creating files.

Better Terminal Support

Contributors: Cho Hasang [#257, #341]

Correctly handles color output based on TTY detection and NO_COLOR environment variable.

@fedify/elysia

Contributors: Hyeonseo Kim [#286, #339]

New Elysia integration brings Fedify to Bun-powered applications with a simple plugin interface:

import { Elysia } from "elysia";
import { fedify } from "@fedify/elysia";

const app = new Elysia()
  .use(fedify(federation, { /* options */ }))
  .listen(3000);

@fedify/nestjs

Contributors: Jaeyeol Lee [#269, #309]

Enterprise-ready NestJS integration with dependency injection support:

import { FedifyModule } from "@fedify/nestjs";

@Module({
  imports: [
    FedifyModule.forRoot({
      kv: new MemoryKvStore(),
      queue: new InProcessMessageQueue(),
      origin: "https://example.com",
    }),
  ],
})
export class AppModule {}

@fedify/sqlite

Contributors: An Subin [#274, #318]

SqliteKvStore implementation compatible across all major JavaScript runtimes:

import { SqliteKvStore } from "@fedify/sqlite";

const kv = new SqliteKvStore("./fedify.db");

@fedify/testing

Contributors: Lee ByeongJun [#197, #283]

Comprehensive testing utilities with mocking support for Fedify applications:

import { MockFederation, MockContext } from "@fedify/testing";

const mockFederation = new MockFederation();
const mockContext = new MockContext();

// Track sent activities with full metadata
// Support custom path registration
// Multiple activity type listeners

🙏 Acknowledgments

This release represents an extraordinary community effort, particularly from the participants of South Korea's OSSCA (Open Source Contribution Academy) (Note: page in Korean). We extend our heartfelt thanks to all contributors:

Core Contributors

  • ChanHaeng Lee (@2chanhaeng) — Custom collections, fediverse handles, WebFinger command
  • Lee ByeongJun (@joonnot) — WebFinger redirections, dry-run, testing utilities
  • Hyunchae Kim (@r4bb1t) — AbortSignal support
  • Hyeonseo Kim (@gaebalgom) — Elysia integration, nodeinfo command
  • Jaeyeol Lee (@kodingwarrior) — NestJS integration
  • An Subin (@nyeong) — SQLite driver
  • Jiwon Kwon (@z9mb1) — Terminal image display, output options
  • Hasang Cho (@crohasang) — Color output handling, actor customization
  • Jang Hanarae (@menele) — Activity object type display
  • KeunHyeong Park (@w8385) — WebFinger redirect options

Test Infrastructure Contributors

Your contributions have made Fedify stronger and more versatile than ever. The OSSCA program's support has been instrumental in achieving this milestone release.

Migration Guide

Updating from Previous Versions

If you're using separate Fedify packages, update all packages to version 1.8.1:

{
  "dependencies": {
    "@fedify/fedify": "^1.8.1",
    "@fedify/cli": "^1.8.1",
    "@fedify/express": "^1.8.1"
  }
}

All packages now share the same version number, simplifying dependency management.

Breaking Changes

There are no breaking changes in this release. All existing code should continue to work without modifications.

What's Next

With the monorepo structure in place and new integrations available, we're excited to continue improving Fedify's developer experience and expanding its capabilities. Stay tuned for more updates, and thank you for being part of the Fedify community!

For detailed technical information about all changes, please refer to the full changelog.


Fedify is an open-source project that helps developers build federated server applications powered by ActivityPub. Join us on GitHub or Discord to contribute or get help!

discord.com

Fedify & Hollo Discord 서버에 가입하세요!

The official community for Fedify & Hollo! Join users and contributors to discuss, collaborate, and build the fediverse together. Get help with Fedify's ActivityPub framework or Hollo instances, share ideas, and connect with developers passionate about decentralized social networking. | 멤버 128명

@jiyu@hackers.pub

오늘의 디버그 일기 자꾸 액펍아카데미랑 플래닛에서 요청을 보내도 씹었다 근데 액티비티 워크샵에서 수동요청 만드니까 잘 받아줬다 알고보니 액터 디스패쳐에서 inbox를 http로 던져줘서 그런 거였다...

"inbox": "http://~
ALT text

"inbox": "http://~

@hongminhee@hackers.pub

그나저나 Hackers' Pub 마스코트 고양이에 아직 이름이 없는데, 어떤 이름을 지어 주면 좋을까요? 🤔

네 가지 표정의 Hackers' Pub 마스코트 고양이
ALT text

네 가지 표정의 Hackers' Pub 마스코트 고양이

東アジアのフェディバースカンファレンスを実現するなら、以下のドメインを全部登録したい:

  • fedicon.asia
  • 聯合宇宙會議.asia
  • 연합우주회의.asia
  • フェディバース会議.asia
  • 聯邦宇宙會議.asia
  • 联邦宇宙会议.asia

https://mstdn.y-zu.org/@Yohei_Zuho/114979530344820491

mstdn.y-zu.org

もちもちずきん :teto_zuho: 🍆 (@Yohei_Zuho@mstdn.y-zu.org)

FediCon.Asiaみたいにやったら面白そう

We'd like to recognize some excellent contributions from our (Open Source Contribution Academy) participants who have been working on .

@gaebalgom contributed PR #339, which introduces the @fedify/elysia package to provide Elysia integration for Fedify. This work addresses issue #286 by creating a plugin that enables developers using and to integrate Fedify's capabilities into their applications. The contribution includes the core integration module, documentation, examples, and proper monorepo configuration, making Fedify accessible to the Elysia community.

@r4bb1t submitted PR #315, implementing comprehensive AbortSignal support across multiple APIs to resolve issue #51. This contribution adds request cancellation capabilities not only to lookupWebFinger() but also to lookupObject(), DocumentLoader, and the HTTP signature authentication flow (doubleKnock()), allowing developers to properly handle timeouts and abort ongoing requests throughout the entire request chain. The implementation includes extensive test coverage for cancellation scenarios across all affected components and lays the groundwork for adding --timeout options to various CLI commands like fedify lookup, fedify webfinger, and fedify nodeinfo, making federated applications more robust and responsive.

@ooheunda addressed a testing infrastructure issue with PR #350, fixing a race condition in PostgreSQL message queue tests that was causing intermittent failures (issue #346). By adding explicit initialization before concurrent message queue listeners, this fix prevents table creation conflicts that were affecting test reliability, ensuring more consistent PR testing for all contributors.

@songbirds provided two test stability improvements with PR #344 and PR #347. The first PR adds skip guards to RedisKvStore tests as a workaround for a known Bun runtime issue, keeping the test suite functional while awaiting an upstream fix. The second PR resolves a race condition in the code generation process by randomizing output filenames, preventing conflicts during parallel test execution. These contributions help maintain a stable testing environment for the project.

Thank you all for your contributions to Fedify. Your work helps make federated social networking more accessible to developers.

github.com

fix(codegen): randomize output filename to prevent race condition in parallel test runs by HanseoSong · Pull Request #347 · fedify-dev/fedify

Summary This PR improves test stability by addressing a race condition in the code generation process. It ensures that parallel test runs do not conflict over a shared generated file. Related Issue...