Docs: skills/README/CHANGELOG for effects client rewrite
- scenarios.md rewritten for server-side execution + effects API - realtime.md deleted; realtime/planstore references purged from docs - CHANGELOG Unreleased: major bump + migration table
This commit is contained in:
@@ -1,5 +1,51 @@
|
||||
# Changelog
|
||||
|
||||
## Unreleased
|
||||
|
||||
Breaking change — major bump. The local scenario engine is replaced by a
|
||||
server-driven effects client; the realtime websocket client is removed.
|
||||
|
||||
### Removed
|
||||
|
||||
- Local scenario runtime: `PlanRun`, `ExecutionPlan` walking, node sessions
|
||||
(`NotificationSession`, `StoreOfferSession`, `LeaderboardSession`,
|
||||
`WaitSession`, `QuestSession`, `BattlePassSession`,
|
||||
`BattlePassLevelSession`, `ConfigChangedSession`), `RespondAsync` /
|
||||
`Respond`, `RestoreAsync`, `Clear`, `ActiveRuns`, `IsRunning`,
|
||||
`CurrentNodeId`, `OnConfigChanged`.
|
||||
- `RudderClientOptions.PlanStateStore` / `IPlanStateStore` and
|
||||
`IPlanScheduler` — no local plan persistence or delayed plan work.
|
||||
- `RealtimeService` (`client.Realtime`), `RudderClientOptions.RealtimeUrl` /
|
||||
`RealtimeTransportFactory`, `IRealtimeTransport` /
|
||||
`IRealtimeTransportFactory`.
|
||||
|
||||
### Changed (breaking)
|
||||
|
||||
- `client.Scenario` is a trigger only: `TriggerAsync(eventName)` returns
|
||||
`Task` (not started plans). Returned pending effects are ingested into
|
||||
`client.Effects`.
|
||||
- Subscribe to `client.Effects.On*` instead of `client.Scenario.On*`.
|
||||
Sessions are now effect objects (`NotificationEffect`, `StoreOfferEffect`,
|
||||
…). Complete them with the methods on the effect (`DoneAsync`,
|
||||
`PurchaseAsync`/`DeclineAsync`, `EndAsync`/`ClaimAsync`, …).
|
||||
- `client.Update(deltaTime)` is still required every frame — it now pumps
|
||||
the effects client (30s `GET /sdk/v1/scenarios/pending` heartbeat +
|
||||
wait-deadline checks), not a local DAG or a websocket.
|
||||
- After login (or when constructed with a stored access token), the next
|
||||
`Update` fetches pending effects. There is no `loginEvent` option; trigger
|
||||
login-gated scenarios yourself.
|
||||
|
||||
### Migration
|
||||
|
||||
| Before | After |
|
||||
|---|---|
|
||||
| `client.Scenario.OnNotification` (and other `On*`) | `client.Effects.OnNotification` (same event names) |
|
||||
| `NotificationSession` / `StoreOfferSession` / … | `NotificationEffect` / `StoreOfferEffect` / … |
|
||||
| `session.CompleteAsync()` / `RespondAsync("output")` | `effect.DoneAsync()` (and the matching method on each effect) |
|
||||
| `RudderClientOptions.PlanStateStore` + `RestoreAsync` | gone — server owns run state; pending fetch after login + heartbeat |
|
||||
| `client.Realtime` | gone |
|
||||
| `client.Update(deltaTime)` | still required (effects pump) |
|
||||
|
||||
## 0.4.0
|
||||
|
||||
- Generated DTOs live under `Models/` (`RudderSdk.Core.Models`). Wire fields
|
||||
|
||||
Reference in New Issue
Block a user