From 01b84f9f59667aca85e84b7c83277bf70887c139 Mon Sep 17 00:00:00 2001 From: Hasan TASKIN Date: Mon, 7 Sep 2026 17:18:36 +0200 Subject: [PATCH 01/30] feat(web): add the UI kit foundations, Cascadia Mono and the theme picker --- packages/web/design/ui-kit.html | 3006 +++++++++++++++++ packages/web/index.html | 8 + .../public/fonts/cascadia-mono-latin.woff2 | Bin 0 -> 42312 bytes packages/web/src/components/RepoSettings.vue | 3 + packages/web/src/components/ThemePicker.vue | 61 + packages/web/src/composables/useProjects.ts | 31 +- packages/web/src/i18n.ts | 13 + packages/web/src/main.ts | 4 + packages/web/src/storage.ts | 29 + packages/web/src/styles/base.css | 175 + packages/web/src/styles/kit.css | 1365 ++++++++ packages/web/src/styles/tokens.css | 197 ++ packages/web/src/theme.test.ts | 96 + packages/web/src/theme.ts | 71 + 14 files changed, 5031 insertions(+), 28 deletions(-) create mode 100644 packages/web/design/ui-kit.html create mode 100644 packages/web/public/fonts/cascadia-mono-latin.woff2 create mode 100644 packages/web/src/components/ThemePicker.vue create mode 100644 packages/web/src/storage.ts create mode 100644 packages/web/src/styles/base.css create mode 100644 packages/web/src/styles/kit.css create mode 100644 packages/web/src/styles/tokens.css create mode 100644 packages/web/src/theme.test.ts create mode 100644 packages/web/src/theme.ts diff --git a/packages/web/design/ui-kit.html b/packages/web/design/ui-kit.html new file mode 100644 index 0000000..ccee05d --- /dev/null +++ b/packages/web/design/ui-kit.html @@ -0,0 +1,3006 @@ + + + + + + Codesema UI Kit + + + + + +
+
+ +

Codesema UI Kit

+

+ Un thème, une police, huit couleurs. Chaque composant du workspace est défini ici une + fois, dans tous ses états, puis réutilisé tel quel dans codesema-tools web. +

+
+
+ + + + + + + + + +
+
+ + +
+
+
+ + + +
+
+

Principes

+

+ Cinq règles, pas une de plus. Si un écran les respecte, il ressemble au reste sans + effort. +

+
+
règles
+
+
police
+
+ une seule, monospace, partout. La hiérarchie vient du gras et de la couleur, jamais + d'une deuxième fonte. +
+
grille
+
+ tout est un multiple de 1ch en largeur et d'une ligne + (--row) en hauteur. +
+
couleur
+
+ gris pour le calme, une seule couleur d'accent pour le focus et l'action, quatre + couleurs sémantiques pour l'état. +
+
bordures
+
1px, sans arrondi, sans ombre. La bordure d'une tuile est son état.
+
texte
+
72 caractères max par ligne, interligne 1.6, jamais de blanc pur.
+
+
+ +
+

Couleurs

+

+ Palette Tokyo Night. Les quatre premières font 95 % de l'écran ; l'accent et les + couleurs d'état sont rares, donc visibles. +

+

Fonds & texte

+
+
+ +
+ --bg#1a1b26 · fond +
+
+
+ +
+ --bg-raised#1f2335 · champs, log +
+
+
+ +
+ --bg-hover#292e42 · survol +
+
+
+ +
+ --line#3b4261 · bordures +
+
+
+ +
+ --fg#c0caf5 · texte +
+
+
+ +
+ --fg-dim#8a92bd · secondaire (AA) +
+
+
+ +
+ --fg-muted#565f89 · décoratif seulement +
+
+
+

Accent & état

+
+
+ +
+ --accent#7dcfff · focus, liens, action +
+
+
+ +
+ --info#7aa2f7 · en cours +
+
+
+ +
+ --ok#9ece6a · terminé +
+
+
+ +
+ --warn#e0af68 · en attente +
+
+
+ +
+ --err#f7768e · erreur +
+
+
+ +
+ --alt#bb9af7 · agent custom +
+
+
+
+ +
+

