[Feature Request]: Add `chat.bsky.group` namespace and group join-link embed
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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)
- Lingua principale
- Swift
- Stelle
- 226
- Fork
- 40
- Merge medio
- 5h 8m
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di MasterJ93/ATProtoKit
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
MasterJ93/ATProtoKit#344 ·
-
enhancement
Difficoltà 4/5 1-2 giorni Idoneità per principianti 52/100
MasterJ93/ATProtoKit#337 · 3 commenti ·
-
new feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 43/100
MasterJ93/ATProtoKit#320 · 1 commento ·
-
new feature
Difficoltà 4/5 1-2 giorni Idoneità per principianti 55/100
MasterJ93/ATProtoKit#316 · 1 commento ·
-
new feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
MasterJ93/ATProtoKit#216 · 1 commento ·
Tutte le issue di MasterJ93/ATProtoKit
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
🎉 Add WoundAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 77/100
jaywcjlove/awesome-mac#4357 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
-
Bug: on hover a tab's name in Cra stops ~16 pt short of Arc's, with 24 pt of air before the ✕Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
VictorKildahl/cra#243 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
OneBusAway/vehicle-positions#260 ·
I maintainer di solito rispondono entro 1 giorno