- Update Kotlin to
2.3.0 - Update kotlinx.coroutines to
1.10.2 - Add AI agent skill documentation (
.opencode/skills/control-library.md) for comprehensive library usage guidance
- Update Kotlin to
2.1.10 - Update kotlinx.coroutines to
1.10.1 - Publish
control-coreas kotlin multiplatform library - Create custom
@TestOnlyStubannotation and use it instead of@TestOnlyto support KMP implementation
- Update Kotlin to
2.0.21 - Update kotlinx.coroutines to
1.9.0
- Update Kotlin from
1.6.10to1.9.10 - Update kotlinx.coroutines from
1.6.1to1.7.3
- Remove
Controller.currentState. - Remove
Flow.bindandFlow.distinctMapextensions. - Binary compatibility will now be verified and held up on every release.
- Refactor
Controller.statefromFlow<State>toStateFlow<State>. - Deprecate
Controller.currentState. - Internal
BroadcastChannelimplementations changed toSharedFlow.
- Update kotlinx.coroutines to
1.5.2. - Remove kotlin as
apidependency. - Remove
ControllerLog.default. - Lazily start controller when accessing
Controller.effectsfield (#26) control-corewill now be deployed to mavenCentral
- Remove
atomicfu.
- Add
EffectControllerandCoroutineScope.createEffectController. - Rename
Controller.stub()toController.toStub()to better reflect what it is doing.
- Remove
Mutationgeneric type fromControllerinterface. - Remove
CoroutineScope.createSynchronousController. - Remove
ManagedController. - Make
ControllerLoglog creation lazy.
CoroutineScope.createControllerandCoroutineScope.createSynchronousControllernow accept a customControllerStartparameter instead ofCoroutineStart.- Add
ManagedController. Controller.stubis now marked as@TestOnly.- binary compatibility is now checked on each
[build]&[publish].
ControllerStubis removed fromControllerinterface.ControllerStubis now accessible via theController.stub()extension function. once aControlleris stubbed via this extension function, it cannot be un-stubbed.
ControllerImplementationnow usesMutableStateFlowinstead ofConflatedBroadCastChannelinternally.Controller.stateemissions are now distinct by default (viaStateFlow).