[Feature Request]: Add `chat.bsky.group` namespace and group join-link embed
まだ誰も着手していません。
評価
調査の方向性
Start by reading the existing chat lexicon models under Sources/ATProtoKit/Models/Lexicons/chat.bsky/ and API methods under Sources/ATProtoKit/APIReference/ChatBskyAPI/ to follow their conventions. Then compare the listed missing lexicons with the upstream lexicon references and add the typed group wrappers and join-link embed. Done when the listed group operations and embed are represented in the typed pipeline with api.bsky.chat routing.
索引モデルが issue の本文から書いたものです。
説明
Summary
The upstream lexicon now ships a full chat.bsky.group.* namespace (group lifecycle, membership, join links, join requests) plus a chat.bsky.embed.joinLink embed object. None of these are reflected in ATProtoKit, so group conversation management is unreachable through the typed pipeline.
Pain points
The entire group surface (lifecycle, membership, join links, join requests, and the messageInput.embed join-link) has to be hand-built on raw XRPC, re-implementing the api.bsky.chat routing and auth plumbing that ATProtoBlueskyChat already handles for every other chat call.
Considered Alternatives
Raw XRPC for the entire group surface — loses typed pipeline, isRelatedToBskyChat host routing, and forces every consumer to repeat the same auth plumbing.
Is this a breaking change?
No
Library Examples
N/A
Additional Context
Missing lexicons
| Lexicon | Suggested wrapper |
|---|---|
chat.bsky.embed.joinLink |
ChatBskyLexicon.Embed.JoinLink embed object, selectable in the sendMessage messageInput.embed union |
chat.bsky.group.addMembers |
addMembers(to:memberDIDs:) |
chat.bsky.group.approveJoinRequest |
approveJoinRequest(for:requesterDID:) |
chat.bsky.group.createGroup |
createGroup(name:memberDIDs:memberLimit:) |
chat.bsky.group.createJoinLink |
createJoinLink(for:) |
chat.bsky.group.defs |
types only |
chat.bsky.group.disableJoinLink |
disableJoinLink(for:) |
chat.bsky.group.editGroup |
editGroup(by:name:) |
chat.bsky.group.editJoinLink |
editJoinLink(for:expiresAt:) |
chat.bsky.group.enableJoinLink |
enableJoinLink(for:) |
chat.bsky.group.getJoinLinkPreviews |
getJoinLinkPreviews(for:) |
chat.bsky.group.listJoinRequests |
listJoinRequests(for:limit:cursor:) |
chat.bsky.group.listMutualGroups |
listMutualGroups(with:limit:cursor:) |
chat.bsky.group.rejectJoinRequest |
rejectJoinRequest(for:requesterDID:) |
chat.bsky.group.removeMembers |
removeMembers(from:memberDIDs:) |
chat.bsky.group.requestJoin |
requestJoin(by:) |
chat.bsky.group.updateJoinRequestsRead |
updateJoinRequestsRead(for:) |
chat.bsky.group.withdrawJoinRequest |
withdrawJoinRequest(by:) |
Wrappers follow the existing ATProtoBlueskyChat convention (method name mirrors the lexicon's final segment, no artificial Group prefix — matching getConversation, listConversations). All sit on api.bsky.chat and require isRelatedToBskyChat: true routing, and the group namespace maps to ChatBskyLexicon.Group.
Cross-reference
- The convo-side discriminator (
convoView.kind→#groupConvo) and the 4 convo-level endpoints (getConvoMembers,listConvoRequests,lockConvo,unlockConvo) are tracked in a separate feature request #320.
References
- Lexicon root: https://github.com/bluesky-social/atproto/tree/main/lexicons/chat/bsky/group
chat.bsky.embed.joinLink: https://github.com/bluesky-social/atproto/blob/main/lexicons/chat/bsky/embed/joinLink.json- Affected directories:
Sources/ATProtoKit/Models/Lexicons/chat.bsky/Group/(new),Sources/ATProtoKit/APIReference/ChatBskyAPI/(new method files)
- 主要言語
- Swift
- スター
- 226
- フォーク
- 40
- 平均マージ
- 5時間 8分
- マージ済み PR(30日)
- 3
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
MasterJ93/ATProtoKit のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
MasterJ93/ATProtoKit#344 ·
-
enhancement
難易度 4/5 1〜2日 初心者へのやさしさ 52/100
MasterJ93/ATProtoKit#337 · コメント 3 件 ·
-
new feature
難易度 4/5 3〜5日 初心者へのやさしさ 43/100
MasterJ93/ATProtoKit#320 · コメント 1 件 ·
-
new feature
難易度 4/5 1〜2日 初心者へのやさしさ 55/100
MasterJ93/ATProtoKit#316 · コメント 1 件 ·
-
new feature
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
MasterJ93/ATProtoKit#216 · コメント 1 件 ·
MasterJ93/ATProtoKit の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 67/100
メンテナーはふだん 1 日以内に返信
-
🎉 Add Woundオープン
難易度 1/5 1時間未満 初心者へのやさしさ 77/100
jaywcjlove/awesome-mac#4357 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
VictorKildahl/cra#243 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
OneBusAway/vehicle-positions#260 ·
メンテナーはふだん 1 日以内に返信