Releases: anthony1810/ScreenStateKit
Releases · anthony1810/ScreenStateKit
1.1.0
ScreenStateKit 1.1.0
Breaking Changes
ScreenActionStore.receive(action:)is nowasync throws— stores just throw errorsnonisolatedReceive(action:)replaces oldnonisolated func receive(action:)— creates Task, callsdispatch, returnsAnyTaskdispatch(action:)(framework-provided) centralizesloadingStarted, error catching viashowError, andloadingFinishedActionrequiresHashableconformance — auto-synthesized lockKey, no manuallockKeycomputed property neededviewStateassociated type replacesAScreenState
New Features
- NonPresentableError: Protocol for silent errors (
isSilent: Bool), not shown to user - DisplayableError: Now has
originalError,isSilent,init(error:) - AnyTask: Public type-erased task handle with
waitComplete(),isCancelled,cancel() - CancelBag:
DuplicatePolicy(.cancelExisting/.cancelNew), auto-removal of completed tasks,AnyHashableidentifiers - StreamProducer: Extracted
StreamStoragewithdeinitcleanup
Deprecations
nonIsolatedFinish()on StreamProducer — useawait producer.finish()instead
Bug Fixes
terminateLoadMoreView()replaces misspelledternimateLoadmoreView()- Deterministic tests using
withMainSerialExecutor+Task.megaYield()instead ofTask.sleep
1.0.6
- Remove
.claude/folder from git tracking - Add
ssk-skill.mdusage guide - Architecture diagram improvements
1.0.5
What's New
- Skeleton Loading: Add
PlaceholderRepresentableprotocol and.placeholder()view modifier for skeleton loading support - Rename:
RMDisplayableErrorrenamed toDisplayableError(deprecated typealias removed) - README: Complete API documentation with StateUpdatable, load-more pagination, and skeleton loading sections
Tests
- Add
StreamProducertests (multi-subscriber, withLatest, finish) - Add
OnShowErrorModifierandEnvironmentextension tests - Add
RMLoadmoreViewtests
Fixes
- Fix ViewModel example to match correct do/catch placement