|
1 | 1 | # @taskless/cli |
2 | 2 |
|
| 3 | +## 0.10.2 |
| 4 | + |
| 5 | +### Patch Changes |
| 6 | + |
| 7 | +- 1cd0f89: Treat the Taskless organization UUID as the one canonical identity, and become |
| 8 | + forward-compatible with the server's coming identity cleanup. |
| 9 | + - **Stop consuming `installationId`.** It is dropped from the `WhoamiOrg` type |
| 10 | + and from the `taskless rule meta --json` output (it was already optional and |
| 11 | + absent for public repos). The CLI never used it and it should not round-trip |
| 12 | + through us. |
| 13 | + - **Namespace the GitHub org id.** `WhoamiOrg.orgId` is now optional and a new |
| 14 | + `githubOrgId?: number` is added, so a consumer reads `githubOrgId ?? orgId` |
| 15 | + and keeps working across the server's rename. It is a convenience id, never an |
| 16 | + identity. |
| 17 | + - **Identify on the canonical id.** `decodeOrgId` validates the token's `id` |
| 18 | + claim (a UUID string) and the legacy `orgId` claim (numeric, or a numeric |
| 19 | + string) independently: a valid `id` wins, an invalid `id` still lets a valid |
| 20 | + `orgId` through, and a non-numeric `orgId` is rejected rather than smuggled in |
| 21 | + as an identity. PostHog then groups organizations on that canonical id. Tokens |
| 22 | + that don't yet carry an `id` claim fall back to the numeric claim, so grouping |
| 23 | + is unchanged until the server starts sending it. |
| 24 | + - **Always have a known org id.** When neither a matched org nor a token claim |
| 25 | + resolves, the canonical id falls back to the nil UUID |
| 26 | + (`00000000-0000-0000-0000-000000000000`) instead of being absent — so the org |
| 27 | + subject and telemetry group are always a stable, known value and unattributed |
| 28 | + usage lands in one bucket. As a result, a write from a token missing org info |
| 29 | + now sends the nil-UUID subject rather than failing with a re-authenticate |
| 30 | + error. |
| 31 | + - **Tolerate `number | string` on the legacy path.** The canonical `id` stays a |
| 32 | + UUID `string`, but `decodeOrgId` accepts either type since we can't promise |
| 33 | + what a legacy claim carries. |
| 34 | + |
3 | 35 | ## 0.10.1 |
4 | 36 |
|
5 | 37 | ### Patch Changes |
|
0 commit comments