Skip to content

chore(release): 1.34.0 - #320

Merged
yosriady merged 1 commit into
mainfrom
release/1.34.0
Aug 5, 2026
Merged

chore(release): 1.34.0#320
yosriady merged 1 commit into
mainfrom
release/1.34.0

Conversation

@yosriady

@yosriady yosriady commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Release PR for 1.34.0, covering the Privy identity clustering work merged in #304.

Changes

File Change
package.json 1.33.11.34.0
src/version.ts 1.30.11.34.0 (regenerated)
.gitignore ignore .pnpm-store/

src/version.ts had drifted three releases behind. It was still reporting 1.30.1 while the package shipped 1.33.1, because earlier releases did not run the npm version lifecycle that regenerates it. That value is compiled into the bundle and sent with events, so it has been misreporting the SDK version. Regenerated here.

.gitignore now covers .pnpm-store/, the local content-addressable store pnpm creates in the repo root. It was untracked and unignored, so every pnpm version failed with ERR_PNPM_UNCLEAN_WORKING_TREE.

After merging

The release workflow triggers on a v* tag and hard-fails if the tag does not match package.json, so tag only after this lands on main:

git checkout main && git pull
git tag v1.34.0
git push origin v1.34.0

Then verify: npm view @formo/analytics version

What 1.34.0 contains

identify(user) accepts a Privy user directly and identifies every wallet linked to that user's DID, so a multi-wallet Privy user clusters into one Formo user instead of fragmenting into one per address.

Verified end to end against a live Privy app and a real Formo project: one identify per linked wallet sharing the DID and anonymous_id, attribution pinned to the active wallet, and each social link re-emitting exactly one identify per wallet with the socials landing on all addresses in user_profiles_mv.

Release notes

Two behaviour changes affecting all callers, not just Privy:

  • Identify dedup is now profile-aware. An identify() whose properties changed re-emits instead of being suppressed for the session. This is what makes account linking propagate. Callers passing a volatile property (a timestamp, a random id) will emit one identify per call rather than one per session. Worth watching identify volume for 24-48h after release.
  • An identify on a chain in tracking.excludeChains no longer mutates identity state. Previously it updated currentAddress/currentUserId and wrote the user-id cookie, then dropped the event and left the wallet dedup-marked, so it never re-emitted after switching to an allowed chain.

Verification

749 tests passing; lint, tsc, and full build clean. package.json and src/version.ts agree, which is what the workflow checks.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Review in cubic

Bumps package.json for the Privy identity clustering release (#304) and
regenerates src/version.ts, which had drifted to 1.30.1 because earlier
releases did not run the npm version lifecycle. The release workflow refuses
to publish unless the tag matches package.json, so both must be correct
before tagging.

Also ignores .pnpm-store/, the local content-addressable store pnpm creates
in the repo root. It was untracked and unignored, which made every
`pnpm version` fail with ERR_PNPM_UNCLEAN_WORKING_TREE.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@yosriady
yosriady merged commit 9f4a20c into main Aug 5, 2026
13 checks passed
@yosriady
yosriady deleted the release/1.34.0 branch August 5, 2026 03:41
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.

1 participant