Skip to content
Success

Changes

Summary

  1. increase desktop shipment generation wrapper width (details)
  2. add upload script for android app (details)
  3. change method how amazon sync to fix invoices works (adding new line instead modify existing) (details)
  4. add ordering to picklist regeneration on dashboard (details)
  5. Add ebay invoice amount check like we have for amazon (details)
  6. Add ebay invoice amount check like we have for amazon (details)
  7. initial native step for android done (details)
  8. Wire native @capacitor/preferences + document dual build target (details)
  9. Add bundled-app deploy & CORS notes (reference/app-spa-deploy.md) (details)
  10. Bump app to 1.0.2 (code 3) for the bundled-SPA release (details)
  11. Fix in-app updater: offer update when installed version can't be read (details)
  12. Add scripts/release-app.sh — one-command bundled-app release (details)
  13. Add script to full build the android app (details)
  14. enhance mobile (details)
  15. Hide "Mobile worker" toggle in the native app (always-on there) (details)
  16. enhances mobile (details)
  17. Add biometric login for the native Android app (Phase 1) (details)
  18. add biometric (details)
Commit 027ddda068804943b349120fd0573e490719ec58 by info
increase desktop shipment generation wrapper width
The file was modifiedapp/pages/generate-shipments.vue (diff)
Commit 55462f4501d1541f21279ab0c293b906627f3f78 by info
add upload script for android app
The file was modifiedandroid/app/src/main/AndroidManifest.xml (diff)
The file was modifiedandroid/update-files/version.json (diff)
The file was modifiedandroid/app/build.gradle (diff)
The file was modifiedcapacitor.config.ts (diff)
The file was modifiedapp/composables/useBarcodeScanner.js (diff)
The file was modifiedandroid/.gitignore (diff)
The file was addedscripts/upload-mobile-update.sh
The file was addedandroid/update-files/.deploy.env.example
Commit 8b4412696fb35c3b94193818e9de2e21f6e7c21f by info
change method how amazon sync to fix invoices works (adding new line instead modify existing)
The file was modifiednuxt.config.ts (diff)
The file was modifiedapp/pages/accounting/amazon-orders-check.vue (diff)
The file was modifiedserver/api/accounting/amazon/orders-sync.post.ts (diff)
The file was modified.env-dev (diff)
The file was modified.env-prod (diff)
Commit 739cab2780d642dd97fc8dd8821849fca193439d by info
add ordering to picklist regeneration on dashboard
The file was modifiedapp/pages/index.vue (diff)
The file was modifiedapp/composables/states.ts (diff)
The file was addedapp/components/dashboard/PicklistGenerateModal.vue
The file was addedserver/api/print/picklist.post.ts
The file was modifiedapp/components/dashboard/OpenShipmentsModal.vue (diff)
The file was modifiedapp/composables/usePicklistPdf.ts (diff)
Commit ab8097554e8e22722bdfb1074fa5a9f5ad538191 by info
Add ebay invoice amount check like we have for amazon
The file was modifiedserver/api/accounting/amazon/orders-sync.post.ts (diff)
The file was addedserver/api/accounting/ebay/orders-sync.post.ts
The file was modifiedapp/composables/menu/admin/accounting.ts (diff)
The file was addedserver/api/accounting/ebay/orders-check.get.ts
The file was addedapp/pages/accounting/ebay-orders-check.vue
The file was modifiedapp/components/MainNavigationMenu.vue (diff)
The file was addedserver/utils/ebayOrdersApi.ts
The file was addedserver/utils/marketplaceOrderSync.ts
Commit e95560cecc1aa6ed1d33aecb5fa8a230748b8754 by info
Add ebay invoice amount check like we have for amazon
The file was modifiednuxt.config.ts (diff)
The file was modifiedserver/api/accounting/amazon/orders-sync.post.ts (diff)
The file was modifiedserver/api/accounting/ebay/orders-sync.post.ts (diff)
The file was modified.env-dev (diff)
The file was modified.env-prod (diff)
The file was modifiedserver/utils/marketplaceOrderSync.ts (diff)
Commit a56d8597a324d4f11193bd224def2d752ccfda02 by info
initial native step for android done
The file was modifiednuxt.config.ts (diff)
The file was addedapp/plugins/00.capacitor-api.client.ts
The file was addedapp/composables/useAuthSession.ts
The file was modifiedapp/router.options.ts (diff)
The file was modifiedpackage.json (diff)
The file was addedserver/middleware/00.app-auth.ts
The file was modifiedcapacitor.config.ts (diff)
The file was addedserver/api/app-auth/login.post.ts
The file was addedserver/api/app-auth/token-refresh.post.ts
Commit 3cfbf64df740073fd45c7b0224f846cf71a000cc by info
Wire native @capacitor/preferences + document dual build target