Typographie & espace

+

+ Police : CaskaydiaMono Nerd Font si installée, sinon Cascadia Mono depuis Google + Fonts. Une seule taille de corps ; les titres montent d'un cran, jamais deux. +

+
+
+ h1 · 24px 700 +

Titre de page

+
+
+ h2 · 18px 700 +

Titre de section

+
+
+ h3 · 14px caps +

Sous-titre

+
+
+ body · 14px / 1.6Texte courant, un lien, du code, Ctrl + K, italique, gras. +
+
+ small · 12pxLégende, horodatage, aide contextuelle. +
+
+

+ Espacement : 1ch horizontal, 1 ligne vertical. Padding d'un panneau = 1 ligne × 2ch. Gap + entre tuiles = 1ch. Rien d'autre à mémoriser. +

+
+ +
+

Panneau

+

+ Le titre vit dans la bordure, à droite par défaut. C'est le seul élément décoratif de + tout le kit, et il porte du sens : il nomme le groupe. +

+
+
+ Hardware +
+
PC
+
Inspiron 15 3520
+
cpu
+
i5-1235U
+
mem
+
5.10 GiB / 15.30 GiB (33%)
+
+
+
+ Agents +
+
roster
+
+
claude
+
2 actifs
+
codex
+
inactif
+
custom
+
reviewer
+
+
+
+
+ +
+

Tuile de tâche

+

+ Une tuile = une tâche = un worktree. La couleur de bordure dit l'état, le focus ajoute + un double trait. Aucune icône nécessaire. +

+
+
+
+ 01fix-auth-redirectidle +
+
Aucun agent assigné.
+
⎇ wt/fix-auth
+
+
+
+ 02migrate-bunrunning +
+
claude · lecture package.json › remplace npm scripts…
+
+ ⎇ wt/migrate-bunfocus · 2 +
+
+
+
+ 03add-tile-layoutrunning +
+
codex · écrit src/ui/grid.ts +124 −8
+
⎇ wt/tile-layout4m 12s
+
+
+
+ 04rename-packagewaiting +
+
claude demande : « Garder l'alias nolyra ? »
+
+ ⎇ wt/renamerépondre · Enter +
+
+
+
+ 05lint-cleanupdone +
+
3 fichiers · tests ok · prêt à merger
+
+ ⎇ wt/lintmerge · m +
+
+
+
+ 06upgrade-depserror +
+
+ bun install : conflit de peer dep sur zod@4 +
+
+ ⎇ wt/depsrelancer · r +
+
+
+
+ +
+

Statuts & badges

+

+ Le statut est un point coloré suivi d'un mot. Le badge est un mot dans un cadre fin : il + classe, il ne juge pas. +

+
+ idle + running + waiting + done + error +
+
+ worktree + claude + custom + merged + stale + conflict +
+
+ +
+

Boutons

+

+ Un seul bouton plein par écran. Le raccourci clavier est affiché dans le bouton, pas + dans une infobulle. +

+
+ + + + + +
+
+ +
+

Arbre clé / valeur

+

+ La structure fastfetch : une racine en gras, des branches en caractères de boîte. Sert + aux détails d'une tâche, d'un agent, d'un worktree. +

+
+
migrate-bun
+
tâche #02
+
agent
+
claude · opus
+
worktree
+
.codesema/wt/migrate-bun
+
branche
+
feat/migrate-bun ← main
+
diff
+
+ +312 + −140 · 9 fichiers +
+
durée
+
12m 04s
+
+
+ +
+

Journal

+

+ Sortie brute, jamais reformatée. Horodatage en gris, niveau en couleur, le reste en + texte. +

