Files
AbelBirdNest-mobile/CODEX_HANDOFF.md

3.6 KiB

Codex Handoff

Project

  • Native Android app
  • Package: id.abelbirdnest.mobile
  • App name: Abelbirdnest Stock
  • Stack: Kotlin + Jetpack Compose
  • Blueprint source of truth: mobile-api-blueprint.md

API / Environment

  • Production base URL is used from Postman env.
  • Active API host used during testing: https://abelbirdnest.id/api/v1

Test Accounts

  • OWNER -> abel@zappcare.id / abel1234
  • PURCHASING -> tini@zappcare.id / tini1234
  • SALES -> budi@zappcare.id / budi1234
  • QC -> edi@zappcare.id / edi12345
  • WAREHOUSE -> jhon@zappcare.id / jhon1234

Implemented Modules

  • dashboard
  • lots
  • washing
  • stock_adjustments
  • purchases
  • purchase_analyses
  • purchase_realizations
  • fund_requests
  • sales_regular
  • sales_jit
  • consignments
  • lot_transformations

Hidden / Removed From Mobile Navigation

  • receipts
    • intentionally hidden because newer server/mobile flow no longer uses it for active role navigation

Important Behavior

  • App is server-driven from mobile/bootstrap, but module ordering and UI prioritization were aligned to the blueprint where needed.
  • PURCHASING login issue was fixed by not forcing /mobile/lots fetch for roles that do not have lots.
  • Quick actions now only show modules that are not already present in the bottom bar.
  • For OWNER, quick actions were reduced to match actual mobile need. Extra actions like dana, sales, jit, titip jual, and washing were removed from quick actions.

Recent UI Changes

Login

  • Brand text changed to Abelbirdnest
  • Centered vertically
  • Lupa Kata Sandi? restored
  • Removed extra elements below the main login CTA except forgot password

Lots

  • Lot detail top gap was reduced by:
    • removing extra spacer
    • disabling nested scaffold content insets in detail
  • Lot detail footer actions were removed entirely:
    • Print Ulang
    • Pindah Lokasi
    • Ubah Status
    • reason: no real mobile action flow yet, avoid dead buttons

Scan Lot

  • Scanner layout was reworked:
    • Tutup moved outside the camera panel
    • scanner panel wrapped as its own card/section
    • manual input visually separated from camera section
    • scanner corner markers fixed so their directions are correct

Washing

  • Lot picker uses search / scan workflow
  • Tempat Cuci changed to simple dropdown
  • card action button Selesaikan forced to one line by reducing font and spacing

Known Gaps / Things Not Yet Wired

  • Some modules are present as minimum mobile flows only, aligned to blueprint, not full web parity.
  • lot_transformations still needs full create flow audit if expanded beyond current scope.
  • Some modules are read-only where blueprint only required read paths.
  • pindah lokasi and ubah status for lot detail are not implemented, and UI was intentionally removed.

Build / Deploy

  • Android SDK path used locally: /opt/android-sdk
  • Typical build command:
    • ./gradlew assembleDebug
  • Typical install command:
    • adb install -r app/build/outputs/apk/debug/app-debug.apk
  • Last confirmed installed package timestamp during this session:
    • lastUpdateTime=2026-05-21 23:29:49

Current Device

  • Frequently used connected device:
    • CPH2781 (Oppo)

Notes For Next Codex

  • Use mobile-api-blueprint.md as the primary spec.
  • Use web project only as a secondary reference for payload shape or flow hints, not as the source of truth.
  • Be careful with nested Scaffold padding/insets; several UI gaps came from double insets.
  • Many server responses differ slightly between endpoints; avoid assuming detail response shape matches scan/list response shape.