Conversation
- Modify `Scroll.seal` to create a `SealedScroll` using a snapshot of the current data via `this.toMap()`. - Update documentation in `README.md` and `docs/` to clarify that `seal(...)` can be called multiple times on the same `Scroll`, with each call emitting a separate snapshot. - Update `ScribeDataSerializationTest` to verify that mutating a `Scroll` after calling `seal` does not affect the data in the previously emitted snapshot. - Rename and update lifecycle and concurrency tests to reflect that `seal` is no longer idempotent and intentionally emits an event for every call.
… `onSaver` - Update `Scribe.kt` and `ScribeTestFixtures.kt` to explicitly rethrow `CancellationException`, ensuring it is not handled as a standard saver error or reported to the `onSaver` callback. - Wrap the `onSaver` callback execution in a try-catch block to prevent internal callback failures from interrupting the delivery loop. - Add unit tests in `ScribeDeliveryRetireTest.kt` to verify that delivery continues when the error callback fails and that cancellations are not reported. - Remove unused `Channel` and `BufferOverflow` imports from the code example in `getting-started.md`.
…ler fails - Wrap the custom exception handler execution in a `try-finally` block across Android, JVM, and iOS implementations. - Ensure that the `previous` uncaught exception handler is always invoked, preventing the custom handler from suppressing exceptions if it fails. - Refactor the iOS `setUnhandledExceptionHook` logic to properly chain hooks within a single assignment. - Add a unit test in `GlobalExceptionHandlerJvmTest` to verify that the previous handler is executed even when the installed handler throws an exception.
…ants - Remove `flingNote` and `looseSeal` variants from the features list in `README.md`. - Replace type-specific `Scroll` write methods (e.g., `writeString`, `writeNumber`) with indexed accessors (`scroll["key"] = value`) in documentation examples. - Update `Scribe.hire()` examples to include an explicit `Channel` configuration. - Refactor `ScribeTestFixtures` to support dynamic `imprint` configuration and improve initialization state management. - Update `ScribeContextMarginTest` expectations to reflect changes in default test metadata. - Remove unnecessary serialization imports from `getting-started.md`.
- Update `Scribe.hire` documentation to specify that the provided channel becomes disposable and ownership is transferred to Scribe, which handles its closure. - Update `Scribe.retire` documentation to clarify that the channel is closed upon calling and cannot be reused for subsequent `hire` calls.
- Add documentation and code examples for `Scroll.extend` and `Scroll.append` extension functions to support merging and nesting data. - Document the optional `scope` parameter in `Scribe.hire`, allowing users to provide a custom `CoroutineScope` for delivery. - Add an "Urgency Levels" section to the API concepts documentation defining the `Urgency` enum. - Update the "Getting Started" guide and OpenObserve showcase instructions to include the new extension functions and demo steps. - Add code snippets demonstrating `scroll.id` usage and `CoroutineScope` configuration with `SupervisorJob`.
- Update `inscribe` to allow it to be called multiple times, provided `retire` is called in between. - Refactor `isProcessorFamily` to traverse the job hierarchy upwards via `parent` instead of searching descendants, improving efficiency. - Prevent deadlocks in `retire` by ensuring the function returns immediately if called from within the processor's own coroutine tree. - Simplify `ScribeTestFixtures.kt` by centralizing the `retire` logic within `ensureScribeInitialized` and removing redundant calls in test helper functions. - Add `@OptIn(ExperimentalCoroutinesApi::class)` to support parent job traversal.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.