• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / cli / 27717970948
65%

Build:
DEFAULT BRANCH: develop
Ran 17 Jun 2026 08:35PM UTC
Jobs 1
Files 225
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

17 Jun 2026 08:28PM UTC coverage: 65.033% (+0.08%) from 64.953%
27717970948

push

github

web-flow
fix(cli): reconcile hybrid stitch+stamp identity with shared LegacyIdentityStitch service (#5607)

## Problem

The #5366 gate stopped the ephemeral-env `$identify` spike, but at the
cost of attribution: in CI, Docker, and `npx supabase`, `cli_*` events
stay orphaned on throwaway device IDs and never link to the
authenticated user. GROWTH-891 (#5559) fixes that with a hybrid
stitch+stamp model.

While #5559 was in review, #5579 (db lint/advisors port) landed on
develop and independently extracted the legacy identity stitch into a
shared `LegacyIdentityStitch` service — one per-command
`stitchAttempted` guard so the advisor transports alias at most once.
That's the architecture we want, but it's a port of the pre-891
behavior: it only stamps when it aliases (persistent, first login), so
it doesn't restore CI/Docker/npx attribution; it sets `stitchAttempted`
after the file-read yield; and it reads the `runtime.distinctId` field
that 891 replaced with a mutable identity slot. Merging #5559 on top
as-is would silently drop the attribution feature and reintroduce the
race.

This PR reconciles the two: keep #5579's shared-service architecture,
fold the hybrid stitch+stamp behavior into it. Supersedes #5559.

## Changes

- **The shared `LegacyIdentityStitch` now stamps everywhere.** On the
first authenticated response the user UUID is stamped into
`runtime.identity` in every runtime, so captures in CI/Docker/npx carry
the real user. The `$create_alias` (pre-login history merge) and the
`telemetry.json` write still only happen on a persistent machine.
- **Hardening preserved:** `stitchAttempted` is set before the first
yield (no double-stitch race); when an identity already exists we stamp
without aliasing (never merge two person graphs); alias fires at most
once across all transports sharing the service.
- **`stitchedDistinctId()` returns `runtime.identity.current()`** so the
post-run `cli_command_executed` is attributed to the real user in every
runtime, inc... (continued)

10748 of 16527 relevant lines covered (65.03%)

7.39 hits per line

Coverage Regressions

Lines Coverage ∆ File
26
12.9
0.05% cmd/root.go
22
86.77
2.5% internal/telemetry/service.go
7
72.0
-10.35% internal/logout/logout.go
5
34.5
1.33% internal/login/login.go
Jobs
ID Job ID Ran Files Coverage
1 27717970948.1 17 Jun 2026 08:35PM UTC 225
65.03
GitHub Action Run
Source Files on build 27717970948
  • Tree
  • List 225
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27717970948
  • cbbcd06f on github
  • Prev Build on gh-readonly-queue/develop/pr-5606-57111aec88e51835888af4ce6d37ba7737d44845 (#27714595073)
  • Next Build on develop (#27719340237)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc