Skip to content

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 08:56
· 132 commits to develop since this release
e765cf4

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.yaml ré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=0 pour 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-task chez 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_gate n'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.md est la source lue en production, quel que soit le LLM ; les miroirs par harness sont générés, et pnpm 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 sous skills/_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_error mappe une exception vers une chaîne fixe par type, validated_dir normalise 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.xml et 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/core GHSA-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_dir au 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.js réé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 ; aiohttp déclaré.

🛠️ Qualité

  • CodeQL ne scanne plus C# : les 3 seuls fichiers .cs du 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.