[UnigramDev/Unigram/temp](https://github.com/UnigramDev/Unigram/tree/temp) • [fbc19b7](https://github.com/UnigramDev/Unigram/commit/fbc19b711037d023073cd47f243d2edccba6181d) • _1 files, +7/-5_
Use ActionRequestedPeerUser when no user was shared

The branch that shows it sat behind a condition identical to the one above it,
so it was unreachable and an unresolved user list rendered as a gap.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[UnigramDev/Unigram/temp](https://github.com/UnigramDev/Unigram/tree/temp) • [f15da6e](https://github.com/UnigramDev/Unigram/commit/f15da6ede4e3d1436207778d5369de0ae1b314a4) • _1 files, +20/-3_
Keep entities aligned across a placeholder substitution

Only entities starting after the placeholder were shifted, so an entity
spanning it (markdown parsed before the substitution) kept its old length and
ended short. ReplaceWithLinks also measured against the last inserted name
rather than the placeholder, leaving anything in between unshifted.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[UnigramDev/Unigram/temp](https://github.com/UnigramDev/Unigram/tree/temp) • [3dfb83d](https://github.com/UnigramDev/Unigram/commit/3dfb83d78c205e8be8fcdb634fae593d7feeb0cd) • _1 files, +5/-21_
Remove dead code in service message text

An if (true) with an unreachable else, a condition on a local just set to 0,
and a local assigned but never read.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[UnigramDev/Unigram/temp](https://github.com/UnigramDev/Unigram/tree/temp) • [6fa750b](https://github.com/UnigramDev/Unigram/commit/6fa750bdc97f2d3207957691ab3e47295fb7a4fb) • _2 files, +9/-0_
Expose ExecuteServiceMessage on the message delegate

Service message controls moving out of ChatView.xaml can no longer reach the
view's click handler, so they need the action through their own delegate.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[UnigramDev/Unigram/temp](https://github.com/UnigramDev/Unigram/tree/temp) • [d09f682](https://github.com/UnigramDev/Unigram/commit/d09f68276befc3b23f702eb01420e7ec627daea2) • _5 files, +369/-331_
Move the gift service message into its own control

126 lines of ChatView.xaml and four branches of UpdateContent, addressed by
string through FindName, become one control with typed fields.

The publisher chip and the ribbon are now reset in one place shared by the
three contents that don't own them, and Recycle releases the sticker.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[UnigramDev/Unigram/temp](https://github.com/UnigramDev/Unigram/tree/temp) • [4035780](https://github.com/UnigramDev/Unigram/commit/4035780066d234733fe524973da2c8ed6b0a62f3) • _5 files, +251/-231_
Move the upgraded gift service message into its own control

Same shape as the gift one; the dead commented-out layout it carried is gone.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[UnigramDev/Unigram/temp](https://github.com/UnigramDev/Unigram/tree/temp) • [f88e127](https://github.com/UnigramDev/Unigram/commit/f88e127c04d431a781bf16c81de2bb1bbeebca4e) • _5 files, +116/-57_
Move the giveaway prize service message into its own control

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[UnigramDev/Unigram/temp](https://github.com/UnigramDev/Unigram/tree/temp) • [6708089](https://github.com/UnigramDev/Unigram/commit/670808969cbc2962ab9d4121ec4ca83b463480d4) • _5 files, +186/-139_
Move the suggested birthdate service message into its own control

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[#unigram](?q=%23unigram)