Skip to content

Messages: Push (repost) and Quote #31

Closed

Description

@Adron

Product behaviour (/help/messages)

Two ways to re-share someone else's message:

  • Push (repost): re-shares the original as-is, no added comment.
  • Quote: re-shares the original with your own note added; a banner confirms the post will be public before sending.

Both pushed and quoted posts are always public.

API

POST /api/messages accepts pushedMessageId. The feed returns pushCount, pushedMessageId and a nested pushedMessage object for rendering the quoted original.

Models/Message.cs already has PushCount but nothing reads it, and pushedMessageId/pushedMessage are not modelled at all.

Acceptance criteria

  • Models/Message.cs gains PushedMessageId and PushedMessage (self-referencing).
  • PostMessageAsync accepts pushedMessageId.
  • Push and Quote actions on each feed card in Views/FeedView.xaml.
  • Quote opens the composer with the original attached; Push posts directly.
  • Both force public visibility, and Quote shows the "this will be public" confirmation before sending.
  • Cards render an embedded quoted original from pushedMessage.
  • pushCount is displayed alongside digCount.

Activity

  1. added
    parityWeb/API feature-parity work
    P0Must have for a credible parity claim
    on Sep 15, 2026
  2. Adron commented on Sep 16, 2026

    @Adron
    MemberAuthor

    Implemented in #152 — work continues in the PR from here.

    Push and Quote both go through POST /api/messages with a pushedMessageId; one field covers both, so the Push/Quote distinction is content-based. Both hard-code publiclyVisible: true (a product rule, and a real difference here — defaultPubliclyVisible is false on the test account), and the Quote composer's amber banner is the public-post confirmation. Cards render the embedded original from the nested pushedMessage, which arrives complete with its user, so no second fetch is needed, and pushCount now shows beside digCount.

    One correction to the issue: an 80-row live sample had 5 pushed rows and 2 of them carry non-empty content — real Quotes, not only bare reposts — so the content-based split is exercised by live data. The write paths themselves are deliberately unexercised: posting from this account publishes publicly and syndicates onward.

  3. added 2 commits that reference this issue on Sep 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0Must have for a credible parity claimarea:messagesArea: messagesparityWeb/API feature-parity work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions