Skip to content

Kisab v0.1.0

Choose a tag to compare

@github-actions github-actions released this 05 Aug 04:46
· 122 commits to main since this release
b1d4fde

Kisab v0.1.0

Status

PUBLISHED AND VERIFIED

Kisab v0.1.0 is the first published production release of the standalone offline farm-management Android application. The annotated v0.1.0 tag points at commit b1d4fde31ce5faf8463305871664557a479877c9, which is contained in main. Release workflow run 30750947492 produced a production-signed APK that passed unit tests, lint, tag/version validation, Android APK signature verification, and independent checksum verification.

Summary

Kisab v0.1.0 is the first published production release of the standalone offline Android application. It records a single farm, its livestock and crop entries, and a transaction history, entirely offline, and supports versioned backup/restore through Android's document picker.

Feature scope

M1 — Offline single-farm management

  • Launchable Android app for a single local farm.
  • Create and reopen a locally persisted farm.
  • Add livestock and crop entries.
  • Record income and expense transactions.
  • Deterministic persisted state across app/process recreation.

M2 — Transaction model

  • Stable transaction identifiers and explicit income/expense types.
  • Governed transaction types and categories.
  • Money stored in minor units with an ISO currency code.
  • Explicit transaction timestamps.
  • Create/edit/delete transaction flows with destructive-action confirmation.
  • Transaction history rendered newest-first by timestamp with a deterministic tie-breaker for equal timestamps.
  • Versioned persistence migration from the legacy M1 format.

M3 — Offline backup and restore

  • Export and restore a single farm entirely offline.
  • Versioned backup envelope with a deterministic UTC export time.
  • Android Storage Access Framework/document-picker integration without broad filesystem permissions.
  • Full validation before any restore; the current farm is preserved on cancelled or invalid imports.
  • Explicit overwrite confirmation before state replacement.

Verification record

  • Release workflow run: 30750947492 (jobs validate, build-sign, and create-draft-release all succeeded).
  • Annotated tag: v0.1.0.
  • Tagged commit: b1d4fde31ce5faf8463305871664557a479877c9 (contained in main).
  • JVM unit tests: passed (33 tests).
  • Android instrumentation tests: passed (13 tests, API 36).
  • Android Lint: 0 errors.
  • Tag/version validation: passed (v0.1.0 matches packaged version name).
  • Android APK signature verification: passed.
  • Android signature scheme v2: enabled.
  • Signer certificate SHA-256: 92a578e8cedad6ea86d2dc27663a3279f07a70794627a280f877ab30b1f89cff.
  • APK SHA-256: 990c100980c469c9411fb7dc66747d0286a3c8020f7d0c8acca949b7e43bd7bc.
  • Application ID: com.susankhya.kisab.
  • Version name: 0.1.0.
  • Version code: 1.
  • Minimum SDK: 26.
  • Target SDK: 36.

Dependency

  • com.susankhya.foundation:foundation-session-android:0.1.1 (from GitHub Packages; pinned)
  • org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0
  • androidx.appcompat:appcompat:1.7.0
  • androidx.activity:activity-ktx:1.9.0

Known limitations

  • Single-farm scope; no cloud synchronization, accounts, multi-farm management, or multi-tenant administration.
  • No full accounting engine, broad reporting, or analytics.
  • Legacy M1 persisted data migrates to the current schema on load; M1-format backup envelopes are not produced.
  • Nepali localization and field validation are planned for a later milestone and are not part of this release.

Compatibility

  • Backup envelope schema version: 1 (field-separated text envelope with base64 payload).
  • Persistence schema version: 2.
  • Backups carry only farm-domain state; they never include session credentials, device keys, preferences, or unrelated application state.
  • Malformed or unsupported backups are rejected while preserving the current farm state.

Install / build

  • minSdk 26, targetSdk 36.
  • Debug: ./gradlew :app:assembleDebug.
  • Signed release: see docs/release/RELEASE_POLICY.md for the signing-input contract.