Skip to content

Dev 0.4.0#4

Merged
rafambn merged 11 commits into
mainfrom
dev-0.4.0
May 26, 2026
Merged

Dev 0.4.0#4
rafambn merged 11 commits into
mainfrom
dev-0.4.0

Conversation

@rafambn
Copy link
Copy Markdown
Owner

@rafambn rafambn commented May 26, 2026

No description provided.

rafambn added 11 commits May 25, 2026 15:00
…onsole Showcase

- Refactor `Scribe` from a process-wide singleton `object` to an `abstract class`, allowing multiple independent runtime instances with separate configurations, delivery channels, and lifecycles.
- Replace the `inscribe` DSL with overridable properties (`shelves`, `imprint`, `margins`, `onIgnition`) in user-defined `Scribe` objects.
- Update `Scroll.seal()` to require a `Scribe` instance parameter, ensuring that scrolls are delivered through the specific runtime that created them.
- Replace OpenObserve integration in the `testApp` with a "Console Showcase" that prints formatted JSON records to stdout/console.
- Remove `OpenObserve.kt` and platform-specific HTTP transport implementations across Android, JVM, and iOS.
- Update documentation and code examples to reflect the new instance-based API and the shift to console-based demo reporting.
- Refactor unit tests and test fixtures to support multiple `Scribe` instances and verify that they deliver and retire independently.
- Bump library version to `0.4.0` in `build.gradle.kts`.
- Update `Scribe.note`, `Scribe.enqueue`, and `Scroll.seal` to be non-suspending functions, simplifying usage across different call sites.
- Introduce a private `trySendBlocking` helper that uses `runBlocking` to handle entry enqueueing when the underlying channel buffer is full.
- Refactor the showcase application from a single controller into a proper MVVM structure, introducing `ShowcaseViewModel` and organizing code into `ui`, `data`, `viewmodel`, and `scribe` packages.
- Implement `AppScribe` as a singleton in the demo app to centralize configuration, `EntrySaver` logic, and lifecycle management.
- Update the `retire` function in `Scribe.kt` to nullify the `activeQueue` reference before closing the channel to prevent race conditions.
- Update `README.md` and documentation snippets to reflect the non-suspending API and the requirement to pass the `Scribe` instance to `seal`.
- Modify the Gradle build script to conditionally sign publications only when the `signing.keyId` property is present.
- Bump the Scribe library version to `0.4.0` in the demo application's module configuration.
- Rename `jvm-app`, `android-app`, and `ios-app` modules to `jvmApp`, `androidApp`, and `iosApp` respectively.
- Update `settings.gradle.kts` and `README.md` to reflect the new module naming convention.
- Move source files and build scripts to the updated directory structure.
- Remove unnecessary whitespace in `testApp/shared/build.gradle.kts`.
- Consolidate the `testApp` project into the root build by removing its standalone Gradle configuration files (`settings.gradle.kts`, `build.gradle.kts`, `libs.versions.toml`) and including its modules directly in the root `settings.gradle.kts`.
- Update `:testApp:shared` to depend on the local `:scribe` module instead of an external library dependency.
- Centralize all plugin and version management into the root `libs.versions.toml` and root `build.gradle.kts`.
- Refactor `:testApp:shared` to use the `com.android.kotlin.multiplatform.library` plugin and update the `kotlin.android` target configuration.
- Update internal dependencies in `androidApp` and `jvmApp` to use the new project paths (e.g., `:testApp:shared`).
- Configure repository content filtering for Google artifacts and include the JetBrains Compose repository in the root `settings.gradle.kts`.
- Clean up redundant `android` and `compose.resources` configuration blocks in the showcase shared module.
- Rename `ShowcaseViewModel` to `HomeViewModel` and `ShowcaseUiState` to `HomeState`.
- Rename the primary entry-point composable from `Screen` to `HomeScreen`.
- Consolidate `HomeViewModel`, `HomeState`, and `HomeScreen` into the `scribe.demo.ui` package.
- Refactor the Android `MainActivity` package from `hello.world` to `com.rafambn.scribe` and update the `AndroidManifest.xml` accordingly.
- Update JVM and Android application modules to use the renamed `HomeScreen` component.
- Perform minor cleanup in `HomeViewModel`, such as using explicit `JsonObject` serializer access and updating internal variable names for clarity.
- Extract the stateless UI implementation from `HomeScreen.kt` into a new `HomeContent.kt` file to improve code organization.
- Simplify `HomeScreen` to focus on observing `HomeViewModel` state and providing event callbacks to the underlying content.
- Move internal UI components including `HeroCard`, `StatusCard`, `ActionGroup`, and `TimelineCard` to `HomeContent.kt`.
- Update the call site in `HomeScreen` to pass state and event handlers to the newly created `HomeContent` composable.
…tate`

- Update the `HomeContent` composable signature to accept individual state properties (e.g., `isBusy`, `outputMessage`, `timeline`) rather than a monolithic `HomeState` object.
- Refactor internal private composables `StatusCard` and `TimelineCard` to accept explicit parameters, improving modularity and reducing dependency on the `HomeState` data class.
- Update `HomeScreen` to pass specific properties from the view model state to `HomeContent`.
@rafambn rafambn self-assigned this May 26, 2026
@rafambn rafambn merged commit 3d34703 into main May 26, 2026
3 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