bruno
|
d7d9966edf
|
feat: A20 phase 3 LOT 3a — 5 surfaces CSP vertes + fix bug /import (v7.40.0)
FlowDeck CI / lint (push) Canceled after 0s
FlowDeck CI / test (push) Canceled after 0s
FlowDeck CI / docker (push) Canceled after 0s
Ajout :
- Gate csp_preview « surfaces simples » : /welcome, /trash, /accounts,
/workspace, /import — 0 modification necessaire sur les 4 premieres
(scan statique 0 expression/x-html + registres Alpine.data du lot 1).
8 surfaces couvertes au total.
Fixed (pre-existant, visible sous les DEUX builds) :
- /import : x-text "'🔗 '+report.relations…" evalue avec report=null
(le x-show parent ne masque pas, il initialise quand meme) →
pageerror « Cannot read property ... 'relations' » → garde
report && report.relations.
Reste ph3 documente dans ROADMAP : page_editor (12 sites window.E dans
right_actions), gitea_workspace (new Date), agent_panel (x-text+x-html
markdown), board/table_view/teamload/card_detail (scan propre, gates lies
au contexte Gitea) → bascule reel ensuite.
suite **1093/1093** · ruff OK · eslint 0/0 · E2E **6/6** (4 csp_preview +
2 smoke) · docs a jour
|
2026-10-02 13:49:11 -04:00 |
|
bruno
|
3cab76fed5
|
feat: A20 phase 3 LOT 2 — settings + local workspace verts en CSP preview (v7.39.0)
FlowDeck CI / lint (push) Canceled after 0s
FlowDeck CI / test (push) Canceled after 0s
FlowDeck CI / docker (push) Canceled after 0s
Ajout :
- 2 gates csp_preview de plus : settings (composant lie, overlay visible)
et local workspace (recherche focalisee via Alpine.nextTick, chips
filtre en SVG via bindSvg, 0 erreur) → 3 surfaces vertes sous build
CSP : library, settings, local workspace.
Changed :
- settings : window.history.back()/new Date(...) → methodes
historyBack/fmtLastLogin/fmtAuditDate ; ?. → ternaires.
- local workspace : x-data="_wsInitData" → registre wsInitData() ;
14 x-html → x-init + Alpine.effect (bindSvg/bindFileIcon/bindNodeIcon/
bindChildren/bindPreview) ; $nextTick+$refs arrow → toggleSearch() ;
window.FlowDeck.* → createPageAt/createFolderAt ; ?. → ternaires ;
@contextmenu="_wsInitData.*" → appel de methode.
Piesges resolus (CHANGELOG en details) :
- snapshot ji du build CSP = valeurs globalThis au boot → l'objet mis sur
window avant Alpine est banni (« Accessing global variables ») → objet
porte par une CONST LEXICALE (non propriete globalThis) + factory
Alpine.data → MEME objet partage, reactivite intacte.
- bloc preview hors div racine (structure pre-existante, masquee par le
fallback window standard) → composant wsPreview DELEGUANT vers
_wsInitData via Alpine.reactive (wrapper unique : les magics $nextTick
ne sont redefinissables qu'une fois).
- .env local : RATE_LIMIT_REQUESTS=600 (rafales E2E vs 60/min par IP ;
defaut produit inchange).
suite **1093/1093** · ruff OK · eslint 0/0 · E2E **5/5** (3 csp_preview + 2
smoke) · CSP preview ET standard = 0 erreur sur /local-workspace · docs
a jour
|
2026-10-02 13:24:46 -04:00 |
|
bruno
|
6ff88237fc
|
feat: A20 phase 3 LOT 1 — shell + library migres, harnais csp_preview vert (v7.38.0)
FlowDeck CI / lint (push) Successful in 1m56s
FlowDeck CI / test (push) Successful in 15m32s
FlowDeck CI / docker (push) Successful in 1m51s
Ajout :
- e2e/csp_preview.spec.js — apercu CSP strict SANS deployer : le build
officiel @alpinejs/csp (e2e/fixtures/alpine.csp.js, 0 eval) est servi a
la place de alpine.min.js par interception Playwright ; toute expression
que le parseur maison ne digere pas = pageerror (filet). Premiere
surface VERTE : library (composant lie, icones SVG via Alpine.effect,
recherche ouverte + focalisee, 0 erreur).
Changed :
- 16 composants x-data="fn()" enregistres via Alpine.data (registre =
seule resolution du build CSP, probe « Undefined variable » ;
scripts classiques executes pendant le parsing => alpine:init toujours
joint) : appState, libraryPage, workspacesPage, editorState, board x4,
settings/import/table_view/team_load/trash/workspace/welcome/accounts/
card_detail.
- base.html (shell) migre : x-effect document.* -> syncSidebarClass(),
$nextTick(arrow) -> initSidebarSort(), window.FlowDeck.* ->
fdCreatePage/fdCreateFolder/fdGwRefresh, Object.keys/Math.min/
window.innerWidth dans x-for et :style -> sidebarSections()/
sectionMenuPos() — tout = simple appel de methode.
- x-html restants du shell -> x-init + Alpine.effect : icone agent,
carte projet, library x3 ; recherche library -> toggleSearch()
(Alpine.nextTick) ; openMoveSelected() pour Object.keys en expression.
- eslint : 70 warnings -> 0/0 (globals getCsrf depuis A38 ph1,
/* exported openCardDetail */ + /* global owner, repo */, 3 ;; residuels).
suite **1093/1093** · ruff OK · eslint 0/0 · E2E 3/3 (csp_preview + smoke x2)
· docs a jour (ROADMAP ph3 LOT 1, CHANGELOG, WORKLOAD, VERSION)
|
2026-10-02 12:08:18 -04:00 |
|