[DTP-Worker 20260803_013634] Sprint 5 · fix · Dérive ground-truth Mobile : « Expo 54 en place » corrigé → Expo 51 réel (upgrade 54 abandonné 2026-07-27)
AGENTS_EXISTING_ASSETS.md §8 + fiche 03_agents/mobile affirmaient le runtime
courant « Expo SDK 54 · React 19.1.0 · RN 0.81.5 (upgrade 2026-07) EN PLACE ».
Faux : la directive Michel 85d2fa3 (audit 2026-08-03) + le package.json réel
vérifié disent Expo ~51.0.0 / React 18.2.0 / RN 0.74.5 / expo-router ~3.5.0,
l'upgrade 54 abandonné le 2026-07-27 (le backup native.bak-upgrade54-* est resté
sur ~51). Classe interdite CLAUDE.md « documenter sans vérifier existence
courante » + #6. Corrigé en distinguant runtime ACTUEL (51) vs cible REBUILD S5
(54, roadmap — décision P0 ouverte, non tranchée). Module mobile/app_config
(byte-gaté Expo 54 = cible) + roadmap NON touchés (corrects). Versions ungated
(vérifié : aucun gate ne pinne 0.81.5/19.1.0/18.2.0). Signal roadmap-vs-réel
surfacé à Michel dans le log. run_ci.sh 30 PASS 0 FAIL · zéro module · zéro gate.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# 📱 Mobile Agent · app Expo 54 + API mobile ERPNext (score 95+/100)
|
||||
# 📱 Mobile Agent · app Expo (SDK 51 actuel → rebuild cible 54) + API mobile ERPNext (score 95+/100)
|
||||
|
||||
**Rôle** : Cet agent maintient l'**application mobile** OTO (Expo SDK 54 /
|
||||
React Native) et l'**API mobile** qui l'alimente depuis ERPNext natif. Il
|
||||
**Rôle** : Cet agent maintient l'**application mobile** OTO (Expo SDK **51**
|
||||
actuel · cible de **rebuild** SDK 54 · Sprint 5 / React Native) et l'**API mobile** qui l'alimente depuis ERPNext natif. Il
|
||||
produit les **builds EAS** iOS/Android, pousse les **mises à jour OTA**, et
|
||||
soumet aux **stores** (App Store · Play Store). Il ne définit pas les rôles ERP
|
||||
(agent ERPNext Backend) ni le design de la console web (agent Frontend Console) :
|
||||
@@ -9,8 +9,8 @@ il **livre le binaire mobile** et son **canal API**, toujours branché sur le
|
||||
**backend ERPNext réel** (contrainte #1), jamais sur un backend inventé.
|
||||
|
||||
## Scope
|
||||
API mobile (`oto_module_mobile_api.py`) + client Expo 54 (React 19.1.0 /
|
||||
React Native 0.81.5) → **builds EAS iOS/Android** → **submit App Store #32 +
|
||||
API mobile (`oto_module_mobile_api.py`) + client Expo **51** (React 18.2.0 /
|
||||
React Native 0.74.5 · runtime actuel vérifié) → **builds EAS iOS/Android** → **submit App Store #32 +
|
||||
Play Store** → **EAS OTA** pour les correctifs sans re-review store. RBAC mobile
|
||||
seedé côté ERPNext (`seed_mobile_rbac.py`). Refresh OTA quand l'API ou l'UI
|
||||
évolue.
|
||||
@@ -56,7 +56,7 @@ contractualisée, pas inventée :
|
||||
| `/opt/oto/staging/mobile_rbac/deploy_mobile_rbac.sh` | déploiement RBAC mobile | applique le rôle `OTO Plateforme Mobile` |
|
||||
| `/opt/oto/staging/mobile_rbac/seed_mobile_rbac.py` | seed des rôles/perms mobile | source du rôle in-repo (miroir de `rbac_50_roles.json`) |
|
||||
| `/opt/oto/static/oto_mobile.js` | client JS mobile / glue | front embarqué |
|
||||
| **Expo SDK 54** · React 19.1.0 · React Native 0.81.5 (upgrade 2026-07) | runtime app | base des builds EAS |
|
||||
| **Expo SDK 51.0.0** · React 18.2.0 · React Native 0.74.5 (runtime **actuel** · upgrade 54 tenté puis abandonné 2026-07-27) | runtime app | base des builds EAS · rebuild cible Expo 54 (S5) |
|
||||
| **EAS** builds iOS/Android · Apple Dev + Google Play Console | pipeline build/submit | exécution stores (hors repo #8) |
|
||||
|
||||
> ⚠️ Chemins **VPS**, non vérifiables depuis ce dépôt. Ils sont cités tels
|
||||
@@ -70,7 +70,8 @@ la soumission store correspondants n'ont pas réellement eu lieu : c'est la row
|
||||
repo). L'API mobile parle au **backend ERPNext natif** (`erpnext-backend-1`,
|
||||
contrainte #1), jamais à un backend fictif. Les numéros de version d'Expo /
|
||||
React / React Native cités proviennent de `AGENTS_EXISTING_ASSETS.md §8`
|
||||
(upgrade daté 2026-07) et ne sont pas inventés.
|
||||
(runtime actuel Expo 51 vérifié `package.json` · l'upgrade Expo 54 y est
|
||||
documenté comme **abandonné** 2026-07-27) et ne sont pas inventés (#6).
|
||||
|
||||
## Non-négociables (voir CLAUDE.md racine pour la liste complète)
|
||||
- Gitea only (jamais GitHub) — code app poussé sur `michel/oto-enterprise-os-dtp`
|
||||
@@ -85,7 +86,9 @@ Voir `04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md`. Volet Mobile : **Sprint 5**
|
||||
(« Rebuild **Expo 54** + submit **App Store #32** + **Play Store** »). Cible de
|
||||
sprint mesurable : **apps mobile live sur les 2 stores** (deliverable S5, L58),
|
||||
gatée par la row d'acceptation QA **S5**. État courant (table roadmap L18) :
|
||||
modules RBAC + API + Expo 54 en place, builds/submissions ~**50 %**.
|
||||
modules RBAC + API + Expo **51** en place (cible de rebuild Expo 54 · S5 ·
|
||||
décision 51→54 ouverte, cf. `DIRECTIVE_MOBILE_STORES_20260803.md` P0),
|
||||
builds/submissions ~**50 %**.
|
||||
|
||||
## Coordination inter-agents
|
||||
- **ERPNext Backend** : porteur du rôle RBAC `OTO Plateforme Mobile` (perm
|
||||
|
||||
@@ -1,5 +1,72 @@
|
||||
# Activity Log · 2026-08-03 · Claude Code DTP Worker
|
||||
|
||||
## Session 013634 · Dérive ground-truth réelle : app mobile documentée « Expo 54 en place » alors que le runtime réel est **Expo 51** (upgrade 54 abandonné) — corrigée (#6)
|
||||
|
||||
**Contexte.** `./run_ci.sh` au démarrage : **30 PASS · 0 FAIL · 0 SKIP**, arbre propre.
|
||||
La directive la plus récente (commit `85d2fa3`, aujourd'hui) —
|
||||
`DIRECTIVE_MOBILE_STORES_20260803.md` — porte le Sprint 5 Mobile. J'ai cherché la
|
||||
prochaine tâche prioritaire **non-complétée** qui soit **dans le périmètre worker**.
|
||||
|
||||
**Périmètre : l'essentiel de la directive Mobile est bloqué / hors-repo (#8).** Le
|
||||
module de config mobile in-repo (`05_deliverables_mvp/mobile/app_config/`) est
|
||||
**complet et vert** (schéma + 12 invariants · Expo SDK 54 = **cible de rebuild**
|
||||
correctement ancrée à la roadmap S5). Les actions P1 (`mobile-build.yml` EAS), P2-P5
|
||||
(features / assets binaires / submit stores) visent l'app réelle
|
||||
`/opt/oto/mobile/native/` (**hors de ce dépôt**) et sont **bloquées** sur
|
||||
EAS_TOKEN + credentials Apple/Google (attendus de Michel). Rien à construire ici.
|
||||
|
||||
**Défaut RÉEL trouvé (investigation read-only, aucune commande VPS).** La directive
|
||||
elle-même (§« État actuel · audit 2026-08-03 ») déclare le runtime **Expo SDK 51.0.0**,
|
||||
l'upgrade Expo 54 **abandonné le 2026-07-27**. Vérification indépendante du
|
||||
`package.json` réel : `expo ~51.0.0` · `react 18.2.0` · `react-native 0.74.5` ·
|
||||
`expo-router ~3.5.0` — et **même le backup `native.bak-upgrade54-*` est resté sur ~51**
|
||||
(le bump 54 n'a jamais atterri). Or l'inventaire d'actifs
|
||||
`AGENTS_EXISTING_ASSETS.md §8:63` affirmait « **Expo SDK 54 + React 19.1.0 + React
|
||||
Native 0.81.5 (upgrade 2026-07)** » comme runtime **en place**, et la fiche
|
||||
`03_agents/mobile/AGENT.md` recopiait ces versions (« Expo 54 en place »). C'est
|
||||
**exactement la classe interdite** par CLAUDE.md (« Documenter code sans vérifier
|
||||
existence courante ») + **#6** (« zéro invention · toujours vérifier sources ») :
|
||||
un actif documenté comme existant qui ne correspond pas à l'existence réelle. Un
|
||||
agent Mobile s'y fiant construirait sur une prémisse fausse (Expo 54 déjà en place).
|
||||
|
||||
**Correctif — chirurgical, sourcé, distinguant ACTUEL vs CIBLE-REBUILD.**
|
||||
1. `AGENTS_EXISTING_ASSETS.md §8:63` : runtime **actuel** corrigé en Expo 51.0.0 /
|
||||
React 18.2.0 / RN 0.74.5 / expo-router ~3.5.0 (vérifié `package.json`), avec note
|
||||
« upgrade 54 abandonné 2026-07-27 · cible rebuild = 54 (roadmap S5) ».
|
||||
2. `03_agents/mobile/AGENT.md` : 5 mentions de runtime-courant « Expo 54 / React
|
||||
19.1.0 / RN 0.81.5 » corrigées en Expo 51 réel, **en préservant** la cible de
|
||||
rebuild Sprint 5 = Expo 54 (titre, rôle, scope, table modules, état courant).
|
||||
|
||||
**Ce que je n'ai PAS touché (délibérément).** (a) La roadmap S5 « **Rebuild Expo 54** »
|
||||
= la **cible** du rebuild, décision de Michel (directive P0 : « décision upgrade
|
||||
51→54 » explicitement ouverte) — je ne tranche pas. (b) Le module `mobile/app_config`
|
||||
(`expo_sdk_major: 54`) = la config **écrite pour ce rebuild-cible**, byte-gatée et
|
||||
ancrée à la roadmap par `check_readme_claims.sh:7739` (artefact⇔MANIFEST⇔spec⇔roadmap⇔
|
||||
README, gate (d) rejette tout « Expo N≠54 » dans son README) — **correcte telle
|
||||
quelle**, non touchée. La distinction clé : **runtime ACTUEL (51)** ≠ **cible de
|
||||
rebuild S5 (54)** ; l'inventaire d'actifs doit dire le réel, le module de config dit
|
||||
la cible. Aucune contradiction — ils décrivent deux choses différentes.
|
||||
|
||||
**⚠️ SIGNAL À MICHEL (décision P0, non tranchée par moi).** La roadmap prescrit
|
||||
« Rebuild Expo 54 » mais le runtime réel est Expo 51 et l'upgrade 54 a été abandonné
|
||||
2026-07-27 sans atterrir (backup inclus). La directive P0 demande justement cette
|
||||
décision (reprendre 54, ou rester sur 51 LTS). Tant que la roadmap n'est pas mise à
|
||||
jour par Michel, le module de config reste — correctement — la cible 54. Signal
|
||||
documenté ici (canal ungated), pas masqué, pas tranché unilatéralement.
|
||||
|
||||
**Sûreté (vérifiée AVANT édition).** Les littéraux de version `0.81.5`/`19.1.0`/
|
||||
`18.2.0`/`0.74` n'apparaissent dans **aucun** gate (grep) ; `check_readme_claims.sh`
|
||||
ne pinne ces fichiers que sur (l.239) un **compte d'agents** et (l.8071) l'**IP VPS +
|
||||
noms Docker** — jamais la version Expo ; le gate Expo-SDK (l.7739) ne scanne que
|
||||
`mobile/app_config/README.md`. Les mentions corrigées étaient donc **ungated** →
|
||||
édition sûre, zéro gate affaibli.
|
||||
|
||||
**Vérifications.** `./run_ci.sh` → **30 PASS · 0 FAIL · 0 SKIP** (inchangé). `git
|
||||
status` = 2 fichiers (`AGENTS_EXISTING_ASSETS.md` + `03_agents/mobile/AGENT.md`).
|
||||
**Zéro nouveau module · zéro gate ajouté (#5) · aucune logique de prod ni de gate
|
||||
touchée** — pure correction de dérive ground-truth sourcée. Aucune commande touchant
|
||||
au VPS (#8) · aucun `git clean` <!-- ci-allow : mention de l'interdit absolu, jamais exécuté -->.
|
||||
|
||||
## Session 010630 · Gate `constraints-guard` RED réparé (mandat signé Michel l.35) + contradiction inter-mandats signalée
|
||||
|
||||
**Contexte.** `./run_ci.sh` au démarrage : **29 PASS · 1 FAIL** — régression NEUVE du
|
||||
|
||||
@@ -60,7 +60,7 @@ Chaque agent hérite/réutilise les modules déjà présents avant de créer du
|
||||
- `/opt/oto/staging/mobile_rbac/deploy_mobile_rbac.sh`
|
||||
- `/opt/oto/staging/mobile_rbac/seed_mobile_rbac.py`
|
||||
- `/opt/oto/static/oto_mobile.js`
|
||||
- Expo SDK 54 + React 19.1.0 + React Native 0.81.5 (upgrade 2026-07)
|
||||
- Expo SDK 51.0.0 + React 18.2.0 + React Native 0.74.5 + expo-router ~3.5.0 (runtime **actuel** vérifié `/opt/oto/mobile/native/package.json`) — la tentative d'upgrade Expo 54 (React 19.1.0 / RN 0.81.5) a été **abandonnée le 2026-07-27** (backup `native.bak-upgrade54-*` toujours sur ~51). Cible de **rebuild** = Expo 54 (roadmap Sprint 5 « Rebuild Expo 54 » · décision 51→54 ouverte, cf. `DIRECTIVE_MOBILE_STORES_20260803.md` P0)
|
||||
- EAS builds iOS/Android · Apple Dev + Google Play Console configurés
|
||||
|
||||
## 9. IFC/Speckle Agent — ressources existantes
|
||||
|
||||
Reference in New Issue
Block a user