cap sync registers @capacitor/preferences for the bundled Capacitor app
target. Document the web-SSR vs bundled-app-SPA dual build in
reference/recipes.md (BUILD_TARGET/CAP_BUNDLED switch, the app-only fetch
interceptor + useAuthSession, the app-auth middleware/endpoints, and the
ops gotchas).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The file was modifiedandroid/app/capacitor.build.gradle (diff)
The file was modifiedreference/recipes.md (diff)
The file was modifiedandroid/capacitor.settings.gradle (diff)
Commit c85d553185233b37c37a22f4a61c4ca1f17e6e07 by info
Add bundled-app deploy & CORS notes (reference/app-spa-deploy.md)

Tailored to the current nginx: the /api Nuxt path needs NO nginx change
(location / forwards OPTIONS + headers to Nitro; the app-auth middleware
emits CORS + answers preflight). The one required change is Strapi's CORS
allow-list (https://localhost) for /media-api uploads. Includes verify
curls and the APK ship steps.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The file was addedreference/app-spa-deploy.md
Commit 30ae13902599097c11ea443c66363fbd7031afda by info
Bump app to 1.0.2 (code 3) for the bundled-SPA release

First release of the bundled (CAP_BUNDLED) app — versionName must increase
above the deployed 1.0.1 for the in-app updater to offer it. version.json
updated to match.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The file was modifiedandroid/update-files/version.json (diff)
The file was modifiedandroid/app/build.gradle (diff)
Commit aa4b4ae3fb39ae37d9fd35244f02ccbf5332fc54 by info
Fix in-app updater: offer update when installed version can't be read

useAppUpdate fell into `updateAvailable = false` whenever getAppVersion()
returned null (older APK without the AppUpdate plugin, or the plugin
rejected) — so those devices saw "no update" forever, contradicting the
code comment's stated intent. Offer the update in that case instead, and
fetch the version manifest with cache: 'no-store'.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The file was modifiedapp/composables/useAppUpdate.ts (diff)
Commit e8d00e506350cfcc1658e2028626e16a235ce87a by info
Add scripts/release-app.sh — one-command bundled-app release

Unifies the release cycle into one script: bump version (build.gradle +
version.json) → npm run build:app → npm run cap:sync:app → gradle
assembleDebug → stage into android/update-files/ → hand off to the existing
scripts/upload-mobile-update.sh. Auto-bumps the patch (or takes an explicit
versionName), with --no-upload to build/stage only. Docs updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The file was addedscripts/release-app.sh
The file was modifiedreference/app-spa-deploy.md (diff)
The file was modifiedreference/recipes.md (diff)
Commit c99c323c58b5098bb1cf4b758d53da61d73753c7 by info
Add script to full build the android app
The file was modifiedandroid/update-files/version.json (diff)
The file was modifiedandroid/app/build.gradle (diff)
The file was modifiedapp/components/MobileThemeToggle.vue (diff)
The file was modifiedapp/app.vue (diff)
The file was modifiedapp/pages/mobile/index.vue (diff)
The file was modifiedapp/pages/mobile/receive.vue (diff)
The file was modifiedapp/composables/useBarcodeScanner.js (diff)
Commit eb242404315fa470fe45fd44a090d13e18f926b2 by info
Hide "Mobile worker" toggle in the native app (always-on there)

In the bundled Capacitor app every user is a mobile worker, so force the
flag on (mobileWorker: isNativeApp) and hide the selectable chip. Web
sign-in is unchanged. The server enforceMobileWorkerGate stays authoritative.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The file was modifiedapp/pages/signin.vue (diff)
The file was modifiedandroid/app/build.gradle (diff)
The file was modifiedandroid/update-files/version.json (diff)
Commit a2360ebe7f1f1b7a42811e74d464afe0a854d162 by info
Add biometric login for the native Android app (Phase 1)

Fingerprint/Face login via @capgo/capacitor-native-biometric. After a normal
password login the app stores a biometric-bound snapshot (refresh token +
context, never the password) in the Android Keystore (getSecureCredentials);
on the next visit "Login with fingerprint" unlocks it, mints a fresh access
token via the existing /api/app-auth/token-refresh, and signs in — no new
server route. App-only: all logic is gated by isNativePlatform and the
plugins are dynamically imported, so the web sign-in/build is unchanged
(verified). Adds USE_BIOMETRIC/USE_FINGERPRINT to the manifest.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The file was modifiedapp/pages/signin.vue (diff)
The file was modifiedandroid/app/capacitor.build.gradle (diff)
The file was modifiedapp/composables/useAuthSession.ts (diff)
The file was addedapp/composables/useBiometricAuth.ts
The file was modifiedandroid/app/src/main/AndroidManifest.xml (diff)
The file was modifiedandroid/capacitor.settings.gradle (diff)
The file was modifiedpackage.json (diff)
The file was modifiedandroid/app/build.gradle (diff)
The file was modifiedandroid/update-files/version.json (diff)