Skip to content

Fix Discord profile actions, acceptance notices, and clickable sender names - #254

Open
dmitryvm1 wants to merge 3 commits into
TinyComms:mainfrom
dmitryvm1:fix/discord-profile-add-friend
Open

dmitryvm1 wants to merge 3 commits into
TinyComms:mainfrom
dmitryvm1:fix/discord-profile-add-friend

Conversation

@dmitryvm1

Copy link
Copy Markdown
Contributor

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

  • feature
  • fix
  • perf
  • refactor
  • chore
  • docs

Platforms

  • windows
  • macos
  • linux
  • android
  • ios

Proof

Scenarios included in this diff:

  • e2e/scenarios/discord-profile-add-friend — send and cancel a request from a profile.
  • e2e/scenarios/discord-friend-request-accepted — open a DM and verify its acceptance notice renders correctly.
  • e2e/scenarios/discord-sender-profile — click a message sender's nickname and verify their profile opens.

Lab run: Pending. No recorded platform proof or e2e-proof is 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 --offline and the subsequent GUI compilation check after the sender-name change.
  • friendship_buttons_follow_discord_relationship_state and an_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_message and friend_request_acceptance_renders_from_history_and_live_events — display names, saved nicknames, unknown-type fallback, history, and live gateway delivery.
  • Scenario Python/JSON syntax and 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::Add variant, serialized as add. 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.

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.
@dmitryvm1
dmitryvm1 requested a review from itz4blitz as a code owner November 13, 2026 14:54
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