Releases: krovomi/WorkPilot-AI
Releases · krovomi/WorkPilot-AI
Release list
v1.2.1
La 1.2.0 annonçait six plateformes et n'en livrait que cinq. Cette version
existe d'abord pour livrer la sixième, et pour que le cas ne puisse pas se
reproduire silencieusement.
🐛 Corrections
- La build macOS Intel manquait purement et simplement.
package:maccodait
--arm64en dur, alors que les quatre appels du dépôt passent déjà une
architecture explicite : le job « Intel » lançait
electron-builder --mac --arm64 --x64et packageait de l'arm64 sur un runner
macos-15-intel. Les deux jobs macOS produisaient le même binaire. Les
utilisateurs de Mac Intel n'avaient rien à télécharger, et le lien du README
renvoyait un 404. - Le README annonçait des plateformes non construites. Le tableau de
téléchargement était un modèle figé de six lignes dans lequel on substituait
le numéro de version — jamais régénéré, donc une ligne périmée survivait de
release en release. Il est désormais construit depuis les assets réellement
attachés à la release : une plateforme absente est omise et signalée en
::warning::, et une release sans aucun asset rend une phrase plutôt que six
liens morts. - Le wiki ne se rafraîchissait jamais.
wiki-narrative.ymlécoute
release: published, mais un événement émis parGITHUB_TOKENne déclenche
aucun workflow — la même règle qui empêchait déjà un tag de lancer sa release.
create-releasele dispatche maintenant explicitement. - Un push wiki refusé faute de token rend un message actionnable au lieu d'une
traceback, et n'échoue le job que si le sync était réellement configuré.
🔒 Sécurité
py/stack-trace-exposuresur le test de webhook (alerte 74), restée
ouverte après une première correction incomplète. La réponse ne dérive plus
d'une exception : chaque motif de rejet est lu dans une table de littéraux,
sur le modèle deworkflows/api.py. L'appelant y gagne au passage un
diagnostic précis — URL vide, schéma refusé, hôte irrésolvable, plage privée —
là où tout était aplati en « Invalid input ».
🛠️ Coûts et dépendances
- Le rafraîchissement narratif du wiki ne se repaie plus lui-même. Une
empreinte des documents sources garde la passe : une release qui ne touche ni
README.md, nidocs/CLAUDE.md, nidocs/CLI-USAGE.mdne régénère plus une
prose identique. Le modèle passe declaude-sonnet-4-6àclaude-sonnet-5,
plus récent et moins cher. Sur dix releases dont deux touchent la
documentation, le coût passe d'environ 10,60 $ à 1,41 $. - Dix montées de dépendances (claude-agent-sdk, alembic, h2, aiosqlite, psutil,
vitest, autoprefixer, xstate, lucide-react, @uiw/codemirror-theme-vscode).
Full Changelog: https://github.com/krovomi/WorkPilot-AI/blob/main/CHANGELOG.md
VirusTotal scan results will be added automatically after release.
v1.2.0
Le moteur de workflow décide désormais réellement ce qui tourne, les skills
deviennent un standard partagé entre harnesses, et la surface HTTP du backend
cesse de renvoyer ses exceptions à l'appelant.
✨ Workflows déclaratifs
- Le moteur exécute les phases qu'il déclare, au lieu de seulement les élaguer —
workflows/<nom>/workflow.yamlrésout un build contre le niveau d'effort choisi, les capacités du provider et les fichiers touchés. Activé par défaut (WORKPILOT_WORKFLOW_ENGINE=0pour revenir au pipeline précédent). - Le profil résolu est visible avant le build, dans le modal de tâche (
WorkflowProfileCard) : les phases élaguées apparaissent à leur position déclarée avec leur motif, et un décompte par niveau répond à « qu'est-ce qu'un cran de plus m'apporterait ». - Une phase demandant
subagent-per-taskchez un provider sans sous-agents dégrade explicitement en séquentiel avec reset de contexte, et la dégradation est lue à l'exécution plutôt que supposée. - Un
hard_gaten'est jamais élagué par l'effort ; une phase déterministe non plus, puisqu'elle ne coûte aucun appel API.
✨ Skills, sous-agents et boucle d'apprentissage
- Skills au standard Agent Skills —
.agents/skills/<nom>/SKILL.mdest la source lue en production, quel que soit le LLM ; les miroirs par harness sont générés, etpnpm run skills:checkéchoue sur toute dérive. - Une seule lecture de frontmatter (
skills_registry.frontmatter) : le dépôt en portait quatre, dont trois tronquaient toute description finissant par une phrase entre guillemets. - Registre unique de sous-agents (
agents/subagents/) : défauts de phase, overlays langage et spécialistes de PR. mem-search— récupération progressive en trois paliers sur les traces de build et les patterns : l'index tient dans ~100 tokens et ne lit jamais le corps d'un enregistrement pour le lister.- hermes-agent est supporté sans rien dupliquer : il lit le même
.agents/skills/, et les skills qu'il rédige arrivent comme candidats sousskills/_proposed/— jamais adoptés automatiquement, faute de signal de vérification externe.
🔒 Sécurité
- Les 141 alertes de code scanning traitées. 132 étaient deux erreurs répétées une fois par module d'API, désormais corrigées à la source dans
core/api_safety.py:safe_errormappe une exception vers une chaîne fixe par type,validated_dirnormalise et confine un chemin fourni par l'appelant. return {"success": False, "error": str(e)}renvoyait à l'appelant des chemins résolus, des erreurs de driver et parfois des secrets — 99 sites corrigés.- Le middleware d'auth du mode serveur ne distingue plus token expiré, malformé ou mal signé pour un appelant non authentifié.
- Parsing XML durci (
defusedxml) :coverage.xmlet le XML JUnit sont lus dans le dépôt en cours de build, donc contrôlés par un tiers. - Fuite de secret en clair dans un log, ReDoS polynomial sur le parseur de licences, et sanitisation d'URL incomplète : corrigés.
- Toutes les alertes Dependabot ouvertes closes (esbuild
GHSA-g7r4-m6w7-qqqr, @babel/coreGHSA-4x5r-pxfx-6jf8). - Mode serveur fail-closed, endpoints de credentials verrouillés, IDOR d'annulation de run et révocation de session corrigés, Electron patché, interpolation shell supprimée.
🐛 Corrections
GET /api/workflow-profile/répondait à personne : un autofix CodeQL avait confinéproject_dirau dépôt WorkPilot, alors que WorkPilot construit les projets des autres. Dix tests rouges et un panneau de tâche vide.- Les libellés du menu latéral portaient des emoji qui ne s'affichaient pas.
bump-version.jsréécrivait les manifestes entiers en espaces alors que le dépôt indente en tabulations — une montée de version de deux lignes produisait un diff de 530 lignes.- Assistant de configuration : projet introuvable et avance automatique.
- BOMs UTF-8 et un fichier UTF-16 nettoyés ; hooks husky réparés ;
aiohttpdéclaré.
🛠️ Qualité
- CodeQL ne scanne plus C# : les 3 seuls fichiers
.csdu dépôt sont des extraits de documentation livrés par un skill, sans projet ni restore — l'analyse stagnait à 22 % d'appels résolus et la configuration restait en warning permanent. - Les templates Angular qu'un formateur avait rendus incompilables sont restaurés et sortis de l'extension
.ts, qu'ils n'auraient jamais dû porter. - Actions tierces épinglées sur des SHA de commit ; Dependabot npm repointé sur la racine du workspace, où vit réellement le lockfile pnpm.
Full Changelog: https://github.com/krovomi/WorkPilot-AI/blob/main/CHANGELOG.md
VirusTotal scan results will be added automatically after release.
v1.1.0
Full Changelog: https://github.com/krovomi/WorkPilot-AI/commits/v1.1.0