Skip to content

fix(sync): land kmp-project-template sync + fix all resulting build regressions - #2064

Draft
therajanmaurya wants to merge 7 commits into
openMF:devfrom
therajanmaurya:session-mobile-wallet-20260819181213704
Draft

fix(sync): land kmp-project-template sync + fix all resulting build regressions#2064
therajanmaurya wants to merge 7 commits into
openMF:devfrom
therajanmaurya:session-mobile-wallet-20260819181213704

Conversation

@therajanmaurya

@therajanmaurya therajanmaurya commented Aug 19, 2026

Copy link
Copy Markdown
Member

Summary

Syncs mifos-pay with the latest openMF/kmp-project-template (offline-first Store5/Room
migration, sync-engine fixes from upstream PR #292/#293) and repairs every compile, test, and
DI-wiring regression the sync introduced so all PR checks pass locally byte-identical to CI
(/idea-ci-pr — 7/7 exact checks green, 0 failed, 0 approx-warnings).

Changes

  • Template sync: pulls the latest template dev (worker-kmp sync infra, core-base
    Bookkeeper/Draft/FetchedAt relocation, product-health checks, white-label scripts) through the
    fixed sync-dirs.sh engine.
  • Missing module dependencies: adds core.common/core.model/core.datastore/
    core.network/core.domain/core.designsystem where the sync had added source files without
    wiring their module deps, across feature/{autopay,passcode,mpay-qr,history,send-money,home, settings,profile,transfer-intrabank}, cmp-navigation, and cmp-shared (the latter was
    missing all ~30 feature-module deps + core.common/core.domain/core.network).
  • Encapsulation cleanup: promotes core.model/core.datastore/core.network from
    implementation to api in core/data (mirroring the existing api(core.store) pattern) so
    every feature module gets them transitively instead of repeating the declaration, and features
    no longer reach core/network directly.
  • Compose resources plugin gaps: adds the missing jetbrainsCompose/compose.compiler
    plugins + compose.runtime/compose.components.resources to core/common, core/network,
    core/data, core/designsystem, core/ui, feature/home, feature/mpay-qr — the sync had
    added compose-resource-consuming files without wiring the compose plugin that generates Res.
  • org.mifospay.core.network.modelorg.mifospay.core.model.network: relocates the full
    network DTO/entity package (59 files) into core/model so it's reachable through the existing
    core.model re-export instead of a direct core/network dependency.
  • Sync-clobber repairs (restored from the fork's real pre-sync content, since the sync
    blind-overwrote them with the template's demo/skeleton versions): AppDatabase.kt's
    FetchedAtDao/FetchedAtEntity imports + core/database/schemas/{1,6,7,8}.json (real
    migration history, not the template's demo schema); cmp-navigation/AppViewModel.kt +
    ComposeApp.kt (401 forced-logout, background re-auth lock, instance-selector overlay —
    ~330 lines of real security logic); cmp-shared/utils/KoinExt.kt (the fork's ~30 feature-module
    Koin registration, silently dropped so no feature ViewModel would have resolved at runtime);
    core/database desktop unit tests (AppDatabaseTest/DatabaseModuleTest/FetchedAtDaoTest)
    that had been overwritten with the template's own demo-DAO tests.
  • Dead-code removal (superseded by real template upgrades, zero remaining callers): the old
    per-platform core/platform/.../notification/bill/** WorkManager scheduler (replaced by
    sync/WorkScheduler + worker-kmp); BaseDraftMutationViewModel/BaseSubmitMutationViewModel
    (superseded by the unified BaseMutationViewModel); demo-only OutboxQualifiers +
    RepositoryModuleVerifyTest; DataSyncWorker's demo currency/economic-indicator syncers; 3
    cmp-navigation/authenticatednavbar files already documented as deleted but never removed;
    orphaned demo-dependent UI tests in feature/home and feature/settings (rewritten against the
    real template shell instead of the fork's nonexistent demo body).
  • i18n backfill: restores base-locale strings.xml keys (feature/home,
    feature/settings — theme/dark-mode/sync-and-drafts/notifications-empty strings) that existed
    only in translated locales after the sync's strings merge.
  • Build hygiene: bumps gradle.properties heap to -Xmx8g; regenerates the drifted
    kotlin-js-store/yarn.lock.

Notable files

  • core/data/build.gradle.ktsapi re-exports for core.model/core.datastore/core.network
  • cmp-shared/build.gradle.kts, cmp-shared/src/commonMain/kotlin/cmp/shared/utils/KoinExt.kt
  • cmp-navigation/src/commonMain/kotlin/cmp/navigation/{AppViewModel,ComposeApp}.kt
  • core/database/src/commonMain/kotlin/kpt/core/database/AppDatabase.kt

Upstream

Proposes openMF/kmp-project-template#296 (schemas/** exclusion + template-deletion
propagation) to prevent this class of sync clobber from recurring on future syncs, in any fork.

@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ff8a47fc-e710-43df-8f77-21d2abcc127a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@therajanmaurya
therajanmaurya force-pushed the session-mobile-wallet-20260819181213704 branch from 9b1840c to 7787b2f Compare August 19, 2026 14:23
@therajanmaurya therajanmaurya changed the title Sync with whole label template fix(sync): land kmp-project-template sync + fix all resulting build regressions Aug 21, 2026
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