Skip to content

Implement per-message profile management and sending with a per-message profile#309

Merged
Just-Insane merged 36 commits intoSableClient:devfrom
dozro:feat/allow-setting-pmp
Mar 19, 2026
Merged

Implement per-message profile management and sending with a per-message profile#309
Just-Insane merged 36 commits intoSableClient:devfrom
dozro:feat/allow-setting-pmp

Conversation

@dozro
Copy link
Member

@dozro dozro commented Mar 16, 2026

Description

Fixes #298
Implements usage of MSC4144

for future development: #340 and #341

This pull request introduces support for per-message profiles (PMP), allowing users to set and use different profiles (such as display name, avatar, and pronouns) on a per-message basis. It adds both backend logic and UI components for managing these profiles, updates the message sending and rendering logic to support PMP, and exposes new settings and commands for users to interact with this feature. Additionally, it refactors some settings components for better modularity.

The most important changes are:

Per-Message Profile (PMP) Support:

  • Added logic to send messages with a per-message profile if one is selected, including updating the message content to include the PMP data (com.beeper.per_message_profile).
  • Added new commands (/usepmp, /addpmp, /delpmp) to manage and use per-message profiles via the chat input.

Settings UI Enhancements:

  • Introduced a new "Persona" section in the settings, with a dedicated page (PerMessageProfilePage) and overview/editor components for managing per-message profiles. (open to suggestion where that belongs lol)

Pronoun Handling Refactor:

  • Moved PronounSet and parsePronounsInput to a shared utility file for consistent usage across the codebase, and improved pronoun filtering logic in the timeline.

Settings Refactoring:

  • Refactored the animal cosmetics ("cat" settings) into a standalone component for better modularity and maintainability.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

@dozro dozro changed the title WIP: Implement per-message profile management and fetching functionality WIP: Implement per-message profile management and sending with a per-message profile Mar 16, 2026
@dozro dozro marked this pull request as ready for review March 17, 2026 19:23
@dozro dozro requested review from 7w1 and Just-Insane as code owners March 17, 2026 19:23
@dozro dozro marked this pull request as ready for review March 18, 2026 14:04
@dozro dozro removed the request for review from Just-Insane March 18, 2026 14:04
@dozro dozro marked this pull request as draft March 18, 2026 20:11
@dozro
Copy link
Member Author

dozro commented Mar 18, 2026

i missed theby msc suggested fallback

(thanks @tulir for pointing it out, that it is optional /gen)

@dozro dozro marked this pull request as ready for review March 18, 2026 21:04
@tulir
Copy link
Contributor

tulir commented Mar 18, 2026

i missed the mandatory fallback, as required by spec

Adding the fallback isn't mandatory, that's why there's the has_fallback flag to tell if a fallback is present or not. Having it is probably good for this use case though

@dozro dozro force-pushed the feat/allow-setting-pmp branch from d95cac1 to aaa8026 Compare March 18, 2026 21:50
@dozro
Copy link
Member Author

dozro commented Mar 18, 2026

Adding the fallback isn't mandatory, that's why there's the has_fallback flag to tell if a fallback is present or not. Having it is probably good for this use case though

well having a fallback makes sense, so i added it 🤷‍♀️ , sorry for misunderstanding the msc

and thanks for pointing it out :3 (/gen)

@Just-Insane Just-Insane enabled auto-merge March 19, 2026 18:14
@dozro dozro marked this pull request as draft March 19, 2026 18:37
auto-merge was automatically disabled March 19, 2026 18:37

Pull request was converted to draft

@dozro dozro marked this pull request as ready for review March 19, 2026 19:29
@Just-Insane Just-Insane enabled auto-merge March 19, 2026 19:48
@Just-Insane Just-Insane added this pull request to the merge queue Mar 19, 2026
Merged via the queue into SableClient:dev with commit 1e46dd6 Mar 19, 2026
9 checks passed
@dozro dozro deleted the feat/allow-setting-pmp branch March 19, 2026 20:00
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.

posibility to set per message profile

4 participants