[Feature Request]: Add `chat.bsky.group` namespace and group join-link embed
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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)
- Lenguaje dominante
- Swift
- Estrellas
- 226
- Forks
- 40
- Merge medio
- 5 h 8 min
- PR fusionados (30 d)
- 3
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de MasterJ93/ATProtoKit
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
MasterJ93/ATProtoKit#344 ·
-
enhancement
Dificultad 4/5 1-2 días Aptitud para principiantes 52/100
MasterJ93/ATProtoKit#337 · 3 comentarios ·
-
new feature
Dificultad 4/5 3-5 días Aptitud para principiantes 43/100
MasterJ93/ATProtoKit#320 · 1 comentario ·
-
new feature
Dificultad 4/5 1-2 días Aptitud para principiantes 55/100
MasterJ93/ATProtoKit#316 · 1 comentario ·
-
new feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
MasterJ93/ATProtoKit#216 · 1 comentario ·
Todos los issues de MasterJ93/ATProtoKit
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 67/100
Los mantenedores suelen responder en 1 día
-
🎉 Add WoundAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 77/100
jaywcjlove/awesome-mac#4357 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 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 ✕Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
VictorKildahl/cra#243 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
OneBusAway/vehicle-positions#260 ·
Los mantenedores suelen responder en 1 día