@wireai/activation 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/dist/analytics/index.d.mts +1 -1
- package/dist/analytics/index.d.ts +1 -1
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/index.mjs.map +1 -1
- package/dist/reviews/index.d.mts +1 -1
- package/dist/reviews/index.d.ts +1 -1
- package/dist/reviews/index.js.map +1 -1
- package/dist/reviews/index.mjs.map +1 -1
- package/dist/{transport-DzU-TqZz.d.ts → transport-B31G0Cib.d.ts} +51 -9
- package/dist/{transport-f5VVB5hH.d.mts → transport-Bzb-bcB2.d.mts} +51 -9
- package/package.json +1 -1
- package/src/reviews/transport.ts +51 -9
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,45 @@
|
|
|
3
3
|
All notable changes to `@wireai/activation` (formerly `wireai-onboarding`).
|
|
4
4
|
Historical entries below the rename keep the old package name on purpose.
|
|
5
5
|
|
|
6
|
+
## [0.9.1] — 2026-07-17
|
|
7
|
+
|
|
8
|
+
### Fixed: the review-decision wire is now documented as it actually is
|
|
9
|
+
|
|
10
|
+
No API change — `fetchReviewDecision` and `FetchReviewDecisionOptions` are byte-compatible
|
|
11
|
+
with 0.9.0. What changes is that the kit stops asserting things about the server that are not
|
|
12
|
+
true, and pins the wire with tests.
|
|
13
|
+
|
|
14
|
+
- **The "prod 422s without `session_id`" comment was stale and is corrected.** The server
|
|
15
|
+
relaxed `session_id` to optional on 2026-07-16 and the relaxation **is deployed**: the live
|
|
16
|
+
route declares `session_id` as `required: false`, and an unauthenticated call carrying no
|
|
17
|
+
params at all answers `401`, not `422` — query validation runs before the handler's auth
|
|
18
|
+
check, so a required param would have 422'd first. A session-less review gate reaches the
|
|
19
|
+
firing brain today.
|
|
20
|
+
- **`FetchReviewDecisionOptions` stays closed at `sessionId` / `deviceKey` — deliberately.**
|
|
21
|
+
The deployed `GET /v1/reviews/decision` declares exactly those two query params plus the
|
|
22
|
+
`Authorization` header. Hosts that hand-rolled this fetch invented `user_id` and
|
|
23
|
+
`session_count` params on the belief that "the server ignores what it doesn't read, so
|
|
24
|
+
passing it is always safe". They are no-ops: the route declares neither, and `session_count`
|
|
25
|
+
appears nowhere in the deployed API. Adding them to the kit would have made the call site
|
|
26
|
+
read as though identity and a session counter reach the firing brain when neither does.
|
|
27
|
+
Identity goes in `deviceKey`; a client-side session floor is `ReviewConfig.minSessions`.
|
|
28
|
+
- **`arm` is documented as load-bearing.** `fetchReviewDecision` already returns
|
|
29
|
+
`ReviewDecisionResponse` (`{fire, reason, arm}`). Narrowing it to `{fire, reason}` on the way
|
|
30
|
+
to the gate silently kills per-arm attribution across a reweighting; the docs now say so and
|
|
31
|
+
a regression test pins it.
|
|
32
|
+
- **`timeoutFallbackMs` is surfaced where the race actually happens.** It already exists on
|
|
33
|
+
`ReviewConfig` and is fully implemented in `useReviewGate` (local rules stay parked until the
|
|
34
|
+
decision lands or the window expires). The transport docs now point at it, because a host
|
|
35
|
+
running its own dwell timer in parallel with the fetch builds a race a slow server loses — an
|
|
36
|
+
in-flight `{fire:false}` arrives after the local timer already showed the prompt.
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
|
|
40
|
+
- `src/reviews/transport.test.ts` — the transport had **no test file at all**. 11 tests pin the
|
|
41
|
+
wire contract (only `session_id` + `device_key` are sent; a session-less call is legal), the
|
|
42
|
+
incident semantics (`{fire:false}` survives, never collapsed to null; `arm` survives), and
|
|
43
|
+
"no opinion is the only null" (non-2xx / non-boolean `fire` / unreachable → `null`).
|
|
44
|
+
|
|
6
45
|
## [0.1.0] — 2026-07-12
|
|
7
46
|
|
|
8
47
|
### Renamed: `wireai-onboarding` is now `@wireai/activation`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { R as ReportAppEventOptions, r as reportAppEvent } from '../transport-
|
|
1
|
+
export { R as ReportAppEventOptions, r as reportAppEvent } from '../transport-Bzb-bcB2.mjs';
|
|
2
2
|
import { W as WireUserContext, E as EventQueueOptions } from '../currentSession-Bs2JfTJ8.mjs';
|
|
3
3
|
export { A as AnalyticsEvent, C as ClientEvent, a as ClientEventTarget, b as ClientEventType, c as ContextEnvelope, d as ContextEnvelopeInput, e as EnvelopeSource, f as EventQueue, g as WIRE_ONBOARDING_EVENTS, h as WireOnboardingEventName, i as buildContextEnvelope, j as createEventQueue, k as getCurrentSessionId, m as makeSessionId, r as reportClientEvent, l as reportClientEvents, n as resetCurrentSessionId, s as setCurrentSessionId, t as toAnalyticsEvent } from '../currentSession-Bs2JfTJ8.mjs';
|
|
4
4
|
import '../types-CNUqMK0D.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { R as ReportAppEventOptions, r as reportAppEvent } from '../transport-
|
|
1
|
+
export { R as ReportAppEventOptions, r as reportAppEvent } from '../transport-B31G0Cib.js';
|
|
2
2
|
import { W as WireUserContext, E as EventQueueOptions } from '../currentSession-61dcm3V-.js';
|
|
3
3
|
export { A as AnalyticsEvent, C as ClientEvent, a as ClientEventTarget, b as ClientEventType, c as ContextEnvelope, d as ContextEnvelopeInput, e as EnvelopeSource, f as EventQueue, g as WIRE_ONBOARDING_EVENTS, h as WireOnboardingEventName, i as buildContextEnvelope, j as createEventQueue, k as getCurrentSessionId, m as makeSessionId, r as reportClientEvent, l as reportClientEvents, n as resetCurrentSessionId, s as setCurrentSessionId, t as toAnalyticsEvent } from '../currentSession-61dcm3V-.js';
|
|
4
4
|
import '../types-Buj9Lw9t.js';
|