Skip to content

[#490] Add native Farcaster miniapp install + notification modal#497

Merged
realproject7 merged 1 commit intomainfrom
task/490-miniapp-install-modal
Mar 24, 2026
Merged

[#490] Add native Farcaster miniapp install + notification modal#497
realproject7 merged 1 commit intomainfrom
task/490-miniapp-install-modal

Conversation

@realproject7
Copy link
Copy Markdown
Owner

Summary

  • After sdk.actions.ready() dismisses the splash, checks context.client.added
  • If user hasn't added PlotLink yet, triggers sdk.actions.addMiniApp() which shows the native Farcaster modal for install + notification permission
  • Only fires when platform === 'farcaster' (not web or Base App)
  • SDK/client handles "already added" and dismissal states — no re-prompting
  • Matches Dropcast's FrameProvider pattern

Fixes #490

Test plan

  • Build passes
  • In Warpcast (new user): native modal appears after splash asking to add PlotLink
  • In Warpcast (existing user): no modal re-prompt
  • On web: no modal, no errors
  • Dismissing modal: no errors, app continues normally

🤖 Generated with Claude Code

After sdk.actions.ready(), check context.client.added and trigger
sdk.actions.addMiniApp() for users who haven't added PlotLink yet.
The native Farcaster modal handles install + notification permission.
Only fires on platform === 'farcaster', no re-prompting for
users who already added or dismissed.

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

vercel Bot commented Mar 24, 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 24, 2026 11:27am

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.

LGTM. sdk.actions.addMiniApp() verified in SDK types. Logic is correct: ready() first, then check context.client.added, prompt only if not added. SDK/client handles re-prompt prevention natively. Error caught gracefully. Farcaster-only via platform guard. No issues.

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 new miniapp lifecycle hook is scoped to Farcaster clients, calls ready(), and then triggers the native addMiniApp() flow only when context.client.added is false. That aligns with the issue and mirrors the established Dropcast pattern.

Findings

  • None.

Decision

Approve because the change is focused and satisfies #490's Farcaster-only native install/notification prompt requirements.

@realproject7 realproject7 merged commit 416f981 into main Mar 24, 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.

Add native Farcaster modal for miniapp install + notification permission

2 participants