diff --git a/app/diario-bordo.html b/app/diario-bordo.html
index 896d975..a59c086 100644
--- a/app/diario-bordo.html
+++ b/app/diario-bordo.html
@@ -5998,6 +5998,16 @@ async function bmsProbeAndAttach(deviceId,deviceName){
if(backend!=='capacitor'){setBleDiag('Probe requer Capacitor (APK)','warn');return false}
const ble=window.Capacitor.Plugins.BluetoothLe;
try{
+ setBleDiag(`📦 Shivao v${APP_VERSION} · Probe iniciado`,'info');
+ // Tenta aumentar MTU pra 247 (alguns BMS exigem)
+ try{
+ const r=await ble.requestConnectionPriority({deviceId,connectionPriority:'high'});
+ setBleDiag('Connection priority HIGH ok','info');
+ }catch(e){setBleDiag('connection priority skip','info')}
+ try{
+ await ble.requestMtu({deviceId,mtu:247});
+ setBleDiag('MTU bumped pra 247','info');
+ }catch(e){setBleDiag('MTU bump skip','info')}
setBleDiag('🔍 Enumerando characteristics...','info');
// Tenta serviços vendor: ff00, fff0 (Daly), ffe0 (JK), 0203
const VENDOR_SVCS=[
@@ -6244,14 +6254,16 @@ async function removeBluetoothDevice(id){
renderBluetoothCard();
}
+const APP_VERSION='1.10.3';
function renderBluetoothCard(){
const el=document.getElementById('bt-list');
const supportEl=document.getElementById('bt-support');
if(!el)return;
if(supportEl){
- supportEl.textContent=bleSupported()
- ? 'Bluetooth disponível neste navegador.'
- : 'Web Bluetooth indisponível (use Chrome no PC ou Android — iOS Safari não suporta).';
+ const backendStr=bleBackend()==='capacitor'?'plugin nativo':'navegador web';
+ supportEl.innerHTML=bleSupported()
+ ? `Shivao v${APP_VERSION} · Bluetooth via ${backendStr}.`
+ : `Shivao v${APP_VERSION} · Bluetooth indisponível.`;
supportEl.style.color=bleSupported()?'var(--m-ok,#10b981)':'var(--m-warn,#f59e0b)';
}
const devices=state.btDevices||[];
diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle
index 4227dcb..d70726e 100644
--- a/mobile/android/app/build.gradle
+++ b/mobile/android/app/build.gradle
@@ -7,8 +7,8 @@ android {
applicationId "br.com.pontualtech.shivao"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
- versionCode 18
- versionName "1.10.2"
+ versionCode 19
+ versionName "1.10.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
diff --git a/mobile/package.json b/mobile/package.json
index b00efc7..714331a 100644
--- a/mobile/package.json
+++ b/mobile/package.json
@@ -1,6 +1,6 @@
{
"name": "shivao-mobile",
- "version": "1.10.2",
+ "version": "1.10.3",
"description": "Shivao app nativo (Capacitor wrapper Android/iOS)",
"main": "index.js",
"type": "module",
diff --git a/server/public/index.html b/server/public/index.html
index 896d975..a59c086 100644
--- a/server/public/index.html
+++ b/server/public/index.html
@@ -5998,6 +5998,16 @@ async function bmsProbeAndAttach(deviceId,deviceName){
if(backend!=='capacitor'){setBleDiag('Probe requer Capacitor (APK)','warn');return false}
const ble=window.Capacitor.Plugins.BluetoothLe;
try{
+ setBleDiag(`📦 Shivao v${APP_VERSION} · Probe iniciado`,'info');
+ // Tenta aumentar MTU pra 247 (alguns BMS exigem)
+ try{
+ const r=await ble.requestConnectionPriority({deviceId,connectionPriority:'high'});
+ setBleDiag('Connection priority HIGH ok','info');
+ }catch(e){setBleDiag('connection priority skip','info')}
+ try{
+ await ble.requestMtu({deviceId,mtu:247});
+ setBleDiag('MTU bumped pra 247','info');
+ }catch(e){setBleDiag('MTU bump skip','info')}
setBleDiag('🔍 Enumerando characteristics...','info');
// Tenta serviços vendor: ff00, fff0 (Daly), ffe0 (JK), 0203
const VENDOR_SVCS=[
@@ -6244,14 +6254,16 @@ async function removeBluetoothDevice(id){
renderBluetoothCard();
}
+const APP_VERSION='1.10.3';
function renderBluetoothCard(){
const el=document.getElementById('bt-list');
const supportEl=document.getElementById('bt-support');
if(!el)return;
if(supportEl){
- supportEl.textContent=bleSupported()
- ? 'Bluetooth disponível neste navegador.'
- : 'Web Bluetooth indisponível (use Chrome no PC ou Android — iOS Safari não suporta).';
+ const backendStr=bleBackend()==='capacitor'?'plugin nativo':'navegador web';
+ supportEl.innerHTML=bleSupported()
+ ? `Shivao v${APP_VERSION} · Bluetooth via ${backendStr}.`
+ : `Shivao v${APP_VERSION} · Bluetooth indisponível.`;
supportEl.style.color=bleSupported()?'var(--m-ok,#10b981)':'var(--m-warn,#f59e0b)';
}
const devices=state.btDevices||[];
diff --git a/server/src/index.js b/server/src/index.js
index 786aaab..3f444b2 100644
--- a/server/src/index.js
+++ b/server/src/index.js
@@ -347,7 +347,7 @@ app.get('/.well-known/assetlinks.json', (req, res) => {
});
// Atalho: /apk redireciona pra última APK release no Forgejo
-const LATEST_APK_URL = 'https://git.pontualtech.work/karlao/shivao-projeto/releases/download/v1.10.2/Shivao-v1.10.2.apk';
+const LATEST_APK_URL = 'https://git.pontualtech.work/karlao/shivao-projeto/releases/download/v1.10.3/Shivao-v1.10.3.apk';
app.get('/apk', (req, res) => res.redirect(302, LATEST_APK_URL));
// Página A4 imprimível com QR Code + instruções (cola no barco/marina)