Skip to content

feat: re-land markAsClicked on InboxAction and bump to 6.0.5 - #67

Merged
mikemilla merged 1 commit into
mainfrom
mike/action-click-tracking-main
Aug 28, 2026
Merged

feat: re-land markAsClicked on InboxAction and bump to 6.0.5#67
mikemilla merged 1 commit into
mainfrom
mike/action-click-tracking-main

Conversation

@mikemilla

Copy link
Copy Markdown
Collaborator

What

Re-lands the InboxAction.markAsClicked API on main and cuts the patch release that ships it.

Why this exists

#65 merged into master, not main. master sits ~10 commits behind the default branch and deploy.yml only publishes on push: branches: [main], so the API never reached npm — origin/main still had no markAsClicked. The version bump inside that PR was to 5.6.18, master's stale version line; main is on the 6.x line.

This also carries the Courier_iOS 5.8.6 podspec pin from #66, which merged after 6.0.4 was published. That deploy run went green as a no-op (6.0.4 was already on npm), leaving the pin on main unreleased. Bumping to 6.0.5 publishes both.

Changes

  • InboxAction.markAsClicked(messageId) plus an InboxAction.trackingId getter, backed by the existing client.inbox.click — identical to what feat: expose markAsClicked on InboxAction #65 put on master.
  • Tests for both, in the repo's existing inbox-action.test.tsx.
  • package.json 6.0.4 → 6.0.5.

An action carries its own tracking id in data.trackingId, separate from the message's click tracking id, so a click is attributed to the button the user actually pressed. CourierInboxView renders through the native SDKs, which report the click themselves — reporting again from JS would double-count every press. What was missing is only the API for apps that render their own action buttons. An action from a template that opted out of tracking arrives without an id and is a no-op.

Verification

tsc --noEmit clean, eslint clean, jest 131/131 passing (6 of them new).

Follow-up

master is stale and still accepts PRs — it is what caused this. Worth deleting or protecting so nothing else lands there.

🤖 Generated with Claude Code

The API landed in #65, but that PR targeted `master` — a branch ~10 commits
behind `main` that the deploy workflow never publishes from. The change never
reached npm, and the 5.6.18 bump it carried belonged to master's old version
line. This puts the same code on `main` with a bump off 6.0.4.

An action carries its own tracking id in `data.trackingId`, separate from the
message's click tracking id, so a click can be attributed to the button the
user actually pressed. `CourierInboxView` renders through the native SDKs,
which report the click themselves, so nothing is added there — doing so would
count each press twice. This is the API for apps that render their own action
buttons. An action from a template that opted out of tracking arrives without
an id and is a no-op.

Also ships the Courier_iOS 5.8.6 podspec pin from #66, which merged after
6.0.4 was published and so has been sitting on `main` unreleased.

Co-Authored-By: Claude Opus 5 <[email protected]>
@mikemilla
mikemilla merged commit 6f04a12 into main Aug 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant