• v0.1.3 ccef777207

    v0.1.3
    All checks were successful
    ci / server (push) Successful in 12s
    release / server-image (push) Has been skipped
    ci / desktop-ts (push) Successful in 28s
    ci / desktop-rust (push) Successful in 3m22s
    Stable

    ahitosly released this 2026-09-06 19:22:34 +02:00 | 20 commits to main since this release

    Added

    • supabase : agent Hermes dédié par utilisateur — migration aria_hermes_agents (interne, deny-all) / aria_hermes_agent_access (projection par trigger, lisible par son propriétaire) / aria_hermes_llm_keys (pool de clés, invisible), RPC aria_claim_hermes_provisioning et aria_allocate_hermes_llm_key (ADR-015). Appliquée pour de vrai le 2026-09-06 contre l'instance partagée, sur autorisation humaine explicite (cf. docs/STATUS.md → Décisions récentes) (T-115)
    • supabase : Edge Function provision-hermes-agent — crée l'agent de l'utilisateur sur l'opérateur hermes-swarm au login, seule détentrice de HERMES_OPERATOR_API_KEY ; renvoie au client le statut et les credentials du dashboard, jamais l'api_url/api_key de l'agent (ADR-015). Déployée par l'humain le 2026-09-06 : POST sans JWT / avec JWT bidon / sans body renvoie bien 401 {"error":"unauthorized"} (après correction d'un 500 function_not_configured initial, cause : docker compose restart ne rechargeait pas les variables d'environnement). Reste seul point non vérifiable ici : provisioning de bout en bout avec un vrai JWT utilisateur (login réel) (T-116)
    • server : agent Hermes ciblé par utilisateur (ADR-015) — AgentTarget (base_url/api_key) remplace HERMES_URL/HERMES_API_KEY fixés à la construction du Protocol AgentProvider.run/run_stream (HermesAgentProvider reste un provider unique) ; SupabaseDB.get_hermes_agent/mark_hermes_agent_ready (lecture aria_hermes_agents, clé service) ; providers/agent/health.py::is_agent_healthy (nouveau, sonde /health sans authentification) ; pipeline/agent.py::_resolve_agent_target résout l'agent dédié de l'utilisateur (ready, ou creating promu à la volée si joignable), sinon retombe sur HERMES_URL/HERMES_API_KEY (fallback de développement, retiré par T-120), sinon aucun agent utilisable. AgentResult.status gagne "not_ready" (contrat régénéré, packages/contract/openapi.json/openapi.types.ts) ; /v1/agent/stream émet {"type":"error","detail":"agent_not_ready"} dans ce cas. docs/API.md réécrit pour /v1/agent(/stream). 21 tests ajoutés (tests/test_pipeline_agent_target.py), suite existante adaptée. Applicable en prod dès maintenant (T-115 appliquée) (T-117)
    • desktop : appel de provision-hermes-agent à chaque login (ADR-015) — auth.rs::call_provision_hermes_agent (fire-and-forget) déclenché à chaque session posée (login, refresh horaire, reprise d'une session persistée au démarrage), échec seulement loggué (jamais bloquant), réessayé naturellement au prochain appel grâce à l'idempotence côté Edge Function (T-118)
    • desktop : Settings › « Mon agent » (ADR-015) — nouvelle page (HermesAgent.tsx) lisant aria_hermes_agent_access en direct via supabase-js (RLS select own) : agent en préparation / échec avec bouton réessayer / prêt avec lien dashboard et identifiants copiables (mot de passe masqué par défaut) (T-119)
    • desktop : boutons « Copier » sur les blocs de code et les tableaux markdown de la fenêtre agent (AgentWindow.tsx) — répond à l'issue Forgejo #100 (« il n'est pas possible de copier » un tableau, code sans bouton dédié) (T-113)

    Fixed

    • desktop : fenêtre agent élargie (480×560 → 720×620) — jugée trop étroite (issue Forgejo #100) (T-113)
    • desktop : l'URL du serveur n'est plus stockée/modifiable via AriaConfig/Settings › Général — figée à la compilation (config::SERVER_URL), invisible et non modifiable depuis le client (issue Forgejo #101, ADR-014) (T-114)

    Removed

    • server : fallback de développement HERMES_URL/HERMES_API_KEY retiré (T-120, ADR-015) — plus aucun utilisateur sans agent Hermes dédié ne peut retomber sur l'ancien Hermes unique et partagé (ubuntu-01, PoC personnel de l'humain) ; sans agent ready, /v1/agent(/stream) répond systématiquement not_ready/agent_not_ready. Variables retirées de .env/.env.example. 5 tests de fallback devenus sans objet retirés (tests/test_pipeline_agent_target.py) (T-120)

    Changed

    • process : provisioning Hermes confirmé de bout en bout par l'humain (2026-09-06) : dictée et mode agent testés en conditions réelles via l'agent dédié, HERMES_AGENT_MODEL réglé côté Edge Function (nouvel agent créé directement avec le bon modèle par défaut, vérifié après un reset complet — suppression du conteneur/volume via l'opérateur, purge=true, puis reprovisioning) — M8 (T-115 → T-120) formellement clos (T-120)
    • process : v0.1.2 publiée avec succès (https://git.cloud-rennais.fr/cloud-rennais/aria/releases/tag/v0.1.2), premier --publish propre du premier coup depuis les correctifs de scripts/release.sh ; latest.json republié (version 0.1.2). Contient le correctif de la course update://available/UpdateBanner — prête pour retester T-081/T-083 de bout en bout (T-080)
    Downloads