Repository navigation
Releases: karned-agency/arclith
Release list
Arclith v0.33.0
What's Changed
- feat: add portable Arclith agent toolkit by @killiankopp in #247
- fix: migrate Arclith public endpoints by @killiankopp in #248
- chore(release): publish Arclith 0.33.0 by @killiankopp in #249
Full Changelog: v0.32.0...v0.33.0
Arclith v0.32.0
Arclith 0.32.0 et arclith-cli 0.29.0 complètent le catalogue de blueprints applicatifs de l’EPIC #221 avec Job, Synchronization et Workflow.
- Job : requête/résultat typés, soumission idempotente, suivi, annulation coopérative et retry borné.
- Synchronization : réconciliation pull full/incremental exécutée comme Job, checkpoints par page, mapping explicite et rapport après échec.
- Workflow : étapes séquentielles, checkpoints atomiques, reprise sans rejouer les étapes confirmées et clé stable pour une étape non confirmée.
- CLI : six blueprints découvrables, cibles standalone/entity selon le blueprint, génération planifiée, dry-run, recettes portables et compatibilité des manifests historiques.
- Documentation : guides et quickstarts actualisés pour les paquets publics ; le workflow de publication utilise les actions GitHub modernisées et épinglées de #229.
Python 3.13+ est requis. La CLI exige arclith>=0.32.0.
uv tool install --upgrade arclith-cli==0.29.0
uv add arclith==0.32.0Les stores et runners mémoire sont non durables. Les effets externes non confirmés nécessitent une idempotence ; aucun transport, store persistant, moteur externe, DAG ou saga n’est installé implicitement.
Validation avant publication : 2 831 tests framework passés, 5 ignorés, couverture 92,28 % ; 859 tests CLI passés ; MkDocs strict ; quatre archives validées par Twine ; six projets frais et 39 tests générés passés depuis les wheels construites. Les scénarios Job concurrent, Synchronization avec page partielle et Workflow avec checkpoint incertain ont également été exercés.
Changelog · Catalogue · Job · Synchronization · Workflow
Vérification publique terminée : les quatre jobs du workflow de publication ont réussi. Les wheels et sdists sont publics sur PyPI Arclith 0.32.0 et PyPI CLI 0.29.0.
Installation Python 3.13 depuis l’index officiel, sans cache ni source locale : versions et dépendances vérifiées, six blueprints générés et 39 tests passés, scénarios métier avec fakes et exemples Python des guides réussis. Les commandes exactes des trois nouveaux guides ont aussi été exécutées dans trois projets avec leurs propres environnements : Job 5 tests, Synchronization 6 tests et Workflow 4 tests. Le bref délai initial de propagation de l’index est résolu.
La PR #246 est fusionnée au commit 75825c66265124bec3fba6fba8eee108dfce698f. Le tag v0.32.0 est signé et sa signature a été vérifiée. La documentation GitHub Pages est publiée ; les cinq workflows de publication et de contrôle du commit final ont réussi.
Arclith v0.31.0
Arclith 0.31.0 — Blueprint state-machine
Deuxième phase de l'epic #221, livrée par #241 / #223 et publiée via #242.
Paquets publiés
- arclith 0.31.0 sur PyPI
- arclith-cli 0.28.0 sur PyPI, avec
arclith>=0.31.0 - Python 3.13 minimum ; wheel et archive source disponibles pour les deux distributions
Nouveautés
- Blueprint CLI
state-machinepiloté par une spec YAML V1 canonique : états, état initial et transitions nommées. - Enum de matrice, champ d'état Pydantic protégé, service de cycle de vie, ports et use cases typés pour chaque verbe métier.
- Port outbound spécialisé avec compare-and-swap explicite, versions observée/attendue et erreurs métier contextualisées.
- Manifeste paramétré V2 avec paramètres, digest du renderer et digest de configuration ; les manifests V1 restent lisibles et rejouables.
- Recettes portables qui stockent la configuration canonique plutôt que le chemin local de la spec, avec détection du drift avant toute écriture.
- Support strict des entités existantes typées par
Literal,StrEnumouEnumà valeurs chaînes, y compris aliases et réexports vérifiables.
Génération sûre
- Planification et validation complètes avant la première écriture.
- Publication atomique sans remplacement pour chaque cible, entité et manifeste.
- Compensation fondée sur l'identité inode/device et le contenu publié, avec quarantaine privée pour préserver toute écriture concurrente.
- Refus fermé des mixins ou helpers non prouvés, des symboles homonymes, des états inaccessibles et des protections Pydantic ambiguës.
Validation
- Framework : 2 488 tests passés, 5 ignorés ; couverture 91,34 %.
- CLI : 730 tests passés ; typage des 99 modules CLI.
- Pre-commit, lint, typage, sécurité, complexité, MkDocs strict, locks et huit checks GitHub verts.
- Les quatre wheels/sdists ont passé
twine checket leurs métadonnées ont été inspectées. - Tag
v0.31.0signé et vérifié, pointant exactement sure3b9202c5b8ac25db523b66e22b952c55459a9f2. - Workflow de publication réussi : quality gate, builds et deux Trusted Publishers PyPI.
- Smoke public sans cache depuis l'index Simple :
arclith-cli 0.28.0, génération d'un serviceInvoice, installation dearclith 0.31.0danssite-packages, compilation et 11 tests domaine/application réussis.
Exemple
version: 1
state_field: status
initial_state: draft
states: [draft, submitted, approved]
transitions:
- name: submit
from: [draft]
to: submitted
- name: approve
from: [submitted]
to: approveduvx --from arclith-cli==0.28.0 --with arclith==0.31.0 \
arclith-cli new Invoice invoice-service \
--profile state-machine \
--spec invoice-lifecycle.yaml
cd invoice-service
uv sync
uv run pytest tests/domain tests/application -qPérimètre
Le blueprint génère un cycle de vie statique explicite ; ce n'est ni un moteur de workflow ni un moteur d'event sourcing. Il n'ajoute aucun transport ou adapter de persistance de production implicite. L'epic #221 reste ouverte et la prochaine phase logique est #224, le blueprint job.
Arclith v0.30.0
Arclith 0.30.0 — Blueprint append-only
Première phase de l'EPIC #221, livrée par #239 et publiée via #240.
Paquets publiés
- arclith 0.30.0 sur PyPI
- arclith-cli 0.27.0 sur PyPI, avec
arclith>=0.30.0 - Python 3.13 minimum. Wheels et archives sources disponibles pour les deux distributions.
Nouveautés
ImmutableRecord, portAppendOnlyStore, résultat expliciteappended/duplicateet erreurs de conflit typées.- Adapter mémoire de référence : append idempotent, empreinte canonique, copies isolées, horodatage contrôlé par le store et concurrence entre coroutines.
- Blueprint CLI
append-only: modèle immuable, port applicatif typé, use case, composition, tests et documentation, sans transport ni infrastructure externe implicite. - Génération planifiée, dry-run, manifeste versionné, recette rejouable, détection des collisions et préservation du code utilisateur.
- Durcissement après revue : validation runtime des champs techniques, reconnaissance des véritables sous-classes Arclith et validation AST limitée aux déclarations de classe.
Validation
- Framework : 2460 tests passés, 5 ignorés ; couverture 91,34 %.
- CLI : 541 tests passés.
- Lint, typage, sécurité, complexité, documentation stricte et huit checks GitHub au vert avant fusion.
- Tag
v0.30.0signé et vérifié, sur le commit de merge839f36c3c7590bb1ef1b65df716535f349140416. - Workflow de publication réussi : quality gate, builds et deux Trusted Publishers.
- Smoke public sans cache sur l'index officiel PyPI : création d'un service
Measurementappend-only, compilation et 3 tests générés réussis. Scénario complémentaire validé : append, rejeu duplicate, conflit de contenu, conflit d'identité, rejet des valeurs techniques invalides, immutabilité et 20 appends concurrents (1 insertion, 19 doublons).
uvx --from arclith-cli==0.27.0 --with arclith==0.30.0 arclith-cli new Measurement measurement-service --profile append-only
cd measurement-service
uv sync
uv run pytest -qPérimètre
Ce blueprint n'est pas de l'event sourcing. Le store mémoire est local au processus, non durable et sans coordination distribuée. Aucun adapter de production ni transport n'est ajouté automatiquement. Les phases #223 à #226 restent à implémenter.
Le board Arclith est réouvert : Sprint 7, du 14 au 20 septembre 2026, #221 In Progress et #222 Done, sans modification des dix itérations historiques.
Les avertissements hérités du workflow (anciennes versions d'actions Node.js et cache sans lock dans les jobs de publication) sont non bloquants et n'ont pas été modifiés dans cette release.
Arclith v0.29.1
Versions
arclith==0.29.1arclith-cli==0.26.1
Points forts
- Projection automatique des champs métier déclarés sur une entité dans les contrats CRUD générés.
- Conservation des types, contraintes Pydantic, valeurs par défaut inspectables et imports nécessaires.
- Contrat
POSTavec champs requis et validations cohérentes avec l'entité. - Contrat
PATCHpartiel distinguant champ omis et valeur explicitement invalide. - Support renforcé des aliases, annotations différées, type aliases, constantes de classe et factories.
- Analyse statique fail-closed des métadonnées, configurations et rebindings qui ne peuvent pas être projetés sûrement.
- Projection FastAPI des cinq opérations create, get, list, update et delete avec erreurs
404,409et422documentées.
Installation
uv tool install --force arclith-cli==0.26.1
arclith-cliLa CLI dépend de arclith>=0.29.1.
Validation
- Quality Gate, E2E et CodeQL GitHub verts.
- 2 387 tests framework passés, 5 ignorés, couverture 91,19 %.
- 519 tests CLI passés.
- Documentation MkDocs stricte et quatre distributions contrôlées avec
twine check. - Publication Trusted Publishing réussie pour les deux projets PyPI.
- Installation publique sans cache vérifiée depuis l'index PyPI officiel.
- Projet FastAPI généré depuis les distributions publiques : 8 tests consommateur passés.
- API réellement démarrée avec
arclith-cli run api; POST, GET item, GET list, PATCH et DELETE validés de bout en bout.
Arclith v0.29.0
Versions
arclith==0.29.0arclith-cli==0.26.0
Points forts
- Ouverture d’un projet Arclith existant depuis l’accueil ou le tableau de bord plein écran.
- Sélection par navigation dans les dossiers ou saisie directe d’un chemin, avec détection de la racine du projet.
- Installation native de nouveaux adapters depuis le cockpit, pilotée par le catalogue canonique.
- Formulaires dynamiques pour profils, paramètres typés et secrets masqués.
- Aperçu expurgé de la commande reproductible avant installation.
- Activation prudente : le provider actif est lu depuis la configuration et n’est remplacé que sur choix explicite.
- Préservation des valeurs personnalisées non modifiées, notamment pour LangSmith.
- Installation TUI et commande directe réunies derrière la même opération et la même recette.
Installation
uv tool install --force arclith-cli==0.26.0
arclith-cliLa CLI dépend de arclith>=0.29.0. Les commandes directes et le guide compact restent disponibles pour l’automatisation et les terminaux non interactifs.
Validation
- Quality Gate, E2E et CodeQL GitHub verts.
- 2 339 tests framework passés, 5 ignorés, couverture 91,19 %.
- 424 tests CLI passés.
- Documentation MkDocs stricte et distributions contrôlées.
- Installation publique sans cache vérifiée depuis PyPI.
- Projet CRUD FastAPI généré avec les versions publiques, puis 8 tests consommateur passés.
Arclith v0.28.0
Versions
arclith==0.28.0arclith-cli==0.25.0
Points forts
- Cockpit Textual plein écran pour créer ou ouvrir un projet Arclith sans quitter la CLI.
- Assistant de création réellement progressif : intention, domaine, stockage, transport et vérification.
- Listes déroulantes et sélection lisibles, y compris dans un terminal 80 × 24.
- Six intentions guidées : socle minimal, API CRUD, API ciblée, serveur MCP, agent LangGraph et worker RabbitMQ.
- Tableau de bord projet avec état réel, diagnostics et commandes avancées.
- Lancement, arrêt et redémarrage des runtimes depuis la CLI, avec logs intégrés.
- Nouvelle commande directe
arclith-cli run apiet modesmcp_http,mcp_sse,bus,allselon les adapters installés.
Installation
uv tool install --force arclith-cli==0.25.0
arclith-cliLa CLI dépend de arclith>=0.28.0. Les commandes directes et le guide Questionary restent disponibles pour l'automatisation et les terminaux non interactifs.
Validation
- Quality Gate, E2E et CodeQL GitHub verts.
- 2 323 tests framework passés, couverture 91,19 %.
- 412 tests CLI passés.
- Installation publique sans cache vérifiée depuis PyPI.
- Projet CRUD FastAPI généré, testé puis lancé via
arclith-cli run api; OpenAPI et requête de création HTTP vérifiées.
Arclith v0.27.0
Arclith 0.27.0 / arclith-cli 0.24.0
Cette release introduit le CRUD comme blueprint applicatif optionnel, puis sépare explicitement sa projection technique :
add-entity <Entity> --profile crudetadd-blueprint crudgénèrent les opérationscreate,get,list,updateetdelete;- le domaine, les ports, les use cases, la composition, les tests et le manifeste de feature restent indépendants des adapters ;
expose-feature <feature> --via fastapigénère les cinq routes REST typées en une opération atomique ;- FastAPI doit être installé avant la projection ; aucun adapter, repository durable ou migration n'est choisi implicitement ;
- les erreurs applicatives sont projetées en
404,409et422selon leur sémantique ; - les routes et contrats personnalisables deviennent propriété du projet et sont préservés lors des relances ;
- les recettes enregistrent le profil CRUD et la projection FastAPI pour un rejeu déterministe ;
- les projections MCP, RabbitMQ et LangGraph restent des décisions séparées, à concevoir selon la sémantique de chaque transport.
Les deux paquets sont publiés par PyPI Trusted Publishing :
arclith==0.27.0arclith-cli==0.24.0
arclith-cli 0.24.0 dépend de arclith>=0.27.0 afin de conserver un couple compatible.
Validation : 2 259 tests framework réussis (5 ignorés), 352 tests CLI réussis, couverture globale 91,19 %, contrôles Ruff, mypy, Bandit et MkDocs strict réussis, builds inspectés, puis smoke test local d'un projet CRUD FastAPI neuf avec 8 tests générés et 5 opérations OpenAPI.
Arclith v0.26.0
Arclith 0.26.0 / arclith-cli 0.23.0
Cette release fiabilise la composition générée par les adapters FastAPI et FastMCP :
- une seule instance de repository est partagée par entité entre les use cases et les transports ;
- le graphe de use cases est construit une seule fois par processus ;
- les constructeurs incompatibles sont refusés explicitement lors de la génération ;
- les imports d'entités aliasés et les projets en root layout sont pris en charge ;
- le contrat de réponse expose désormais
is_deletedavec les autres champs techniques ; - la configuration sauvegardée est entièrement revalidée avant regénération ;
- les chemins FastAPI ambigus, notamment
/v1, sont rejetés ; - les bindings FastAPI, FastMCP et RabbitMQ utilisent le graphe typé
ApplicationUseCases; - les quickstarts Bus et MCP documentent l'installation préalable avec
uv tool install.
Les deux paquets sont publiés par PyPI Trusted Publishing :
arclith==0.26.0arclith-cli==0.23.0
arclith-cli 0.23.0 dépend de arclith>=0.26.0 afin de conserver un couple compatible.
Validation : 2 203 tests framework réussis (5 ignorés), 278 tests CLI réussis, couverture globale 91,19 %, contrôles Ruff, mypy, Bandit et MkDocs strict réussis, puis smoke test post-publication depuis un projet vierge avec FastAPI et FastMCP.
Arclith v0.25.0
Arclith 0.25.0 / arclith-cli 0.22.0
Cette release rend le scaffolding de la CLI réellement incrémental :
- init crée un socle métier sans FastAPI ni FastMCP ;
- add-adapter expose tout le catalogue, notamment api/fastapi et mcp/fastmcp ;
- chaque adapter ajoute uniquement son extra et son blueprint ;
- MongoDB, PostgreSQL, MariaDB et DuckDB ne génèrent plus automatiquement un repository memory ;
- la commande racine sans argument affiche désormais son aide avec un code de succès ;
- les quickstarts documentent l’installation préalable du CLI et le parcours complet init → entité → use case → adapter API → expose-usecase ;
- le point d’entrée FastAPI généré utilise une factory Uvicorn importable et rechargeable.
Les deux paquets ont été publiés par PyPI Trusted Publishing :
- arclith==0.25.0
- arclith-cli==0.22.0
arclith-cli 0.22.0 dépend de arclith>=0.25.0 afin de conserver un couple compatible.