+
14:30:02 info  worktree créé  .codesema/wt/migrate-bun
+14:30:03 info  agent claude démarré (opus)
+14:31:40 ok    bun install · 412 paquets · 1.8s
+14:33:15 warn  script "postinstall" ignoré (husky → lefthook)
+14:34:01 err   bun test · 2 échecs · src/cli/init.test.ts
+14:34:02 info  agent en attente d'une réponse
+
+ +
+

Champs

+

+ Fond légèrement relevé, bordure qui passe à l'accent au focus. L'erreur est une couleur + de bordure et une ligne de texte, pas une icône. +

+
+
+ kebab-case, devient le nom de branche +
+
+ +
+
+ branche introuvable : « main » (espace final) +
+
+
+ + +
+
+ +
+

Tableau & onglets

+
+ 1Tâches + 2Worktrees + 3Agents +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#tâcheagentétatdiffdurée
01fix-auth-redirectidle
02migrate-bunclauderunning+312 −14012m 04s
03add-tile-layoutcodexrunning+124 −84m 12s
04rename-packageclaudewaiting+18 −182m 50s
05lint-cleanupclaudedone+0 −611m 07s
06upgrade-depscodexerror+2 −20m 38s
+
+
+ +
+

Notifications

+

+ Trait vertical coloré à gauche, clé en gris, message en clair, action à droite. Même + forme pour les trois niveaux. +

+
+ #05lint-cleanup mergé dans mainvoir +
+
+ #04rename-package attend une réponserépondre +
+
+ #06upgrade-deps : bun install a échouérelancer +
+
+ +
+

Workspace assemblé

+

+ Tout ce qui précède, posé ensemble. Barre du haut façon Hyprland : numéros de workspace + à gauche, horloge, état global à droite. +

+
+
+ 123 + Monday 14:34 + 2 + 1 + 1 +
+
+
+
+ 02migrate-bunrunning +
+
+ claude · opus › bun install ok › bun test : 2 échecs › corrige + src/cli/init.test.ts… +
+
⎇ wt/migrate-bun12m 04s
+
+
+
+ 03add-tile-layoutrunning +
+
codex › écrit src/ui/grid.ts › +124 −8
+
⎇ wt/tile-layout4m 12s
+
+
+
+ 04rename-packagewaiting +
+
+ claude demande : « Garder l'alias nolyra dans package.json ? » +
+
+ ⎇ wt/renamerépondre · Enter +
+
+
+
+ 06upgrade-depserror +
+
+ bun install : conflit de peer dep sur zod@4 +
+
+ ⎇ wt/depsrelancer · r +
+
+
+
+

+ Navigation prévue : 19 focus tuile, n nouvelle tâche, + d diff, m merge, Esc retour. +

+
+ +
+

Barre d'app & rail projets

+

+ Traduction de WorkspaceHeader et ProjectsNav. La cloche compte + les tâches qui attendent une réponse, le compteur d'agents ce qui tourne. +

+
+ codesema + + + 2 à répondre + 3 agents + forge hors ligne + + +
+
+
+
projets
+
+ codesema-cli2 · 3 +
+
+
⎇ feat/migrate-bun
+
⎇ fix/auth-redirect
+
!42 rename package
+
+
+ nolyra1 +
+
+ speccov +
+
+
+
+
cellules
+
+ même hauteur, même padding, séparées d'un trait. Un chiffre en clair, le libellé + en gris. +
+
● vert
+
au moins un agent actif sur le projet
+
○ gris
+
projet au repos
+
2 · 3
+
2 attendent une réponse, 3 en cours
+
réglages
+
bouton dans la barre, s'inverse quand le panneau est ouvert
+
+
+
+
+ +
+

File de travail

+

+ Les cartes de WorkQueue, groupées en quatre sections fixes. Le trait gauche + porte le statut, les boutons n'apparaissent que là où une action est possible. +

