Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
228 commits
Select commit Hold shift + click to select a range
7867dee
feat: add Effect SDK API design proposal
IGassmann Apr 23, 2026
1a6bf5e
refactor(effect): inline MAX_COUNT constant with value 20
IGassmann Apr 23, 2026
63c4938
refactor(effect): rename CounterOverflow to CounterOverflowError
IGassmann Apr 23, 2026
9f0b542
refactor: embed actions in actor definition
IGassmann Apr 23, 2026
2810003
refactor(effect): rename action input to payload
IGassmann Apr 23, 2026
9a337a5
docs(effect): document rationale for explicit action schemas
IGassmann Apr 23, 2026
c4f0938
style(effect): reformat Counter.ts to use tabs instead of spaces
IGassmann Apr 23, 2026
80b070c
docs(effect): document benefits of context-based actor services
IGassmann Apr 23, 2026
9c33d72
refactor(effect): move error declaration closer to actor definition
IGassmann Apr 23, 2026
fddf524
feat(effect): add options to Counter actor definition for name and icon
IGassmann Apr 23, 2026
f544e67
style(effect): reformat Counter.ts event block for consistency
IGassmann Apr 23, 2026
9947347
docs(effect): remove contract separation from schema rationale
IGassmann Apr 23, 2026
dc6370f
refactor(effect): migrate API design to Effect v4
IGassmann Apr 23, 2026
dec23f0
refactor(effect): switch to standalone first-class actions
IGassmann Apr 24, 2026
14b456a
feat(effect): add temporary variable example
IGassmann Apr 24, 2026
feba11f
refactor(effect): clarify toLayer body as wake scope with sleep final…
IGassmann Apr 24, 2026
fc08555
refactor(effect): split Counter actor into per-actor directory with a…
IGassmann Apr 24, 2026
6ee630c
refactor(effect): simplify finalizer to plain sleep log
IGassmann Apr 24, 2026
42f2040
refactor(effect): use shared Actor.Kv/Db tags instead of per-actor Co…
IGassmann Apr 26, 2026
0f60509
docs(effect): update README to reflect split Counter actor files
IGassmann Apr 26, 2026
a3751f5
feat(effect): add durable message queue processing to Counter actor
IGassmann Apr 26, 2026
7dbc608
style(effect): fix indentation to tabs in client.ts and main.ts
IGassmann Apr 26, 2026
9cc41bc
fix(effect): use Schema.Struct for Reset message payload
IGassmann Apr 27, 2026
636f333
refactor(effect): remove onConnect hook referencing undeclared event
IGassmann Apr 27, 2026
4e0fc76
feat(effect): use withConstructorDefault for state initialization
IGassmann Apr 27, 2026
aa63fee
feat(effect): add queue size limits to Counter actor options
IGassmann Apr 27, 2026
55a9cd1
feat(effect): use PersistedSubscriptionRef for actor state
IGassmann Apr 27, 2026
aa6daeb
feat(effect): scaffold @rivetkit/effect package
IGassmann Apr 27, 2026
b4eca9e
chore(effect): remove version and stableVersion from example
IGassmann Apr 27, 2026
011d1d8
chore(effect): remove unused template metadata from example
IGassmann Apr 27, 2026
4646558
chore(effect): run example with tsx directly instead of srvx
IGassmann Apr 27, 2026
ce3e39d
docs(effect): use relative paths for example file links
IGassmann Apr 27, 2026
cbe28a7
chore(effect): align tsconfig with rivetkit/workflow-engine
IGassmann Apr 27, 2026
7d2840a
chore(effect): align package.json with rivetkit conventions
IGassmann Apr 27, 2026
cd5a222
chore(effect): use caret range for effect dependency
IGassmann Apr 27, 2026
8c6fb38
chore(effect): bump typescript to ^5.9.2
IGassmann Apr 27, 2026
874fcf0
chore(effect): fix import path in tsup config
IGassmann Apr 27, 2026
ca70ed3
chore(effect): add vitest for testing and include test files in tsconfig
IGassmann Apr 27, 2026
d84f281
chore(effect): enable verbatimModuleSyntax and add @effect/language-s…
IGassmann Apr 27, 2026
4480032
chore(effect): drop @types/node to keep types runtime-agnostic
IGassmann Apr 27, 2026
145cdb4
chore(effect): add vitest config extending workspace base
IGassmann Apr 27, 2026
0bc65f3
docs(effect): remove outdated README API design proposal
IGassmann Apr 27, 2026
ce79b9b
chore(effect): wire up persistent turbo dev task for example workflow
IGassmann Apr 27, 2026
76b66bc
chore(effect): use workspace deps so turbo sees the example's graph
IGassmann Apr 27, 2026
1ac8dfe
feat(effect): add Action module with schema-driven action definitions
IGassmann Apr 27, 2026
136d5b5
docs(effect): use shorthand payload fields in counter example
IGassmann Apr 28, 2026
f0be883
feat(effect): add Message module with completable and fire-and-forget…
IGassmann Apr 28, 2026
7b9c212
refactor(effect): drop per-action defect schema from Action
IGassmann Apr 28, 2026
72b191f
feat(effect): add Actor contract module
IGassmann Apr 28, 2026
18c645f
refactor(effect): rename actor transport to client
IGassmann Apr 28, 2026
641b17d
refactor(effect): scope contract keys under @rivetkit/effect
IGassmann Apr 28, 2026
667e257
refactor(effect): remove actor annotations
IGassmann Apr 28, 2026
df7c392
feat(effect): add type guards for Action, Message, and Actor
IGassmann Apr 28, 2026
2ddffd7
refactor(effect): simplify Message key assignment
IGassmann Apr 28, 2026
5eb9668
refactor(effect): simplify Action interface documentation
IGassmann Apr 28, 2026
bf8d278
feat(effect): extend counter example with ClientError type
IGassmann Apr 28, 2026
a7d29dd
refactor(effect): drop unused Pipeable from Action
IGassmann Apr 29, 2026
81cd9c5
refactor(effect): drop function-as-instance carrier from Action
IGassmann Apr 29, 2026
7640c0b
refactor(effect): drop unused Pipeable from Message and Actor
IGassmann Apr 29, 2026
0f3ce01
refactor(effect): drop redundant construct signature from Message
IGassmann Apr 29, 2026
c4e25aa
feat(effect): scope SDK v1 to actions only
IGassmann Apr 30, 2026
d34b7e1
refactor(effect): drop AbortSignal-based call cancellation
IGassmann Apr 30, 2026
b688ea7
refactor(effect): drop get/getForId/create from ActorClient
IGassmann Apr 30, 2026
6c79c14
refactor(effect): drop GetOrCreateOptions and the options arg
IGassmann Apr 30, 2026
f774006
docs(effect): drop per-action middleware mention from counter example
IGassmann Apr 30, 2026
9b2d598
refactor(effect): align Registry/Client options with engine wiring
IGassmann Apr 30, 2026
552d8d6
feat(effect): add fixed RivetError defectSchema to Action
IGassmann Apr 30, 2026
376bf1d
refactor(effect): tighten ActionHandlers R upper bound to unknown
IGassmann Apr 30, 2026
d0f23d0
refactor(effect): collapse ClientError into a single RivetError tagge…
IGassmann Apr 30, 2026
7db0ac7
refactor(effect): split Registry collector from Runner mode layers
IGassmann May 1, 2026
33fb123
feat(effect): implement Registry as Ref-backed actor collector
IGassmann May 1, 2026
1cb585b
feat(effect): wire Runner.start through rivetkit's setup().start()
IGassmann May 1, 2026
54f5cf0
feat(effect): wire per-instance scope and handler dispatch in Runner.…
IGassmann May 1, 2026
5a1dc96
feat(examples/effect): add plain-rivetkit smoke client and self-spawn…
IGassmann May 1, 2026
dce78df
feat(examples/node-client): add minimal actor + plain Node client exa…
IGassmann May 1, 2026
9a172f0
feat(effect): expose Actor.CurrentAddress inside the wake scope
IGassmann May 1, 2026
e10dec6
feat(effect): add Client service and typed-error round-trip via UserE…
IGassmann May 1, 2026
5edd5e6
chore(examples/effect): update start/dev scripts to include RIVET_ENG…
IGassmann May 1, 2026
ddcd09f
feat(examples/effect): add message field to CounterOverflowError
IGassmann May 1, 2026
d01ddb7
refactor(effect): remove unused generic from `Effect.context` call in…
IGassmann May 1, 2026
274ca70
refactor(effect): fuse action dispatch into one Effect, drop codec maps
IGassmann May 1, 2026
6184b18
docs(examples/effect): re-add v0 surface as commented-out scaffolding
IGassmann May 1, 2026
23e7dca
docs(examples/effect): drop redundant client-raw.ts header comment
IGassmann May 1, 2026
5904605
refactor(effect): use namespace imports for rivetkit symbols
IGassmann May 3, 2026
dfacc86
refactor(effect): consolidate effect submodule imports into one line
IGassmann May 3, 2026
7eb6afc
chore(effect): apply biome formatting
IGassmann May 3, 2026
93b4217
refactor(effect): rename native* identifiers to rivetkit*
IGassmann May 3, 2026
26d993c
refactor(effect): rename Address to CurrentAddress
IGassmann May 3, 2026
3cbbcf8
refactor(effect): derive option types from canonical rivetkit shapes
IGassmann May 3, 2026
7981b81
refactor(effect): tighten remaining drift-prone type declarations
IGassmann May 3, 2026
9a4752f
refactor(effect): inline ClientShape
IGassmann May 3, 2026
bc3fbd7
refactor(effect): simplify rivetkitClient initialization
IGassmann May 3, 2026
9a1522e
refactor(effect): remove unused `test` mode from `RunnerShape` and `R…
IGassmann May 3, 2026
fce948a
refactor(effect): remove `runnerNotImplemented` function and unused m…
IGassmann May 3, 2026
65623d9
feat(effect): add `Runner.test` layer with end-to-end example test
IGassmann May 3, 2026
87ecef3
refactor(effect): rename Runner.test.ts to e2e.test.ts
IGassmann May 3, 2026
6a6bdf7
refactor(effect): move e2e Counter fixture into test/fixtures/
IGassmann May 3, 2026
60a8d78
chore(effect): include vitest.config.ts in tsconfig + add @types/node
IGassmann May 3, 2026
baf7b16
refactor(effect): extract hasStringProperty into utils.ts
IGassmann May 3, 2026
cc3bbeb
refactor(effect): inline RegistryShape into Registry declaration
IGassmann May 3, 2026
6e4a04e
refactor(effect): inline RunnerShape into Runner declaration
IGassmann May 3, 2026
35d5799
refactor(effect): dedupe Runner.start/test via toRivetkitRegistry helper
IGassmann May 3, 2026
6990c2d
chore(effect): silence engine logs in test suite
IGassmann May 3, 2026
28ead65
test(effect): cover Date/transform schemas, user services, and multi-…
IGassmann May 3, 2026
7aed57d
fix(effect): propagate auto-spawned engine endpoint to test client
IGassmann May 3, 2026
1628652
test(effect): add todos for build-effect errors, schema services, tra…
IGassmann May 3, 2026
3208f25
test(effect): cover schema codec services across action channels
IGassmann May 4, 2026
843e0d1
test(effect): cover defect inside actor build effect
IGassmann May 4, 2026
63697fd
test(effect): cover unregistered-actor failure shape
IGassmann May 4, 2026
6051e92
feat(effect): propagate Effect tracing spans across actor calls
IGassmann May 4, 2026
9782016
chore(effect): update vitest config to set RIVET_LOG_LEVEL=SILENT for…
IGassmann May 4, 2026
911659a
feat(effect): add `Actor.Sleep` for per-wake sleep requests
IGassmann May 4, 2026
6260dae
refactor(effect): rename `SleepFn` to `Sleep` and update references i…
IGassmann May 4, 2026
c753e91
refactor(effect): simplify state-schema wiring in Actor
IGassmann May 4, 2026
77f62b9
test(effect): improve reliability of e2e actor sleep tests
IGassmann May 5, 2026
86c6e63
refactor(effect): use Counter.State in counter example
IGassmann May 5, 2026
c481d2a
Merge branch 'main' into feat/effect-sdk-design
IGassmann May 6, 2026
2627b0e
chore(effect): use rivet.actors for rpc.system.name
IGassmann May 6, 2026
e465f28
chore(rivetkit): nest actor trace attrs under rivet.actors namespace
IGassmann May 6, 2026
57d2e8c
chore(examples/node-client): replace counter with chat-room demo
IGassmann May 6, 2026
edc66fe
refactor(effect): move state config from Actor.make to standalone Act…
IGassmann May 6, 2026
0c59cdb
refactor(effect): remove redundant `identity` function in `Actor` and…
IGassmann May 7, 2026
eeea15b
refactor(effect): reorder `Proto.of` in `Actor` for consistency
IGassmann May 7, 2026
e29aeca
refactor(effect): replace `_tag` with `name` in `Actor` and enforce `…
IGassmann May 7, 2026
95f3b39
refactor(effect): move actor display options from `Actor.make` to per…
IGassmann May 7, 2026
8719e75
refactor(effect): collapse `Any`/`AnyWithProps` and drop unused `Acto…
IGassmann May 7, 2026
6871345
refactor(effect): streamline registry handling with `Effect.pipe` and…
IGassmann May 7, 2026
c3b5632
refactor(effect): rename `GlobalActorOptionsInput` to `ActorOptionsIn…
IGassmann May 7, 2026
99d468a
refactor(effect): fold `Runner` into `Registry` as `Registry.start` a…
IGassmann May 7, 2026
add3f11
fix(effect): keep R concrete in `ActorState.AnyWithProps` and `Regist…
IGassmann May 7, 2026
a1dd918
chore(effect): drop `vitest.config.ts` from `tsconfig` include
IGassmann May 7, 2026
a47233b
refactor(effect): extract `Registry` into its own module
IGassmann May 8, 2026
e5a3b63
refactor(effect): tighten type definitions in `Actor`
IGassmann May 8, 2026
a254a79
refactor(effect): fix formatting
IGassmann May 8, 2026
9e5259c
Merge branch 'main' into feat/effect-sdk-design
IGassmann May 10, 2026
6ff75a6
refactor(effect): drop Ref from Registry entries collector
IGassmann May 10, 2026
fbfc883
refactor(effect): improve test comments for clarity and readability
IGassmann May 11, 2026
c51cab2
test(effect): re-order "isolates in-wake state across keys" test
IGassmann May 11, 2026
3a4606e
feat(effect): encode/decode actor's state
IGassmann May 11, 2026
e51e5a4
test(effect): update test key for persisting state across sleep/wake …
IGassmann May 11, 2026
0f11871
test(effect): persists state with a custom Schema.transform
IGassmann May 11, 2026
8854698
refactor(effect): replace SubscriptionRef state with State module
IGassmann May 11, 2026
27837f5
refactor(examples/effect): adopt State module for counter actor
IGassmann May 11, 2026
b641b60
test(effect): persists state through a service-dependent transform
IGassmann May 11, 2026
b4bb1e4
fix(effect): ensure `Effect.orDie` is called for finalizer in counter…
IGassmann May 11, 2026
5b39789
feat(effect): surface schema errors through State's typed error channel
IGassmann May 12, 2026
90ccb98
refactor(effect): simplify `splitOptions` by using `Struct.pick` and …
IGassmann May 12, 2026
f1f9b96
test(effect): stabilize e2e tests via shared engine + per-file namespace
IGassmann May 12, 2026
e6b8a74
refactor(effect): make `options` default to `{}`
IGassmann May 12, 2026
b75785f
test(effect): assert wake-scope finalizer fires on sleep
IGassmann May 12, 2026
331c4c5
refactor(effect): remove `ActorName`
IGassmann May 13, 2026
fda1798
refactor(effect): move rivetkit actor construction into Actor.toLayer
IGassmann May 13, 2026
0bc9683
refactor(effect): rename `Handlers` to `ActionHandlers` for clarity i…
IGassmann May 14, 2026
0296ea3
refactor(effect): improve type safety for action handler resolution a…
IGassmann May 14, 2026
ed446df
fix(effect): erase actor state schema services
IGassmann May 14, 2026
1af0356
fix(effect): correct MutableHashMap key in actor state cleanup
IGassmann May 14, 2026
397698a
refactor(effect): remove unused `eraseStateSchemaServices` and add `d…
IGassmann May 14, 2026
6ed9902
refactor(effect): pre-compute encode/decode effects once per action
IGassmann May 14, 2026
92b161a
refactor(effect): inline state initialization logic into `createState…
IGassmann May 14, 2026
d02623c
refactor(effect): inline state definition extraction into `stateDefOp…
IGassmann May 14, 2026
91a8b2a
feat(effect): forward db provider through Actor.toLayer and exercise …
IGassmann May 14, 2026
79b2fe1
refactor(effect): replace Option with UndefinedOr for state handling
IGassmann May 14, 2026
fcf51ff
refactor(effect): test/actor.ts → test/actors.ts
IGassmann May 14, 2026
0503701
refactor(effect): align test prepareNamespace with setupTest/startEngine
IGassmann May 14, 2026
64f943f
Merge branch 'main' into feat/effect-sdk-design
IGassmann May 14, 2026
898cba7
fix(effect): run createState encode effect to a Promise
IGassmann May 14, 2026
50ccefd
refactor(effect): rename Actor.RivetkitContext to RawRivetkitContext
IGassmann May 15, 2026
ef4fad6
feat(effect): add chat actor examples
IGassmann May 15, 2026
408ec3c
Merge branch 'main' into feat/effect-sdk-design
IGassmann May 16, 2026
eadb2ce
docs(effect): simplify Actor.client documentation formatting
IGassmann May 16, 2026
00d6722
refactor(effect): reorder imports in Actor.ts for clarity
IGassmann May 16, 2026
27c7c26
refactor(effect): simplify action tag handling in Actor method genera…
IGassmann May 16, 2026
8a06bf6
docs(effect): remove outdated comments in Actor.ts
IGassmann May 16, 2026
07b39bc
docs(effect): refine Client.service documentation for clarity
IGassmann May 16, 2026
dd013f2
refactor(effect): rename TypedAccessor to Accessor in Actor.ts
IGassmann May 16, 2026
f99d1dd
refactor(effect): rename callAction to action and update method usage…
IGassmann May 16, 2026
2add1cf
refactor(effect): streamline getOrCreate method in Actor by removing …
IGassmann May 16, 2026
9ce3e77
refactor(effect): centralize actor accessor creation and simplify Cli…
IGassmann May 16, 2026
90f5292
refactor(effect): simplify Client implementation and adjust Registry …
IGassmann May 16, 2026
73efb98
refactor(effect): update RivetError import to use `type` for improved…
IGassmann May 16, 2026
721365c
refactor(effect): add abort signal support to Client action calls
IGassmann May 16, 2026
363fb6d
refactor(effect): simplify client type definition in Actor
IGassmann May 16, 2026
9d87dd1
feat(effect): introduce granular error reason classes and update Rive…
IGassmann May 16, 2026
6b423cf
refactor(effect): promote group/code to reason fields, collapse wire …
IGassmann May 16, 2026
cb5d7ad
refactor(effect): replace fixed factory table with structured list, i…
IGassmann May 16, 2026
5bc3418
chore(effect): upgrade effect to 4.0.0-beta.66
IGassmann May 17, 2026
e71aa90
refactor(effect): version action-error metadata envelope and split wi…
IGassmann May 17, 2026
d58a5a9
refactor(effect): extract makeActionError helper and relocate utils t…
IGassmann May 17, 2026
29c8440
refactor(effect): carry RivetkitRivetError as reason cause and shrink…
IGassmann May 17, 2026
e0964f8
refactor(effect): extend RivetkitRivetError schema with actor, public…
IGassmann May 17, 2026
e7c7ada
refactor(effect): rename Overloaded to ActorOverloaded and remove Que…
IGassmann May 17, 2026
ae7e385
refactor(effect): remove unused comments and update RivetError JSDoc …
IGassmann May 17, 2026
4a5db3e
refactor(effect): remove unused error classes and streamline Reason s…
IGassmann May 17, 2026
ac3d471
refactor(effect): remove isRetryable accessor and simplify error Reas…
IGassmann May 17, 2026
4f66376
refactor(effect): remove outdated RivetError.catchReason example from…
IGassmann May 17, 2026
d97ef73
refactor(effect): update error classes to improve consistency and ren…
IGassmann May 17, 2026
93efdcb
refactor(effect): simplify error classification by consolidating swit…
IGassmann May 17, 2026
6cd9472
refactor(effect): replace RivetRivetError with RivetkitErrors for str…
IGassmann May 17, 2026
7ce21b4
feat(effect): expose group, code, metadata, and actor accessors on Ri…
IGassmann May 17, 2026
3a796d1
test(effect): add RivetError tests and widen UnknownError cause to un…
IGassmann May 17, 2026
19607e1
refactor(effect): split GuardError into per-code retryable reason cla…
IGassmann May 17, 2026
388ace6
refactor(effect): rename Reason to RivetErrorReason
IGassmann May 17, 2026
d807e68
feat(effect): add ActionErrorDecodeFailed reason for action error dec…
IGassmann May 17, 2026
2d3037f
feat(effect): route non-action structured errors through fromRivetkit…
IGassmann May 17, 2026
f119d50
feat(effect): expose normalized isRetryable and retryAfter on RivetEr…
IGassmann May 17, 2026
0f2699b
feat(effect): add structured accessors for type, cause, message, isRe…
IGassmann May 17, 2026
fefa164
feat(effect): expose group, code, metadata, actor, statusCode, and pu…
IGassmann May 17, 2026
0888b3a
test(effect): add Actor type tests with failing cases marked as todo
IGassmann May 18, 2026
6bc2fac
feat(effect): accept build function and Effect.fn in Actor.toLayer
IGassmann May 18, 2026
07caacf
refactor(effect): rename build to wake in Actor.toLayer and support a…
IGassmann May 18, 2026
596db5e
refactor(effect): rename resolveWake to wakeHandler in Actor and rela…
IGassmann May 18, 2026
4395385
chore(node-client): remove node-client example directory
IGassmann May 18, 2026
f036319
test(effect): add unit tests for Actor.toWakeHandler with various wak…
IGassmann May 18, 2026
cf50484
refactor(effect): update Counter.toLayer to use wakeOptions and impro…
IGassmann May 18, 2026
f635f23
feat(effect): Actor.toWakeHandler
IGassmann May 18, 2026
3ad3330
refactor(effect): remove RawRivetkitContext service
IGassmann May 18, 2026
b9e3748
Add type tests for concrete wake context
IGassmann May 19, 2026
089476f
test(effect): transformed raw state handling in actors
IGassmann May 19, 2026
4803030
fix(effect): type wake raw context state
IGassmann May 19, 2026
f5f4765
Switch effect wake handlers to wakeOptions.state
IGassmann May 19, 2026
14a9eb2
Reorder toLayer wake and options parameters
IGassmann May 19, 2026
251b63b
Separate stateless actor toLayer overload
IGassmann May 19, 2026
54dc8a3
Switch effect actor state tests to direct state options
IGassmann May 19, 2026
1a1fe74
Move state options into internal module
IGassmann May 19, 2026
b006e10
Update effect example actors for inline state options
IGassmann May 19, 2026
7ba007c
refactor(effect): extract and simplify action failure classification
IGassmann May 19, 2026
b5bfb2e
test(effect): add unit tests for action failure classification
IGassmann May 19, 2026
8938e16
refactor(effect): replace ActionError with ActionErrorEnvelope
IGassmann May 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions examples/effect/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

87 changes: 87 additions & 0 deletions examples/effect/src/actors/chat-room/api.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

236 changes: 236 additions & 0 deletions examples/effect/src/actors/chat-room/live.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading