Skip to content

group admin#438

Merged
adbenitez merged 2 commits into
mainfrom
adb/group_admin
Jul 19, 2026
Merged

group admin#438
adbenitez merged 2 commits into
mainfrom
adb/group_admin

Conversation

@adbenitez

Copy link
Copy Markdown
Collaborator

No description provided.

@adbenitez
adbenitez merged commit 1178cd4 into main Jul 19, 2026
11 of 18 checks passed
experintellia pushed a commit to experintellia/slothfulchat-web that referenced this pull request Jul 26, 2026
Rebased onto main (0.8.0). Port of ArcaneChat's group-admin feature
(ArcaneChat/core#438, ArcaneChat/android#167):

Core (core/0020): an admin group's ID embeds the creator's key
fingerprint (FINGERPRINT:RANDOMID). Send- and receive-side enforcement
that only the admin adds/removes members, renames, changes
description/avatar/ephemeral timer, and deletes others' messages for
everyone; non-admin member *removals* (self-leave) stay allowed. Invite
QR carries the admin fingerprint; non-admin securejoin adds abort. New
JSON-RPC create_group_with_admin + FullChat.groupAdminId. Receive-side
delete guard is stricter than ArcaneChat's (which let any member of a
*regular* group delete others' messages). Tests cover the permission
matrix, self-leave, and a modified-client member-injection attempt.

Desktop (desktop/0064): create-dialog checkbox, admin-only management UI
(Add Member / QR / remove / Edit / Disappearing Messages), a 👑 badge on
the admin's row visible to every member, and Delete-for-Everyone for the
admin. Creation is gated behind a hidden 'super-dangerous' experimental
option, unlocked by tapping the version in About 10x (Android
developer-menu style, with a countdown toast) and re-hidable via a button
that is disabled while any super-dangerous option is on.

Usage-stats instances emit an admin_group event (create / setting_enabled).
Fork-to-fork only: plain Delta Chat clients reject the oversized group ID
and see only a plain thread. update-patches.sh pins core.abbrev=9 for
byte-stable patch regeneration.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EbNmAmU8BhtPuTmBmsMTX
experintellia pushed a commit to experintellia/slothfulchat-web that referenced this pull request Jul 26, 2026
Rebased onto main (0.8.0). Port of ArcaneChat's group-admin feature
(ArcaneChat/core#438, ArcaneChat/android#167):

Core (core/0020): an admin group's ID embeds the creator's key
fingerprint (FINGERPRINT:RANDOMID). Send- and receive-side enforcement
that only the admin adds/removes members, renames, changes
description/avatar/ephemeral timer, and deletes others' messages for
everyone; non-admin member *removals* (self-leave) stay allowed. Invite
QR carries the admin fingerprint; non-admin securejoin adds abort. New
JSON-RPC create_group_with_admin + FullChat.groupAdminId. Receive-side
delete guard is stricter than ArcaneChat's (which let any member of a
*regular* group delete others' messages). Tests cover the permission
matrix, self-leave, and a modified-client member-injection attempt.

Desktop (desktop/0064): create-dialog checkbox, admin-only management UI
(Add Member / QR / remove / Edit / Disappearing Messages), a 👑 badge on
the admin's row visible to every member, and Delete-for-Everyone for the
admin. Creation is gated behind a hidden 'super-dangerous' experimental
option, unlocked by tapping the version in About 10x (Android
developer-menu style, with a countdown toast) and re-hidable via a button
that is disabled while any super-dangerous option is on.

Usage-stats instances emit an admin_group event (create / setting_enabled).
Fork-to-fork only: plain Delta Chat clients reject the oversized group ID
and see only a plain thread. update-patches.sh pins core.abbrev=9 for
byte-stable patch regeneration.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EbNmAmU8BhtPuTmBmsMTX
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant