diff --git a/companion-app/src/daten/buendelversion.test.ts b/companion-app/src/daten/buendelversion.test.ts new file mode 100644 index 0000000..037094b --- /dev/null +++ b/companion-app/src/daten/buendelversion.test.ts @@ -0,0 +1,27 @@ +/** + * Das OTA-Bündel muss dieselbe Fassung tragen wie das Manifest der + * Integration. + * + * Am 05.09.2026 am iPhone aufgefallen: der Server meldete 2026.9.5.29, das + * mitgelieferte Bündel war noch 2026.9.5.28. `buendelPasst()` verlangt + * Gleichheit — die App hielt sich deshalb für nicht erneuerbar und schickte + * den Eigentümer zu Xcode, obwohl nur die Veröffentlichung unvollständig war: + * die Versionsnummer war erhöht worden, ohne `npm run ota` laufen zu lassen. + * + * Dieser Test macht daraus einen Fehlschlag vor der Auslieferung statt einer + * irreführenden Meldung auf dem Telefon. + */ + +import { readFileSync } from "node:fs" + +import { describe, expect, it } from "vitest" + +const lies = (pfad: string) => JSON.parse(readFileSync(pfad, "utf8")) as { version?: string } + +describe("OTA-Bündel und Manifest", () => { + it("tragen dieselbe Versionsnummer", () => { + const manifest = lies("../custom_components/audi_dashboard/manifest.json") + const buendel = lies("../custom_components/audi_dashboard/frontend/app/bundle.json") + expect(buendel.version).toBe(manifest.version) + }) +}) diff --git a/companion-app/src/screens/Versionshinweis.tsx b/companion-app/src/screens/Versionshinweis.tsx index 7ea8243..e1256a8 100644 --- a/companion-app/src/screens/Versionshinweis.tsx +++ b/companion-app/src/screens/Versionshinweis.tsx @@ -103,6 +103,17 @@ export function Versionshinweis({ const perOta = buendelPasst(otaBuendel, eigeneVersion(), serverVersion) + /* Es liegt ein Bündel, es passt nur (noch) nicht zur Fassung, die der Server + ausliefert. Das ist KEIN Xcode-Fall. + + Am 05.09.2026 am iPhone gesehen: Server auf 2026.9.5.29, Bündel auf .28, + App auf .22 - die Meldung schickte den Eigentümer zu Xcode, obwohl die App + sich über die Luft erneuern könnte, sobald eine Veröffentlichung ein + passendes Bündel mitbringt. Ursache war eine Veröffentlichung, die die + Versionsnummer erhöhte, ohne das Bündel neu zu bauen (dagegen wacht jetzt + ein Test, siehe buendelversion.test.ts). */ + const buendelHinkt = !perOta && !!otaBuendel?.version && otaBuendel.version !== serverVersion + const schliessen = () => { if (laeuft) return if (serverVersion) gesehenSchreiben(serverVersion) @@ -132,7 +143,9 @@ export function Versionshinweis({ description={ perOta ? `Diese App läuft auf ${eigeneVersion() ?? "einer unbekannten Fassung"}, bereit liegt ${serverVersion}. Sie kann sich direkt hier erneuern.` - : `Diese App läuft auf ${eigeneVersion() ?? "einer unbekannten Fassung"}, der Server liefert ${serverVersion}. Dafür liegt hier kein passendes Bündel — sie muss über Xcode neu aufgespielt werden.` + : buendelHinkt + ? `Diese App läuft auf ${eigeneVersion() ?? "einer unbekannten Fassung"}, der Server liefert ${serverVersion}. Das hier bereitliegende Bündel gehört noch zu ${otaBuendel?.version} - die App kann sich erneuern, sobald eine Veröffentlichung ein passendes mitbringt.` + : `Diese App läuft auf ${eigeneVersion() ?? "einer unbekannten Fassung"}, der Server liefert ${serverVersion}. Dafür liegt hier kein Bündel — sie muss über Xcode neu aufgespielt werden.` } actions={ perOta diff --git a/custom_components/audi_dashboard/frontend/app/bundle.json b/custom_components/audi_dashboard/frontend/app/bundle.json index 1aa1966..1bdde5f 100644 --- a/custom_components/audi_dashboard/frontend/app/bundle.json +++ b/custom_components/audi_dashboard/frontend/app/bundle.json @@ -1 +1 @@ -{"version":"2026.9.5.31","sha256":"94ba956b9cd47adbd0b38a3f94bd304b23032bb00c4192ada89536a716b2b51b","bytes":324628,"gebaut":"2026-09-05T14:20:13Z"} \ No newline at end of file +{"version":"2026.9.5.32","sha256":"40c58828e0c94b39976fb1320f7fd5053a4eb1779151f124dc8442dc833072d1","bytes":324696,"gebaut":"2026-09-05T14:23:35Z"} \ No newline at end of file diff --git a/custom_components/audi_dashboard/frontend/app/bundle.zip b/custom_components/audi_dashboard/frontend/app/bundle.zip index 93cf0f9..759093b 100644 Binary files a/custom_components/audi_dashboard/frontend/app/bundle.zip and b/custom_components/audi_dashboard/frontend/app/bundle.zip differ diff --git a/custom_components/audi_dashboard/manifest.json b/custom_components/audi_dashboard/manifest.json index dd6b06f..b8d55f5 100644 --- a/custom_components/audi_dashboard/manifest.json +++ b/custom_components/audi_dashboard/manifest.json @@ -1,7 +1,7 @@ { "domain": "audi_dashboard", "name": "Audi Dashboard", - "version": "2026.9.5.31", + "version": "2026.9.5.32", "documentation": "https://gitea.nothaft.cloud/paul/audi-app/src/branch/main/README.md", "issue_tracker": "https://gitea.nothaft.cloud/paul/audi-app/issues", "codeowners": [