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
bruno
8d0d69e7b8
fix: A27 lint terminé — eslint 0/0 (285 warnings nettoyés) (v7.25.0)
...
FlowDeck CI / test (push) Failing after 3h9m51s
FlowDeck CI / lint (push) Successful in 1m54s
FlowDeck CI / docker (push) Skipped
3 familles, 13 fichiers (+153/−167) :
1. no-empty ×70 = TOUS des `catch (x) {}` vides → `catch { /* volontaire */ }`
(binding optionnel ES2019 + commentaire : passe no-empty ET
no-unused-vars, zéro changement de comportement).
2. no-unused-vars ×171 :
- bindings de catch inutilisés retirés (e/err/ex/e2/e3)
- 24 lignes mortes déterministes, chaque suppression validée par assert
sur le texte exact (`var self = this` ×8, `var lang`, `var acc`,
`var today`, `var path/restored/files/resolved/items/clickEl`,
`uid()`/`propName()` sans un seul appel, `.then` + `resolved++`
compteurs jamais lus)
- `/* exported */` sur les 10 fonctions appelées depuis les attributs
HTML des templates (vérifiées par grep : 1 template chacune) :
setActiveTab/kanbanBoard/filterSystem/sortSystem/newIssueForm/
showNewIssue, importWizard, libraryPage, workspacesPage, settingsInit
3. no-undef ×44 = vrais globaux déclarés dans eslint.config.mjs
(getSvgIcon = script inline de base.html, TextDecoder = API navigateur,
Prism = CDN) + 2 vrais correctifs :
- settings.js : `typeof toast === 'function'` = guard TOUJOURS faux
(pas de toast global) → les toasts timezone/SAML ne s'affichaient
jamais → `window.showToast` (2 sites)
- local_workspace.js : `_wsInitData = window._wsInitData`
(auto-affectation sans effet, global implicite) supprimé
eslint static/js : **0 erreur / 0 warning** (285 → 0) · node --check vert
sur tous les fichiers · suite **1089/1089** · ruff OK · docs à jour
2026-10-01 21:30:37 -04:00
bruno
ba363eaee9
feat(v5.2.0): finalize Infrastructure & Polish (tests isolation, xdist, lint, CI)
...
FlowDeck CI / lint (push) Successful in 43s
FlowDeck CI / test (push) Successful in 4m2s
FlowDeck CI / lint (pull_request) Successful in 42s
FlowDeck CI / test (pull_request) Successful in 4m3s
FlowDeck CI / docker (push) Successful in 1m2s
FlowDeck CI / docker (pull_request) Successful in 35s
tests/conftest.py: mutate the settings singleton (instead of rebinding) so DB + backup dir are isolated per test -> pytest-xdist safe.
Real backup tests (snapshot/prune/admin API) and OAuth mock tests (Gitea/GitHub/link) replace the previous skips.
init_db() now also creates webhook_subscriptions (full schema without the FastAPI lifespan).
ruff check is clean; .eslintrc.json migrated to eslint.config.mjs (flat config).
CI: lint job (ruff + eslint), parallel tests (-n auto), run on every branch push.
VERSION 5.11.1.
2026-09-11 23:36:53 -04:00