Repository navigation
Conversation
Decode Discord message type 67 as a readable acceptance notice instead of the unsupported-message fallback, preserving the author's display name or saved nickname. Cover history and live gateway delivery with regression tests and add a UI scenario that reuses the profile scenario's screen and input helpers. Recorded lab proof remains pending.
Open the same profile as user mentions when a Discord sender name is clicked. Underline clickable names on hover and keep the click target separate from timestamps and message status marks. Add a UI scenario for opening a profile from a sender nickname. GUI compilation passes; recorded platform proof remains pending.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed and why
Discord profiles now offer Add friend for people without a relationship, then show Request sent and Cancel request after a successful request. Friend acceptance messages now display “ accepted your friend request.” instead of the unsupported-message fallback, and clicking a Discord message sender's nickname opens the same profile as an @mention.
The profile pane and floating card share the relationship rules: existing friends, incoming requests, blocked users, bots, and your own profile do not get an Add friend button. Sender names underline on hover, and only the name is clickable, keeping timestamps and message status marks separate.
Type
Platforms
Proof
Scenarios included in this diff:
Lab run: Pending. No recorded platform proof or
e2e-proofis claimed. The drivers require the fixture setup described in their READMEs. Phone sender-name taps already worked on the base; those runs are regressions, not base-failing proof of the desktop change.Local validation passed:
cargo check -p tinyclient --features gui -p chatd --offlineand the subsequent GUI compilation check after the sender-name change.friendship_buttons_follow_discord_relationship_stateandan_action_the_network_agreed_to_changes_what_the_person_is— profile eligibility and outgoing relationship state.profile_friend_request_is_outgoing_and_can_be_cancelled— real daemon against a local Discord fixture; outgoing requests, cancellation, duplicate/self-request rejection, and refusal handling.friendships_presence_and_profiles_are_asked_of_discord_only_when_the_user_does— existing relationship regression test.friend_request_acceptance_is_a_system_messageandfriend_request_acceptance_renders_from_history_and_live_events— display names, saved nicknames, unknown-type fallback, history, and live gateway delivery.git diff --check.These checks do not certify Discord's live API or recorded UI behavior.
Compatibility
The local client/daemon protocol gains the additive
RelateAction::Addvariant, serialized asadd. Existing actions and message fields are unchanged. An older daemon cannot handle the new action; use the matching bundled client and daemon. No tinyserver API or deployment change is required.Risk and rollback
The new request path uses Discord's relationship endpoint and updates the relationship only after success; failures retain the previous state and surface the reason. Live Discord request behavior and platform UI interactions still need lab validation. Sender-name click handling now applies to the name itself rather than the entire header.
Rollback: revert this PR. No database migration or server rollback is needed.
Release note
Add friends from Discord profiles, open profiles by clicking sender names, and read friend acceptance notices correctly.