• 1.2.4 ed35be730f

    karmak23 released this 2026-10-30 03:46:46 +01:00 | 0 commits to main since this release

    Host Helper 1.2.4 : normalisation du mode de la racine runtime /run/asami au démarrage.

    • fix(runtime) : la racine runtime /run/asami, créée implicitement sous UMask=0077 par l'unité systemd, est désormais normalisée en 0755 au démarrage du service (défaut C) ; l'identité publique redevient déterministe et diagnosable après chaque reboot.
    • diag(identity) : identity --json non privilégié ne rapporte plus un faux « identity not published » lorsque la racine runtime a un mode confiné (garde de diagnosabilité).
    • invariants : aucun changement du contrat MCP public (codes et exit identiques) ; répertoires privés en modes confinés ; 1.2.3 immuable.
    Downloads
  • 1.2.3 9a8a737871

    karmak23 released this 2026-10-29 23:56:38 +01:00 | 5 commits to main since this release

    Host Helper 1.2.3 : correctifs canal GitLab self-updater et répertoire identité publique.

    • fix(self-update) : les candidats téléchargés depuis le canal GitLab sont désormais posés exécutables (0755) ; un candidat non exécutable est refusé (UPDATE_ORIGIN_REFUSED). Corrige les échecs update_failed_rolled_back systématiques du canal GitLab sous umask restrictif (présent en 1.2.1 et 1.2.2).
    • fix(identity) : un répertoire identité publique possédé par le propriétaire avec un mode dérivé (ex. 0700) est réparé en 0755 à la publication au lieu d'être refusé ; les refus conservés couvrent symlink, propriétaire étranger et non-répertoire.

    Assets : binaire asami-host-helper (sha256 ebe0997a84b4bb189155cc09e57976a59033d7c022fca80bb0f4a1bf92a89d68), bootstrap hosthelper-bootstrap.pyz (sha256 ecba9fd45f041c2fac72042f159890a3af258ee6caf769f9249c846d5dd38cc4), tarball source (sha256 786f8171dd37c3695581f2bf694aeb4f1c0b6d9400006c5ff0c18fc9aec93ed4), wheel, install-hosthelper.py épinglé au commit 30fe959. Chaque asset a son sidecar sha256 dans le package générique.

    Downloads
  • 1.2.2 fd33395240

    karmak23 released this 2026-10-29 22:22:37 +01:00 | 10 commits to main since this release

    Host Helper 1.2.2 : enrôlement live. Identité publique V2 (identity --json), self-update officiel 1.2.1 vers 1.2.2, enrôlement opérateur/agent via le tool MCP privileged_helper_enroll du CORE Asami 0.25.3. Assets : binaire asami-host-helper (sha256 1dfdef91…), bootstrap hosthelper-bootstrap.pyz (sha256 8364d307…), installer manual pinned, archive source et wheel.

    Downloads
  • 1.2.1 219a092dc4

    karmak23 released this 2026-10-28 19:06:29 +01:00 | 17 commits to main since this release

    Linux Host Helper — version 1.2.1

    Apports de la release :

    • Correctif installeur (INSTALLER_VERSION 0.3.0) : accepte le trust binding LocalCore émis par le CORE (prepare_local_helper_enrollment) en plus du Remote ID canonique. Validation discriminée par connection.kind : remote = invariant inchangé (rmt_[0-9a-f]{32}, host/port/cert) ; local = executor_target_id "local" exact, champs exactement {kind,uid,gid}, uid/gid entiers stricts. Kind inconnu ou hybride → Refusal fail-closed. Symétrique du contrat service (HelperRealm LocalCore/RemoteCore).

    Qualification (Atelier-H2, bytes exacts publiés) :

    • Contraste 1.2.0 : installeur publié + trust local → Refusal « Use canonical Remote ID », exit 2, zéro effet (reproduction exacte du blocage Terry).
    • Fresh install 1.2.1 + trust local : ok, phase PREPARED, store LMDB store_integrity ok, trust_digest sha256:f1e6a335c799b74d9280d795c7967a4309fcfb2d2085a7f606f1cc831927fa9b.
    • Idempotence : re-runs → preparation_noop, trust_digest/helper_sha256 inchangés ; --check → LOCAL_CHECKED PASS.
    • Conservation remote : wipe + fresh install 1.2.1 + trust rmt_* canonique → PREPARED, exit 0, binding distinct (trust_digest sha256:1c8591fd6a167acde61d1e1893aab2646052e8925706d05e063e59c119a50f99), invariant remote intact.
    • Tests : 1377 passed / 271 skipped (user) ; 1637 passed / 1 failed (root, test_0112 préexistant sur main, hors scope, documenté).

    Limite documentée : upgrade LMDB 1.2.0→1.2.1 par installeur refuse (fail-closed, helper mismatch). L upgrade canonique du HH reste le self-update CORE-signé. Le trajet Terry (fresh après wipe) est couvert par le banc.

    SHA-256 archive source : 929ba2dfb7c4990d86c09698bce3165b579b76434eb41347f78204c6ccc2d5e0

    Build : tag 1.2.1, commit de merge 219a092, tree b4973278fb (identique au tree du commit de build ceb5f48), BUILD_HEAD ceb5f48.

    Downloads
  • 1.2.0 85b1a274cf

    karmak23 released this 2026-10-27 07:51:03 +01:00 | 19 commits to main since this release

    Linux Host Helper — version 1.2.0

    Apports de la release :

    • Self-update hebdomadaire fail-safe (CC6) : vérification hebdomadaire de l origine GitLab épinglée (sidecars SHA-256 + HTTPS), précontrôles, activation atomique, rollback automatique, journalisation des 4 états (starting / succeeded / failed-rolled back / impossible). Le service oneshot asami-host-helper-update.service et le timer hebdomadaire sont installés par le bootstrap et activés par l installateur sur --activate.
    • Correctif installateur : la route replacing exécute --prepare-service (convergence service + unités update avec readback public, événement preparation_converged) ; INSTALLER_VERSION 0.3.0.
    • Correctif archive TAR (hérité de 1.1.1) : racine directory en tête, construction déterministe, vérification round-trip intégrée au build et à --check.

    Qualification (Atelier H4, bytes exacts publiés) :

    • Fresh install 1.1.1 (installateur officiel) : PASS ; upgrade 1.1.1→1.2.0 via --upgrade-service-artifact : PASS (identité et trust préservés, public_state_preserved) ; fresh install 1.2.0 (--activate) : PASS (update.timer enabled et planifié).
    • Readiness : --version-json 1.2.0, store LMDB store_integrity ok, --check LOCAL_CHECKED, happy-path self-update update_checked.
    • Extraction : GNU tar PASS et tarfile.extractall(filter=data) PASS — racine dirtype, 413 membres.

    SHA-256 archive : 17fe50e263b72bff4d62791c0cfb79673f63f12f63fe0c034704991dfac0b394

    Build : tag 1.2.0, commit 85b1a274cf, tree 4fdf83a041 (identique au tree du commit de build c26a35e), BUILD_HEAD c26a35e.

    Downloads
  • 1.1.1 77928089b1

    karmak23 released this 2026-10-27 06:17:36 +01:00 | 24 commits to main since this release

    Linux Host Helper — version 1.1.1

    Correctif archive TAR de la release 1.1.0 : la racine de l archive source est desormais une vraie entree repertoire (dirtype) en tete d archive, la construction est deterministe (uid/gid 0, mtime du commit, modes depuis l index git, ordre trie) et une verification round-trip (racine directory unique, extraction reelle avec tarfile filter data, egalite du contenu extrait) est integree au build et a --check.

    Qualification (Atelier, bytes exacts publies) :

    • Fresh install 1.1.1 : PASS (LOCAL_CHECKED, LMDB, store_integrity ok).
    • Upgrade officiel 0.1.0 vers 1.1.1 : PASS — remplacement SQLite vers LMDB via l installateur officiel, migration du store COMPLETE (logical_digest preserve), service actif sans redemarrage, meme trust et identite. C est le parcours exact de l hote de production.
    • Extraction : GNU tar PASS et tarfile.extractall(filter=data) PASS (l archive 1.1.0 publiee echouait avec NotADirectoryError, racine regular).
    • Reproducibilite : wheel et archive reconstruits octet pour octet avec SOURCE_DATE_EPOCH du commit.

    SHA-256 archive : 1bea035dfe0f021c0385b8cc0c1c27a919015dbee8c3976d644e7698a1a2a8ff

    Limitation connue : l installateur officiel ne supporte pas l upgrade LMDB vers LMDB (seuls le candidat exact et la baseline SQLite 0.1.0 sont admis). Aucun hote ne tourne en service sur 1.1.0-LMDB ; une future montee de version depuis un store LMDB passera par le self-update.

    Build : tag 1.1.1, commit 77928089b1, tree 9a74c895ee, BUILD_HEAD 720a9f4.

    Downloads
  • 1.1.0 ae689cd639

    karmak23 released this 2026-10-23 08:17:21 +02:00 | 31 commits to main since this release

    Linux Host Helper Reference 1.1.0 — Sentry diagnostics

    Independent Python+LMDB Linux Host Helper reference release integrating the qualified linux-hosthelper-sentry-diagnostics feature: optional Sentry initialization in entrypoints, causal error diagnostics, redaction, and an audited exception-handler inventory. Sentry remains non-authoritative; absent/broken telemetry does not alter business effects, receipts or trust.

    Compatibility: Host Helper protocol 1 and LMDB persistence unchanged. The Debian 13/amd64 bootstrap includes the qualified python3-lmdb 3.0.0 native backport from immutable 1.0.0. Asami CORE requires neither a new version nor a deployment. The Enroller owns installation and activation.

    Qualification: functional HH84 candidate unchanged except Git attribution and release identity, HEAD f32058153c, tree 0c66706c00, release main commit ae689cd639. Non-root full test suite 1308 PASS/305 SKIP, root full test suite 1569 PASS/44 SKIP. Reproducible build, wheel metadata and hashes PASS. Isolated Debian 13 systemd QA containers: official fresh 1.1.0 install PASS; exact published 1.0.0 baseline install and 1.0.0→1.1.0 native upgrade PASS; LMDB, identity/trust conservation, version/readback and manual installer --check PASS. Services remain inactive pending explicit enrollment and a real CORE-linked channel was not claimed by these isolated tests.

    Published archive linux-hosthelper-reference-1.1.0.tar.gz SHA-256 10e05371afd0c53f2908e165156011c723433d9c5695b02cac9231979eb115ce. Wheel and four runtime artefacts with sidecars also available. Release 1.0.0 stays immutable.

    Downloads
  • 1.0.0 d05770c7fe

    karmak23 released this 2026-10-14 23:45:06 +02:00 | 48 commits to main since this release

    Reference 1.0.0 — Linux Python+LMDB

    Cette distribution fixe la référence exécutable Linux Python+LMDB. Le helper conserve les clés Ed25519, certificats, trust et bindings lors du remplacement de Reference 0.1.0 SQLite ; il reprend les ledgers, compteurs anti-rejeu, événements et sorties sans recommencer un effet déjà engagé.

    Utilisation

    L’archive linux-hosthelper-reference-1.0.0.tar.gz contient une racine linux-hosthelper-reference-1.0.0/, les sources exactes et les artefacts préparés dans artifacts/. Le wheel, le helper, le bootstrap administratif, l’installeur et le manifest helper ont également leurs liens et sidecars propres dans la Release officielle.

    L’administrateur fournit le trust public exact de CORE et utilise son accès administratif existant. Après vérification des empreintes, il peut préparer une installation neuve :

    sudo /usr/bin/python3 -I artifacts/install-hosthelper.py \
      --version 1.0.0 \
      --bootstrap artifacts/hosthelper-bootstrap.pyz \
      --trust /chemin/du/trust-public-fourni-par-core.json
    

    L’installation neuve conserve le service arrêté jusqu’au binding explicite de son identité publique par CORE. La même commande avec --activate active cette identité liée ou remplace la baseline SQLite admise. --check vérifie localement le binding, les bytes et le store ; la readiness fonctionnelle exige ensuite HELLO, fraîcheur CORE liée au nouvel epoch et exécution contrôlée. Le remplacement s’effectue sans effet actif, sous arrêt et fences vérifiés, avec journal et relecture de la migration ; la reprise corrige en avant.

    Qualification Linux

    Candidate opérateur admise : 56b47169594296791760bf15ae8ff4a6d11ce78f. Intégration develop : 7fd34f5e923023579982af8ef4690fe46c169713, tree strictement identique. Runtime de qualification fonctionnelle : 8fdc027b11e0dee6a645f5270f19bfe4e8bf188a ; le delta de release porte uniquement sur identité/version, documentation et packaging.

    • H3 : 1 282 PASS / 271 SKIP non-root et 1 543 PASS / 10 SKIP root ; migration installée, reboot guest et récupération après effet fsyncé sans deuxième effet.
    • A4 : suite complète de composition, 1 543 PASS / 10 SKIP, exit 0. Le premier banc incomplet, ses erreurs de Git/toolchain et la relance réussie sont conservés dans provenance/reference-1.0-integration-20261014*.
    • H2 contre CORE QA-A4 réel : trois décisions humaines one-shot et trois SUCCESS, avant restart, après restart, puis après reboot guest. High-water 3, identités/ledgers/marqueurs conservés, sorties transférées et ACKées. La tentative expirée sans dispatch reste tracée séparément.
    • Endurance H2 : trois fenêtres de 30 minutes, 183 observations et quatre redémarrages du helper ; conservation des invariants et absence de deuxième effet.
    • Charge installée : 600 effets fsyncés via TLS/CORE de test, stdout court puis 64 KiB, vérification des doublons et ACK ; RSS observé environ 63–64 MiB, descripteurs 8–9, allocation LMDB stable sur ce profil.

    Les comptes root/non-root se recoupent. Les preuves de candidate sont identifiées par commit/bytes ; la release impose en plus une qualification fresh install et upgrade des artefacts finaux exacts avant publication. Le bilan historique de candidate reste dans provenance/lmdb-linux-qualification-20261014-aggregate.json ; son ancien champ d’admission décrit l’instant de capture et n’est pas réécrit après décision de l’opérateur.

    Dépendance et mesures

    Tuple de livraison qualifié : Debian 13 / amd64 / CPython 3.13, py-lmdb 3.0.0, moteur embarqué LMDB 0.9.36, format 0.9 explicite. Le bootstrap embarque le backport reproductible python3-lmdb 3.0.0-0asami1, SHA-256 cc96b82d225b333cade2b0916ca72957041b6134f6d755e0b1d027c0416b77cb, puis vérifie l’extension effectivement chargée. Source amont, licence et provenance sont conservées. Une dépendance déjà conforme produit un no-op.

    Les cycles complets SQLite/LMDB, trois répétitions de 500 par backend avec même host/runtime et maintenance, montrent LMDB plus lent et davantage d’écritures sur ce banc, avec moins d’espace alloué et PSS proches. Les latences médianes sont SQLite 30–49 ms contre LMDB 51–59 ms. Aucun gain global n’est annoncé ; les données brutes et la méthode figurent dans provenance/lmdb-lifecycle-20261014T205300Z*.

    Périmètre conservé

    Le tag 0.1.0 / c7ff916c6cf93ef8f7530313a1ad44bc0068dc17 conserve la baseline SQLite et ses bytes. Python+LMDB reste une référence exécutable vivante pour les comportements communs, sous l’autorité normative P1–P6. Les ports C, OpenWrt et Windows, le self-update autonome, l’Enroller et l’intégration Linux à l’étape 3 gardent leurs gates et obligations propres. Cette publication n’active pas le rollout du parc ni la généralisation du transport persistant.

    Archive publiée exacte : SHA-256 521d0ea6df4e18aa37024eb4d7ed8e8509c6cb5b326554c7dbb1e5a07c64aa2b, 2 325 009 octets. Les bytes de cette archive ont passé fresh install et upgrade depuis 0.1.0 via le parcours officiel, puis les GET du Registry ont été comparés intégralement.

    Downloads
  • 0.1.0 c7ff916c6c

    karmak23 released this 2026-10-13 21:50:02 +02:00 | 193 commits to main since this release

    Reference 0.1 — Linux Python+SQLite

    Cette première référence rassemble le HostHelper Linux Python+SQLite développé et qualifié dans la branche Asami privileged-execution. Elle rend son code, ses tests, ses fixtures et ses preuves reproductibles indépendamment du serveur MCP et des interfaces humaines.

    Ce que permet la référence

    • Exécuter un ProcessSpec authentifié déjà matérialisé par CORE, avec executable et identité explicites, guards locaux et postconditions ; aucun shell implicite ni autorité inventée par le helper.
    • Conserver une identité Ed25519 et un trust pinné, vérifier le TLS et les signatures métier, reconnecter sans recommencer un effet.
    • Persister l’admission, le high-water, le start fence et les résultats SQLite. Avant fence durable, une reprise exige l’absence de start prouvée ; après effet possible, réconcilier ou conserver AMBIGUOUS.
    • Annuler selon le contrat un groupe de processus réel, y compris lorsque son processus principal est déjà sorti ; conserver les issues et preuves terminales.
    • Borner sorties, blobs, délais, mémoire et descripteurs ; récupérer les ACK et nettoyer progressivement sans supprimer les racines de recovery ou la protection contre le rejeu.
    • Construire le même artefact portable et le même bootstrap administratif que ceux admis sur les pilotes, puis installer manuellement le service systemd avec un trust exact fourni par CORE.

    Parcours de développement

    Le socle durable et l’exécuteur POSIX ont été établis le 4 octobre ; le service supervisé, les événements et le trust persistant le 7 ; les contrôles d’identité, la fraîcheur, les blobs et les guards le 8. Les 9–10 octobre ont ajouté les preuves de pression mémoire/descripteurs/disque et de recovery SQLite/WAL, la compaction progressive puis le bootstrap et l’installation systemd. Les 11–13 ont renforcé la reconnexion, le transfert des sorties, les refus, les crashes avant fence et la cancellation signée. Le pilote Longitude et l’admission explicite ont ensuite fixé la baseline.

    L’import Git conserve 138 commits pertinents pour les fichiers effectivement extraits, avec une correspondance vers les commits Asami. Ce nombre n’est pas un nombre de fonctionnalités ni une nouvelle qualification de tout le plan de contrôle.

    Identité et limites

    Source figée : 4c4dcf09d693fd7690ab1511ab04cc06ccd0a4ef; candidate admise e9ff5e2; helper 97c82d4. Helper reconstruit SHA-256 9e83210b179fde8716ae9dd90d7e1ebf7fd268e6c263044fa98be402262cd9ad et bootstrap b32c0b4919faf62830e7d5079bb119ef48fd260b0b1c546bbf7c4f590108dd0c, strictement identiques aux artefacts conservés.

    Cette référence est la baseline SQLite, pas le port LMDB, le self-update autonome Common Core, un Enroller ou un nouveau runtime Windows/OpenWrt. Elle ne revendique pas la clôture des qualifications globales MCP/WMI/Receipes. La réserve opérateur sur la généralisation du transport persistant reste distincte.

    La publication finale doit relier le commit du dépôt autonome, l’archive exacte, les checksums et la qualification de cette extraction. Ce document prépare ses notes ; il ne prouve pas qu’une GitLab Release a déjà été publiée.

    Downloads