b6d68374d3
fix: use localStorage for PKCE verifier — survives cross-site redirects
CI/CD — Build & Deploy / Build & Deploy (push) Failing after 21s
2026-03-24 13:18:56 +01:00
91d1616dd7
feat: PKCE auth + CI/CD deploy
...
CI/CD — Build & Deploy / Build & Deploy (push) Failing after 25s
- Frontend: PKCE flow (oauth.js, api.js centralized, cookie-based AuthContext)
- Backend: token introspection, cookies httpOnly, refresh endpoint
- Replaced localStorage JWT with httpOnly session cookies
- useSaveSync migrated to cookie auth
- cookie-parser added
- Gitea CI workflow (vps-runner pattern)
2026-03-24 13:01:15 +01:00
39f683a31e
feat: système de zones visuelles — fondation layout 3 couches
...
- zones.scss : système data-zone avec biomes (swamp, landing, page)
- Home.jsx migré de .game-cover → zone[data-zone="swamp"]
- Landing.jsx migré → zone[data-zone="landing"]
- Background sorti de home.scss → zones.scss (un seul endroit)
- Prêt pour ajouter des biomes (cave, volcano, ocean) en une ligne
2026-03-20 16:33:47 +01:00
3839a1e6a2
feat: suppression HUD (redondant avec cockpit), compteur stylé, navbar nettoyée
...
- Suppression Hud.jsx + HUDON/HUDOFF.svg (cockpit header fait le même job)
- Retrait toggle HUD de la navbar + props isVisible
- Compteur click-zone : glow vert, plus gros, lisible sur fond sombre
- Tooltip sur le bouton bulles navbar
2026-03-20 16:28:47 +01:00
c673ae0da5
feat: tooltips explicatifs sur le cockpit, générateurs et prestige
...
Chaque stat du header, le titre Générateurs et Prestige ont un tooltip
natif (title) qui explique à quoi sert la valeur — aide le nouveau joueur
sans alourdir l'interface pour les habitués.
2026-03-20 16:24:41 +01:00
2db3c12fc6
fix: particule clic plus visible (plus grosse, glow, durée 1.2s) + label /clic explicite
2026-03-20 16:22:29 +01:00
b475fb8953
fix: particule clic affiche le vrai gain (clickMult × prestigeMult × treeMult)
...
Ajout getClickGain() dans economy.ts — utilisé par la particule de feedback
et le cockpit header "Ponte". Avant : affichait toujours +1.
2026-03-20 16:18:45 +01:00
4ad60c9423
fix: suppression resource-counter navbar — redondant avec cockpit header
2026-03-20 16:16:57 +01:00
de7f6c366e
feat: nouveau background marais — remplace le paysage Noël
...
Image carrée 1024x1024, background-position center 70% pour garder
les nénuphars et l'eau visible en bas (zone du têtard cliquable).
2026-03-20 16:14:08 +01:00
ed0f7b614a
fix: cockpit header — grille 5 colonnes compacte au lieu d'empilement vertical
2026-03-20 16:07:08 +01:00
9065b1c593
feat: cockpit sidebar — design tokens, panels harmonisés, header stats fixe
...
- Design tokens game dans root.scss (--gp-*) — un seul endroit pour thémiser
- game-panels.scss : classes partagées (gp, gp-row, gp-btn, gp-progress, etc.)
- CockpitHeader : dashboard résumé (prod/s, ponte, mult, ADN, génération)
- Tous les panels refactorisés sur le système gp-* (tailles, couleurs, spacing)
- Sidebar structurée en zones : header → progression → générateurs → prestige → évolution
2026-03-20 16:03:59 +01:00
03b41649ee
feat: nouveaux assets design — tadpole pixel art V5, icônes bulles, aura swamp
...
- tadpole.svg : pixel art kawaii 32x32 avec système de slots cosmétiques
(slot-hat, slot-eyes, slot-body, slot-tail, slot-accessory)
- SnowOn/SnowOff.svg : icônes bulles (remplace flocons de neige)
- aura-swamp.svg : premier overlay cosmétique (algues, ripple, bulles)
2026-03-20 15:55:37 +01:00
b38bb4b4c7
feat: UX game — stats live, production détaillée, prestige visible, badge achievements
...
- Click-zone : production/s, puissance ponte, multiplicateur toujours visibles
- GeneratorShop : production totale en header, prod individuelle par générateur
- PrestigePanel : toujours affiché (hint "Atteins 1M" si pas encore dispo)
- Badge achievements X/27 dans la sidebar avec lien vers /achievements
- Landing : tadpole sprite animé en accroche visuelle
2026-03-20 15:26:55 +01:00
dece214102
chore: uninstall nodemailer — plus utilisé après suppression password reset
2026-03-20 15:16:17 +01:00
3d69899dbf
fix: backend dead code + bug destroy + nettoyage legacy
...
- Suppression forgottenPassword/resetPassword (dead code, routes jamais câblées)
- Suppression nodemailer (plus utilisé)
- Fix destroy() : getById() → read() (bug — méthode inexistante)
- Ajout getByNickname() dans UserManager (appelé mais manquant)
- README rebrandé Clickerz/Tetardtek
- Commentaire legacy WildCoinContext supprimé
- SPRINT1.md : ref Xmass nettoyée
2026-03-20 15:11:26 +01:00
924e919a65
fix: effet ambiance tildes → bulles (° au lieu de ~)
2026-03-20 14:54:33 +01:00
8c9c4bfdc5
chore: purge assets legacy — 12 SVG/webp, bretzel logo, CardContact dead code
...
- Suppression 11 SVG non référencés (Beer, Bonhome, Bonnet, Canne, Cookie,
Courone, Hand, PainDep, Tasse, bg-homepage, logo bretzel)
- Suppression share-cover.webp non référencé
- Favicon bretzel → tadpole.svg
- Footer : CardContact inliné, suppression composant + scss
- Suppression .gitkeep inutile (pages/ a des fichiers)
2026-03-20 14:42:44 +01:00
0c9170af65
feat: suppression boutique legacy + refonte achievements milestones Clickerz
...
- Suppression route /boutique + Boutique.jsx, BoutiqueCard.jsx, shop.json, scss associés
(le GeneratorShop sidebar fait déjà le job)
- Refonte complète achievements : 27 milestones basés sur le GameState réel
(paliers ressources, générateurs, prestige, évolution, easter eggs humour)
- Suppression ancien système JSON statique + AchievementsCard legacy
- Page achievements : unlocked/locked state-aware, compteur progression
2026-03-20 14:34:48 +01:00
0374602047
chore: rebrand navbar + footer — tadpole logo, retrait Boutique nav, copyright Tetardtek
...
- Logo bretzel → tadpole.svg (navbar + footer)
- Retrait lien Boutique de la navigation (page conservée, masquée)
- Footer : texte Clickerz, GitHub Kevin T seul, © 2026 Tetardtek · Powered by Brain
2026-03-20 14:24:26 +01:00
5323ad056e
chore: suppression artefacts Xmass — portraits PNG, WildCoin, entries formation
...
- Suppression dossier png/ (13 fichiers portraits formation + w-coin + bg-cover legacy)
- Suppression entries Achievements 48-58 (portraits promo Wild Code School)
- Remplacement icône monnaie w-coin.png → tadpole.svg dans boutiquecard
2026-03-20 14:07:59 +01:00
8bb0fa4a8e
chore: suppression artefacts Xmass — SVG SantaClause, WildCoin, Mouffle, Bretzel
...
Plus aucun code ne référence ces assets. Le seul SVG legacy
encore utilisé (SantaClause-bag) a déjà été copié en tadpole.svg.
2026-03-20 14:03:35 +01:00
95dca420a5
feat(sprint1-step6): polish, landing page, responsive, deploy config
...
- Landing.jsx : écran d'accueil "Entrer dans le Marais" sur /
- Home.jsx : jeu sur /jeu, click animation float-up, sidebar responsive
- formatNumber.ts : util partagé k/M/B/T (remplace 4 copies locales)
- home.scss : rewrite classes (game-cover, click-zone, tadpole-sprite, game-sidebar)
- Responsive : sidebar fixe desktop, drawer bottom mobile (<768px)
- navbar : wildCoin → resource-counter, auth-nav stylé, dead code supprimé
- GameSync.tsx : bridge useSaveSync ↔ Zustand (câblé dans App)
- tadpole.svg : asset renommé (SantaClause-bag → tadpole)
- deploy/ : Apache vhost SPA+proxy, deploy.sh, ecosystem.config.cjs PM2
- NavBarData : Jeu → /jeu
- Cleanup : dead imports, commentaires legacy
2026-03-20 13:41:09 +01:00
307feb711f
feat(sprint1-step5): migration Tailwind v4 + Zustand — suppression WildCoinContext
...
- Install tailwindcss @tailwindcss/vite zustand
- useGameStore.ts : Zustand store wrappant economy.ts (tick, click, buy, prestige, buyNode, loadFromServer)
- GameTick.tsx : composant timer 1s
- GeneratorShop.tsx : boutique générateurs Tailwind (remplace Amelioration.jsx)
- EvolutionTree, PrestigePanel, MilestoneBar : rewrite Zustand + Tailwind
- Hud.jsx : rewrite Zustand + Tailwind (suppression Hud.scss)
- BoutiqueCard, Achievements : migrés vers Zustand
- Supprimé : WildCoin/ (4 fichiers), timer/Timer.jsx, useEconomy.ts, Hud.scss
- WildCoinProvider retiré de main.jsx
2026-03-20 13:40:51 +01:00
d215e9a33e
feat(sprint1-step4): SuperOAuth login frontend
...
- AuthContext : fix exports, x-auth-token header, loginWithOAuth(), suppression axios/jwt-decode
- Login.jsx : redirect SuperOAuth Discord avec tenantId=clickerz
- AuthCallback.jsx : extraction token query param, flow OAuth complet
- .env.sample : ajout VITE_SUPEROAUTH_URL
- Mode invité préservé (pas de route guard)
2026-03-20 13:40:33 +01:00
a52746ed0c
feat(sprint1-step3b): backend save system + anti-cheat + données rattrapées
...
- game_saves table + migration 002 (JSON state, anti-cheat metadata)
- saveControllers.js : load/save avec validation delta ressources (750k/s × 1.1)
- GameSaveManager : upsert MySQL ON DUPLICATE KEY UPDATE
- useSaveSync hook : auto-save 30s + keepalive beforeunload + guest fallback
- save-validation.test.ts : 8 tests anti-cheat
- economy.ts : arbre d'évolution 5 nœuds + prestige ADN (rattrapage step 2)
- economy.test.ts : +40 tests (évolution tree, multipliers, start bonus)
- GDD + SPRINT1.md : docs sprint complètes
- Rethème data : shop.json, Achievements.json, Cookie, Legal (rattrapage step 1)
2026-03-20 13:40:16 +01:00
9f0ccda99b
feat(sprint1-step3): PrestigePanel + MilestoneBar + équilibrage générateurs fixes
2026-03-17 07:09:14 +01:00
c69da320cc
feat(sprint1-step2): core economy TS + useEconomy hook (lazy calc) + 13 tests vitest
2026-03-17 06:36:51 +01:00
c414cf2d07
db(T0): schema + migration 001 — super_oauth_id, firstname, lastname
...
tech-lead: overflow granted — gate migration avant Sprint B+C SuperOAuth
2026-03-15 18:11:42 +01:00
e0bd6a2c4b
fix: hardcoded localhost → VITE_BACKEND_URL
2026-03-15 17:43:20 +01:00
be9c28b59d
fix(security): IDOR verifyToken+verifySelf, resetTokenSecret, firstname/lastname add, JWT expiresIn 7d
2026-03-15 17:25:31 +01:00
4e93753250
feat: initial import — ClickerZ formation project (Express + React/Vite)
2026-03-15 14:29:33 +01:00