{"id":1331,"onChainId":345,"chainId":8453,"title":"Make Quorum Conversation Threads Visually Obvious","description":"# Make Quorum Conversation Threads Visually Obvious\n\nQuorum's chrono/reply-bumping feed feels incredibly alive — but right now, it can be surprisingly difficult to understand **who is replying to whom, what is a reply vs. a quote cast, and where a post sits in a conversation.**\n\nThis bounty is to improve Quorum's conversation UI so that you can understand the relationships between posts **at a glance**, without having to stop and read usernames or reconstruct the thread mentally.\n\nThe goal is **not** to change how Quorum works. We're changing how the existing information is presented.\n\n## Requirements\n\n### 1. PFPs should always be visible\n\nPFPs should remain visible regardless of what type of interaction is happening.\n\nYou should be able to look at the feed and immediately understand visually **who is interacting with whom**.\n\nThis applies to:\n\n- Original posts\n- Replies\n- Nested/deep replies\n- Quote casts\n- Posts appearing in collapsed thread context\n\nA user's identity should not disappear simply because their post is being displayed as part of another interaction.\n\n### 2. Make reply relationships visually obvious\n\nFor replies, there should be a clear visual connection between the PFP of the person being replied to and the PFP of the person replying.\n\nThink of the visual relationship used by Twitter/X: **you should be able to see the connection between the two people without having to read the text.**\n\nThe exact implementation does not need to copy Twitter's UI, but the result should make the parent → reply relationship immediately obvious.\n\nThis should continue to work for deeply nested conversations.\n\n### 3. Handle deep replies intelligently\n\nFor a conversation like:\n\n**Post A → Reply B → Reply C → Reply D → Reply E**\n\nthe feed should not need to display the entire conversation tree every time.\n\nWhen a user is viewing a deep reply, the feed should be able to show something like:\n\n**Post A**\n\n`...`\n\n**Reply C**\n\n**Reply D**\n\nwhere the `...` represents collapsed intermediate context.\n\nThe important thing is that the currently displayed reply's relationship to the relevant post above it remains visually obvious.\n\nDeep threads should not turn into an unreadable wall of repeated posts. \n\nNo more than 3 posts from a thread should ever be visible in the home feed. This does not mean that a single thread with multiple comment threads sprouting out cannot appear more than 3 times in the feed, however. It just means we should avoid scenarios where a single “unit” in the home feed shows a thread that is 7 replies deep. That’s what the `...` is for.\n\n### 4. Quote-casting a deep reply\n\nIf someone quote-casts a deep reply — for example:\n\n**Alice posts**\n\n→ **Bob replies to Alice**\n\n→ **Charlie replies to Bob**\n\n→ **David quote-casts Charlie's reply to the main feed**\n\nthe quote cast should simply look like a normal quote cast of Charlie's post.\n\n**Do not include or visually signify Charlie's parent/reply relationship inside the quoted post.**\n\nIn other words, the fact that Charlie's original post was itself a reply should not cause the quote card to display Alice/Bob/thread context.\n\nIt should look like any other quote cast.\n\n### 5. Preserve existing post-click behavior\n\n**Do not change what happens when a user clicks/taps a post.**\n\nClicking a post should continue to take the user to that post and its appropriate location/context in the threaded view, exactly as it does today.\n\nThis bounty is about **presentation, not navigation or interaction behavior.**\n\nDo not redesign or alter the existing post-click/thread-navigation functionality unless it is strictly necessary to implement the visual changes.\n\n### 6. iOS + Android\n\nThe changes must be implemented for **both the iOS and Android Quorum clients**.\n\nThe visual hierarchy and conversation relationships should be consistent across both platforms.\n\n## Acceptance Criteria\n\nThe finished implementation should make it possible to answer these questions almost instantly while looking at the feed:\n\n- **Who posted this?**\n- **Who is this person replying to?**\n- **Is this a reply or a quote cast?**\n- **Where does this post sit within the conversation?**\n\nThe implementation should work correctly for:\n\n- Original posts\n- Single-level replies\n- 3rd/4th/5th+ level replies\n- Collapsed/deep thread context\n- Quote casts of original posts\n- Quote casts of replies\n- Multiple conversations appearing in the same feed\n\nThe existing chrono/reply-bumping feed behavior should remain intact.\n\n## Submission / Winning Criteria\n\nSubmit a PR against the Quorum Mobile codebase implementing the changes above: https://github.com/QuilibriumNetwork/quorum-mobile\n\n**This bounty is only awarded if the PR is:**\n\n1. Accepted by **@cassie**, who runs Quorum.\n2. Merged into the Quorum codebase.\n3. Released and actually used in **production on both iOS and Android**.\n\nA mockup, design proposal, screenshot, or PR that is opened but not accepted does **not** qualify as a winning submission.\n\nThe implementation should be production-ready and should not regress existing Quorum functionality.\n\nThe goal is simple:\n\n> **Make Quorum's conversations visually understandable at a glance — who is talking to whom, where the conversation goes, and what is being quoted — without changing how Quorum itself works.**\n>","amount":"31500000000000000","issuer":"0xa272bc9d6f462f4f08849adeaf6e49a5d4430c38","createdAt":"1787322939","inProgress":false,"isJoinedBounty":true,"isCanceled":false,"isMultiplayer":true,"isVoting":true,"deadline":1787885545,"ban":[],"extra":{"bountyId":1331,"chainId":8453,"album":""},"status":"completed","statusLabel":"Completed","statusEmoji":"✅","acceptingClaims":false,"votingInProgress":false,"voteResolved":true,"voteStartedAt":"1787712745","voteResolution":{"tx":"0xd1da0297b71afea7864ff213a9357e84c2c32b5fc58ce01fa22ba8b70c45eb14","action":"voting resolved","timestamp":"1787890173"},"winningClaim":{"claimId":7707,"title":"Ice Maxie's Donation fot Mitchiko's Heart Surgeries","description":"Hi ~ I was asked to create a claim by Kenny for something Ice Maxie created. Eth proceeds will be donated to my nephew's heart surgeries. ","uri":"https://beige-impossible-dragon-883.mypinata.cloud/ipfs/QmcfH9stoybxmk8wvWa6z6GzFj2QNPbwUAs6nNo7SLEq2C","winner":{"address":"0xde94c4e276f47f9c310572d3b3fd9bccbc42c0ec","name":"wassiegirl.eth","farcasterHandle":null,"twitterHandle":null,"profileUrl":"https://poidh.xyz/account/0xde94c4e276f47f9c310572d3b3fd9bccbc42c0ec","profileDataUrl":"https://poidh.xyz/account/0xde94c4e276f47f9c310572d3b3fd9bccbc42c0ec/data"}},"hasClaims":true,"hasParticipants":true,"priceUsd":74.26283,"currency":"eth","url":"https://poidh.xyz/base/bounty/1331","skillUrl":"https://poidh.xyz/skill.md","docsUrl":"https://docs.poidh.xyz/","githubUrl":"https://github.com/picsoritdidnthappen/poidh-app","claims":[{"claimId":7707,"uri":"https://beige-impossible-dragon-883.mypinata.cloud/ipfs/QmcfH9stoybxmk8wvWa6z6GzFj2QNPbwUAs6nNo7SLEq2C","isAccepted":true,"issuerAddress":"0xde94c4e276f47f9c310572d3b3fd9bccbc42c0ec","issuerName":"wassiegirl.eth","farcasterHandle":null,"twitterHandle":null,"profileUrl":"https://poidh.xyz/account/0xde94c4e276f47f9c310572d3b3fd9bccbc42c0ec","profileDataUrl":"https://poidh.xyz/account/0xde94c4e276f47f9c310572d3b3fd9bccbc42c0ec/data","title":"Ice Maxie's Donation fot Mitchiko's Heart Surgeries","description":"Hi ~ I was asked to create a claim by Kenny for something Ice Maxie created. Eth proceeds will be donated to my nephew's heart surgeries. "},{"claimId":7695,"uri":"https://beige-impossible-dragon-883.mypinata.cloud/ipfs/Qmc9JyARggd8kN48REgQ3EAiNiMftR5Cg4p93pcDnEggB2","isAccepted":false,"issuerAddress":"0xaf21d6f747367fe099b59b75f0ab8f4fee4b35b9","issuerName":null,"farcasterHandle":"goldenpipz","twitterHandle":"olorpipz","profileUrl":"https://poidh.xyz/account/0xaf21d6f747367fe099b59b75f0ab8f4fee4b35b9","profileDataUrl":"https://poidh.xyz/account/0xaf21d6f747367fe099b59b75f0ab8f4fee4b35b9/data","title":"Quorum Conversation Threads Visually Obvious","description":"https://github.com/QuilibriumNetwork/quorum-mobile/pull/276"},{"claimId":7662,"uri":"https://beige-impossible-dragon-883.mypinata.cloud/ipfs/QmeCYBYF6HSoRizs9FoBk8rLmJJ9iwhjk5iAMNKpqowcAq","isAccepted":false,"issuerAddress":"0x92b062c3de540392a1a63095498f82f02a80a0a0","issuerName":null,"farcasterHandle":null,"twitterHandle":null,"profileUrl":"https://poidh.xyz/account/0x92b062c3de540392a1a63095498f82f02a80a0a0","profileDataUrl":"https://poidh.xyz/account/0x92b062c3de540392a1a63095498f82f02a80a0a0/data","title":"Quorum PR 268","description":"https://github.com/QuilibriumNetwork/quorum-mobile/pull/268"}],"comments":[]}