{ "schema": 1, "preamble": { "fr": "# Journal des évolutions — Vulpes OS\n\n[English](CHANGELOG.en.md)\n\nUne base Gaia, trois plateformes : **PC**, **Android (APK)** et **Tundra / Sargo**.\nCe journal décrit les changements visibles et les étapes techniques importantes.\nLes rapports détaillés restent dans la documentation de chaque plateforme.\n\n**Statuts :** « En développement » concerne les sources locales, « APK construit »\nun paquet de test, et « Publié » une release accessible dans le dépôt. Un correctif\ncommun n’apparaît dans un APK installé ou une image téléphone qu’après leur mise à jour.", "en": "# Changelog — Vulpes OS\n\n[Français](CHANGELOG.md)\n\nOne Gaia base, three platforms: **desktop**, **Android (APK)** and **Tundra / Sargo**.\nThis journal covers visible changes and major technical milestones.\n\n**Status:** “In development” refers to local sources, “APK built” to a test package,\nand “Published” to a public repository release. Shared source changes reach installed\nAPKs and phone images only after those packages are updated." }, "entries": [ { "id": "2026-10-03-sargo-modem-persistence", "text": { "fr": "## En développement — 3 octobre 2026 — Sargo : récupération modem et installation vierge\n\n### Tundra · Sargo\n\n- Reconstruction de l’image système avec le correctif du cache des polices et la création du répertoire privé d’oFono au premier démarrage.\n- Récupération limitée au sous-système modem : test contrôlé avec passage hors ligne, remise en service et réenregistrement réseau en environ 22 secondes, sans redémarrage du téléphone. Cela ne corrige pas la cause du watchdog IMS du firmware.\n- Démarrage Gaia, rendu matériel, polices Fira, deux capteurs photo, focus/zoom, clavier et notifications visuelles contrôlés sur le profil neuf. Scan Wi-Fi encore fonctionnel après le redémarrage du modem.\n- Deux démarrages réussis avec conservation du même réglage Gaia sur un espace de données séparé. Caméra, clavier et notifications revérifiés au second démarrage. La partition de boot installée et les données existantes sont conservées.\n- Aucune nouvelle image native publiée : le paquet public d’installation/restauration reste à terminer.\n\n### PC / Android · APK\n\n- Aucun changement de l’interface commune ni nouvelle compilation APK dans cette étape.", "en": "## In development — 3 October 2026 — Sargo modem recovery and fresh installation\n\n### Tundra · Sargo\n\n- Rebuild the system image with the font-cache fix and creation of oFono’s private state directory on first boot.\n- Limit recovery to the modem subsystem: a controlled restart went offline, recovered and registered on the network in about 22 seconds without rebooting the phone. This does not fix the firmware’s IMS watchdog root cause.\n- Check Gaia startup, hardware rendering, Fira fonts, both camera sensors, focus/zoom, keyboard and visual notifications with a fresh profile. Wi-Fi scanning still works after the modem restart.\n- Two successful boots retained the same Gaia setting in a separate data image. Camera, keyboard and notifications rechecked after the second boot. Installed boot partition and existing data retained.\n- No new native image published: the public installation/recovery package remains unfinished.\n\n### Desktop / Android · APK\n\n- No shared interface changes or new APK build in this step." } }, { "id": "2026-10-01-sargo-distribution-preparation", "text": { "fr": "## 1er octobre 2026 — Sargo : préparation de la distribution — en développement\n\n### Tundra · Sargo\n\n- Image système Preview 15 reconstruite avec profils vierges, exclusion des documents de travail et conservation des licences ; inventaire des 493 paquets embarqués.\n- Vérification ext4 et contrôle du contenu effectués. Ces contrôles ne constituent pas une validation de démarrage.\n- Inventaire du stockage en lecture seule et génération de la table de montage depuis cet inventaire, au lieu de reprendre systématiquement les dimensions du Pixel de développement. Prise en charge limitée au volume ext4 à une seule étendue sur userdata Sargo ; aucun formatage ajouté.\n- Image nettoyée transférée et vérifiée sur le Pixel chargé. Essais temporaires en RAM, sans écriture de boot_a ; retour automatique vers le build v59 et redémarrage de Gaia contrôlés.\n- SIM reconnue, enregistrement LTE et scan Wi-Fi contrôlés sur cette image ; ces contrôles ne valident pas les appels, SMS ou données mobiles de bout en bout.\n- Correction des droits du cache des polices au premier démarrage : fc-cache utilise le compte de session. Démarrage Gaia, rendu matériel, Fira, deux capteurs photo, clavier et notifications visuelles contrôlés en RAM. La qualification du fichier reconstruit reste incomplète.\n- Redémarrage intermittent identifié dans le firmware IMS du modem ; politique de récupération ciblée appliquée et second démarrage avec LTE, caméra, clavier et notifications réussi. La récupération après un nouveau crash IMS reste non testée. L’image publique reste non flashable et non publiée.\n\n### PC / APK\n\n- Aucun changement fonctionnel ni nouvelle compilation APK dans cette étape.", "en": "## October 1, 2026 — Sargo distribution preparation — in development\n\n### Tundra · Sargo\n\n- Rebuild Preview 15 system image with empty profiles, internal working documents excluded, license notices retained and an inventory of 493 runtime packages.\n- Filesystem and content checks completed; these checks do not qualify hardware boot.\n- Read-only storage inventory and mount-table generation from that inventory instead of hardcoded development-phone dimensions. Limited to a single ext4 extent on Sargo userdata; no formatting added.\n- Clean image transferred and verified on the charged Pixel. Temporary RAM boot tests left boot_a unchanged; automatic return to installed v59 and Gaia startup checked.\n- SIM detection, LTE registration and Wi-Fi scanning checked on this image; these checks do not establish end-to-end calling, SMS or mobile data.\n- Fix first-boot font cache ownership by running fc-cache as the session user. Gaia startup, hardware rendering, Fira, both camera sensors, keyboard and visual notifications checked in RAM. Qualification of the rebuilt image remains incomplete.\n- Intermittent reboot traced to modem IMS firmware; targeted recovery policy applied and another boot with LTE, camera, keyboard and notifications passed. Recovery after a new IMS crash has not been exercised. The public image remains non-flashable and unpublished.\n\n### Desktop / APK\n\n- No functional changes or new APK build in this step." } }, { "id": "2.7-preview.15", "text": { "fr": "## 2.7-preview.15 — 30 septembre 2026 — publiée\n\n[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/v2.7-preview.15)\n\n### Commun · Gaia / PC / Android / Tundra\n\n- Première publication des sources communes, avec README français et anglais, licences et scripts de préparation. Documentation interne, roadmap, profils, clés et images privées exclus du dépôt public.\n- Intégration des derniers correctifs SMS (dates des bulles, états d’envoi/échec) et du cycle de vie caméra. Les deux entrées du 30 septembre détaillent les correctifs matériels.\n\n### PC\n\n- Copie de publication testée avec moteur Gecko 156.0.1 et profil neuf : démarrage Gaia, navigation, réglages, gestes, historique et isolation des pages. 42 tests de services passants ; persistance des services après redémarrage vérifiée.\n- Stabilisation du test de navigation lors du remplacement normal d’un document et allongement de l’attente de démarrage à froid. Fermeture propre de l’hôte même si Gaia dépasse le délai de préparation.\n\n### Android · APK\n\n- Preview 15 signée avec la clé des précédentes Preview, GeckoView 156.0 ; parité des ressources communes vérifiée. Mise à jour installée sur émulateur Android 16.\n- Photo et Galerie : capture, affichage et reprise du capteur validés. Dix passages en arrière-plan et récupération après arrêt du processus d’affichage validés. Cette qualification ne couvre pas tous les téléphones Android.\n\n### Tundra · Sargo\n\n- Sources du runtime incluses ; l’image privée v59 reste celle qualifiée sur le téléphone de développement. Aucune ROM générique flashable publiée : démarrage encore lié au stockage inventorié, aux images préinstallées et aux accès de maintenance privés.\n- Limites conservées : aperçu caméra proche de 16 i/s, flash/vidéo, rotation et veille profonde incomplets ; audio d’appel à qualifier et grand dialogue après envoi SMS à identifier.\n", "en": "## 2.7-preview.15 — 30 September 2026 — published\n\n[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/v2.7-preview.15)\n\n### Shared · Gaia / Desktop / Android / Tundra\n\n- First shared source publication, including English/French READMEs, licenses and setup scripts. Internal documents, roadmap, profiles, keys and private images excluded from the public repository.\n- Include the latest SMS fixes (bubble dates, sent/failed states) and camera lifecycle fixes. The two 30 September entries detail the hardware changes.\n\n### Desktop PC\n\n- Published checkout tested with Gecko 156.0.1 and a fresh profile: Gaia startup, navigation, settings, gestures, history and page isolation. 42 service tests pass; service persistence after restart checked.\n- Stabilize navigation checks during normal document replacement and allow more time for cold startup. Close the host cleanly even if Gaia exceeds its preparation timeout.\n\n### Android · APK\n\n- Preview 15 signed with the previous Preview key, GeckoView 156.0; shared resource parity checked. Installed as an update on an Android 16 emulator.\n- Photo/Gallery capture, image display and sensor resume validated. Ten background/resume cycles and recovery after renderer termination validated. This does not qualify every Android phone.\n\n### Tundra · Sargo\n\n- Runtime sources included; private v59 remains the build qualified on the development phone. No generic flashable ROM published: boot still depends on inventoried storage, preinstalled images and private maintenance access.\n- Limits remain: approximately 16 fps camera preview, incomplete flash/video, rotation and deep suspend; call audio awaiting qualification and a large dialog after SMS sending still under investigation.\n" } }, { "id": "development-2026-09-30-sms-camera-followup", "text": { "fr": "## En développement — retours SMS et caméra · 30 septembre 2026\n\n### Commun · Gaia / PC / Tundra\n\n- SMS : convertir les dates en nombres avant de construire les bulles. Corrige les conversations vides dues à une erreur de formatage de date. Parcours du compositeur et affichage des messages envoyés/reçus vérifiés sur PC avec un modem simulé.\n- Photo : fermeture du flux rendue idempotente; détacher les vidéos, attendre la libération du capteur et libérer le contexte WebGL avant de changer de caméra. Identifier chaque session pour qu’un ancien flux ne puisse pas arrêter son remplaçant. Allers-retours arrière/avant vérifiés avec de nouvelles trames à chaque bascule; retour Accueil et arrêt du capteur validés lors de deux démarrages RAM.\n\n### Tundra / Sargo\n\n- Vibreur : utiliser le contrôle brightness du pilote DRV2624; la commande legacy activate ne coupait pas physiquement le moteur. Coupure confirmée par l'utilisateur; impulsion, motif 200/200/200 ms et arrêt du service vérifiés, avec retour à zéro. Ajouter une coupure de secours au démarrage et à la sortie du service.\n- L'utilisateur confirme focus, zoom et transport SMS dans les deux sens sur v54. Cinq conversations existantes affichées sur le Pixel, avec leurs bulles et sans erreur de date.\n- v59 installé sur boot_a après deux démarrages RAM réussis; démarrage installé et relecture vérifiés, slot A marqué réussi. Sources et runtime PC synchronisés. Le grand dialogue après un envoi réel reste à identifier; la fluidité caméra reste un chantier distinct.\n\n### Android · APK\n\n- Sources Gaia communes corrigées; aucun nouvel APK construit ou publié.\n", "en": "## In development — SMS and camera feedback · 30 September 2026\n\n### Shared · Gaia / Desktop / Tundra\n\n- Messages: serialize bubble dates as numbers. Fix empty conversations caused by date formatting errors. Composer flow and sent/received bubbles verified on desktop with a simulated modem.\n- Camera: make release idempotent; detach videos, await sensor release and dispose of the WebGL context before switching cameras. Identify each session so an old stream cannot stop its replacement. Repeated rear/front switches produce fresh frames; Home return and sensor shutdown passed on two RAM boots.\n\n### Tundra / Sargo\n\n- Vibration: use the DRV2624 brightness control; the legacy activate command did not physically stop the motor. The user confirmed stopping; single-pulse, 200/200/200 ms pattern and service-stop checks all returned to zero. Add a stop command when the service starts or exits.\n- The user confirms focus, zoom and SMS transport both ways on v54. Five existing conversations render on the Pixel, with message bubbles and no date errors.\n- v59 installed in boot_a after two successful RAM boots; installed startup and readback verified, slot A marked successful. Desktop sources and runtime synchronized. The large dialog after a real send still needs identification; camera smoothness remains separate work.\n\n### Android · APK\n\n- Shared Gaia sources updated; no APK rebuilt or published.\n" } }, { "id": "development-2026-09-30-sms-camera", "text": { "fr": "## En développement — SMS et Photo · 30 septembre 2026\n\n### PC / Tundra\n\n- SMS : conserver le message et sa conversation après un refus du modem; transmettre les événements Gaia « envoi », « échec » et « envoyé ».\n- SMS : distinguer mise en file oFono et confirmation d'envoi, avec suivi persistant des états terminaux. La confirmation modem n'est pas un accusé de réception du destinataire.\n- PC : tests de l'échec d'envoi visible dans la liste des conversations; Photo et Galerie testées avec capture tactile, ouverture, fermeture et reprise de la caméra.\n\n### Tundra / Sargo\n\n- Photo : raccorder les zones de focus tactile, le zoom numérique et la capture JPEG du capteur à l'interface Gaia originale. Aperçu conservé en 640 × 480; JPEG arrière 4032 × 3024 (12,19 Mpx) et avant 3264 × 2448 (7,99 Mpx) mesurés directement. Focus fixe à l'avant.\n- Protocole caméra : séparer les traces du HAL des données binaires, borner les réponses et relancer l'aperçu après une capture. Une erreur de focus ne doit plus fermer la session.\n- SMS : refuser explicitement l'envoi si le modem n'est pas enregistré; conserver les états sent/failed même après disparition de l'objet oFono. La réception a produit des notifications opérateur sur v49 après retour du réseau LTE.\n- Qualification : deux démarrages v54 en RAM puis démarrage depuis boot_a validés; image installée sur le Pixel et slot marqué réussi après relecture. Persistance, interface Gaia et tests caméra passants. L'enregistrement réseau reste instable : essais SMS arrêtés avant émission, aucune livraison de bout en bout confirmée.\n\n### Android · APK\n\n- Aucun nouvel APK construit ou publié dans cette passe. La Preview 14 disponible reste inchangée.\n", "en": "## In development — Messages and Camera · 30 September 2026\n\n### Desktop / Tundra\n\n- Messages now retain the message and conversation after a modem rejection and dispatch Gaia sending, failed and sent events.\n- Distinguish the oFono queue from confirmed transmission; persist terminal states. Modem confirmation is not a recipient delivery receipt.\n- Desktop checks cover failed messages visible in conversations, touch capture, Gallery opening and camera release/resume.\n\n### Tundra / Sargo\n\n- Connect touch focus areas, digital zoom and sensor JPEG capture to the original Gaia Camera. Preview stays at 640 × 480; directly measured JPEG sizes are 4032 × 3024 (12.19 MP) rear and 3264 × 2448 (7.99 MP) front. The front camera has fixed focus.\n- Keep HAL logs out of the binary protocol, bound replies and resume preview after capture. A focus failure must not close the session.\n- Reject SMS submission explicitly when unregistered; retain sent/failed states after the oFono object disappears. Carrier messages triggered Gaia notifications on v49 after LTE registration recovered.\n- Qualification: two v54 RAM boots and the installed boot_a startup passed; image installed on the Pixel and slot marked successful after readback. Persistence, Gaia startup and Camera checks passed. Network registration remains unstable: SMS tests stopped before transmission, with no end-to-end delivery confirmed.\n\n### Android · APK\n\n- No APK rebuilt or published in this pass. The available Preview 14 is unchanged.\n" } }, { "id": "2.7-preview.14", "text": { "fr": "## 2.7-preview.14 — APK publié · 30 septembre 2026\n\n[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.14)\n\nL’APK Preview 14 est publié. La version PC est à jour et le build privé Sargo v48 est installé et testé ; aucune image téléphone n’est publiée avec cette release.\n\n### Commun · PC / APK / Gaia\n\n- Informations : suppression du retrait supplémentaire des lignes de version avant « Dernière mise à jour » ; alignement contrôlé sur PC et Android.\n- Polices : normalisation des noms de fontes dans les feuilles des composants Shadow DOM, y compris les styles ajoutés après leur création. Les polices d’icônes restent distinctes.\n- Calendrier : ouverture du mois et absence d’erreur JavaScript vérifiées sur PC.\n\n### PC / Tundra\n\n- Clavier : calculer le mode portrait depuis l’écran, et non depuis la petite fenêtre du clavier. Touches de 60 px CSS environ sur Pixel ; rotation et retour au portrait testés sur PC à densité 3.\n- SMS : replacer le curseur dans le champ actif lorsque Gecko conserve la sélection du destinataire ; conserver les sélections valides pour l’édition.\n- Notifications Gaia : respecter les indicateurs silencieux, sans son et sans vibration, y compris à la restauration.\n\n- Clavier Gaia : pont de saisie natif, pavé numérique pour les destinataires SMS, événements de sélection corrigés et protection contre les réponses d’un champ devenu inactif. Saisie destinataire et message testée sur PC et Pixel ; l’envoi opérateur reste à qualifier.\n- Verrouillage : accepter l’absence de fenêtre clavier lors d’un redimensionnement.\n- Notifications natives : stockage, propriété par application et ouverture du point d’entrée Téléphone déclaré par Gaia. Présentation et suppression dans le volet et sur le verrouillage validées sur Sargo ; écoute du son à qualifier.\n\n### Tundra / Sargo — build v48 installé\n\n- Vibrations : pont vers le moteur Sargo, motifs bornés à dix secondes, séquencement sans bloquer les boutons physiques et annulation. Activation et arrêt mesurés sur le pilote.\n\n- Wi-Fi : profils privés conservés avec reconnexion automatique et commande d’oubli ; tests du stockage et de la restauration en cas d’échec. Connexion et reconnexion après redémarrage RAM vérifiées sur Sargo ; fichiers de profil privés (0600).\n- SMS entrants : stockage persistant avant acquittement, dédoublonnage des reprises et services créant leur dossier d’état au démarrage. Défaut de montage du dossier corrigé après reproduction sur Sargo.\n- Audio : commandes écouteur/haut-parleur, micro et volume d’appel ajoutées au pont ; bascule écouteur/haut-parleur, sourdine et volume vérifiés sans appel. Conversation dans les deux sens encore à vérifier.\n- Images de diagnostic avec débogueur local interdites au flash par l’outil d’installation. v48/preview.14 écrite sur boot_a après deux démarrages RAM et contrôle de persistance ; démarrage installé validé, image relue conforme et slot A marqué réussi. v43 à v48 n’activent pas de débogueur.\n\n### Android · APK\n\n- APK preview.14 construit, signé et publié sur Forgejo. Démarrage, informations de version, alignement et sélection des fontes des composants contrôlés sur Android 16 émulé. Le clavier Android reste celui du système.", "en": "## 2.7-preview.14 — APK published · 30 September 2026\n\n[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.14)\n\nThe Preview 14 APK is published. Desktop is up to date and the private Sargo v48 build is installed and tested; this release does not include a public phone image.\n\n### Shared · PC / APK / Gaia\n\n- About: remove the extra indentation in version rows above “Last updated”; alignment checked on desktop and Android.\n- Fonts: normalize text font names inside Shadow DOM stylesheets, including styles added later; keep icon fonts intact.\n- Calendar: month view opens without JavaScript errors in the desktop check.\n\n### PC / Tundra\n\n- Keyboard: use the screen orientation instead of the short keyboard frame. Keys measure about 60 CSS pixels on Pixel; rotation tested on desktop at DPR 3.\n- SMS: restore the caret to the focused field when Gecko retains the recipient selection; preserve valid selections during editing.\n- Gaia notifications: respect silent, no-sound and no-vibration flags, including restored notifications.\n\n- Gaia keyboard: native input bridge, numeric SMS recipient layout, corrected selection events and protection against stale field replies. Recipient and message typing tested on desktop and Pixel; carrier delivery still requires qualification.\n- Lockscreen: tolerate the absence of a keyboard window during resize.\n- Native notifications: persistent application-owned entries and launch through Gaia's declared Phone entry point. Tray and lockscreen display/removal verified on Sargo; audible sound still needs qualification.\n\n### Tundra / Sargo — v48 build installed\n\n- Vibration: Sargo actuator bridge, patterns limited to ten seconds, non-blocking sequencing and cancellation. Driver activation and stop measured.\n\n- Wi-Fi: private persistent profiles, autoconnect and forget operation; storage and failed-update rollback tests. Connection and reconnection after a RAM reboot verified on Sargo; private profile files (0600).\n- Incoming SMS: persist before acknowledgement and deduplicate retries. Services now create their state directory at startup, fixing a mount failure reproduced on Sargo.\n- Call audio: earpiece/speaker, microphone mute and call volume controls added; earpiece/speaker switching, mute and volume verified without placing a call. Two-way conversation still unverified.\n- Local-debugger images cannot be flashed by the installer. v48/preview.14 written to boot_a after two RAM boots and persistence checks; installed boot verified, image readback matches and slot A marked successful. v43–v48 do not enable a debugger.\n\n### Android · APK\n\n- Preview.14 APK built, signed and published on Forgejo. Startup, version information, alignment and component font selection checked on an Android 16 emulator. Android retains its system keyboard." } }, { "id": "2.7-preview.13", "text": { "fr": "## 2.7-preview.13 — parcours dans les applications · 27 septembre 2026\n\n### Commun · Gaia / PC\n\n- Calendrier : une alarme planifiée avec succès ne provoque plus un rejet lors de la sauvegarde de l’événement; les erreurs de planification sont transmises au demandeur.\n- Rappels : ignorer ceux d’événements supprimés; ne plus marquer une notification refusée comme livrée. La prise en charge des notifications natives Tundra reste à terminer.\n- Notifications : accepter un texte brut vide sans chercher une traduction « undefined ».\n- Galerie : vignettes de taille positive même au démarrage masqué; annulation des mises à jour d’aperçu après fermeture de l’éditeur.\n- SMS : appliquer les filtres correspondant, lu/non lu, période et livraison; tests de lecture et suppression des conversations.\n- Revue approfondie : lecture, déplacement et suppression d’une vidéo WebM; édition noir et blanc et copie d’une photo; création et suppression d’un événement. Interfaces Gaia originales conservées.\n\n- Qualification depuis une copie isolée : démarrage, tests bureau, persistance et empaquetage Android réussis sans réécriture des sources.\n\n### Android · APK\n\n- APK preview.13 construit et signé; Photo/Galerie, Calendrier, dix retours d’arrière-plan et récupération du rendu validés sur Android 16 émulé.\n\n### Tundra · Sargo\n\n- Build v40/preview.13 installé après deux démarrages RAM : Gaia, caméra, Wi-Fi, luminosité et commandes contrôlés; relecture de boot_a conforme et slot validé. Limites restantes dans `docs/APPLICATION-REVIEW.md`.", "en": "## 2.7-preview.13 — application workflows · 27 September 2026\n\n### Shared · Gaia / Desktop\n\n- Calendar: successfully scheduling a reminder no longer rejects event saving; scheduling failures reach the caller.\n- Reminders: ignore deleted events and do not mark denied notifications as delivered. Native Tundra notification support remains incomplete.\n- Notifications: accept empty raw text without requesting an “undefined” translation.\n- Gallery: positive thumbnail size even when starting hidden; cancel preview updates after leaving the editor.\n- SMS: apply correspondent, read state, date range and delivery filters; cover conversation reading and deletion.\n- Deeper review: WebM playback, seeking and deletion; black-and-white photo editing and saved copy; event creation and deletion. Retain original Gaia interfaces.\n\n- Isolated checkout qualification passes startup, desktop tests, persistence and Android packaging without rewriting sources.\n\n### Android · APK\n\n- Signed preview.13 APK built; Camera/Gallery, Calendar, ten background/resume cycles and renderer recovery validated on an Android 16 emulator.\n\n### Tundra · Sargo\n\n- Build v40/preview.13 installed after two RAM boots: Gaia, camera, Wi-Fi, brightness and controls checked; matching boot_a readback and successful slot marking. Remaining limits in `docs/APPLICATION-REVIEW.md`." } }, { "id": "2.7-preview.12", "text": { "fr": "## 2.7-preview.12 — revue des applications · 27 septembre 2026\n\n### Commun · Gaia / PC\n\n- Icônes internes : variantes raster Gaia originales de 1× à 2,25× rétablies dans\n 1 047 références CSS. Les icônes vectorielles et les polices restent originales.\n- Photo : bouton de changement de capteur réactivé après découverte des caméras;\n flash indisponible visible et grisé; le pincement ne zoome plus le document Gaia.\n- Accueil : gestes natifs réservés au bouton pendant l’appui long; menu contextuel\n désactivé sur ce bouton. Le gestionnaire des tâches Gaia reste utilisé.\n- Transmission des gestes entre System et les applications restaurée avec des\n événements DOM non privilégiés, sans autoriser de faux gestes sur les sites Web.\n- Navigateur : intégration de la page `browser-welcome` fournie, locale, bilingue,\n sans suivi; recherches et liens transmis au véritable navigateur.\n- Page d’accueil : suit automatiquement la langue Gaia, `fr`/`fr-*` en français,\n les autres en anglais; changement appliqué sans redémarrage.\n- SMS : identifiants compatibles avec le registre numérique Gaia, migration des\n anciens messages, dates de l’API et événement d’envoi corrigés; écritures sérialisées.\n- Calendrier : libellé d’accessibilité du jour courant retrouvé dans 37 langues.\n- Revue de 14 applications; 26 contrôles fonctionnels Galerie/Musique/Horloge/UI,\n tests Contacts et SMS, et navigation Web isolée. Voir `docs/APPLICATION-REVIEW.md`.\n\n### Android · APK\n\n- APK `2.7-preview.12` : même interface, correctifs et page locale; reconstruction\n et parité contrôlées. L’accès caméra reste celui d’Android via getUserMedia.\n- Aucun portage automatique des fonctions matérielles Tundra vers Android : chaque\n plateforme conserve son adaptateur et annonce ses capacités réelles.\n\n### Tundra · Sargo\n\n- Aperçu Photo : conversion NV21 par shader, transport binaire au lieu de base64;\n environ 23 images/s mesurées en RAM contre environ 8 dans l’essai intermédiaire.\n- Fermeture du worker attendue avant de rouvrir un autre capteur.\n- Luminosité manuelle : retrait des animations successives, environ 200 ms pour\n atteindre la valeur demandée lors du test matériel; transitions veille/réveil conservées.\n- Wi-Fi : état radio réel et activation/désactivation raccordés aux réglages Gaia;\n réseau mixte WPA2/WPA3 compatible avec le formulaire WPA-PSK.\n- Scan par Gaia, connexion et navigation HTTPS par wlan0 validés en RAM. Les\n profils de connexion restent temporaires; leur persistance est encore à réaliser.\n- Image v38 installée : deux démarrages RAM, démarrage installé, relecture de\n `boot_a`, préservation des autres partitions et validation du slot A réussis.\n- Flash photo, vidéo, capteur de luminosité/rotation, Bluetooth, comptage de données\n et fonctions avancées d’appel restent incomplets. Un écran qui s’ouvre ne vaut\n pas validation de tout son matériel.", "en": "## 2.7-preview.12 — application review · 27 September 2026\n\n### Shared · Gaia / Desktop\n\n- Restore original Gaia 1×–2.25× raster variants for 1,047 CSS image references.\n- Camera switch becomes available after device discovery; unavailable flash stays\n visible and disabled; pinching no longer zooms the whole camera application.\n- Reserve Home gestures for long press and suppress its context menu; retain Gaia's task manager.\n- Relay Gaia touch gestures using unprivileged DOM events, without granting trusted\n user activation to external websites.\n- Bundle the supplied bilingual, local browser welcome page and route links and\n searches into the actual browser.\n- Welcome page follows the Gaia language live: `fr`/`fr-*` select French;\n all other languages select English.\n- SMS: numeric identifiers, migration of older records, Date values, sent events,\n multi-recipient request shape and serialized storage writes.\n- Calendar: restore the current day's accessibility label in 37 locales.\n- Review 14 apps; 26 media/clock/UI checks, contact and SMS checks, plus real Web\n navigation and isolation. Scope and limitations: `docs/APPLICATION-REVIEW.md`.\n\n### Android · APK\n\n- Rebuild `2.7-preview.12` with the same shared UI and local welcome page; check\n payload parity. Android camera capture continues to use getUserMedia.\n\n- Tundra hardware features are not automatically ported to Android: each platform\n retains its adapter and reports its actual capabilities.\n\n### Tundra · Sargo\n\n- Convert NV21 using a shader and transfer binary frames instead of base64:\n approximately 23 fps measured in RAM, versus 8 fps in the intermediate trial.\n- Wait for camera worker exit before opening the other sensor.\n- Manual brightness reaches its target in about 200 ms in the hardware test;\n keep screen sleep/wake fades.\n- Connect Gaia Wi-Fi power settings to actual radio state; support WPA-PSK on\n mixed WPA2/WPA3 networks.\n- Scan, connection and HTTPS over wlan0 validated in RAM; connection profiles are temporary.\n- Wi-Fi profiles are still temporary. Flash, video, light/orientation sensors,\n Bluetooth, data counters and advanced call controls remain incomplete.\n- v38 installed: two RAM boots, installed startup, `boot_a` readback, other boot\n partitions preserved and slot A marked successful." } }, { "id": "development-2026-09-27-4", "text": { "fr": "## En développement — retours Sargo et interface · 27 septembre 2026\n\n### Commun · Gaia / PC\n\n- Animation d’arrêt : trois nuances bleues remplacent les ronds orange; dimensions,\n séquence et durées de l’animation Gaia sont conservées.\n\n- Téléphone : empêcher le défilement du document lors du changement d’onglet;\n les en-têtes Journal et Contacts restent en place. Les icônes du journal utilisent\n les images Gaia originales en plusieurs densités, jusqu’à 2,25×.\n- Menus déroulants : retrait du décalage prévu pour les anciens moteurs, qui coupait\n les jambages de Fira. Vidéo : texte de présentation contenu dans la fenêtre.\n- Luminosité : le curseur enregistre un nombre et répond aux événements input/change;\n les anciennes valeurs textuelles sont converties avant la transition Gaia. La file\n matérielle regroupe les pas obsolètes de luminosité sans réordonner veille/réveil.\n- Accueil : le fond d’écran continue sous le dégradé transparent. L’espace de navigation\n reste réservé dans les applications; en paysage, le bouton se place à droite.\n- Navigateur : page locale éditable dans `overrides/search.gaiamobile.org/home/index.html`.\n Les branchements de Gaia et le mode privé restent en place.\n- Wi-Fi : un échec affiche une explication et le bouton de reprise au lieu de relancer\n indéfiniment le scanner. La recherche et l’affichage dans le panneau Gaia ont\n maintenant été vérifiés sur Sargo en RAM.\n- Suivi consolidé : `docs/CHANTIER.md`, avec anciens et nouveaux retours, preuves et limites.\n\n### Android · APK\n\n- APK `2.7-preview.11` construit et signé avec la même base Gaia; parité vérifiée.\n Barre Accueil à droite en paysage et correction du fond en mode Accueil.\n Rotation et absence de recouvrement vérifiées sur émulateur Android 16.\n\n### Tundra · Sargo\n\n- Caméra : aperçu matériel dans Photo Gaia, JPEG et bascule arrière/avant validés\n en RAM sur Sargo; les capteurs se ferment au retour à l’accueil. Capture initiale\n limitée à 640 × 480 (480 × 640 en portrait); vidéo et flash non disponibles.\n L’interface reste commune au PC et à l’APK, qui conservent getUserMedia.\n\n- v33 (`2.7-preview.11`) installé après deux démarrages RAM réussis. Démarrage installé, relecture de\n `boot_a`, conservation des données et finalisation du slot A vérifiés.\n- Luminosité mesurée depuis Gaia : 35 % → 89/255, 80 % → 204/255. Résultats Wi-Fi\n visibles dans le panneau original. Animation d’arrêt bleue incluse.\n- Routage audio : prise en charge du format de PulseAudio 14; suppression du double\n chargement des modules audio. Passage au profil téléphonique et à l’écouteur, puis\n restauration du profil média, vérifiés sur Sargo. Conversation réelle encore à valider.\n- Restent ouverts : conversation audible dans les deux sens, capture pleine résolution/vidéo et\n raccordement des capteurs pour la rotation automatique. Voir la liste de suivi.", "en": "## In development — Sargo feedback and interface · 27 September 2026\n\n### Shared · Gaia / Desktop\n\n- Shutdown animation: three blue shades replace the orange rings; original Gaia\n dimensions, sequence and timing are preserved.\n\n- Phone: prevent document scrolling on tab changes, keeping Recents and Contacts\n headers in place. Use Gaia’s original call-log artwork at multiple densities up to 2.25×.\n- Select controls: remove the old engine offset that clipped Fira descenders.\n Video: keep the introductory text within the viewport.\n- Brightness: save a number from input/change events; normalize legacy text values\n before Gaia animates the transition. Coalesce stale hardware brightness steps\n while preserving the order of sleep/wake commands.\n- Home: extend wallpaper beneath the transparent gradient, reserve navigation space\n inside applications, and place Home on the right in landscape.\n- Browser: editable local page at `overrides/search.gaiamobile.org/home/index.html`,\n retaining Gaia integration and private mode.\n- Wi-Fi: show a scan failure and retry action instead of endless retries. Network\n discovery and results in the original Gaia panel now verified on Sargo in RAM.\n- Consolidated tracking: `docs/CHANTIER.md` includes earlier and new feedback and limitations.\n\n### Android · APK\n\n- Build and sign `2.7-preview.11` with shared Gaia; payload parity checked.\n Place Home on the right in landscape and fix its wallpaper background.\n Check rotation and non-overlapping app/navigation bounds on Android 16 emulator.\n\n### Tundra · Sargo\n\n- Camera: hardware preview in Gaia, JPEG capture and rear/front switching verified\n on Sargo in RAM; sensors close on returning Home. Capture is currently limited\n to 640 × 480 (480 × 640 portrait); video and flash remain unavailable.\n Desktop and APK keep getUserMedia and share the same Gaia interface.\n\n- v33 (`2.7-preview.11`) installed after two successful RAM boots. Installed boot, `boot_a` readback,\n data preservation and slot A success finalization verified.\n- Backlight measured from Gaia: 35% → 89/255, 80% → 204/255. Wi-Fi results visible\n in the original panel. Blue shutdown rings included.\n- Call audio: support PulseAudio 14 text output and prevent loading audio modules twice.\n Voice-call profile, earpiece selection and media-profile restoration verified on Sargo.\n An actual two-way conversation remains unvalidated.\n- Still open: audible two-way calls, full-resolution camera capture/video and sensor-driven rotation.\n See the tracking document." } }, { "id": "development-2026-09-27-3", "text": { "fr": "## En développement — stabilité Wi-Fi native · 27 septembre 2026\n\n### Commun · Gaia / PC\n\n- Correction de la boucle Wi-Fi sans délai : recherche toutes les 20 secondes,\n conformément à l’intervalle prévu par Gaia. Regroupement des scans simultanés.\n- Version de développement commune : `2.7-preview.9`, Gaia `2.7.0`; versions\n réelles de Gecko inchangées. Tests de rafales, erreurs et temporisation ajoutés.\n\n### Android · APK\n\n- Nouveau paquet `2.7-preview.9` pour conserver la même base Gaia. Le Wi-Fi Android\n reste géré par Android; ce correctif ne prétend pas ajouter un pilote à l’APK.\n\n### Tundra · Sargo\n\n- Cause du blocage v21/v22 identifiée : multiplication des clients Python de\n recherche Wi-Fi, épuisement mémoire et arrêt de Gecko par le lowmemorykiller.\n Le SIGSEGV de phoc survient ensuite pendant sa fermeture.\n- Un seul scan matériel en cours, cache court des résultats et des erreurs,\n invalidation après connexion/déconnexion. Aucun affaiblissement de l’isolation\n des applications, ni désactivation du mécanisme de protection mémoire.\n- Candidat v25 qualifié sur deux démarrages RAM, puis installé et vérifié sur le\n Pixel : 11 contrôles Gaia et 10 contrôles système passent, sans destruction de\n processus par manque de mémoire. Verrouillage Gaia, Fira, batterie, date et\n panneau Wi-Fi contrôlés; veille/réveil et volume testés par événements injectés.\n- Relecture de `boot_a` conforme, autres partitions de démarrage inchangées,\n données conservées et slot A marqué comme démarré avec succès. La caméra native\n et la validation complète des appels restent à terminer.", "en": "## In development — native Wi-Fi stability · 27 September 2026\n\n### Shared · Gaia / Desktop\n\n- Fix the Wi-Fi loop with no delay: scan every 20 seconds as intended by Gaia.\n Coalesce concurrent scans. Add burst, failure and timer regression tests.\n- Shared development version: `2.7-preview.9`, Gaia `2.7.0`; actual Gecko versions\n remain unchanged.\n\n### Android · APK\n\n- Build `2.7-preview.9` to retain shared Gaia parity. Android still manages its\n own Wi-Fi; this change does not claim to add a hardware driver to the APK.\n\n### Tundra · Sargo\n\n- Identify the v21/v22 failure: unbounded Python Wi-Fi scan clients exhausted\n memory, causing the lowmemorykiller to terminate Gecko. The phoc SIGSEGV occurs\n afterwards during display teardown.\n- Allow one hardware scan at a time, briefly cache results and errors, invalidate\n after connect/disconnect. Application isolation and memory protection remain enabled.\n- Qualify v25 through two RAM boots, then install and verify it on the Pixel:\n 11 Gaia and 10 system checks pass, with no memory-pressure process kills.\n Check the Gaia lockscreen, Fira, battery, date and Wi-Fi panel; exercise\n sleep/wake and volume through injected input events.\n- Verify `boot_a` by readback, preserve the other boot partitions and user data,\n and mark slot A successful. Native camera support and full call validation\n remain unfinished." } }, { "id": "development-2026-09-27-2", "text": { "fr": "## En développement — restauration Gaia · 27 septembre 2026\n\n### Commun · Gaia / PC\n\n- Restauration des panneaux Gaia et suppression des fenêtres/boutons provisoires :\n Paramètres, Suivi conso, FM et import de contacts/médias. Les fonctions sans API\n restent visibles avec commandes désactivées, sans valeurs matérielles inventées.\n- Correction de la portée des anciens styles : les sélecteurs `div` ne sont plus\n transformés en racines de composants. Retour des icônes du verrouillage,\n conservation de Fira et glyphes Gaia vectoriels pour les onglets Téléphone.\n- Accueil dispose de 44 pixels CSS réservés et ne recouvre plus Décrocher/Raccrocher.\n La date utilise le composant historique; la batterie est actualisée dans Paramètres\n et ses libellés n’affichent plus `{{ level }}`.\n- Écran de verrouillage Gaia réactivé; splash provisoire avec le logo fourni,\n dimensions stables et animation douce. Nom localisé : Navigateur / Browser.\n Remerciements dans Informations légales, avis de licences conservés.\n- Tests PC : 26 contrôles applicatifs passent (Galerie, Musique, Horloge, tâches),\n panneaux, imports, batterie, date et navigation; appels simulés,\n journal, veille/réveil, menu Power et volume. Voir `docs/GAIA-RESTORATION.md`.\n\n### Android · APK\n\n- APK `2.7-preview.8` construit et installé sur l’émulateur Android 16, avec la même base Gaia; batterie lue depuis Android,\n Paramètres Android en bas de liste et mode Accueil Android optionnel. Le catalogue\n des applications Android dans Gaia reste à raccorder.\n- Validation Android : dix reprises après changement d’application et récupération\n après destruction du renderer. Parité du contenu partagé vérifiée; pas de test\n physique Android dans cette passe.\n- Les imports utilisent les composants Gaia; le bouton SMS ouvre la confirmation\n Android. Le verrouillage interne ne remplace pas la sécurité Android.\n\n### Tundra · Sargo\n\n- Candidats v21/v22 construits avec tous les correctifs `overrides/` dans le paquet de boot;\n raccordement scan/association Wi-Fi au panneau Gaia via NetworkManager.\n- Essais RAM bloqués : service graphique arrêté avec le code 139 avant qualification.\n Aucun nouveau flash. Retour sur v20 installé validé (11 contrôles Gaia, 9 système,\n données conservées); verrouillage du profil natif remis à son état précédent.\n Wi-Fi du candidat, caméra native, API SIM/Bluetooth et suspension CPU non qualifiés.", "en": "## In development — Gaia restoration · 27 September 2026\n\n### Shared · Gaia / Desktop\n\n- Restore Gaia panels and remove temporary windows/floating controls: Settings,\n Usage, FM and contact/media import. Features without an API remain visible with\n disabled controls, without invented hardware values.\n- Fix legacy style scoping: ordinary `div` selectors no longer become component\n roots. Restore lockscreen icons, retain Fira and use scalable Gaia glyphs for\n Phone tabs.\n- Reserve 44 CSS pixels for Home so it cannot cover Answer/Hang up. The date uses\n its original component; battery updates reach Settings and its labels no longer\n display `{{ level }}`.\n- Re-enable the original Gaia lockscreen; temporary splash uses the supplied logo,\n stable dimensions and a gentle animation. Localized name: Navigateur / Browser.\n Credits appear in Legal Information; original license notices remain.\n- All 26 application checks pass (Gallery, Music, Clock, task management). Further\n desktop checks cover panels, imports, battery, date and navigation; simulated\n calls, history, sleep/wake, Power menu and volume. See `docs/GAIA-RESTORATION.md`.\n\n### Android · APK\n\n- Build and install `2.7-preview.8` on the Android 16 emulator with shared Gaia; read battery state from Android,\n add Android Settings at the bottom and optional Android Home mode. The Android\n application catalogue in Gaia still needs integration.\n- Android checks: ten background/resume cycles and renderer termination recovery;\n shared payload parity verified. No physical Android device test in this pass.\n- Imports use Gaia components; the SMS button opens Android confirmation.\n The internal lockscreen does not replace Android security.\n\n### Tundra · Sargo\n\n- Build v21/v22 candidates with all `overrides/` fixes in the boot payload; connect Wi-Fi\n scan/association to the Gaia panel through NetworkManager.\n- RAM trials blocked: the display service exits with code 139 before qualification.\n No new flash. Restore installed v20 and verify 11 Gaia and 9 system checks with\n preserved data; restore the native profile’s previous unlocked state. Candidate\n Wi-Fi, native camera, full SIM/Bluetooth APIs and CPU suspend remain unqualified." } }, { "id": "development-2026-09-27-1", "text": { "fr": "## En développement — 27 septembre 2026\n\n### Commun · Gaia / PC\n\n- Remplacement de l’écran d’appel provisoire par **Callscreen**, l’interface\n originale de Gaia : appel entrant/sortant, réponse, raccrochage et fermeture.\n L’adaptateur fournit les événements `mozTelephony` aux modules historiques.\n Les contrôles audio/conférence non encore raccordés restent grisés.\n- Journal d’appels persistant côté hôte, puis import dans le vrai journal Gaia,\n avec acquittement et détection des doublons après interruption.\n- Batterie : pont vers l’icône historique ; une batterie inconnue n’est pas\n présentée comme vide. Correction de l’index de contacts Facebook absent ou\n mal formé, qui bloquait aussi la recherche de numéro et l’historique local.\n- Polices : comparaison des glyphes réellement rendus. L’accueil utilisait\n déjà Fira Sans des deux côtés, mais certains textes système utilisaient Noto\n sur PC. Les règles de texte principales sélectionnent désormais la Fira de\n Gaia ; les polices d’icônes sont conservées.\n- Test Gecko avec modem simulé : appels entrants/sortants, boutons Répondre et\n Raccrocher, journal, veille/réveil, menu Power, volume et batterie.\n Aucun nouvel APK compilé dans cette étape.\n\n- Étape v13 (remplacée par Callscreen ci-dessus) : écran d’appel géré par l’application système : numérotation, sonnerie,\n communication et bouton Raccrocher. Les contrôles restent présents si le\n service perd momentanément l’état de l’appel.\n- Tests sur le vrai Gecko bureau avec modem simulé, y compris échec puis nouvel\n essai de raccrochage. Sources PC synchronisées ; aucun APK reconstruit.\n\n### Tundra · Sargo\n\n- Build privé v20 installé et relu dans `boot_a`, après deux démarrages RAM\n et un démarrage depuis le stockage ; réglages conservés, slot marqué réussi.\n- Lecture des seules touches Power/Volume du Sargo et\n transmission à `HardwareButtons`. Appui court : écran éteint/rallumé ; appui\n long : menu Gaia. Le broker natif commande rétroéclairage, volume, arrêt et\n redémarrage avec une liste d’opérations fixe.\n- Sérialisation des changements de luminosité et d’alimentation : deux\n requêtes simultanées ne peuvent plus laisser le rétroéclairage éteint au réveil.\n- Volume natif : accès en lecture au socket PulseAudio de la session, sans\n lequel l’indicateur Gaia changeait mais la sortie audio restait inchangée.\n- La veille écran ne suspend pas encore le noyau. Réception réelle des appels,\n audio de conversation et commandes audio avancées restent à qualifier.\n\n- Étape précédente : build privé v13 installé dans `boot_a` après deux démarrages RAM ; démarrage\n depuis le stockage, relecture et indicateur de réussite A/B vérifiés.\n- Transmission des appels et de leurs états depuis oFono ; commandes Répondre et\n Raccrocher limitées aux chemins d’appel du modem.\n- Correction des réponses D-Bus sans contenu : un raccrochage réussi ne provoque\n plus une fausse erreur de réponse invalide.\n- Un appel réel court atteint la sonnerie puis est raccroché automatiquement.\n Cela ne qualifie pas encore l’audio en conversation ni les appels entrants.\n- Caméra : diagnostic corrigé, sans annoncer une initialisation à partir d’un\n simple délai d’attente. Deux capteurs sont détectés via libhybris, mais le test\n de flux reçoit zéro image. La caméra Gaia native reste indisponible ; voir la\n [note technique](tundra/docs/CAMERA-SARGO.md).", "en": "## In development — 27 September 2026\n\n### Shared · Gaia / Desktop\n\n- Replace the temporary call overlay with Gaia’s original **Callscreen**:\n incoming/outgoing calls, answer, hang up and automatic close. A compatibility\n adapter supplies `mozTelephony` events to the original modules. Unsupported\n audio/conference controls remain disabled.\n- Persist completed calls in the host and import them into Gaia’s original call\n log, with acknowledgement and duplicate detection after interruption.\n- Connect real battery state to the original status icon; unknown is not empty.\n Handle a missing/malformed Facebook contacts index without blocking local\n number lookup or call history.\n- Compare rendered font faces: home already used Fira on both platforms, but\n desktop system text partly used Noto. Main text rules now select Gaia’s\n bundled Fira face while preserving icon fonts.\n- Desktop Gecko test with a simulated modem covers incoming/outgoing UI,\n answer/hang up, history, screen sleep/wake, power menu, volume and battery.\n No APK rebuilt in this step.\n\n- Earlier v13 step (superseded above): system-owned call screen with dialing, ringing, connected state and Hang up.\n Controls remain available if the service temporarily loses call status.\n- Tested in desktop Gecko with a simulated modem, including hang-up failure and\n retry. Desktop sources synchronized; no APK rebuilt.\n\n### Tundra · Sargo\n\n- Private v20 installed and read back in `boot_a` after two RAM boots and one\n installed boot; settings retained and slot marked successful.\n- Read only Sargo’s physical Power/Volume keys and forward\n their edges to Gaia HardwareButtons. Short press sleeps/wakes the screen;\n long press opens Gaia’s menu. The restricted native broker controls backlight,\n volume, shutdown and reboot.\n- Serialized brightness and power changes: concurrent requests no longer\n leave the backlight disabled while waking the screen.\n- Native volume: expose the session PulseAudio socket read-only to the service;\n otherwise Gaia’s indicator changed while the audio output remained unchanged.\n- Screen sleep does not suspend the kernel yet. Real incoming calls, conversation\n audio and advanced call audio controls remain to be qualified.\n\n- Earlier step: private v13 installed in `boot_a` after two RAM boots; installed boot,\n readback and the A/B success flag verified.\n- oFono call state reporting and Answer/Hang up commands restricted to modem call paths.\n- Successful void D-Bus responses no longer cause a false invalid-response error.\n- A short real outgoing call reached ringing and was automatically hung up.\n Conversation audio and incoming calls remain unqualified.\n- Camera diagnostics no longer mistake a timeout for successful initialization.\n Libhybris detects two sensors, but the preview probe receives no frames.\n Native Gaia camera access remains unavailable." } }, { "id": "development-2026-09-26-1", "text": { "fr": "## En développement — 26 septembre 2026\n\n### Commun · Gaia\n\n- Polices : Fira Sans OpenType du simulateur historique, avec les mêmes fichiers\n pour les pages Gaia et le système Tundra. Correction du repli `sans-serif` natif\n et vérification Fontconfig ajoutée ; les polices d’icônes restent distinctes.\n- Paramètres : retrait des boutons de diagnostic « Paramètres Tundra » et\n « Tester une notification ». Le résumé des versions et les informations\n techniques restent disponibles.\n- Panneau matériel : transmission des capacités de la plateforme au panneau.\n Une variable absente provoquait une alerte Gecko au lieu d’afficher la batterie.\n\n### PC\n\n- Adaptateur local synchronisé avec les sources communes. Gecko reste en 156.0.1.\n\n### Android\n\n- Correctif du panneau présent dans les sources communes ; aucun nouvel APK construit.\n\n### Tundra / Sargo\n\n- Validation explicite du succès A/B après installation : sauvegarde et contrôle\n des métadonnées GPT, outil Qualcomm vérifié, confirmation Fastboot.\n- Erreurs du modem distinguées des erreurs de transport ; boîte d’erreur intégrée\n à Gaia. La caméra native indisponible ne suggère plus une autorisation inutile.\n- Diagnostic des polices réellement utilisées par Gecko et du réseau radio, sans\n appel ni SMS automatique. Fira Sans confirmée sur l’accueil et la barre d’état.\n- Installation réelle du v9 polices dans `boot_a` sur le Sargo inventorié.\n Contenu écrit relu et conforme ; cinq autres partitions de boot sauvegardées intactes.\n- Deux démarrages depuis le stockage : 10 contrôles Gaia et 9 contrôles système\n réussis par boot, réglages conservés. Le PC n’est plus nécessaire pour démarrer.\n Fichiers de secours Droidian conservés ; restauration réelle non testée.\n- Candidat persistant privé : image de données ext4 2 Gio, profils et réglages Gaia\n conservés, identité/comptes système préservés et suppression du watchdog de dix minutes.\n- Deux démarrages successifs de la même image v8 : 9 contrôles Gaia et 9 contrôles\n système réussis par boot. Diagnostic séparé : 15 contrôles avec la même interface.\n- Installation limitée à `boot_a` et restauration de l’original préparées et testées\n localement ; aucun flash effectué. Les limites matérielles restent documentées.\n- Démarrage normal sans ouverture automatique de Paramètres/Horloge ni défilement\n de l’accueil. Ces gestes appartiennent désormais au mode explicite `--diagnostics`.\n- Plein écran établi avant le chargement de Gaia ; décorations natives désactivées.\n Sur le Pixel testé : 360 × 740 pixels CSS, facteur 3, dimensions stables et accueil\n inchangé pendant les cinq relevés après démarrage.\n- v13 testé en RAM : huit contrôles de démarrage et neuf contrôles système réussis.\n Les rapports distinguent cette vérification du démarrage des tests interactifs.\n- Diagnostic v14 séparé : treize contrôles interactifs réussis, dont le panneau\n matériel ; ouverture et scan Wi-Fi vérifiés. Même interface que le v13 normal.\n- Les images de diagnostic interactif ne peuvent pas devenir la sélection normale\n du lanceur. L’ancienne sélection v13 est conservée dans son historique.\n- Modem enregistré en UMTS pendant l’essai ; lecture audio réussie et signal du\n microphone mesuré sans conserver d’enregistrement. Cela ne qualifie pas encore\n l’audio en appel, la caméra ou la veille.\n- Construction du ramdisk indépendante de la langue du PC : analyse `readelf` en\n locale C pour conserver le chargeur dynamique ARM64 et ses dépendances.\n\nLes six partitions boot/DTBO/vbmeta A/B sont inchangées. Le build reste un essai\nprivé en RAM, **pas une ROM flashable**. Détails : [état de Tundra](tundra/docs/STATUS.md).", "en": "## In development — 26 September 2026\n\n### Shared · Gaia\n\n- Fonts: use the archived simulator’s Fira Sans OpenType files for both Gaia\n pages and Tundra system text. Fix native sans-serif fallback and add Fontconfig\n validation; icon fonts remain separate.\n- Settings: remove the “Tundra settings” and “Test a notification” diagnostic\n buttons. Release information and the technical details remain available.\n- Hardware panel: pass platform capabilities into the panel. An undefined variable\n used to open a Gecko alert instead of displaying battery information.\n\n### Desktop\n\n- Local adapter synchronized with the shared sources. Gecko remains at 156.0.1.\n\n### Android\n\n- Hardware panel fix is in the shared sources; no new APK has been built.\n\n### Tundra / Sargo\n\n- Explicit A/B boot-success finalization after installation: backed-up and checked\n GPT metadata, verified Qualcomm utility, Fastboot confirmation.\n- Modem rejections distinguished from transport failures; errors shown inside Gaia.\n The unavailable native camera no longer suggests an ineffective permission change.\n- Rendered-font and radio diagnostics without automatic calls or messages. Fira Sans\n confirmed on the home screen and status bar.\n- Installed the v9 font build into `boot_a` on the inventoried Sargo. Written\n image verified by readback; the other five backed-up boot partitions are unchanged.\n- Two boots from device storage pass 10 Gaia and 9 system checks each and retain\n settings. A PC is no longer required to boot. Droidian fallback files retained;\n actual restoration has not been tested.\n- Private persistent candidate: separate 2 GiB ext4 data image, retained Gaia\n settings/profiles and system identities, no ten-minute reboot watchdog.\n- Two consecutive boots of the same v8 image: 9 Gaia and 9 system checks pass on\n each boot. Separate diagnostic: 15 checks using identical shared UI files.\n- Boot-a-only installation and original-boot restoration tools prepared and tested\n locally. No actual flash performed; remaining hardware limits are documented.\n- Normal startup no longer opens Settings/Clock or scrolls the home screen. These\n actions now belong to the explicit `--diagnostics` mode.\n- Enter fullscreen before loading Gaia and hide native window decorations. On the\n tested Pixel: 360 × 740 CSS pixels at scale 3, stable dimensions and an unchanged\n home screen throughout five post-startup samples.\n- v13 RAM trial passes eight startup checks and nine system checks. Reports now\n distinguish startup observation from interactive qualification.\n- Separate v14 diagnostic: thirteen interactive checks pass, including the hardware\n panel; Wi-Fi panel and scanning verified with the same UI files as normal v13.\n- Interactive diagnostic images are rejected as the normal launch target. The\n earlier v13 selection is retained in the launcher history.\n- Modem registered on UMTS during the trial; audio playback completed and microphone\n samples were measured without retaining a recording. In-call audio, camera and\n suspend remain unqualified.\n- Ramdisk dependency discovery now runs `readelf` in the C locale, preserving the\n ARM64 dynamic loader regardless of the build machine's language.\n\nAll six A/B boot/DTBO/vbmeta partitions are unchanged. This remains a private RAM\ntrial, **not a flashable ROM**. See [Tundra status](tundra/docs/STATUS.md)." } }, { "id": "development-2026-09-25-1", "text": { "fr": "## En développement — 25 septembre 2026\n\n### Commun · Gaia\n\n- **Navigation :** bouton Accueil rond ; dégradé noir vers transparent au-dessus du\n fond d’écran, fond bleu uni dans les applications. L’appui modifie le cercle\n plutôt que de laisser un rectangle bleu sur l’accueil.\n- **Défilement :** le dégradé disparaît au bas du panneau de l’accueil ; il revient\n quand on remonte. Le changement de panneau Applications / Pages est pris en compte.\n- **Typographie :** polices Fira Sans embarquées, avec plusieurs graisses et italiques,\n au lieu de dépendre des polices installées sur le système hôte.\n- **Informations :** affichage séparé de Vulpes, Gaia, du moteur réellement exécuté,\n de la plateforme, du modèle et de l’adaptateur. Le panneau prévoit Tundra et\n l’adaptation matérielle, maintenant raccordés au backend natif Tundra.\n- **Icônes :** reprise du chargement après une première mesure de taille nulle,\n partagée entre PC, Android et Tundra. Le correctif était auparavant limité à Android.\n- **Maintenance :** ce journal centralise les évolutions des trois plateformes.\n\n### PC · Validé localement\n\n- Chargement d’une icône initialisée à taille nulle puis rendue visible : testé.\n- Navigation Accueil / Paramètres / retour Accueil, fond transparent en bas de page,\n dégradé en haut et contrôle des permissions testés dans un profil isolé.\n- Panneau Informations testé en français et en anglais, sans anciennes lignes en double.\n- Le moteur demeure Gecko **156.0.1** ; ces changements d’interface ne recompilent pas Gecko.\n\n### Android · Sources adaptées, Java compilé\n\n- Même comportement de navigation prévu par le pont GeckoView / Android : barre\n superposée sur l’accueil, place réservée dans les applications et le navigateur.\n- État de navigation conservé lors de la recréation de l’activité Android.\n- Compilation Java réussie. **Aucun nouvel APK livré pour ces changements** et\n comportement visuel encore à retester sur Android.\n\n### Tundra / Sargo · Essais privés en RAM\n\n- Build réseau v6 devenu référence du lanceur après 13 contrôles Gaia et 9\n contrôles système ; retour automatique et six partitions inchangées vérifiés.\n- Backend Tundra distinct du PC : modèle Pixel 3a, adaptation Sargo et version\n native affichés sans annoncer une caméra ou une téléphonie non raccordées.\n- Batterie et charge lues sur le matériel ; panneau d’état bilingue dans Gaia.\n 13 contrôles Gaia réussis sur l’essai réseau, dont ce nouveau panneau.\n- Wi-Fi réel testé : scan, connexion, IPv4, DNS et page HTTPS sous Gecko.\n Ajout de `pd-mapper`, désactivation d’IPA non initialisé et du sondage caméra\n prématuré ; 9 contrôles système passent, sans Oops noyau. La sélection du réseau\n dans Gaia reste à raccorder ; les identifiants du test restent en RAM.\n- Configuration des services embarquable dans le petit ramdisk : pas de nouvelle\n copie des 3 Gio pour chaque ajustement de démarrage. Partitions modem protégées\n en utilisant des copies NV en RAM pour les essais Qualcomm.\n\n- Nouvelle image système ext4 contenant le runtime ARM64, les HAL de référence,\n Phoc, Gecko et Gaia. Le runtime n’est plus chargé depuis l’arborescence de travail\n Droidian, ni le HAL depuis son ancien fichier `/var/lib/lxc/android/`.\n- Démarrage du second essai vérifié sur Pixel 3a : PID 1 Tundra, services HAL,\n compositeur et Gaia ; **7 contrôles Gaia et 8 contrôles système réussis**.\n- Capture physique de l’accueil contrôlée : icônes présentes, Fira Sans chargée,\n bouton rond et dégradé visibles. Gecko **156.0.1 ARM64**, WebRender matériel.\n- Petits changements d’interface embarqués dans le ramdisk d’essai : inutile de\n retransférer les 3 Gio du système pour chaque correction CSS/JavaScript.\n- Copie des sources de construction conservée avec les nouvelles images, vérifiée\n par empreintes, pour permettre de les retester après l’évolution du code courant.\n- Le dernier essai (`sargo-system-boot-20260925-v5`) valide **10 contrôles Gaia et\n 8 contrôles système**, dont icônes, police chargée, fond à l’appui, bas de page\n et retour depuis une application. Capture physique contrôlée ; référence locale\n du lanceur mise à jour. Aucun APK publié ni téléphone flashé.\n\n**Limites :** stockage installé encore utilisé comme support du fichier système ;\nmodifications perdues à l’arrêt ; retour automatique au système conservé après dix\nminutes. Aucun flash ni remplacement de Droidian. Le redémarrage à chaud du\ncompositeur a échoué lors d’un essai ; le démarrage à froid fonctionne. Réseau,\nmodem, audio, caméra et veille restent à intégrer ou qualifier. Ce n’est pas une\nROM publique installable ni un téléphone quotidien validé.\n\nDétails : [image système](tundra/docs/SYSTEM-IMAGE-SARGO.md),\n[état Tundra](tundra/docs/STATUS.md), [parité des plateformes](docs/PARITE-BUREAU-ANDROID.md).", "en": "## In development — 25 September 2026\n\n### Shared · Gaia\n\n- **Navigation:** a circular Home button, a black-to-transparent gradient over the wallpaper,\n and a solid blue bar inside apps. Pressing Home now changes the ring instead of leaving\n a blue rectangle over the home screen.\n- **Scrolling:** the gradient disappears at the bottom of the home panel and returns when\n scrolling up. Switching between the Apps and Pages panels is supported.\n- **Typography:** bundled Fira Sans fonts, with multiple weights and italics, instead of\n relying on the host system’s installed fonts.\n- **Device information:** separate product, Gaia, actual engine, platform, model and adapter\n versions. The panel includes support for Tundra and hardware adaptation fields;\n connecting these to the native platform is still pending.\n- **Icons:** loading resumes after an initial zero-width measurement, across desktop,\n Android and Tundra. This fix was previously limited to Android.\n- **Maintenance:** this changelog brings together the three platforms’ progress.\n\n### Desktop · Locally tested\n\n- Tested an icon initially measured at zero width, then made visible.\n- Tested Home / Settings / Home navigation, a transparent bar at the bottom, the gradient\n at the top and permission checks in an isolated profile.\n- Tested the information panel in French and English, without duplicate legacy rows.\n- The engine remains Gecko **156.0.1**; these UI changes do not rebuild Gecko.\n\n### Android · Sources adapted, Java compiled\n\n- The GeckoView / Android bridge implements the same navigation states: an overlay on Home,\n with space reserved for the bar in apps and the browser.\n- Navigation state survives Android activity recreation.\n- Java compilation passed. **No new APK delivered for these changes**;\n visual behaviour still needs testing on Android.\n\n### Tundra / Sargo · Private RAM trials\n\n- Network build v6 is the launcher reference after 13 Gaia and 9 system checks;\n automatic return and unchanged hashes of all six boot partitions verified.\n- Separate Tundra backend reports Pixel 3a, Sargo adaptation and native version,\n without claiming an unimplemented camera or telephony stack.\n- Real battery and charging state with a bilingual Gaia hardware panel.\n The network trial passed 13 Gaia checks, including this panel.\n- Real Wi-Fi tested: scan, connection, IPv4, DNS and HTTPS in Gecko. Added\n `pd-mapper`, disabled uninitialized IPA offload and premature camera probing;\n 9 system checks pass without kernel Oops. Gaia network selection is still\n pending; trial credentials remain in RAM.\n- Service configuration can travel in the small ramdisk, avoiding another 3 GiB\n transfer per boot adjustment. Qualcomm trials use RAM copies of modem NV data.\n\n- A new ext4 system image contains the ARM64 runtime, reference HALs, Phoc, Gecko and Gaia.\n The runtime is no longer loaded from the Droidian working directory, nor the HAL\n from its previous `/var/lib/lxc/android/` location.\n- The second Pixel 3a trial passed **7 Gaia checks and 8 system checks**, with Tundra PID 1,\n its HAL services, compositor and Gaia.\n- A physical display capture confirms home icons, loaded Fira Sans, the circular button\n and gradient. Gecko **156.0.1 ARM64**, with hardware WebRender.\n- Small UI changes travel in the trial ramdisk, avoiding another 3 GiB system transfer\n for each CSS or JavaScript adjustment.\n- Build sources are saved alongside new images and verified by hashes, so qualified\n images remain testable after the checkout changes.\n- The latest trial (`sargo-system-boot-20260925-v5`) passes **10 Gaia checks and 8 system\n checks**, including icons, fonts, pressed Home, bottom-of-page behaviour and app return.\n Physical capture reviewed; local launcher reference updated. No APK published or phone flashed.\n\n**Limitations:** the installed filesystem still carries the system image; writes are lost\nat shutdown; the trial returns to the retained system after ten minutes. No flashing or\nDroidian replacement. A warm compositor restart failed during one trial; cold boot works.\nNetworking, modem, audio, camera and suspend still need integration or qualification.\nThis is not a public installable ROM or a validated daily-use phone." } }, { "id": "2.7-preview.7", "text": { "fr": "## 2.7-preview.7 — APK construit, référence locale\n\n### Commun / PC / Android\n\n- Correction de l’autorisation interne d’ouverture du capteur sur PC et de la\n reprise après la première demande de permission CAMERA sur Android.\n- Messages Photo distincts pour un refus, un capteur absent ou un échec d’ouverture.\n- Version produit commune **2.7-preview.7**, Gaia **2.7.0** ; numéros du moteur séparés.\n- Gecko PC **156.0.1**, GeckoView Android **156.0** : l’écart réel de correctif est\n affiché, sans renommer artificiellement l’un des moteurs.\n\nDétails : [Photo et Galerie](docs/CAMERA-GALERIE.md), [README Android](android/README.md).", "en": "## 2.7-preview.7 — APK built, local reference\n\n### Shared / Desktop / Android\n\n- Fixed internal camera allocation permission on desktop and recovery after the first\n CAMERA permission prompt on Android.\n- Photo distinguishes permission denial, a missing sensor and an opening failure.\n- Shared product version **2.7-preview.7**, Gaia **2.7.0**, with separate engine versions.\n- Desktop Gecko **156.0.1**, Android GeckoView **156.0**: the real patch difference is\n reported rather than relabelling either engine." } }, { "id": "2.7-preview.6", "text": { "fr": "## 2.7-preview.6 — APK construit\n\n### Commun / PC / Android\n\n- Portage de la véritable application Photo Gaia : aperçu et capture JPEG via\n webcam sur PC ou capteur via GeckoView sur Android.\n- Photos enregistrées dans Galerie Gaia ; import de médias par le sélecteur du système.\n- Commandes non prises en charge désactivées : notamment flash et vidéo ; changement\n de caméra selon les capteurs disponibles.", "en": "## 2.7-preview.6 — APK built\n\n### Shared / Desktop / Android\n\n- Ported the original Gaia Camera app: webcam preview and JPEG capture on desktop,\n or capture through GeckoView on Android.\n- Photos saved in Gaia Gallery; media imports use the host system’s file picker.\n- Unsupported controls disabled, including flash and video; camera switching depends\n on available sensors." } }, { "id": "2.7-preview.5", "text": { "fr": "## 2.7-preview.5 — APK construit\n\n### Commun\n\n- Versions centralisées dans `release.json`, séparation produit / Gaia / moteur.\n- Interface des fonctions natives partagée entre PC et Android ; contrôle du contenu\n commun réellement embarqué dans l’APK avant distribution.\n\n### PC\n\n- Intégration des panneaux de réglages Linux disponibles, import de médias et vCard,\n notifications du bureau et capture webcam de test.\n\n### Android\n\n- Même interface Gaia et commandes natives que le PC, adaptées aux capacités Android.\n- Tests de retour au premier plan et de récupération après arrêt du processus de rendu.", "en": "## 2.7-preview.5 — APK built\n\n### Shared\n\n- Centralised versions in `release.json`, separating product, Gaia and engine versions.\n- Shared native integration UI between desktop and Android; packaged common files\n checked inside the APK before distribution.\n\n### Desktop\n\n- Integration with available Linux settings panels, media and vCard imports,\n desktop notifications and a test webcam capture.\n\n### Android\n\n- Same Gaia interface and native commands as desktop, adapted to Android capabilities.\n- Foreground return and recovery after rendering-process termination tested." } }, { "id": "2.7-156.0.2", "text": { "fr": "## 2.7-156.0.2 — APK historique construit (révision 4)\n\nCe nom historique mélangeait révision du produit et version du moteur ; il ne\nsignifie pas que l’APK utilisait Gecko 156.0.2. Le moteur Android était Gecko 156.0.\n\n### Android\n\n- Reprise de l’activité et des sessions pour limiter les écrans blancs au retour dans Vulpes.\n- Accès aux réglages Android, au volume et à la luminosité de la fenêtre.\n- Import de médias et contacts, notifications natives avec permissions.\n- Transfert au composeur, à SMS et à Horloge Android ; aucun envoi silencieux ni\n remplacement des applications système Téléphone/SMS.\n- Capture initialement déléguée à l’application photo Android, avant le portage de Photo Gaia.", "en": "## 2.7-156.0.2 — Historical APK built (revision 4)\n\nThis historical name mixed product revision and engine version; it does not mean\nthat the APK used Gecko 156.0.2. Its Android engine was Gecko 156.0.\n\n### Android\n\n- Activity and session recovery to reduce white screens when returning to Vulpes.\n- Access to Android settings, volume and window brightness.\n- Media and contact imports, native notifications with permissions.\n- Handoff to Android’s dialer, SMS and clock apps; no silent sending or replacement\n of the system Phone and SMS apps.\n- Capture initially delegated to Android’s camera app, before the Gaia Camera port." } }, { "id": "2.7-156.0.1", "text": { "fr": "## 2.7-156.0.1 — APK publié (révision 3)\n\n- Nom **Vulpes OS - Preview** et icône du projet.\n- Correctif du fond d’écran clignotant inclus.\n- Numérotation historique conservée ; ne pas en déduire le patch du moteur Android.\n\n[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-156.0.1)", "en": "## 2.7-156.0.1 — APK published (revision 3)\n\n- **Vulpes OS - Preview** name and project icon.\n- Wallpaper flickering fix included.\n- Historical numbering retained; it does not identify the Android engine’s patch version.\n\n[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-156.0.1)" } }, { "id": "2.7-preview.2", "text": { "fr": "## 2.7-preview.2 — APK publié\n\n- Correction du fond d’écran clignotant dans la Preview Android.\n\n[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.2)", "en": "## 2.7-preview.2 — APK published\n\n- Fixed wallpaper flickering in the Android Preview.\n\n[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.2)" } }, { "id": "2.7-preview.1", "text": { "fr": "## 2.7-preview.1 — APK publié\n\n- Première Preview Android embarquant Gaia et GeckoView.\n- Version archivée ; clignotement du fond d’écran connu.\n\n[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.1)", "en": "## 2.7-preview.1 — APK published\n\n- First Android Preview bundling Gaia and GeckoView.\n- Archived version; known wallpaper flickering issue.\n\n[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.1)" } }, { "id": "history", "text": { "fr": "## Étapes antérieures — rétrospective technique\n\nCes étapes ne correspondent pas à de nouvelles releases publiques datées.\n\n### Gaia / PC\n\n- Constitution de Vulpes à partir de Gaia historique ; identité visuelle, fond\n d’écran, traductions et travail sur les informations système.\n- Portage expérimental Gecko 45 → 52, puis séparation de Gaia, des services et du\n moteur pour l’hôte Gecko récent.\n- Réimplémentation des API nécessaires : réglages, registre d’applications,\n contacts locaux, messages, alarmes, stockage et communications entre applications.\n- Adaptation des composants visuels anciens, des interactions tactiles simulées,\n du navigateur et des applications ; essais d’applications Firefox OS archivées.\n- Outillage de mise à jour Gecko avec vérifications, moteur candidat et retour\n arrière explicite. Il détecte les incompatibilités, sans les réparer automatiquement.\n- Lancement et mise à jour de Gaia sans recompilation complète du moteur.\n\n### Tundra / Sargo\n\n- Inventaire du Pixel 3a, sauvegardes des partitions de boot et tests USB de diagnostic.\n- Tests QEMU, puis Gecko ARM64 dans Droidian et sous un compositeur dédié.\n- Racine distincte, services HAL sélectionnés et PID 1 Tundra ; essais graphiques\n temporaires par Fastboot avec secours SSH et retour automatique.\n- Noyau de référence **4.9-124-google-sargo**, adaptation **Android 9 / API 28**.", "en": "## Earlier milestones — technical retrospective\n\nThese milestones are not newly dated public releases.\n\n### Gaia / Desktop\n\n- Vulpes assembled from historical Gaia: branding, wallpaper, translations and\n work on system information.\n- Experimental Gecko 45 → 52 port, followed by separation of Gaia, services and\n the engine for the current Gecko host.\n- Reimplementation of required APIs: settings, application registry, local contacts,\n messages, alarms, storage and inter-app communication.\n- Adaptation of old UI components, simulated touch, browser and applications;\n testing of archived Firefox OS apps.\n- Gecko update tools with checks, candidate engines and explicit rollback.\n They detect incompatibilities without automatically repairing them.\n- Gaia launch and updates without rebuilding the whole engine.\n\n### Tundra / Sargo\n\n- Pixel 3a inventory, boot partition backups and USB diagnostic trials.\n- QEMU trials, then ARM64 Gecko inside Droidian and under a dedicated compositor.\n- Separate root, selected HAL services and Tundra PID 1; temporary graphical\n Fastboot trials with rescue SSH and automatic return.\n- Reference kernel **4.9-124-google-sargo**, **Android 9 / API 28** adaptation." } } ], "releases": { "android-2.7-preview.14": { "version": "2.7-preview.14", "after": "2.7-156.0.1", "url": "https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.14", "summary": "# 🦊 Vulpes OS — Preview 14\n\n**2.7-156.0.1 → 2.7-preview.14** · 30 septembre / September 2026\n\n🇫🇷 Une seule mise à jour regroupe les évolutions depuis la dernière Preview publiée. Téléchargez l’APK ci-dessous et installez-le par-dessus l’ancienne version. Les APK intermédiaires ne sont pas ajoutés à cette release.\n\n🇬🇧 One update brings together the changes since the last published Preview. Download the APK below and install it over the previous version. Intermediate APKs are not included in this release.\n\n| Composant / Component | Version |\n| --- | --- |\n| Vulpes OS - Preview | **2.7-preview.14** · Android versionCode **14** |\n| Gaia | **2.7.0** |\n| Gecko embarqué dans l’APK / APK engine | **156.0** · GeckoView `156.0.20260921121718` |\n| Gecko PC / Sargo | **156.0.1** |\n\nLe numéro Vulpes est maintenant distinct de celui du moteur. L’ancien nom `2.7-156.0.1` ne prouvait pas que l’APK embarquait Gecko 156.0.1. / Vulpes and engine versions are now separate. The old `2.7-156.0.1` name did not mean that the APK contained Gecko 156.0.1.\n\n## 🇫🇷 Nouveautés cumulées\n\n### Android : une Preview mieux intégrée\n\n- Reprise des sessions après changement d’application, recréation de l’activité et arrêt du processus de rendu ; récupération des écrans blancs et attente du chargement de Gaia avant d’ouvrir une notification.\n- Accès aux paramètres Android, réglage du volume multimédia et luminosité propre à la fenêtre Vulpes. Le Wi-Fi et les autres réglages système Android gardent leur adaptateur Android.\n- Mode Accueil Android optionnel, bouton Accueil rond et gestionnaire des tâches Gaia par appui long. Le catalogue des applications Android reste à compléter.\n- Notifications dans le volet Android : permissions, remplacement par identifiant, fermeture et retour vers l’application concernée.\n- Transfert d’un appel vers le composeur Android, d’un message vers SMS Android et accès aux réveils Android. **La Preview ne remplace pas les applications Téléphone/SMS par défaut et n’envoie pas de SMS en silence.**\n- Import de médias et de contacts avec choix explicite par l’utilisateur ; fichiers copiés dans l’espace Vulpes, sans suppression des originaux Android.\n\n### Les véritables applications et composants Gaia\n\n- **Photo et Galerie** : application Photo Gaia avec aperçu, capture JPEG, enregistrement dans Galerie et changement de capteur selon le matériel. Correction de la première autorisation caméra et des erreurs trompeuses « déjà utilisée » ; flash/vidéo non pris en charge restent désactivés. Le pincement ne zoome plus toute l’interface.\n- **Galerie, Vidéo et Musique** : corrections des vignettes, de l’éditeur d’image, du retour après fermeture, des imports et de la lecture. Texte d’accueil Vidéo contenu dans l’écran.\n- **Calendrier et Horloge** : corrections de la sauvegarde des événements avec rappel, des alarmes d’événements supprimés, des erreurs de notification et des libellés d’accessibilité du calendrier.\n- **SMS et Contacts** : filtres de conversations, migration des identifiants de messages, événements d’envoi et écritures sérialisées ; correction d’un index de contacts absent ou mal formé qui bloquait les recherches et le journal.\n- **Navigateur** : page d’accueil locale intégrée, automatiquement en français pour `fr`/`fr-*`, sinon en anglais ; liens et recherches ouverts dans la session de navigation, mode privé conservé.\n- **Paramètres** : retour des panneaux Gaia et retrait des boutons/interfaces de diagnostic provisoires. Les capacités indisponibles restent identifiables ; les versions Vulpes, Gaia, Gecko, plateforme et adaptation sont affichées séparément.\n\n### Interface, polices et navigation\n\n- Fira Sans historique embarquée et appliquée jusque dans les composants Shadow DOM, sans remplacer les polices d’icônes.\n- Variantes d’icônes raster Gaia jusqu’à 2,25× restaurées dans 1 047 références CSS ; chargement repris lorsque la première mesure d’une icône valait zéro.\n- Écran de verrouillage Gaia, date et batterie dans les composants d’origine ; correction du texte `{{ level }}` et alignement des informations de version.\n- Bouton Accueil qui ne masque plus les commandes des applications et des appels ; fond transparent/dégradé à l’accueil, espace réservé dans les applications, bouton à droite en paysage.\n- Correction des menus déroulants qui coupaient les lettres, des en-têtes Téléphone/Contacts et des icônes du journal d’appels.\n- Splash Vulpes stabilisé, animation d’arrêt Gaia passée de l’orange au bleu, nom localisé Navigateur/Browser et remerciements dans les informations légales.\n- Respect du mode silencieux des notifications Gaia, y compris lors de leur restauration.\n\n### PC et Tundra / Pixel 3a — avancées du projet, distinctes de l’APK\n\n- Base Gaia commune et contrôle automatique de la parité des fichiers réellement empaquetés ; webcam PC avec la même application Photo et imports via les sélecteurs du système.\n- Clavier Gaia natif raccordé : bon pavé numérique pour le destinataire, sélection dans le champ actif, protection contre les réponses obsolètes, taille portrait corrigée à environ 60 pixels CSS par touche sur Pixel. Le clavier de l’APK reste celui d’Android.\n- Interfaces Gaia d’appel entrant/sortant, décrocher/raccrocher, journal persistant, Power/Volume, verrouillage et batterie raccordés au backend natif.\n- Tundra sur Sargo : image système autonome, Gaia/Gecko ARM64 avec WebRender matériel, démarrage depuis le stockage et données conservées. v48 installée après deux essais RAM, relecture de `boot_a` et validation du slot A.\n- Wi-Fi : suppression des rafales de scans qui épuisaient la mémoire, erreurs explicites, connexion HTTPS vérifiée et profils privés persistants avec reconnexion automatique.\n- Caméra native : aperçu NV21 accéléré, transport binaire, environ 23 images/s mesurées dans l’essai documenté, capture et bascule des capteurs ; luminosité manuelle accélérée et commandes écran sérialisées.\n- SMS entrants conservés avant acquittement et dédoublonnés ; notifications dans le volet/verrouillage Gaia ; vibrations matérielles bornées et annulables.\n- Routage écouteur/haut-parleur, micro muet et volume d’appel raccordés. **Le dernier contrôle laisse le modem en recherche : SMS opérateur et audio en conversation ne sont pas qualifiés dans cette passe.**\n\n## 🇬🇧 Cumulative changes\n\n### Android integration\n\n- Restore sessions after app switching, activity recreation and renderer termination; recover blank screens and wait for Gaia before opening a notification target.\n- Android settings access, media volume and per-window brightness; Android Wi-Fi and other system settings keep their Android adapter.\n- Optional Android Home role, round Home button and original Gaia task manager on long press. The Android app catalogue remains incomplete.\n- Native Android notifications with permissions, tag replacement, dismissal and return to the correct application.\n- Hand off calls to the Android dialler, messages to the Android SMS app and alarms to Android. **This Preview is not the default Phone/SMS application and does not silently send messages.**\n- Explicit media/contact selection and private copies inside Vulpes; deleting an imported copy does not delete the Android original.\n\n### Original Gaia applications and interface\n\n- Original **Camera and Gallery**: preview, JPEG capture, Gallery storage and camera switching where supported. Fix first-use permission handling and misleading “camera in use” errors; unsupported flash/video controls remain disabled. Pinching no longer zooms the entire app.\n- **Gallery, Video and Music**: thumbnail, editing, cleanup, import and playback fixes; introductory Video text stays within the screen.\n- **Calendar and Clock**: event/reminder saving, deleted-event alarms, notification errors and calendar accessibility labels corrected.\n- **SMS and Contacts**: conversation filters, message-ID migration, sending events and serialized writes; tolerate missing/malformed legacy contact indexes.\n- **Browser**: bundled local welcome page following Gaia’s language, French for `fr`/`fr-*`, English otherwise; searches and links use the browser session and private mode is retained.\n- **Settings**: restore original Gaia panels, remove temporary diagnostic interfaces, expose unsupported capabilities honestly and separate product, Gaia, engine, platform and adapter information.\n- Bundle historical **Fira Sans**, including Shadow DOM text, while preserving icon fonts. Restore raster density variants up to 2.25× across 1,047 CSS references and recover icons first measured at zero size.\n- Restore Gaia lockscreen, date and battery components; fix battery placeholders, version-row alignment, clipped dropdown text, Phone/Contacts headers and call-log icon density.\n- Home no longer overlaps app/call controls; transparent home background, reserved navigation space inside apps and right-side Home in landscape.\n- Stable Vulpes splash, original shutdown animation recoloured blue, localized Browser name and legal credits. Respect silent notification flags, including restored notifications.\n\n### Desktop and Tundra / Pixel 3a — separate from APK hardware support\n\n- Shared Gaia sources with packaged-content parity checks, original Camera UI for desktop webcams and system file pickers.\n- Native Gaia keyboard bridge: numeric recipient keypad, correct active-field selection, stale-reply protection and portrait key sizing. Android continues to use its system keyboard.\n- Original incoming/outgoing call UI, answer/hangup, persistent call log, Power/Volume, lockscreen and battery connected to the native backend.\n- Self-contained Tundra userspace, ARM64 Gaia/Gecko with hardware WebRender, persistent data and installed boot. v48 passed two RAM boots, image readback and slot-A validation.\n- Wi-Fi scan throttling/coalescing prevents memory exhaustion; actionable errors, tested HTTPS connectivity and private persistent profiles with autoconnect.\n- Faster binary/NV21 camera preview, about 23 fps in the documented trial, capture and sensor switching; faster manual brightness and serialized screen controls.\n- Durable, deduplicated incoming SMS; Gaia tray/lockscreen notifications and bounded, cancellable hardware vibration.\n- Earpiece/speaker routing, microphone mute and call volume connected. **The modem was still searching in the latest check: carrier SMS and two-way conversation audio remain unqualified in this pass.**\n\n## 📦 Installation / Compatibility\n\n- **Android 8.0 / API 26 minimum déclaré / declared minimum** ; cible / target API 37. Tests sur émulateur Android 16 / API 36, sans prétendre valider chaque téléphone ou version Android.\n- APK universel / universal: **ARM64, ARMv7, x86_64**, environ / about **598 MiB**.\n- Même paquet `org.vulpes_os.preview` et même certificat de signature que `2.7-156.0.1`, versionCode 3 → 14. Installation par-dessus prévue pour conserver les données ; les sauvegarder avant une mise à jour expérimentale. / Same package and signing certificate; in-place updates are supported. Back up data before experimental updates.\n- Preview de développement, pas une ROM. Aucun fichier Sargo privé n’est joint. / Development Preview, not a ROM. No private Sargo image is attached.\n- Caméra : flash/vidéo non exposés par l’adaptateur ; fonctions matérielles selon la plateforme. Notifications sans service push permanent ; alarmes Gaia dépendantes du processus, distinctes des alarmes système Android. / Camera flash/video are not exposed; hardware support varies by platform. No permanent push service; Gaia alarms depend on the process and are separate from Android system alarms.\n- Sargo : conversation audio, rotation par capteur, suspension CPU, Bluetooth et fonctions avancées restent à compléter ou qualifier. / Sargo conversation audio, sensor rotation, CPU suspend, Bluetooth and advanced functions remain incomplete or unqualified.\n\n### Validation\n\nSignature APK et parité du contenu vérifiées ; démarrage et saisie SMS sur Android 16 émulé. Tests locaux Photo/Galerie/Calendrier, reprises d’arrière-plan et récupération du rendu documentés dans l’historique. Dernière passe : 18 tests JS + 15 tests Python ciblés, parcours d’appel PC avec modem simulé, deux boots RAM Sargo puis démarrage installé. **Ces contrôles ne prouvent pas une conversation téléphonique réelle.**\n\nAPK signature and shared-content parity verified; startup and SMS composition tested on an Android 16 emulator. Earlier Camera/Gallery/Calendar, background-resume and renderer-recovery tests are documented below. Latest pass: 18 targeted JS tests + 15 Python tests, simulated desktop call workflows, two Sargo RAM boots and an installed boot. **These checks do not validate a real two-way phone conversation.**\n\n### 🔎 Intégrité / Integrity\n\nTéléchargez / Download `SHA256SUMS.txt` avec / alongside the APK:\n\n```sh\nsha256sum -c SHA256SUMS.txt\n```\n\n### Sources et historique / Sources and history\n\nLe dépôt publié contient encore la présentation du projet. Cette release distribue l’APK déjà construit ; son tag ne constitue pas un instantané reproductible des sources complètes. Les archives automatiques du tag sont masquées. Les changelogs FR/EN joints conservent toutes les étapes depuis `2.7-156.0.1`, y compris les limites et résultats propres à chaque étape.\n\nThe public repository still contains the project presentation. This release distributes the existing APK; its tag is not a reproducible snapshot of the full application sources. Automatic tag archives are hidden. The attached FR/EN changelogs preserve every stage since `2.7-156.0.1`, including stage-specific limitations and results." }, "v2.7-preview.15": { "version": "2.7-preview.15", "after": "2.7-preview.14", "summary": "## 🇫🇷 Vulpes OS — Preview 15\n\nPremière publication des **sources communes PC / Android / Tundra**, accompagnée d'un nouvel APK expérimental.\n\n### Télécharger et essayer\n- **Android :** installer `vulpes-os-preview-2.7-preview.15.apk`. Android 8 minimum déclaré, API 37 ciblée ; ARM64, ARMv7 et x86_64. L'APK garde la signature des précédentes Preview.\n- **PC Linux :** cloner le dépôt, puis exécuter `./setup.sh` et `./run.sh`. Le moteur Mozilla épinglé est téléchargé et son empreinte vérifiée.\n- **Sargo :** les sources Tundra sont incluses. **Aucune ROM générique flashable n'est fournie** : notre image privée dépend encore de l'installation et du partitionnement du téléphone de développement.\n\n### Depuis la Preview 14\n- Correction du format des dates des SMS qui laissait les conversations Gaia vides ; conservation des messages et des états d'envoi/échec côté hôte.\n- Libération et remplacement des flux caméra fiabilisés, pour empêcher une ancienne session de fermer le nouveau capteur.\n- Sources Tundra : focus tactile, zoom numérique et capture JPEG du capteur ; aperçu distinct de la photo en pleine résolution. Coupure du vibreur corrigée et arrêt de secours du service.\n- Sources PC, APK et Tundra réunies, scripts de préparation et de compilation inclus, README français et anglais remis à jour. Les profils privés et la documentation de travail ne sont pas publiés.\n\n**Validation :** 42 tests de services, démarrage et navigation sur PC avec Gecko 156.0.1 ; sur émulateur Android 16, capture Photo/Galerie, reprise de caméra, dix retours depuis l’arrière-plan et récupération après arrêt du processus d’affichage. APK compilé depuis `b38dea0` ; le tag ajoute uniquement un correctif des scripts de test PC.\n\n**Versions :** Vulpes `2.7-preview.15` · Gaia `2.7.0` · Gecko PC `156.0.1` · GeckoView Android `156.0`. Les fonctions matérielles diffèrent selon la plateforme : sous Android, appels et SMS sont délégués aux applications Android, pas au modem Tundra.\n\n**Limites connues :** build de développement signé, débogage Gecko accessible via ADB autorisé ; toutes les versions et tous les modèles Android ne sont pas qualifiés. Sur Sargo : aperçu caméra autour de 16 i/s, flash/vidéo, rotation automatique et veille profonde incomplets, audio des appels à qualifier. Le grand dialogue signalé après un envoi SMS reste à identifier. Cette release n'annonce pas la résolution de ces limites.\n\n## 🇬🇧 Vulpes OS — Preview 15\n\nFirst publication of the **shared desktop / Android / Tundra sources**, with a new experimental APK.\n\n### Download and try\n- **Android:** install `vulpes-os-preview-2.7-preview.15.apk`. Declared minimum Android 8, target API 37; ARM64, ARMv7 and x86_64. Signed with the same key as previous Preview builds.\n- **Linux desktop:** clone the repository, then run `./setup.sh` and `./run.sh`. The pinned Mozilla engine is downloaded and its checksum verified.\n- **Sargo:** Tundra sources are included. **No generic flashable ROM is supplied**: our private image still depends on the development phone's installation and storage layout.\n\n### Since Preview 14\n- Fix SMS date formatting that left Gaia conversations empty; retain messages and sent/failed states in the host.\n- Make camera stream release and replacement reliable, so an older session cannot close the new sensor.\n- Tundra sources: touch focus, digital zoom and sensor JPEG capture, separating preview from full-resolution photos. Fix vibration shutdown and add a service stop safeguard.\n- Publish desktop, APK and Tundra sources with setup/build scripts and updated English/French READMEs. Private profiles and internal working documents are excluded.\n\n**Validation:** 42 service tests, desktop startup/navigation on Gecko 156.0.1; Android 16 emulator Photo/Gallery capture, camera resume, ten background/resume cycles and recovery after renderer termination. APK built from `b38dea0`; the tag adds only a desktop test-script fix.\n\n**Versions:** Vulpes `2.7-preview.15` · Gaia `2.7.0` · desktop Gecko `156.0.1` · Android GeckoView `156.0`. Hardware capabilities differ by platform: Android calls and SMS hand off to Android apps, not to the Tundra modem.\n\n**Known limits:** signed development build, Gecko debugging through authorized ADB; not every Android version/device is qualified. On Sargo: approximately 16 fps camera preview, incomplete flash/video, automatic rotation and deep suspend, call audio awaiting qualification. A reported large dialog after SMS sending remains under investigation. This release does not claim those limits are fixed.\n" } } }