diff --git a/.ideai/tickets/212/carnet.md b/.ideai/tickets/212/carnet.md index 17d1fc35..b505cf09 100644 --- a/.ideai/tickets/212/carnet.md +++ b/.ideai/tickets/212/carnet.md @@ -1,8 +1,8 @@ --- issueRef: "#212" -version: 5 +version: 6 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} -updatedAt: 1786786758650 +updatedAt: 1786786870793 --- 2026-08-15 Main triage + implementation + QA. - Symptome confirme par lecture code: frontend web invoque `load_layout`, mais `crates/web-server/src/lib.rs` ne route pas cette commande et tombe sur `UNKNOWN_COMMAND`. diff --git a/.ideai/tickets/212/issue.md b/.ideai/tickets/212/issue.md index 1ae5a867..40700dd3 100644 --- a/.ideai/tickets/212/issue.md +++ b/.ideai/tickets/212/issue.md @@ -2,7 +2,7 @@ id: "1dbe01ec-94f4-404d-9ffb-2ceeceb0557b" number: 212 title: "Web PC: erreur `unknown command: load_layout` a l'ouverture d'un projet" -status: "qa" +status: "closed" priority: "high" sprint: null links: [] @@ -11,7 +11,7 @@ attachments: [] createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdAt: 1786786004974 -updatedAt: 1786786758650 -version: 5 +updatedAt: 1786786870793 +version: 6 --- A l'ouverture d'un projet dans l'interface web desktop/PC, l'application affiche `unknown command: load_layout`. Triage et correctif a produire avec cycle UX/Architect/Git/Dev/QA. \ No newline at end of file diff --git a/.ideai/tickets/213/carnet.md b/.ideai/tickets/213/carnet.md new file mode 100644 index 00000000..2a31a6c1 --- /dev/null +++ b/.ideai/tickets/213/carnet.md @@ -0,0 +1,13 @@ +--- +issueRef: "#213" +version: 3 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786787447568 +--- +2026-08-15 rebuild AppImage. +- Skill `build-appimage` lu et applique. +- Branche/commit au lancement: `develop` @ `b3bf6fd2d64990639cef22fbb2a0e5f35579aabc`. +- Frontend build OK via `npm --prefix frontend run build`. +- Bundle AppImage OK via `CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage` depuis `crates/app-tauri/`. +- Artefact produit: `target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage`. +- Etape restante: tagging Git du commit buildé selon la regle branche->version (`develop` => increment Y). \ No newline at end of file diff --git a/.ideai/tickets/213/issue.md b/.ideai/tickets/213/issue.md new file mode 100644 index 00000000..a8d46eb1 --- /dev/null +++ b/.ideai/tickets/213/issue.md @@ -0,0 +1,17 @@ +--- +id: "f0bfa4e0-8f1d-4269-a7f5-422090d7c79d" +number: 213 +title: "Rebuild AppImage Linux" +status: "closed" +priority: "medium" +sprint: null +links: [] +agentRefs: [] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1786787271504 +updatedAt: 1786787447568 +version: 3 +--- +Reconstruction de l'AppImage IdeA Linux via le workflow valide, puis tagging Git de la version du commit buildé selon la branche courante. \ No newline at end of file diff --git a/.ideai/tickets/214/carnet.md b/.ideai/tickets/214/carnet.md new file mode 100644 index 00000000..fc152b3a --- /dev/null +++ b/.ideai/tickets/214/carnet.md @@ -0,0 +1,29 @@ +--- +issueRef: "#214" +version: 5 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786808846046 +--- +## Triage 2026-08-15 +- Symptôme: sur l'interface web PC, l'accès aux fichiers échoue avec `missing Origin header`. +- Diagnostic convergent UX/Architect: rejet backend `403` sur validation `Origin` appliquée aux routes `/api/*`, y compris des `GET` fichiers browser-safe. +- Branche locale créée par Git: `fix/214-web-origin-header-file-access` depuis `develop`. +- Direction de fix: conserver le contrôle strict `Origin` pour `POST`/`OPTIONS`/WS, mais accepter les `GET` lecture/fichiers sans header `Origin` et ajouter des tests de non-régression. +- UX: si un message utilisateur reste nécessaire, ne pas exposer le texte technique brut `missing Origin header`. + +## Implémentation DevBackend +- Fichier modifié: `crates/web-server/src/lib.rs`. +- Politique livrée: `GET /api/project-files`, `/api/project-files/download-file`, `/api/project-files/download-directory` acceptés sans `Origin`; validation stricte maintenue si `Origin` est présent. +- Non-régression attendue: `POST /api/pair` sans `Origin` toujours refusé, WebSocket sans `Origin` toujours refusé. +- Tests DevBackend: + - `cargo fmt --package web-server` => OK + - `cargo test -p web-server origin_header` => OK (3 tests) + - `cargo test -p web-server authorized_project_file_gets_allow_missing_origin_header` => OK + - `cargo test -p web-server` => KO (`Too many open files`) + - `cargo test -p web-server -- --test-threads=1` => échecs PTY/WebSocket non reliés au correctif Origin selon DevBackend + +## Verdict QA +- QA a ajouté un test négatif complémentaire pour verrouiller qu'une route fichier non-GET sans `Origin` reste refusée. +- Commande validante principale: `cargo test -p web-server origin_header -- --nocapture` => VERT (4/4) +- Rejeu ciblé: `cargo test -p web-server non_get_project_file_route_still_requires_origin_header -- --nocapture` => VERT +- Conclusion: `GET /api/project-files*` sans `Origin` accepté; `POST /api/pair`, WebSocket et route fichier non-GET sans `Origin` refusés. diff --git a/.ideai/tickets/214/issue.md b/.ideai/tickets/214/issue.md new file mode 100644 index 00000000..5c385790 --- /dev/null +++ b/.ideai/tickets/214/issue.md @@ -0,0 +1,17 @@ +--- +id: "05b7dc82-f248-476d-8ae6-c5190b2d9d02" +number: 214 +title: "Bug web PC: accès fichiers échoue avec 'missing Origin header'" +status: "qa" +priority: "high" +sprint: null +links: [] +agentRefs: [] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1786808303548 +updatedAt: 1786808846046 +version: 5 +--- +Sur l'interface web PC, l'accès aux fichiers échoue avec l'erreur 'missing Origin header'. Objectif: identifier la cause, corriger le flux web desktop concerné, puis valider par tests QA réels. \ No newline at end of file diff --git a/.ideai/tickets/counter.json b/.ideai/tickets/counter.json index b6e6765b..9e222dfb 100644 --- a/.ideai/tickets/counter.json +++ b/.ideai/tickets/counter.json @@ -1,3 +1,3 @@ { - "nextNumber": 213 + "nextNumber": 215 } \ No newline at end of file diff --git a/.ideai/tickets/index.json b/.ideai/tickets/index.json index b24667aa..f354e602 100644 --- a/.ideai/tickets/index.json +++ b/.ideai/tickets/index.json @@ -2862,6 +2862,34 @@ "issueRef": "#212", "path": "212", "title": "Web PC: erreur `unknown command: load_layout` a l'ouverture d'un projet", + "status": "closed", + "priority": "high", + "sprint": null, + "assignedAgentIds": [], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786786870793 + }, + { + "issueRef": "#213", + "path": "213", + "title": "Rebuild AppImage Linux", + "status": "closed", + "priority": "medium", + "sprint": null, + "assignedAgentIds": [], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786787447568 + }, + { + "issueRef": "#214", + "path": "214", + "title": "Bug web PC: accès fichiers échoue avec 'missing Origin header'", "status": "qa", "priority": "high", "sprint": null, @@ -2870,7 +2898,7 @@ "kind": "agent", "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, - "updatedAt": 1786786758650 + "updatedAt": 1786808846046 } ] } \ No newline at end of file