+
+
⚠ besoin de toi2
+
+ rename-package + « Garder l'alias nolyra dans package.json ? » + codesema-cli⎇ wt/renameclaude · opusattend depuis 4m +
+
+ upgrade-deps + review : 1 critique, 2 majeurs + codesema-cli⎇ wt/depscodex +
+
en cours3
+
+ migrate-bun + + codesema-cli⎇ wt/migrate-bunclaude · opus12m 04s +
+
+ lint-cleanup-2 + file d'attente · position 2nolyra +
+
prêt à expédier1
+
+ lint-cleanup + codesema-cli⎇ wt/lintchecks ✓+0 −61 +
+
▸ terminé14
+
+

Les 9 statuts de tâche

+
+ queueden attente d'un créneau runningagent au travail + ?waiting_for_youquestion posée, humain requis + reviewingreview automatique en cours + review_okprêt à expédier review_kofindings bloquants + shippedpoussé / mergé failederreur, voir la raison + interruptedarrêté par l'utilisateur +
+

+ Même glyphes que execution-status.ts aujourd'hui. Seules les couleurs + changent : elles viennent des tokens. +

+
+ +
+

Conversation

+

+ Le cœur de TaskConversation : en-tête avec actions, trois onglets, fil de + messages, groupe d'outils repliable, question avec réponses rapides, bulle en cours + d'écriture, composeur. +

+
+
+ rename-package + 📌 + + codesema-cli⎇ feat/rename🛡 conteneurattend une réponsetravail 6m 12s · attente 4m 03s +
+
+ ConversationDiff 3Checks ✓ +
+
+
+ toiRenomme le paquet nolyra → codesema partout, garde l'historique git propre. +
+
+ agentJe commence par lister les occurrences, puis je renomme en un seul commit. +
+
+ + outils — 4 appels · rg, 2 × edit, bun + test + +
+ rg nolyra --files-with-matches0.1s +
+
+ 7 fichiers +
+
+ edit package.json +
+
+ edit README.md +
+
+ bun test4.2s +
+
+ 42 pass, 0 fail +
+
+
+ + l'agent travaille… — lecture de + src/cli/init.ts + +
+ read src/cli/init.ts +
+
+
+ Le champ bin.nolyra est utilisé par 3 scripts externes. Garder + l'alias ? +
+ +
+
+
+ agentEn attendant, je prépare le changelog : « Renommage nolyra → codesema, alias + conservé jusqu'à la +
+
+ review · lecture du diff · 3 fichiers0m 41s +
+
+
+ réponse en attente : « garde l'alias » sera envoyée quand l'agent aura fini +
+
+ + + mode question : la réponse débloque l'agent. En mode file, elle part après le tour + en cours. Tâche terminée = composeur remplacé par « reprendre ». +
+
+
+ +
+

Nouvelle tâche & plan

+

+ TaskComposer : prompt, agent, expédition automatique, et le panneau de plan + qui dit exactement ce qui va être créé avant de lancer. +

+
+
+ +
+ + + +
+
+
+

plan

+
+
mode
+
fork depuis main
+
branche
+
feat/migrate-bun (certaine)
+
worktree
+
.codesema/wt/migrate-bun
+
isolation
+
politique · conteneur indisponible
+
agent
+
claude · opus
+
file
+
position 1, démarre tout de suite
+
issue
+
aucune
+
+
+
+
+ +
+

Diff & notes de review

+

+ DiffView : en-tête par fichier, gouttières, trous repliés, notes ancrées + sur une ligne. Le trait gauche de la note porte le kind, le mot porte la + sévérité. +

