chore(ideai): état runtime — tickets, mémoire, tâches de fond

État d'exécution accumulé (tickets créés/mis à jour hors #43, notes de
mémoire, tâche de fond) capturé au moment du commit de la feature.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-22 07:37:19 +02:00
parent ac726d075e
commit 98fb05447d
56 changed files with 5499 additions and 135 deletions

View File

@ -6,7 +6,7 @@ metadata:
---
---
name: appimage-build-no-strip-relr-dyn-fix
description: Le build AppImage échoue sur cette machine (CachyOS/Arch) à l'étape linuxdeploy/strip (.relr.dyn) ; correctif = NO_STRIP=true. Explique probablement les "builds qui ne produisent rien".
description: Le build AppImage échoue sur cette machine (CachyOS/Arch) à l'étape linuxdeploy/strip (.relr.dyn) ; correctif = NO_STRIP=true. Séquence de build mise à jour après #74 (beforeBuildCommand = build:bundle).
metadata:
type: reference
---
@ -30,7 +30,7 @@ section ELF moderne `.relr.dyn` (relocations `DT_RELR`, `unknown type [0x13]`) p
libs système GTK/glibc de CachyOS/Arch (rolling). Le plugin `gtk` de linuxdeploy strip ces libs
→ échec → tout le bundling casse.
## Correctif VALIDÉ (2026-07-02)
## Correctif VALIDÉ (2026-07-02, toujours valable 2026-07-17)
Lancer le build avec `NO_STRIP=true` (le binaire release est déjà strippé par cargo) :
```
cd crates/app-tauri
@ -38,15 +38,40 @@ NO_STRIP=true ../../frontend/node_modules/.bin/tauri build --bundles appimage
```
Résultat : `Finished 1 bundle at target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage`.
## Séquence de build complète (rappel, pas de beforeBuildCommand dans tauri.conf.json)
1. `npm --prefix frontend run build` (produit `frontend/dist`).
2. depuis `crates/app-tauri` : `NO_STRIP=true <cli tauri> build --bundles appimage`.
CLI tauri = `frontend/node_modules/.bin/tauri` (@tauri-apps/cli). Config = crates/app-tauri/tauri.conf.json.
## Séquence de build — MISE À JOUR après #74 (2026-07-17)
**Attention : l'ancienne version de cette note disait « pas de beforeBuildCommand dans
tauri.conf.json » et imposait un `npm run build` manuel préalable. C'est FAUX depuis #74.**
`crates/app-tauri/tauri.conf.json` a maintenant :
- `build.beforeBuildCommand: "npm --prefix ../frontend run build:bundle"`
- `bundle.resources: { "../../frontend/dist-web": "web" }`
et `frontend/package.json` définit :
```
"build:bundle": "npm run typecheck && vite build --outDir dist --emptyOutDir && vite build --mode web --outDir dist-web --emptyOutDir"
```
Donc **une seule commande suffit**, le frontend est construit automatiquement (les DEUX bundles) :
```
cd crates/app-tauri
NO_STRIP=true ../../frontend/node_modules/.bin/tauri build --bundles appimage
```
`build:bundle` produit **deux** bundles distincts, et c'est le cœur du fix #74 :
- `frontend/dist` → bundle **desktop**, transport `tauri` (= `build.frontendDist`).
- `frontend/dist-web` → bundle **web**, transport `http` (= packagé en ressource `web/`).
Un seul `dist` ne peut pas servir les deux : le transport est figé **au build** par Vite
(`resolveTransport()` lit `import.meta.env.VITE_TRANSPORT`, constant-folded). C'est ce qui
causait `__TAURI_INTERNALS__ is undefined` dans le navigateur (#74).
Garde-fou : `npm run test:bundle-transport` vérifie que `dist` = tauri et `dist-web` = http.
Le lancer après un build si un doute subsiste sur ce qui est servi au navigateur.
## Implication produit
C'est très probablement la vraie cause des « builds AppImage qui ne produisent rien / attente
sans résultat » signalés par l'utilisateur. À intégrer idéalement dans le flux de build d'IdeA
(passer NO_STRIP quand on cible AppImage sur Arch, ou vendoriser un linuxdeploy récent).
Lien : [[mcp-bridge-and-delegation-runtime-notes]],
[[checkpoint-b2-bootstrap-applied-await-codex-reset-1430]].
Lien : [[mcp-bridge-and-delegation-runtime-notes]] (le binaire qui tourne = AppImage, pas les
sources — rebuild obligatoire pour tester un changement backend live).