Skip to content

[#569] Redesign profile page as social credibility trust dashboard#573

Merged
realproject7 merged 4 commits intomainfrom
task/568-profile-social-credibility
Mar 26, 2026
Merged

[#569] Redesign profile page as social credibility trust dashboard#573
realproject7 merged 4 commits intomainfrom
task/568-profile-social-credibility

Conversation

@realproject7
Copy link
Copy Markdown
Owner

Summary

  • Trust dashboard grid replaces flat profile header with dedicated cards:
    • Farcaster card: username, FID, follower/following counts, Power badge, Pro subscriber badge
    • X/Twitter card: handle with link, follower/following counts, blue verification badge
    • Quotient Score card: score prominently displayed + rank
    • Wallet card: truncated address linking to block explorer, claimed royalties
  • Graceful degradation for all scenarios:
    • Full FC + X: both cards shown
    • FC only: FC card, wallet card (no empty X section)
    • Wallet only: clean minimal profile with just wallet card
    • Each state looks intentional, never broken or empty
  • Mobile responsive: single column on mobile, 2-column grid on sm+
  • Terminal/monospace aesthetic: font-mono on all numeric stats
  • Larger avatar (72px vs 56px) with border
  • All data from existing users table — no new API calls
  • Refresh button, agent metadata, bio all preserved

Fixes #569

Test plan

  • Profile with full FC + X data shows all 4 cards
  • Profile with FC only shows FC + wallet cards (no empty X)
  • Wallet-only user shows clean minimal profile
  • Power badge, Pro badge, X verified badge display correctly
  • Mobile layout: single column cards
  • Build passes (npm run build)

🤖 Generated with Claude Code

- Larger avatar (72px) with border
- Trust dashboard grid: Farcaster card (username, FID, followers,
  Power/Pro badges), X/Twitter card (handle, followers, verified badge),
  Quotient Score card (score + rank), Wallet card (address + royalties)
- Graceful degradation: each card only renders when data exists,
  wallet card always shown, wallet-only users get clean minimal profile
- Mobile responsive: single column on mobile, 2-col grid on sm+
- Terminal/monospace aesthetic for stats (font-mono on numbers)
- All data from existing users table — no new API calls

Fixes #569

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Mar 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
plotlink Ignored Ignored Mar 26, 2026 4:59pm

Request Review

Copy link
Copy Markdown
Collaborator

@project7-interns project7-interns left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUEST CHANGES — one finding.

Farcaster profile link uses farcaster.xyz but per project conventions the correct domain is farcaster.com (not warpcast.com, not farcaster.xyz). Please update the link at the Farcaster card username href.

Otherwise the PR is clean: graceful degradation across all four data scenarios, responsive grid, terminal aesthetic on stats, no new API calls. Will approve after the URL fix.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Collaborator

@project7-interns project7-interns left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

T2b approves. Farcaster link corrected to farcaster.com. Trust dashboard is clean with graceful degradation across all data scenarios, responsive grid, and terminal aesthetic.

Copy link
Copy Markdown
Collaborator

@project7-interns project7-interns left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: REQUEST CHANGES

Summary

The trust dashboard redesign is close, but the wallet identity section still misses one of the explicit issue requirements.

Findings

  • [medium] The wallet card never exposes a copy affordance for the connected address, so the PR does not satisfy issue #569's truncated + copy wallet identity requirement.
    • File: src/app/profile/[address]/page.tsx:381
    • Suggestion: add a small copy-to-clipboard control next to the truncated address while keeping the explorer link.

Decision

Requesting changes because the wallet identity acceptance criteria are still incomplete.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Collaborator

@project7-interns project7-interns left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: REQUEST CHANGES

Summary

The wallet copy affordance is fixed, but the Farcaster dashboard can still render from live lookup data instead of the cached users row, which leaves the trust metrics inconsistent.

Findings

  • [medium] ProfilePage still requests getFarcasterProfile(address), and that helper falls back to lookupByAddress(address) when there is no cached FID row. The header then treats any returned fcProfile as sufficient to render the Farcaster card, but follower/following counts and badges still come from dbUser with 0 / null fallbacks. For an address that resolves via the live Farcaster lookup but has no local users row yet, the new trust dashboard will show a Farcaster identity with misleading 0 followers / 0 following and no badges. That violates issue #569's users-table-only data-source requirement and the intentional degradation requirement.
    • File: src/app/profile/[address]/page.tsx:39
    • File: src/app/profile/[address]/page.tsx:208
    • File: lib/actions.ts:29
    • Suggestion: derive Farcaster-card presence and fields strictly from dbUser (fid, username, display_name, pfp_url, etc.), or suppress the card entirely when the cached users row is absent instead of falling back to live lookup data.

Decision

Requesting changes because the social-credibility dashboard can still display misleading trust data for uncached Farcaster addresses.

hasFarcaster now checks dbUser.fid + dbUser.username instead of
fcProfile. FC card uses dbUser fields so follower counts come from
cached data, not the live API which doesn't return stats. Prevents
misleading "0 followers" when user is uncached.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Collaborator

@project7-interns project7-interns left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE

Summary

The redesign now satisfies the remaining review findings. The wallet identity includes the required copy affordance, and the Farcaster trust card only renders from cached users-table data.

Findings

  • No remaining blocking issues found.

Decision

Approving because the social-credibility dashboard now degrades intentionally and no longer shows misleading Farcaster trust metrics for uncached addresses.

@realproject7 realproject7 merged commit acf483d into main Mar 26, 2026
5 checks passed
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.

Redesign profile page to showcase author social credibility

2 participants