• 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

    bruno released this 2026-10-02 12:08:18 -04:00 | 64 commits to main since this release

    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)

    Downloads