+
+
+ 3 fichiers · +20 + −6 · 2 notes + +
+
+ src/cli/init.ts✦ 2+18 −4 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
41 lignes
4242export async function init(opts: InitOptions) {
43 + - const pkg = JSON.parse(readFileSync('package.json', 'utf8')); +
43+ const pkg = await readPackage(opts.cwd);
44+ if (!pkg.name) throw new Error('package.json sans name');
+
+
+ securitymajorChemin non validé avant lectureA + B +
+

+ opts.cwd vient de l'utilisateur : un ../ sort du + dépôt. +

+
+const cwd = path.resolve(root, opts.cwd);
+if (!cwd.startsWith(root)) throw new Error('cwd hors du dépôt');
+
+ +
+
+
4445const bin = pkg.bin ?? {};
+
+
+ praiseinfoLecture asynchrone, bon réflexeA +
+
+
4546for (const [name, target] of Object.entries(bin)) {
12 lignes
+
+
+ package.json+2 −2 +
+
+ README.md+0 −0 +
+
+

Sévérité · kind

+
+ criticalmajorminorinfo +
+
+
+ securityfaille, donnée non validée +
+
+ perfcoût inutile +
+
+ conventionstyle, nommage +
+
+ designstructure, découpage +
+
+ praiseà garder tel quel +
+
+ whyquestion sur l'intention +
+
+
+ +
+

Checks

+

+ Onglet Checks : un badge global, un vérificateur par ligne, la sortie repliée. « Jamais + lancé » n'est pas « passé ». +

+
+ checks ✕head 3f2a9c1 · il y a 2 min · source lefthook +
+
+
+ bun run typecheckexit 03.1s +
+
+ bun run lintexit 01.4s +
+
+ bun testexit 14.2s +
+ sortie (12 dernières lignes) +
 src/cli/init.test.ts > refuse un cwd hors dépôt
+  Expected: throw
+  Received: undefined
+42 pass · 1 fail
+
+
+
+ bun run e2etimeout120s +
+
+ bun run buildignoré +
+
+
+ Checks jamais lancésaucune commande configurée · + laisser l'agent proposer une configuration +
+
+ +
+

Verdict & parcours de review

+

+ ReviewShell, StepRail, StepList : un feu + tricolore, une suite d'étapes, une carte par étape avec son risque. +

+
+ à vérifier4 findings · 1 major · + 2 minor · + 1 info·+312 −140 +
+
+ goà vérifierstop +
+
+ MR + 1 lecture + 2 init.ts + 3 scripts + 4 tests + merge +
+
+ 02Lecture asynchrone du package.jsonrisque moyenRemplace le readFileSync par un helper. Touche 2 fichiers, 1 finding. +
+
+ 03Réécriture des scripts npm → bunrisque élevéLe script postinstall disparaît. 4 fichiers, 2 findings. +
+
+ +
+

États système

+

+ Vide, dégradé, confirmation par armement. La règle du code actuel reste : un manque est + nommé, jamais caché. +

+
+ Aucune tâche dans ce projetn pour en créer une, ou glisse une issue + depuis le rail. +
+
+ connexion perdue · nouvelle tentative dans 3s +
+
+ forge injoignable : GITLAB_TOKEN absent. Les MR ne sont pas listées. +
+
+ → second clic →pas de modale, le bouton change de libellé +
+
+ coût inconnu :jamais « 0 $ »·coût borne basse :≥ 0.42 $ +
+
+
+
+ + + + diff --git a/packages/web/index.html b/packages/web/index.html index 8821d8e..3cdfe75 100644 --- a/packages/web/index.html +++ b/packages/web/index.html @@ -4,6 +4,14 @@ codesema +
diff --git a/packages/web/public/fonts/cascadia-mono-latin.woff2 b/packages/web/public/fonts/cascadia-mono-latin.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ab487c52d72380318062e809e8319e137b0b85e3 GIT binary patch literal 42312 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 E0GPJ~A^-pY literal 0 HcmV?d00001 diff --git a/packages/web/src/components/RepoSettings.vue b/packages/web/src/components/RepoSettings.vue index cbfbec0..341e7dd 100644 --- a/packages/web/src/components/RepoSettings.vue +++ b/packages/web/src/components/RepoSettings.vue @@ -8,6 +8,7 @@ import { type RunnerSettings, } from '../composables/useSettings' import type { AgentOption } from '../types' +import ThemePicker from './ThemePicker.vue' type RepoConfigSnapshot = { rulesContent: string @@ -328,6 +329,8 @@ onMounted(load)

{{ $t('settings.title') }}

+ +