You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
Activity
Adron commentedon Sep 16, 2026
Implemented in #152 — work continues in the PR from here.
Push and Quote both go through
POST /api/messageswith apushedMessageId; one field covers both, so the Push/Quote distinction is content-based. Both hard-codepubliclyVisible: true(a product rule, and a real difference here —defaultPubliclyVisibleisfalseon the test account), and the Quote composer's amber banner is the public-post confirmation. Cards render the embedded original from the nestedpushedMessage, which arrives complete with itsuser, so no second fetch is needed, andpushCountnow shows besidedigCount.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.
merge origin/main into issue-31-push-quote
Merge pull request #181 from CompositeCode/issue-31-push-quote