Registre des ADR d’Air
ADR — Architecture Decision Record. Document court et daté qui consigne une décision structurante : son contexte, la décision prise, et ses conséquences. Les ADR sont numérotés, immuables une fois acceptés (sauf RFC — cf. ADR-015), et font autorité.
Chaque ADR vit dans son propre fichier, en français et en anglais. Ce registre est l’index intégral, trié par numéro.
Ce que dit la colonne « Mise en œuvre »
Le champ **Statut :** que porte chaque ADR décrit sa décision
(Accepté, Proposé). La colonne ci-dessous décrit sa mise en œuvre —
dimension distincte : une décision peut être acceptée depuis longtemps et
n’être implémentée que bien plus tard, ou n’avoir aucune implémentation à
produire.
| Marque | Sens |
|---|---|
| ✅ Fait | mise en œuvre terminée |
| 🔨 En cours | implémentation entamée, non close |
| ⏳ À faire | décision actée, rien de commencé |
| ♾️ Permanent | politique en vigueur continue, sans « mise en œuvre » à produire |
| ❓ À qualifier | à trancher — ne doit pas subsister durablement |
182 ADR — ✅ Fait 99 · 🔨 En cours 18 · ⏳ À faire 42 · ♾️ Permanent 23
Index
| N° | Objet | FR | EN | Mise en œuvre |
|---|---|---|---|---|
| 001 | IPC AirCom, refus de D-Bus comme transport principal | FR | EN | 🔨 En cours |
| 002 | Modèle d’objet hybride asymétrique, C-ABI pour le périmètre CoreFoundation/AppKit | FR | EN | 🔨 En cours |
| 003 | Air compositeur Wayland | FR | EN | ⏳ À faire |
| 004 | Linux tier-1 exclusif, FreeBSD et Windows tier-3 documentés | FR | EN | ♾️ Permanent |
| 005 | Intégration systemd comme socle système, D-Bus optionnel | FR | EN | 🔨 En cours |
| 006 | Profils de déploiement air-base (console) et air-desktop (graphique) | FR | EN | ⏳ À faire |
| 007 | Compositeur de console air-console, symétrie avec air-wm | FR | EN | ⏳ À faire |
| 008 | Framework TUI air-tui avec trois backends de transport | FR | EN | ⏳ À faire |
| 009 | Framework de vues d’Air : tronc déclaratif air-view, bindings air-ui (graphique) et air-tui (texte) | FR | EN | ⏳ À faire |
| 010 | Format .airapp et .airservice, entitlements déclaratifs signés, sandbox capability-based | FR | EN | 🔨 En cours |
| 011 | Phasage bottom-up piloté par jalons démontrables | FR | EN | ♾️ Permanent |
| 012 | Stratégie de versionnement et stabilité ABI | FR | EN | ♾️ Permanent |
| 012-bis | Politique de télémétrie Air | FR | EN | ♾️ Permanent |
| 013 | Distribution Air, posture stratégique de troisième voie qualitative | FR | EN | ♾️ Permanent |
| 014 | Catalogue de matériel « Air long-term » | FR | EN | ♾️ Permanent |
| 015 | Licence MPL 2.0, contribution DCO, gouvernance évolutive, marque modèle Linux | FR | EN | ♾️ Permanent |
| 016 | Internationalisation native et localisation progressive | FR | EN | ⏳ À faire |
| 017 | Accessibilité citoyen de première classe, fondée sur le modèle d’objet C-ABI | FR | EN | ⏳ À faire |
| 018 | Modèle d’imagerie d’Air : vectoriel pour le mode graphique, cellulaire pour le mode console | FR | EN | ⏳ À faire |
| 019 | Modèle d’erreurs hybride à deux niveaux | FR | EN | ✅ Fait |
| 020 | Stratégie signaux : signalfd par défaut, sigaction restreint | FR | EN | ✅ Fait |
| 021 | Conventions transverses de la couche 0 | FR | EN | ✅ Fait |
| 022 | Architecture du module io_uring | FR | EN | ✅ Fait |
| 023 | Runtime asynchrone Air construit sur io_uring | FR | EN | ✅ Fait |
| 024 | Workflow de gestion des dépendances | FR | EN | ♾️ Permanent |
| 025 | Stratégie de builds reproductibles | FR | EN | ♾️ Permanent |
| 026 | Contrat 1.0 d’air-tui : UI texte riche, cellulaire, capability-gated | FR | EN | ⏳ À faire |
| 027 | Stratégie de documentation polyglotte (ABI C et bindings multi-langages) | FR | EN | ♾️ Permanent |
| 028 | Soundness et téardown du module io_uring (S1/S2/S3) | FR | EN | ✅ Fait |
| 029 | Nommage de la surface publique : explicite, sans abréviation ; noms d’autorité conservés à l’interface | FR | EN | ♾️ Permanent |
| 030 | Périmètre de la règle des 80 % : dépendances de production vs test-only | FR | EN | ♾️ Permanent |
| 031 | Mesure de couverture en root sur les runners self-hosted | FR | EN | ✅ Fait |
| 032 | Préservation des données confiées : zéro discard silencieux | FR | EN | ♾️ Permanent |
| 033 | Modèle de configuration : source typée, compilation validée, artefact binaire | FR | EN | 🔨 En cours |
| 034 | Discipline des dépendances cryptographiques | FR | EN | ♾️ Permanent |
| 035 | Taxonomie des exceptions de couverture | FR | EN | ♾️ Permanent |
| 036 | Filtrage par chemin de la re-vérification d’une couche scellée | FR | EN | ✅ Fait |
| 037 | CI ARM seule (raspi-srv-2) + validation x86 par barrière pré-merge | FR | EN | ✅ Fait |
| 038 | Modèle d’exécution : runtime async natif io_uring (sans tokio), couches basses synchrones, io_uring seul moteur de readiness | FR | EN | ✅ Fait |
| 039 | Nommage et placement : runtime async air-runtime (couche 1), modèle d’objet air-object (couche 2), et modèle d’ordonnancement | FR | EN | ✅ Fait |
| 040 | Format de l’artefact binaire de configuration : Cap’n Proto | FR | EN | ✅ Fait |
| 041 | Coexistence /etc : projection générée, lecture seule sélective, air-config seul écrivain | FR | EN | ✅ Fait |
| 042 | Pile TLS : rustls + aws-lc-rs (exception C nommée, étroite), TLS 1.3, air-tls maison en contingence | FR | EN | ⏳ À faire |
| 043 | Pile SSH : OpenSSH système en incubation, air-ssh maison à terme | FR | EN | 🔨 En cours |
| 044 | Extension de la couche 0 : famille poll (ppoll) pour l’attente synchrone bornée et interruptible (re-sceau couche-0-v1.5) | FR | EN | ✅ Fait |
| 045 | Modèle d’erreurs de l’ABI C : AirStatus in-band, sans errno, panic = abort | FR | EN | ✅ Fait |
| 046 | La libc Air (Rust pur) : périmètre, layering couche-1-only, et doctrine d’exécution | FR | EN | ♾️ Permanent |
| 047 | Principes de construction de la libc Air | FR | EN | ♾️ Permanent |
| 048 | Descellement unique de la couche 0 : std-free certifié + famille futex(2) (re-sceau couche-0-v1.6) | FR | EN | ✅ Fait |
| 049 | Runtime Air : TCB, TLS, démarrage (crt0), errno, environ — fondation *-linux-air | FR | EN | ✅ Fait |
| 050 | Spécification de la cible *-linux-air (phase 1 du programme runtime) | FR | EN | ✅ Fait |
| 051 | Descellement couche-0-v1.7 : 7 syscalls pour le runtime et la libc | FR | EN | ✅ Fait |
| 052 | air-rt est un objet couche 1 (AirRuntime), jamais un consommateur direct de la couche 0 | FR | EN | ✅ Fait |
| 053 | La libc Air s’appuie sur icu4x pour ctype/locale/i18n (caractères, casse, collation, normalisation, segmentation) | FR | EN | ✅ Fait |
| 054 | Scission d’air-base-lib : un cœur air-base-core sans i18n pour la fermeture runtime | FR | EN | ✅ Fait |
| 055 | air-thread/air-process en #![no_std] : crate air-env + spawn ergonomique gardé per-cible | FR | EN | ✅ Fait |
| 056 | Allocateur global Air (air-alloc) : inspiré de dlmalloc, simple, possédé | FR | EN | ✅ Fait |
| 057 | libm Air (air-libm) : vendoring de libm (rust-lang) en surface math couche 1 | FR | EN | ✅ Fait |
| 058 | loom : activation du modèle de concurrence (outil de vérification test-only) | FR | EN | ✅ Fait |
| 059 | Stratégie i18n : Air utilise icu4x (pas de réimplémentation), possède l’API + les données | FR | EN | ✅ Fait |
| 060 | Descellement couche-0-vX : famille termios/tty (pour la libc et air-terminal) | FR | EN | ✅ Fait |
| 061 | Architecture AirTerminal : modèle canonique + codecs (vision) | FR | EN | ✅ Fait |
| 062 | Sceau couche-1-v1.0 : gel de l’API Rust de la couche 1 | FR | EN | ✅ Fait |
| 063 | Instrumentation IO couche 1 (mode debug) : registre de handles cross-langage & cohérence fork | FR | EN | ✅ Fait |
| 064 | Doctrine des signaux couche 1 : signalfd primaire, fautes → action par défaut (zéro unsafe), helper « bloquer partout + drainer » | FR | EN | ✅ Fait |
| 065 | Descellement additif couche-1-v1.1 : AirRuntime::errno_location | FR | EN | ✅ Fait |
| 066 | Descellement additif couche-0 : rt_sigaction non-faute (async réel) + rt_sigpending + trampoline rt_sigreturn ; brique d’install de handler en couche 1 | FR | EN | ✅ Fait |
| 067 | air-account (couche 1) : gestion des comptes (/etc/passwd + /etc/shadow + /etc/group), bindée par la libc | FR | EN | ✅ Fait |
| 068 | Surface fine credentials (uid/gid) en couche 1 (air-process), bindée par la libc | FR | EN | ✅ Fait |
| 069 | Registre de handles fd-général (couche 1, air-handle) + moteur socket, façades PAL & libc | FR | EN | ✅ Fait |
| 070 | Descellement additif couche-0 : codec sockaddr public pour la face libc (socket_addr_from_bytes / socket_addr_to_bytes) | FR | EN | ✅ Fait |
| 071 | Descellement additif couche-0 : setsockopt/getsockopt à valeur entière publics pour la face libc | FR | EN | ✅ Fait |
| 072 | CI : x86_64 (speedy) runner primaire ; aarch64 en cross-check + natif sur main (révise ADR-037) | FR | EN | ✅ Fait |
| 073 | Doctrine de configuration binaire : pas de conf en texte clair, CLI dédié exigeant le mot de passe administrateur | FR | EN | ♾️ Permanent |
| 074 | Vision air-sshd : démon SSH natif d’Air, wire-compatible OpenSSH mais pas opensshd (async io_uring, conf binaire, profil algorithmique moderne) | FR | EN | ✅ Fait |
| 075 | Fourniture du PAL : std::sys::pal::air via rust-src patché + build-std, puis upstream Tier-3 | FR | EN | ✅ Fait |
| 076 | std Rust natif sur la libc d’Air : cible env = 'musl' + vendor = 'air' (chantier B, option A) | FR | EN | ✅ Fait |
| 077 | Managers de domaine en couche 1 (FileManager/NetworkManager/TerminalManager…) : surface objet médiatrice des toits (libc + PAL) | FR | EN | ✅ Fait |
| 078 | Descellement additif couche-1-v1.7 : additifs crypto pour air-tls (AES-128-GCM, ECDSA/ECDH P-256/P-384, RSA-PSS vérif., ML-KEM-768 hybride) | FR | EN | ⏳ À faire |
| 079 | air-netlink (couche 1) : transport netlink générique, crate indépendante + descellement additif couche-0-v1.11 (AF_NETLINK + sockaddr_nl) | FR | EN | ⏳ À faire |
| 080 | Additifs air-socket : multicast UDP typé + codec DNS étendu (SRV/TXT/PTR) — descellement additif couche-1-v1.x + couche-0-v1.12 (setsockopt structuré) | FR | EN | ⏳ À faire |
| 081 | Additifs crypto pour air-quic et air-ssh : primitives bas niveau (bloc AES, keystream ChaCha20, Poly1305) + RSA PKCS#1 v1.5 vérif. — descellement additif couche-1-v1.x | FR | EN | ⏳ À faire |
| 082 | Additifs crypto : AEAD à nonce explicite (record/packet), BLAKE2s (WireGuard), PBKDF2 (SASL/SCRAM) — descellement additif couche-1-v1.x | FR | EN | ⏳ À faire |
| 083 | Additifs couche 0 pour la plomberie réseau : TUN (TUNSETIFF) + adjtimex/clock_adjtime — descellement additif couche-0-v1.x | FR | EN | ⏳ À faire |
| 084 | Ratification air-url : couche 4 élargie (« frameworks développeur : UI + fondation ») + nom air-url | FR | EN | ⏳ À faire |
| 085 | Descellement additif couche-0 cumulé : primitives manquantes pour la face libc (chantier B — std + OpenSSH) | FR | EN | ✅ Fait |
| 086 | Introspection thread cible pour la face libc : TLS dynamique, bornes de pile, auxv (chantier B — M5, Lot C) | FR | EN | ✅ Fait |
| 087 | syscall générique (raw_syscall) : escape hatch temporaire pour le pal std (M5, Lot D) — À RETIRER | FR | EN | ✅ Fait |
| 088 | std Rust sur Air safe : PAL custom sur la couche 1, sans libc C | FR | EN | ✅ Fait |
| 089 | Réservation du SecurityManager : sécurité active per-process (couche 1) | FR | EN | 🔨 En cours |
| 090 | Binding de la couche 1 dans std par rustc-dep-of-std : découplage plutôt que fork, sans descellement de la couche 0 | FR | EN | ✅ Fait |
| 091 | Motif d’architecture réseau sans-IO : anatomie canonique à 9 composants, obligatoire | FR | EN | ♾️ Permanent |
| 092 | air-async : découpage réacteur (couche 1) / exécuteur (couche 2) de la runloop io_uring | FR | EN | ✅ Fait |
| 093 | Couche transport SSH-2 d’air-sshd : cœur sans-IO air-ssh-proto, topologie de crates v1/v2, jeu d’algorithmes moderne, wire-compat OpenSSH | FR | EN | ✅ Fait |
| 094 | air-sshd phase 2 : ssh-userauth (authentification publickey Ed25519, conf par-utilisateur binaire, politique de login, events AirCom, durcissement Terrapin) | FR | EN | ✅ Fait |
| 095 | Packaging des exécutables air-ssh : deux binaires séparés (air-ssh client / air-sshd serveur), client à verbes style git, pas de binaire « config-only » | FR | EN | ✅ Fait |
| 096 | air-sshd U.3b : magasin authorized_keys binaire par-utilisateur (schéma bespoke air-sshd-schema + lecteur dédié) | FR | EN | ✅ Fait |
| 097 | air-sshd phase 3 : ssh-connection (canaux multiplexés, session pty/shell/exec, port-forwarding) + client air-ssh | FR | EN | ✅ Fait |
| 098 | air-async : combinateurs de concurrence structurée (join/join_all + ensemble dynamique + Notify) et doctrine de multiplexage | FR | EN | ✅ Fait |
| 099 | air-ssh/air-sshd : ergonomie client (user@host, DNS, clé fichier, shell interactif) + sous-système de configuration binaire (/etc/air & XDG, édition CLI, export/import JSON) | FR | EN | ✅ Fait |
| 100 | Base comptes/credentials binaire (/etc/air/{passwd,shadow,group}) : source de vérité Air, projection /etc pour le monde C, CLI d’administration unique | FR | EN | ✅ Fait |
| 101 | Gate mot de passe administrateur pour les mutations de la base comptes (mécanisme) | FR | EN | ✅ Fait |
| 102 | Crates C-ABI rlib-only : aligner air-value/air-base-capi/air-object sur ADR-029, débloquer les builds release | FR | EN | ✅ Fait |
| 103 | Discipline de build linux-air : tout exécutable Air est lié à la std linux-air, jamais à la std gnu | FR | EN | ♾️ Permanent |
| 104 | air-sshd phase 4 : SFTP v3 (subsystem, cœur sans-IO, worker privsep) + administration des authorized_keys binaires | FR | EN | ✅ Fait |
| 105 | Campagne de tests de sécurité d’air-sshd : confrontation aux attaques SSH connues | FR | EN | 🔨 En cours |
| 106 | Air est un target_os distinct et non-POSIX sur substrat noyau Linux (et son nommage upstream) | FR | EN | ♾️ Permanent |
| 107 | Pipeline CI/CD linux-air : gate sur notre std, cross-build x86 → exécution native aarch64, et stratégie de cache | FR | EN | ⏳ À faire |
| 108 | air-keystore : manager du cycle de vie des clés et secrets (couche 1), face privilégiée air-keysign, interop OpenSSH | FR | EN | ✅ Fait |
| 109 | Certificats SSH (utilisateur + hôte) et autorité de certification : format wire couche 2, CA orchestrée, révocation | FR | EN | ✅ Fait |
| 110 | KEX post-quantique : ML-KEM-768 via ml-kem (RustCrypto) re-validé, combineur hybride mlkem768x25519 maison, câblage air-ssh-proto | FR | EN | ✅ Fait |
| 111 | air-log (AirLogManager) : sink de logs opérationnels (couche 1), journald natif sans C, anti-injection, distinct d’AirCom | FR | EN | ✅ Fait |
| 112 | air-sandbox (AirSandboxManager) : confinement seccomp/Landlock sûr, compilateur BPF maison, profils fail-closed, fin de la fuite couche 0 | FR | EN | ✅ Fait |
| 113 | Doctrine de sourcing cryptographique : pur Rust os-free d’abord, ne pas porter de C, DIY sérieux sinon, fiable > performant | FR | EN | ♾️ Permanent |
| 114 | air-json : promotion du JSON minimal maison en crate couche 1 partagée (fuzzée, sans serde, os-free) | FR | EN | ✅ Fait |
| 115 | CLI air-keystore : outil d’administration des clés (équivalent ssh-keygen élargi) + mode JSON agent-safe, dogfooding de l’API keystore | FR | EN | ✅ Fait |
| 116 | air-agent : agent SSH maison (keystore-backed) d’abord, interop protocole ssh-agent ensuite, agent forwarding opt-in | FR | EN | ✅ Fait |
| 117 | Redirections & multiplexing SSH : -L/-R, ProxyJump/ProxyCommand, direct-streamlocal (Unix) ; -D/ControlMaster différés | FR | EN | 🔨 En cours |
| 118 | Config binaire SSH : capacités étendues (Match, options serveur, IdentitiesOnly/ForwardAgent, keepalive) — en binaire, pas de grammaire texte | FR | EN | ✅ Fait |
| 119 | Extensions SFTP OpenSSH (posix-rename, hardlink, fsync, statvfs, limits@) + surface statvfs couche 1 | FR | EN | ⏳ À faire |
| 120 | Authentification hostbased : grappes en confiance mutuelle, signature via air-keysign (sans setuid), confiance transitive assumée | FR | EN | ⏳ À faire |
| 121 | Provisioning air-desktop-host : image first-boot anonyme, publication de la clé d’hôte, amorçage par clé/cert jetable (pas hostbased) | FR | EN | ⏳ À faire |
| 122 | air-sshd : séparation de privilèges (privsep) — monitor par connexion, enfant pré-auth confiné, transition post-auth par proxy | FR | EN | ✅ Fait |
| 123 | Descellement breaking couche-1-v3.0 : AirPrivilegeDrop prend une cage air-sandbox | FR | EN | ✅ Fait |
| 124 | Conception du privsep pré-auth d’air-sshd : topologie monitor / enfant / worker, canal RPC, transition proxy | FR | EN | ✅ Fait |
| 125 | Descellement additif couche-1-v3.1 : les primitives de topologie privsep | FR | EN | ✅ Fait |
| 126 | Descellement additif couche-0-v1.14 : complétion de l’énumération Capability (41 capabilities noyau) | FR | EN | ✅ Fait |
| 127 | Descellement additif couche-1-v3.2 : l’identité effective temporaire (AirTemporaryIdentity) | FR | EN | ✅ Fait |
| 128 | Options authorized_keys : périmètre, schéma v2, et placement de l’enforcement | FR | EN | ✅ Fait |
| 129 | Conception de V2.5 : transition post-auth (worker + proxy chiffré, options, from=) | FR | EN | ✅ Fait |
| 130 | Descellement additif couche-1-v3.3 : le socle de la transition post-auth (tuyau clair, SCM_RIGHTS sous cage, cascade de mort qui survit au largage) | FR | EN | ✅ Fait |
| 131 | Descellement additif couche-1-v3.4 : le worker post-auth qui sert vraiment (I/O du proxy confiné, cage SFTP utilisable, registre de descripteurs qui ne ferme plus le neuf) | FR | EN | ✅ Fait |
| 132 | Descellement additif couche-0-v1.15 : les anneaux io_uring ne sont plus hérités au fork (MADV_DONTFORK) | FR | EN | ✅ Fait |
| 133 | Quota de signatures du monitor air-sshd : borner l’oracle de signature d’un enfant pré-auth compromis | FR | EN | ✅ Fait |
| 134 | CLI de migration de la clé d’hôte air-sshd vers le magasin hostkeys.aircfg (prérequis privsep) | FR | EN | ✅ Fait |
| 135 | Descellement additif couche-1-v3.5 : le duplicateur de descripteurs fermait, lui aussi, le descripteur neuf | FR | EN | ✅ Fait |
| 136 | Descellement additif couche-1-v3.6 : air-json, le codec JSON possédé entre en couche 1 | FR | EN | ✅ Fait |
| 137 | Identité machine stable comme principal de certificat : empreinte de la host key, CA-attestée, découplée du hostname/IP | FR | EN | ✅ Fait |
| 138 | Descellement additif couche-1-v3.7 : révocation par serial de certificat et interop du format KRL OpenSSH dans air-keystore | FR | EN | ✅ Fait |
| 139 | Conception : authentification par certificat utilisateur sous privsep — le monitor vérifie, via un message RPC dédié | FR | EN | ✅ Fait |
| 140 | Conception : émission de certificats + clé CA privée (descellement additif couche-1-v3.8) ; interop réel d’émission | FR | EN | ✅ Fait |
| 141 | Registre de durcissement fast-follow post-clôture ADR-109 | FR | EN | ✅ Fait |
| 142 | Versionnage lockstep des paquets livrables Air (une seule version de release) | FR | EN | ✅ Fait |
| 143 | Couverture CI par couche : ne mesurer/tester que les couches touchées ; couverture complète rare | FR | EN | ✅ Fait |
| 144 | Descellement couche 0 : fchmodat2 (durcissement anti-TOCTOU des perms des sockets streamlocal) | FR | EN | ✅ Fait |
| 145 | Documentation : un site, orientation par public ; Zola pour l’architecture, chaque langage à son outil natif | FR | EN | 🔨 En cours |
| 146 | Forwarding serveur en privsep par médiation du monitor (le worker confiné ne fait aucun syscall réseau ; le monitor ouvre les sockets et passe le fd) | FR | EN | ✅ Fait |
| 147 | Worker de session toujours confiné (cage sftp-worker) : le lancement de session (shell/exec) est médié par le monitor (option B) — le démux ne fait plus d’execve | FR | EN | 🔨 En cours |
| 148 | Isolation par namespaces (net/mnt, pid différé) des cages pré-auth et forward-only ; exige des additifs couche 0 (unshare/mount/pivot_root) + re-sceau | FR | EN | ⏳ À faire |
| 149 | Architecture de code : contrôleurs, managers de domaine, et contrat d’API | FR | EN | 🔨 En cours |
| 150 | Manifeste, octroi et arbitrage de lancement | FR | EN | 🔨 En cours |
| 151 | Additifs couche 1 pour le lancement : passage explicite de descripteurs et masque de signaux | FR | EN | ✅ Fait |
| 152 | Outillage de l’architecture de code : déclaration role et gate check-controleurs | FR | EN | ✅ Fait |
| 153 | Le programme de session est octroyé, pas hérité de la base des comptes | FR | EN | ✅ Fait |
| 154 | Le shell d’Air : un interprète interactif, pas un langage — et pas POSIX | FR | EN | ⏳ À faire |
| 155 | Le kernel d’Air se bâtit avec Clang/LLVM, et avec une seule chaîne | FR | EN | ⏳ À faire |
| 156 | air-sandbox cible l’ABI Landlock v7 : on expose tout ce que le noyau offre | FR | EN | ⏳ À faire |
| 157 | Le lanceur supervise ce qu’il trouve : plusieurs services, déclarés par leur bundle | FR | EN | 🔨 En cours |
| 158 | Versionnement des symboles des bibliothèques Air : voie A, mise en œuvre différée sous condition nommée | FR | EN | 🔨 En cours |
| 159 | air-elf : un codec de couche 1, et le rôle codec qu’il inaugure | FR | EN | ⏳ À faire |
| 160 | La frontière variadique : écrire printf en Rust, et ne pas bâtir d’échafaudage C | FR | EN | ⏳ À faire |
| 161 | Dépendances, ordre et « prêt » dans air-launchd (temps 3b) | FR | EN | 🔨 En cours |
| 162 | Amorçage de l’autorité locale : la CA naît à l’installation, et l’utilisateur naît certifié | FR | EN | ⏳ À faire |
| 163 | Les tests vivent dans un fichier à eux : ce que la métrique de couverture mesure | FR | EN | ✅ Fait |
| 164 | Les outils système qu’Air doit fournir : le catalogue, et la règle qui l’ouvre | FR | EN | ⏳ À faire |
| 165 | Les formats de fichiers système sont des codecs SANS I/O, 100 % couverts et fuzzés | FR | EN | 🔨 En cours |
| 166 | La libc Air rend ses échecs : on corrige les prototypes que POSIX a laissés muets | FR | EN | ⏳ À faire |
| 167 | Descellement couche 1 : sleep/sleep_until quittent air-base-core pour AirThreadManager | FR | EN | ✅ Fait |
| 168 | air-launchd remplace systemd : couverture fonctionnelle et jalons d’amorçage | FR | EN | ⏳ À faire |
| 169 | La dépendance de démarrage est un pouvoir octroyé — SEPTIÈME famille d’entitlements (le rang 6 est allé à io_uring, ADR-150 D19) | FR | EN | ⏳ À faire |
| 170 | La dépendance facultative : un axe, deux valeurs (prefers), jamais deux axes | FR | EN | ⏳ À faire |
| 171 | La chute d’une dépendance remet en attente, elle ne met pas à mort | FR | EN | ⏳ À faire |
| 172 | Un service système publie son nom — le sens fort de « prêt » n’a pas d’autre fondement observable | FR | EN | ⏳ À faire |
| 174 | Toute borne du lanceur porte son régime de justification ; les non fondées sont mesurées | FR | EN | ⏳ À faire |
| 175 | Descellement additif couche-0-v1.17 : montage, namespaces et extinction | FR | EN | ⏳ À faire |
| 176 | air-mount (couche 1) : les montages d’API, leur ordre et leur idempotence | FR | EN | ⏳ À faire |
| 177 | La ligne de commande du noyau : un domaine borné, pas un parseur tolérant | FR | EN | ⏳ À faire |
| 178 | Le chargement de modules : la table d’alias est compilée, et le chargement est un service | FR | EN | ⏳ À faire |
| 179 | PID 1 est minimal et survit à son superviseur : récolte des orphelins, interdiction de panique | FR | EN | ⏳ À faire |
| 180 | Le répertoire personnel dans un plafond : le gabarit {home} | FR | EN | 🔨 En cours |
| 181 | La doctrine du bon citoyen : ce qu’on déclare, on l’obtient — ce qu’on tait, on ne l’a pas | FR | EN | ♾️ Permanent |
| 182 | L’identité de séparation de privilèges est résolue par le lanceur, pas lue par le service | FR | EN | ⏳ À faire |