@revturbine/sdk 0.10.5 → 0.10.6
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 +42 -0
- package/dist/headless.js +1 -1
- package/dist/headless.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -47,6 +47,48 @@ also require a changelog entry.
|
|
|
47
47
|
|
|
48
48
|
---
|
|
49
49
|
|
|
50
|
+
## 0.10.6
|
|
51
|
+
|
|
52
|
+
### The trial-status PlanProvider overlay ships in the Rust crate (BL-0153)
|
|
53
|
+
|
|
54
|
+
**What changed.** `revturbine::overlay_trial_status_on_plan_provider` is a new
|
|
55
|
+
public function on the Rust crate: it maps a runtime `UserTrialStatus` onto the
|
|
56
|
+
`trial_*` fields of a resolved PlanProviderState, the fields the placement
|
|
57
|
+
resolver's `trial_progress` / `trial_ending` / `trial_ended` /
|
|
58
|
+
`trial_converted` gates and milestone supersession read. Python has always done
|
|
59
|
+
this inside its shipped package
|
|
60
|
+
(`revturbine.sdk._overlay_trial_status_on_plan_provider`); on Rust the mapping
|
|
61
|
+
existed only as a private helper the facade used, so a host that assembles its
|
|
62
|
+
own provider context — including this repo's own parity runner — had to
|
|
63
|
+
re-implement it. Additive: no existing signature changed.
|
|
64
|
+
|
|
65
|
+
Porting Python's mapping faithfully corrected two Rust-only divergences in the
|
|
66
|
+
overlay the facade applies:
|
|
67
|
+
|
|
68
|
+
| `UserTrialStatus` field | Rust before | Rust now (= TS/Python) |
|
|
69
|
+
|---|---|---|
|
|
70
|
+
| `day_number` + `days_remaining` | not derived | `trial_days_total = day_number + days_remaining`, only when both are present |
|
|
71
|
+
| `day_number` | written to `trial_day_number` | not written — no provider-state field reads it |
|
|
72
|
+
| `usage_entitlement_handle` | dropped | `trial_usage_entitlement_handle` |
|
|
73
|
+
|
|
74
|
+
`trial_days_total` is the input to the time-mode progress fallback in
|
|
75
|
+
`placements::trial_gating`, so before this the fallback could never fire on the
|
|
76
|
+
Rust port.
|
|
77
|
+
|
|
78
|
+
**Landed in.** `0.10.6`.
|
|
79
|
+
|
|
80
|
+
**Fail-closed in.** `0.10.6` — the parity facade-presence gate
|
|
81
|
+
(`tests/parity/facade-surface.json`) no longer allow-lists a runner-local
|
|
82
|
+
overlay, so a future re-implementation harness-side fails the gate.
|
|
83
|
+
|
|
84
|
+
**Proving test.** `server-rust/src/sdk.rs` `overlay_maps_every_canonical_trial_field`,
|
|
85
|
+
`trial_days_total_requires_both_halves`, `overlay_does_not_clobber_base_state_with_null`
|
|
86
|
+
(mirroring `server-python/tests/test_trial_overlay_upsert.py`), plus the
|
|
87
|
+
`trial_ending_days_before_end`, `trial_ended_post_expiry` and
|
|
88
|
+
`trial_progress_milestone_supersession` parity fixtures.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
50
92
|
## 0.10.5
|
|
51
93
|
|
|
52
94
|
### Trial-only local integrations get provider context (BL-0120)
|