Skip to content

Dev 0.3.0#3

Merged
rafambn merged 7 commits into
mainfrom
dev-0.3.0
May 5, 2026
Merged

Dev 0.3.0#3
rafambn merged 7 commits into
mainfrom
dev-0.3.0

Conversation

@rafambn
Copy link
Copy Markdown
Owner

@rafambn rafambn commented May 5, 2026

No description provided.

rafambn added 7 commits May 5, 2026 09:57
- 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.
@rafambn rafambn merged commit 79ed08b into main May 5, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant