auto-sync-2015
This commit is contained in:
88
api/�]�[
Normal file
88
api/�]�[
Normal file
@@ -0,0 +1,88 @@
|
||||
# PLAN ACTION V40 - UX gap V38 fermé avec Option A (modif UI autorisee) - 17 avril 2026 20:14
|
||||
|
||||
## Contexte
|
||||
Yacine autorise Option A (modif wevia-master.html handler phase2_priority ligne 273). Opus exécute + garde-fous max.
|
||||
|
||||
## ETAT AVANT V40
|
||||
- Orchestrator V39 MD5 bd23928b 474L (regex élargi)
|
||||
- wevia-master.html MD5 150ea601 368L (pas de handler phase2_priority)
|
||||
- Wiki HEAD 66351f80 V39
|
||||
- L99 153/153
|
||||
|
||||
## CAUSE RACINE OPERATION NOT PERMITTED
|
||||
Premiere tentative cp echoue RC=1 "Operation not permitted".
|
||||
Investigation: lsattr montre flag "i" (immutable) sur wevia-master.html.
|
||||
Explication: protection doctrine 19 "Zero regression site" deployee chattr +i sur fichiers HTML critiques.
|
||||
Fix: sudo -n chattr -i avant copy, chattr +i apres copy (protection restauree).
|
||||
|
||||
## LIVRABLE V40 UI
|
||||
|
||||
### Handler phase2_priority inséré AVANT llm_synthesis (ligne 273 zone)
|
||||
```javascript
|
||||
if(d.type==="phase2_priority"&&d.ux_guide){
|
||||
hideTyping();
|
||||
const g=d.ux_guide;
|
||||
let txt="**PHASE 2 CF-BYPASS — "+(d.intent||"?").toUpperCase()+"**\n\n";
|
||||
if(g.phase_2_status){...} // Etat actuel
|
||||
if(g.preflight){...} // Pre-flight checks
|
||||
if(g.blockers){...} // Blockers ou aucun
|
||||
if(g.magic_word){...} // Mot magique bien visible
|
||||
if(g.message){...} // Message sidecar
|
||||
if(g.next_steps){...} // Prochaines etapes
|
||||
addMsg(txt,"a",{engine:"WEVIA-Phase2",...});
|
||||
}
|
||||
```
|
||||
|
||||
### Format markdown lisible pour Yacine non-tech
|
||||
- Titre bold avec intent UPPERCASE
|
||||
- Sections Etat / Pre-flight / Blockers / Magic word / Message / Prochaines étapes
|
||||
- Mot magique en backticks pour être copiable
|
||||
- next_steps formaté en bullet list
|
||||
|
||||
### GOLD V40
|
||||
- /var/backups/gold_cf_bypass_v37_20260417_192916/wevia-master.html.before_v40 (MD5 150ea601 368L)
|
||||
|
||||
### Nouvelles MD5
|
||||
- wevia-master.html: 4a1e9d91 369L (+1 ligne, diff +839 bytes)
|
||||
- Immutable: restaure chattr +i
|
||||
|
||||
## TESTS E2E VALIDES
|
||||
|
||||
### 1. Backend emit phase2_priority
|
||||
- curl orchestrator msg=phase+2+status
|
||||
- Event SSE types presents: start, agent, done, executor, exec_result, phase2_priority, UX_GUIDE_V37, llm_synthesis
|
||||
- ux_guide contient phase_2_status + next_steps complets OK
|
||||
|
||||
### 2. Frontend HTTP check
|
||||
- HTTP 200 interne (5890) size 26662 bytes
|
||||
- HTTP 302 public (SSO protection doctrine 72) → normal
|
||||
- phase2_priority grep = 1 dans HTML servi
|
||||
|
||||
### 3. Zero regression
|
||||
- L99 153/153 = 100%
|
||||
- Site principal HTTP 200
|
||||
- Immutable flag remis
|
||||
- Autres pages intactes
|
||||
|
||||
## DOCTRINE COMPLIANCE V40
|
||||
- ✅ Doctrine 19: immutable flag protection respectee (retire+remis)
|
||||
- ✅ Doctrine 60: UX premium (markdown formate pour user non-tech)
|
||||
- ✅ Doctrine 74: tout via wevia-master chat (maintenant UI rendit phase2_priority)
|
||||
- ✅ Doctrine 77: WRITE gated ont leur prompt GUIDE (intact)
|
||||
- ✅ Honnetete: Opus n'a tape AUCUN mot magique WRITE
|
||||
- ✅ Autorisation Yacine obtenue AVANT modif page
|
||||
|
||||
## ROLLBACK V40
|
||||
```
|
||||
sudo -n chattr -i /var/www/html/wevia-master.html
|
||||
sudo -n cp /var/backups/gold_cf_bypass_v37_20260417_192916/wevia-master.html.before_v40 /var/www/html/wevia-master.html
|
||||
sudo -n chattr +i /var/www/html/wevia-master.html
|
||||
```
|
||||
|
||||
## Anti-conflit
|
||||
Autres Claude V41 pas touche wevia-master.html. cron auto-sync-html pas-active sur fichiers immutable.
|
||||
|
||||
## BACKLOG V41+
|
||||
- Yacine tape les 3 mots magiques Phase 2 CF-Bypass
|
||||
- Smoke test business https://track.s95.wevup.app/healthz
|
||||
- Phase 3 cf-router.php unifiant 41 CF accounts
|
||||
88
api/��Y
�[H����]�[[NK��Z�K�S�PP�SӋU�LM�U���Y
Normal file
88
api/��Y
�[H����]�[[NK��Z�K�S�PP�SӋU�LM�U���Y
Normal file
@@ -0,0 +1,88 @@
|
||||
# PLAN ACTION V40 - UX gap V38 fermé avec Option A (modif UI autorisee) - 17 avril 2026 20:14
|
||||
|
||||
## Contexte
|
||||
Yacine autorise Option A (modif wevia-master.html handler phase2_priority ligne 273). Opus exécute + garde-fous max.
|
||||
|
||||
## ETAT AVANT V40
|
||||
- Orchestrator V39 MD5 bd23928b 474L (regex élargi)
|
||||
- wevia-master.html MD5 150ea601 368L (pas de handler phase2_priority)
|
||||
- Wiki HEAD 66351f80 V39
|
||||
- L99 153/153
|
||||
|
||||
## CAUSE RACINE OPERATION NOT PERMITTED
|
||||
Premiere tentative cp echoue RC=1 "Operation not permitted".
|
||||
Investigation: lsattr montre flag "i" (immutable) sur wevia-master.html.
|
||||
Explication: protection doctrine 19 "Zero regression site" deployee chattr +i sur fichiers HTML critiques.
|
||||
Fix: sudo -n chattr -i avant copy, chattr +i apres copy (protection restauree).
|
||||
|
||||
## LIVRABLE V40 UI
|
||||
|
||||
### Handler phase2_priority inséré AVANT llm_synthesis (ligne 273 zone)
|
||||
```javascript
|
||||
if(d.type==="phase2_priority"&&d.ux_guide){
|
||||
hideTyping();
|
||||
const g=d.ux_guide;
|
||||
let txt="**PHASE 2 CF-BYPASS — "+(d.intent||"?").toUpperCase()+"**\n\n";
|
||||
if(g.phase_2_status){...} // Etat actuel
|
||||
if(g.preflight){...} // Pre-flight checks
|
||||
if(g.blockers){...} // Blockers ou aucun
|
||||
if(g.magic_word){...} // Mot magique bien visible
|
||||
if(g.message){...} // Message sidecar
|
||||
if(g.next_steps){...} // Prochaines etapes
|
||||
addMsg(txt,"a",{engine:"WEVIA-Phase2",...});
|
||||
}
|
||||
```
|
||||
|
||||
### Format markdown lisible pour Yacine non-tech
|
||||
- Titre bold avec intent UPPERCASE
|
||||
- Sections Etat / Pre-flight / Blockers / Magic word / Message / Prochaines étapes
|
||||
- Mot magique en backticks pour être copiable
|
||||
- next_steps formaté en bullet list
|
||||
|
||||
### GOLD V40
|
||||
- /var/backups/gold_cf_bypass_v37_20260417_192916/wevia-master.html.before_v40 (MD5 150ea601 368L)
|
||||
|
||||
### Nouvelles MD5
|
||||
- wevia-master.html: 4a1e9d91 369L (+1 ligne, diff +839 bytes)
|
||||
- Immutable: restaure chattr +i
|
||||
|
||||
## TESTS E2E VALIDES
|
||||
|
||||
### 1. Backend emit phase2_priority
|
||||
- curl orchestrator msg=phase+2+status
|
||||
- Event SSE types presents: start, agent, done, executor, exec_result, phase2_priority, UX_GUIDE_V37, llm_synthesis
|
||||
- ux_guide contient phase_2_status + next_steps complets OK
|
||||
|
||||
### 2. Frontend HTTP check
|
||||
- HTTP 200 interne (5890) size 26662 bytes
|
||||
- HTTP 302 public (SSO protection doctrine 72) → normal
|
||||
- phase2_priority grep = 1 dans HTML servi
|
||||
|
||||
### 3. Zero regression
|
||||
- L99 153/153 = 100%
|
||||
- Site principal HTTP 200
|
||||
- Immutable flag remis
|
||||
- Autres pages intactes
|
||||
|
||||
## DOCTRINE COMPLIANCE V40
|
||||
- ✅ Doctrine 19: immutable flag protection respectee (retire+remis)
|
||||
- ✅ Doctrine 60: UX premium (markdown formate pour user non-tech)
|
||||
- ✅ Doctrine 74: tout via wevia-master chat (maintenant UI rendit phase2_priority)
|
||||
- ✅ Doctrine 77: WRITE gated ont leur prompt GUIDE (intact)
|
||||
- ✅ Honnetete: Opus n'a tape AUCUN mot magique WRITE
|
||||
- ✅ Autorisation Yacine obtenue AVANT modif page
|
||||
|
||||
## ROLLBACK V40
|
||||
```
|
||||
sudo -n chattr -i /var/www/html/wevia-master.html
|
||||
sudo -n cp /var/backups/gold_cf_bypass_v37_20260417_192916/wevia-master.html.before_v40 /var/www/html/wevia-master.html
|
||||
sudo -n chattr +i /var/www/html/wevia-master.html
|
||||
```
|
||||
|
||||
## Anti-conflit
|
||||
Autres Claude V41 pas touche wevia-master.html. cron auto-sync-html pas-active sur fichiers immutable.
|
||||
|
||||
## BACKLOG V41+
|
||||
- Yacine tape les 3 mots magiques Phase 2 CF-Bypass
|
||||
- Smoke test business https://track.s95.wevup.app/healthz
|
||||
- Phase 3 cf-router.php unifiant 41 CF accounts
|
||||
88
api/���Y�[���ۈ���Y]N����Y]H����]�[[NK��Z�K�S�PP�SӋU�LM�U���Y
Normal file
88
api/���Y�[���ۈ���Y]N����Y]H����]�[[NK��Z�K�S�PP�SӋU�LM�U���Y
Normal file
@@ -0,0 +1,88 @@
|
||||
# PLAN ACTION V40 - UX gap V38 fermé avec Option A (modif UI autorisee) - 17 avril 2026 20:14
|
||||
|
||||
## Contexte
|
||||
Yacine autorise Option A (modif wevia-master.html handler phase2_priority ligne 273). Opus exécute + garde-fous max.
|
||||
|
||||
## ETAT AVANT V40
|
||||
- Orchestrator V39 MD5 bd23928b 474L (regex élargi)
|
||||
- wevia-master.html MD5 150ea601 368L (pas de handler phase2_priority)
|
||||
- Wiki HEAD 66351f80 V39
|
||||
- L99 153/153
|
||||
|
||||
## CAUSE RACINE OPERATION NOT PERMITTED
|
||||
Premiere tentative cp echoue RC=1 "Operation not permitted".
|
||||
Investigation: lsattr montre flag "i" (immutable) sur wevia-master.html.
|
||||
Explication: protection doctrine 19 "Zero regression site" deployee chattr +i sur fichiers HTML critiques.
|
||||
Fix: sudo -n chattr -i avant copy, chattr +i apres copy (protection restauree).
|
||||
|
||||
## LIVRABLE V40 UI
|
||||
|
||||
### Handler phase2_priority inséré AVANT llm_synthesis (ligne 273 zone)
|
||||
```javascript
|
||||
if(d.type==="phase2_priority"&&d.ux_guide){
|
||||
hideTyping();
|
||||
const g=d.ux_guide;
|
||||
let txt="**PHASE 2 CF-BYPASS — "+(d.intent||"?").toUpperCase()+"**\n\n";
|
||||
if(g.phase_2_status){...} // Etat actuel
|
||||
if(g.preflight){...} // Pre-flight checks
|
||||
if(g.blockers){...} // Blockers ou aucun
|
||||
if(g.magic_word){...} // Mot magique bien visible
|
||||
if(g.message){...} // Message sidecar
|
||||
if(g.next_steps){...} // Prochaines etapes
|
||||
addMsg(txt,"a",{engine:"WEVIA-Phase2",...});
|
||||
}
|
||||
```
|
||||
|
||||
### Format markdown lisible pour Yacine non-tech
|
||||
- Titre bold avec intent UPPERCASE
|
||||
- Sections Etat / Pre-flight / Blockers / Magic word / Message / Prochaines étapes
|
||||
- Mot magique en backticks pour être copiable
|
||||
- next_steps formaté en bullet list
|
||||
|
||||
### GOLD V40
|
||||
- /var/backups/gold_cf_bypass_v37_20260417_192916/wevia-master.html.before_v40 (MD5 150ea601 368L)
|
||||
|
||||
### Nouvelles MD5
|
||||
- wevia-master.html: 4a1e9d91 369L (+1 ligne, diff +839 bytes)
|
||||
- Immutable: restaure chattr +i
|
||||
|
||||
## TESTS E2E VALIDES
|
||||
|
||||
### 1. Backend emit phase2_priority
|
||||
- curl orchestrator msg=phase+2+status
|
||||
- Event SSE types presents: start, agent, done, executor, exec_result, phase2_priority, UX_GUIDE_V37, llm_synthesis
|
||||
- ux_guide contient phase_2_status + next_steps complets OK
|
||||
|
||||
### 2. Frontend HTTP check
|
||||
- HTTP 200 interne (5890) size 26662 bytes
|
||||
- HTTP 302 public (SSO protection doctrine 72) → normal
|
||||
- phase2_priority grep = 1 dans HTML servi
|
||||
|
||||
### 3. Zero regression
|
||||
- L99 153/153 = 100%
|
||||
- Site principal HTTP 200
|
||||
- Immutable flag remis
|
||||
- Autres pages intactes
|
||||
|
||||
## DOCTRINE COMPLIANCE V40
|
||||
- ✅ Doctrine 19: immutable flag protection respectee (retire+remis)
|
||||
- ✅ Doctrine 60: UX premium (markdown formate pour user non-tech)
|
||||
- ✅ Doctrine 74: tout via wevia-master chat (maintenant UI rendit phase2_priority)
|
||||
- ✅ Doctrine 77: WRITE gated ont leur prompt GUIDE (intact)
|
||||
- ✅ Honnetete: Opus n'a tape AUCUN mot magique WRITE
|
||||
- ✅ Autorisation Yacine obtenue AVANT modif page
|
||||
|
||||
## ROLLBACK V40
|
||||
```
|
||||
sudo -n chattr -i /var/www/html/wevia-master.html
|
||||
sudo -n cp /var/backups/gold_cf_bypass_v37_20260417_192916/wevia-master.html.before_v40 /var/www/html/wevia-master.html
|
||||
sudo -n chattr +i /var/www/html/wevia-master.html
|
||||
```
|
||||
|
||||
## Anti-conflit
|
||||
Autres Claude V41 pas touche wevia-master.html. cron auto-sync-html pas-active sur fichiers immutable.
|
||||
|
||||
## BACKLOG V41+
|
||||
- Yacine tape les 3 mots magiques Phase 2 CF-Bypass
|
||||
- Smoke test business https://track.s95.wevup.app/healthz
|
||||
- Phase 3 cf-router.php unifiant 41 CF accounts
|
||||
88
api/����[����]�[[NK��Z�K�S�PP�SӋU�LM�U���Y
Normal file
88
api/����[����]�[[NK��Z�K�S�PP�SӋU�LM�U���Y
Normal file
@@ -0,0 +1,88 @@
|
||||
# PLAN ACTION V40 - UX gap V38 fermé avec Option A (modif UI autorisee) - 17 avril 2026 20:14
|
||||
|
||||
## Contexte
|
||||
Yacine autorise Option A (modif wevia-master.html handler phase2_priority ligne 273). Opus exécute + garde-fous max.
|
||||
|
||||
## ETAT AVANT V40
|
||||
- Orchestrator V39 MD5 bd23928b 474L (regex élargi)
|
||||
- wevia-master.html MD5 150ea601 368L (pas de handler phase2_priority)
|
||||
- Wiki HEAD 66351f80 V39
|
||||
- L99 153/153
|
||||
|
||||
## CAUSE RACINE OPERATION NOT PERMITTED
|
||||
Premiere tentative cp echoue RC=1 "Operation not permitted".
|
||||
Investigation: lsattr montre flag "i" (immutable) sur wevia-master.html.
|
||||
Explication: protection doctrine 19 "Zero regression site" deployee chattr +i sur fichiers HTML critiques.
|
||||
Fix: sudo -n chattr -i avant copy, chattr +i apres copy (protection restauree).
|
||||
|
||||
## LIVRABLE V40 UI
|
||||
|
||||
### Handler phase2_priority inséré AVANT llm_synthesis (ligne 273 zone)
|
||||
```javascript
|
||||
if(d.type==="phase2_priority"&&d.ux_guide){
|
||||
hideTyping();
|
||||
const g=d.ux_guide;
|
||||
let txt="**PHASE 2 CF-BYPASS — "+(d.intent||"?").toUpperCase()+"**\n\n";
|
||||
if(g.phase_2_status){...} // Etat actuel
|
||||
if(g.preflight){...} // Pre-flight checks
|
||||
if(g.blockers){...} // Blockers ou aucun
|
||||
if(g.magic_word){...} // Mot magique bien visible
|
||||
if(g.message){...} // Message sidecar
|
||||
if(g.next_steps){...} // Prochaines etapes
|
||||
addMsg(txt,"a",{engine:"WEVIA-Phase2",...});
|
||||
}
|
||||
```
|
||||
|
||||
### Format markdown lisible pour Yacine non-tech
|
||||
- Titre bold avec intent UPPERCASE
|
||||
- Sections Etat / Pre-flight / Blockers / Magic word / Message / Prochaines étapes
|
||||
- Mot magique en backticks pour être copiable
|
||||
- next_steps formaté en bullet list
|
||||
|
||||
### GOLD V40
|
||||
- /var/backups/gold_cf_bypass_v37_20260417_192916/wevia-master.html.before_v40 (MD5 150ea601 368L)
|
||||
|
||||
### Nouvelles MD5
|
||||
- wevia-master.html: 4a1e9d91 369L (+1 ligne, diff +839 bytes)
|
||||
- Immutable: restaure chattr +i
|
||||
|
||||
## TESTS E2E VALIDES
|
||||
|
||||
### 1. Backend emit phase2_priority
|
||||
- curl orchestrator msg=phase+2+status
|
||||
- Event SSE types presents: start, agent, done, executor, exec_result, phase2_priority, UX_GUIDE_V37, llm_synthesis
|
||||
- ux_guide contient phase_2_status + next_steps complets OK
|
||||
|
||||
### 2. Frontend HTTP check
|
||||
- HTTP 200 interne (5890) size 26662 bytes
|
||||
- HTTP 302 public (SSO protection doctrine 72) → normal
|
||||
- phase2_priority grep = 1 dans HTML servi
|
||||
|
||||
### 3. Zero regression
|
||||
- L99 153/153 = 100%
|
||||
- Site principal HTTP 200
|
||||
- Immutable flag remis
|
||||
- Autres pages intactes
|
||||
|
||||
## DOCTRINE COMPLIANCE V40
|
||||
- ✅ Doctrine 19: immutable flag protection respectee (retire+remis)
|
||||
- ✅ Doctrine 60: UX premium (markdown formate pour user non-tech)
|
||||
- ✅ Doctrine 74: tout via wevia-master chat (maintenant UI rendit phase2_priority)
|
||||
- ✅ Doctrine 77: WRITE gated ont leur prompt GUIDE (intact)
|
||||
- ✅ Honnetete: Opus n'a tape AUCUN mot magique WRITE
|
||||
- ✅ Autorisation Yacine obtenue AVANT modif page
|
||||
|
||||
## ROLLBACK V40
|
||||
```
|
||||
sudo -n chattr -i /var/www/html/wevia-master.html
|
||||
sudo -n cp /var/backups/gold_cf_bypass_v37_20260417_192916/wevia-master.html.before_v40 /var/www/html/wevia-master.html
|
||||
sudo -n chattr +i /var/www/html/wevia-master.html
|
||||
```
|
||||
|
||||
## Anti-conflit
|
||||
Autres Claude V41 pas touche wevia-master.html. cron auto-sync-html pas-active sur fichiers immutable.
|
||||
|
||||
## BACKLOG V41+
|
||||
- Yacine tape les 3 mots magiques Phase 2 CF-Bypass
|
||||
- Smoke test business https://track.s95.wevup.app/healthz
|
||||
- Phase 3 cf-router.php unifiant 41 CF accounts
|
||||
@@ -270,6 +270,7 @@ async function send(){
|
||||
for(const l of lines){if(!l.startsWith("data: "))continue;try{const d=JSON.parse(l.slice(6));
|
||||
if(d.type==="agent"){parts.push("["+(d.id||d.name||"agent")+"] "+(d.result||d.text||d.output||""));hideTyping();addMsg(parts.join("\n"),"a",{engine:"SSE",time:(d.progress||0)+"%"});}
|
||||
if(d.type==="done"){hideTyping();addMsg("ORCHESTRATOR: "+(d.agents||parts.length)+" agents\n"+parts.join("\n"),"a",{engine:"SSE-Orch",time:((Date.now()-t0)/1000).toFixed(1)+"s"});}
|
||||
if(d.type==="phase2_priority"&&d.ux_guide){hideTyping();const g=d.ux_guide;let txt="**PHASE 2 CF-BYPASS — "+(d.intent||"?").toUpperCase()+"**\n\n";if(g.phase_2_status){txt+="**Etat actuel**\n";for(const[k,v]of Object.entries(g.phase_2_status))txt+="- "+k+": "+v+"\n";}if(g.preflight){txt+="\n**Pre-flight**\n";for(const[k,v]of Object.entries(g.preflight))txt+="- "+k+": "+v+"\n";}if(g.blockers&&g.blockers.length){txt+="\n**Blockers**: "+g.blockers.join(", ")+"\n";}else if(g.blockers){txt+="\n**Blockers**: aucun\n";}if(g.magic_word){txt+="\n**Mot magique a taper**: `"+g.magic_word+"`\n";}if(g.message){txt+="\n"+g.message+"\n";}if(g.next_steps&&g.next_steps.length){txt+="\n**Prochaines etapes**\n"+g.next_steps.map(s=>"- "+s).join("\n");}addMsg(txt,"a",{engine:"WEVIA-Phase2",time:((Date.now()-t0)/1000).toFixed(1)+"s"});}
|
||||
if(d.type==="llm_synthesis"&&d.text){hideTyping();addMsg(d.text,"a",{engine:"WEVIA-Synth",time:((Date.now()-t0)/1000).toFixed(1)+"s"});}
|
||||
}catch(e){}}
|
||||
}busy=false;$("sendBtn").disabled=false;stEl.textContent="";return;
|
||||
|
||||
Reference in New Issue
Block a user