From d0f528f9666693b2d5678762b8c8c0fe44c9f1c1 Mon Sep 17 00:00:00 2001 From: Vincent <87431839+vinzgithub@users.noreply.github.com> Date: Sat, 24 Oct 2026 21:07:20 +0200 Subject: [PATCH 1/3] docs: point public installation guides to v0.6.1 --- .env.example | 2 +- README.fr.md | 12 ++++++------ README.md | 12 ++++++------ compose.yaml | 2 +- docs/user/INSTALLATION.fr.md | 16 ++++++++-------- docs/user/INSTALLATION.md | 16 ++++++++-------- 6 files changed, 30 insertions(+), 30 deletions(-) diff --git a/.env.example b/.env.example index daf7adf..d126164 100644 --- a/.env.example +++ b/.env.example @@ -6,7 +6,7 @@ # Réglages facultatifs. Copiez ce fichier en .env, à côté de compose.yaml, gardez seulement les # lignes utiles, puis : docker compose up -d # -# curl -fsSL https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.0/.env.example -o .env +# curl -fsSL https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.1/.env.example -o .env # # A line starting with # is ignored. Une ligne commençant par # est ignorée. diff --git a/README.fr.md b/README.fr.md index 63ee0ee..7a229e8 100644 --- a/README.fr.md +++ b/README.fr.md @@ -8,7 +8,7 @@ **Français** · [**English**](README.md) -![Version](https://img.shields.io/badge/version-0.6.0-126caa) ![Docker](https://img.shields.io/badge/installation-Docker-2496ED) ![Licence](https://img.shields.io/badge/licence-PolyForm%20Noncommercial-0d355d) +![Version](https://img.shields.io/badge/version-0.6.1-126caa) ![Docker](https://img.shields.io/badge/installation-Docker-2496ED) ![Licence](https://img.shields.io/badge/licence-PolyForm%20Noncommercial-0d355d) Posture Cockpit présenté sur ordinateur et sur téléphone @@ -103,7 +103,7 @@ Avec **« Et si… ? »**, vous pouvez sélectionner plusieurs corrections (y co | **Certificats HTTPS** | Le certificat est-il valide ? Va-t-il bientôt expirer ? Les protocoles TLS et les clés répondent-ils aux exigences contrôlées ? | | **DNS** | Les serveurs de noms, DNSSEC et les règles CAA sont-ils configurés comme attendu ? | -Au total, **20 contrôles sont intégrés dans la v0.6.0**. Certains sont sans objet pour un domaine donné ; d'autres peuvent ne pas aboutir à cause d'une erreur ou d'un serveur qui ne répond pas. Posture Cockpit fait la différence entre **« non applicable »** et **« impossible à vérifier »** : il ne considère jamais un contrôle non réalisé comme réussi. +Au total, **20 contrôles sont intégrés dans la v0.6.1**. Certains sont sans objet pour un domaine donné ; d'autres peuvent ne pas aboutir à cause d'une erreur ou d'un serveur qui ne répond pas. Posture Cockpit fait la différence entre **« non applicable »** et **« impossible à vérifier »** : il ne considère jamais un contrôle non réalisé comme réussi. [Comprendre le calcul de la note et de la couverture](docs/user/SCORING.fr.md) @@ -121,7 +121,7 @@ Pour une **nouvelle installation**, ouvrez un terminal sur votre serveur : ```bash mkdir posture-cockpit && cd posture-cockpit -curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.0/compose.yaml +curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.1/compose.yaml docker compose up -d ``` @@ -135,9 +135,9 @@ Ouvrez `http://:8080/setup`, saisissez ce code et créez le **Important :** ne publiez pas cette interface directement sur Internet en HTTP. Pour un accès distant, utilisez un **proxy inverse HTTPS** correctement configuré. -Vous utilisez déjà une ancienne version ? **Ne suivez pas la procédure de nouvelle installation pour la mettre à jour.** Sauvegardez votre instance et suivez le guide prévu : le passage de la v0.4.x à la v0.5.0 ou plus récente exige des précautions concernant la base de données et l'ordonnanceur ; la v0.6.0 conserve le schéma 5. +Vous utilisez déjà une ancienne version ? **Ne suivez pas la procédure de nouvelle installation pour la mettre à jour.** Sauvegardez votre instance et suivez le guide prévu : le passage de la v0.4.x à la v0.5.0 ou plus récente exige des précautions concernant la base de données et l'ordonnanceur ; la v0.6.1 conserve le schéma 5. -📖 [Guide complet : installation, configuration, sauvegarde et mise à jour](docs/user/INSTALLATION.fr.md) · [Version publiée v0.6.0](https://github.com/vinzgithub/posture-cockpit/releases/tag/v0.6.0) +📖 [Guide complet : installation, configuration, sauvegarde et mise à jour](docs/user/INSTALLATION.fr.md) · [Version publiée v0.6.1](https://github.com/vinzgithub/posture-cockpit/releases/tag/v0.6.1) ## Ce que Posture Cockpit fait… et ne fait pas @@ -167,4 +167,4 @@ Copyright © 2026 Vincent Fournet. --- -
Posture Cockpit v0.6.0 — Comprendre ce qui protège votre domaine, et savoir quoi faire quand quelque chose manque.
\ No newline at end of file +
Posture Cockpit v0.6.1 — Comprendre ce qui protège votre domaine, et savoir quoi faire quand quelque chose manque.
\ No newline at end of file diff --git a/README.md b/README.md index 133e108..8435c34 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ **English** · [**Français**](README.fr.md) -![Version](https://img.shields.io/badge/version-0.6.0-126caa) ![Docker](https://img.shields.io/badge/install-Docker-2496ED) ![License](https://img.shields.io/badge/license-PolyForm%20Noncommercial-0d355d) +![Version](https://img.shields.io/badge/version-0.6.1-126caa) ![Docker](https://img.shields.io/badge/install-Docker-2496ED) ![License](https://img.shields.io/badge/license-PolyForm%20Noncommercial-0d355d) Posture Cockpit displayed on a computer and a phone @@ -103,7 +103,7 @@ The **“What if…?”** simulator lets you select several proposed corrections | **HTTPS certificates** | Is the certificate valid? Is it nearing expiry? What about the TLS protocols and key properties that the tool checks? | | **DNS** | Are name servers, DNSSEC and CAA records configured as expected? | -There are **20 built-in checks in v0.6.0**. Some don't apply to every domain; others may be inconclusive if a server doesn't respond. Posture Cockpit distinguishes between **“not applicable”** and **“could not be checked”**: an uncompleted check is never treated as a success. +There are **20 built-in checks in v0.6.1**. Some don't apply to every domain; others may be inconclusive if a server doesn't respond. Posture Cockpit distinguishes between **“not applicable”** and **“could not be checked”**: an uncompleted check is never treated as a success. [How scores and coverage are calculated](docs/user/SCORING.md) @@ -121,7 +121,7 @@ For a **new installation**, run: ```bash mkdir posture-cockpit && cd posture-cockpit -curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.0/compose.yaml +curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.1/compose.yaml docker compose up -d ``` @@ -135,9 +135,9 @@ Open `http://:8080/setup`, enter the code and create the adminis **Important:** don't expose the application to the public Internet over plain HTTP. Use a properly configured **HTTPS reverse proxy** for remote access. -Already running an older version? **Don't use the new-install steps as an upgrade guide.** Back up your existing installation and follow the documented process. A transition from v0.4.x to v0.5.0 or later needs special care around the database schema and scheduler; v0.6.0 keeps schema 5. +Already running an older version? **Don't use the new-install steps as an upgrade guide.** Back up your existing installation and follow the documented process. A transition from v0.4.x to v0.5.0 or later needs special care around the database schema and scheduler; v0.6.1 keeps schema 5. -📖 [Full installation, configuration, backup and upgrade guide](docs/user/INSTALLATION.md) · [Published v0.6.0 release](https://github.com/vinzgithub/posture-cockpit/releases/tag/v0.6.0) +📖 [Full installation, configuration, backup and upgrade guide](docs/user/INSTALLATION.md) · [Published v0.6.1 release](https://github.com/vinzgithub/posture-cockpit/releases/tag/v0.6.1) ## What Posture Cockpit does — and doesn't do @@ -167,4 +167,4 @@ Copyright © 2026 Vincent Fournet. --- -
Posture Cockpit v0.6.0 — Understand what protects your domain, and what to do when something is missing.
\ No newline at end of file +
Posture Cockpit v0.6.1 — Understand what protects your domain, and what to do when something is missing.
\ No newline at end of file diff --git a/compose.yaml b/compose.yaml index 55c1768..21b93aa 100644 --- a/compose.yaml +++ b/compose.yaml @@ -3,7 +3,7 @@ # # Posture Cockpit with Docker Compose (2.24 or later). Installation, in an empty folder: # -# curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.0/compose.yaml +# curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.1/compose.yaml # docker compose up -d # # then open http://:8080/setup with the setup code of: docker compose logs posture-cockpit diff --git a/docs/user/INSTALLATION.fr.md b/docs/user/INSTALLATION.fr.md index d5753c7..39ba5ad 100644 --- a/docs/user/INSTALLATION.fr.md +++ b/docs/user/INSTALLATION.fr.md @@ -4,17 +4,17 @@ ## Avec Docker (recommandé) -**Nouvelle installation uniquement :** ces commandes créent une instance neuve en **v0.6.0**. Si vous avez déjà des données v0.4.1 ou antérieures, suivez la [mise à jour](#mise-à-jour), exportez une sauvegarde vérifiée hors du volume Docker et désactivez l'ordonnanceur avant la migration. La v0.6.0 conserve le schéma SQLite 5 ; revenir au schéma 4 nécessite une restauration. +**Nouvelle installation uniquement :** ces commandes créent une instance neuve en **v0.6.1**. Si vous avez déjà des données v0.4.1 ou antérieures, suivez la [mise à jour](#mise-à-jour), exportez une sauvegarde vérifiée hors du volume Docker et désactivez l'ordonnanceur avant la migration. La v0.6.1 conserve le schéma SQLite 5 ; revenir au schéma 4 nécessite une restauration. Il faut Docker Engine et **Docker Compose 2.24 ou plus récent** (`docker compose version`). Rien à compiler, pas besoin de Git : l'image officielle est publiée sur `ghcr.io/vinzgithub/posture-cockpit`, pour les processeurs amd64 et arm64. ```bash mkdir posture-cockpit && cd posture-cockpit -curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.0/compose.yaml +curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.1/compose.yaml docker compose up -d ``` -Le fichier [`compose.yaml`](../../compose.yaml) désigne une version précise de l'image (`0.6.0`), jamais `latest` : une installation ne change pas de version toute seule. Il garde les protections : utilisateur sans privilèges (uid 10001), système en lecture seule, aucune capacité Linux, `no-new-privileges`, `/tmp` en mémoire. Les données vont dans le volume `posture-cockpit_posture-cockpit-data`, quel que soit le dossier d'installation. +Le fichier [`compose.yaml`](../../compose.yaml) désigne une version précise de l'image (`0.6.1`), jamais `latest` : une installation ne change pas de version toute seule. Il garde les protections : utilisateur sans privilèges (uid 10001), système en lecture seule, aucune capacité Linux, `no-new-privileges`, `/tmp` en mémoire. Les données vont dans le volume `posture-cockpit_posture-cockpit-data`, quel que soit le dossier d'installation. ### Premier démarrage : le code d'initialisation @@ -32,7 +32,7 @@ Pour une installation automatisée, `POSTURE_COCKPIT_SETUP_CODE` fixe le code (1 ### Vérifier ```bash -curl http://localhost:8080/healthz # {"status":"ok","version":"0.6.0"} +curl http://localhost:8080/healthz # {"status":"ok","version":"0.6.1"} docker compose exec posture-cockpit posture-cockpit info # version, schéma, comptes, analyses ``` @@ -41,7 +41,7 @@ docker compose exec posture-cockpit posture-cockpit info # version, schéma, co Ne modifiez pas `compose.yaml` : une mise à jour le remplace. Les réglages vont dans un fichier `.env` facultatif, à côté de lui ; le modèle [`.env.example`](../../.env.example) les décrit tous, en commentaire : ```bash -curl -fsSL https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.0/.env.example -o .env +curl -fsSL https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.1/.env.example -o .env nano .env # décommentez les lignes utiles docker compose up -d # applique les changements ``` @@ -201,7 +201,7 @@ La clé de session étant restaurée, les sessions ouvertes restent valides ; le 2. Remplacez `compose.yaml` par celui de la nouvelle version, puis redémarrez : ```bash -curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.0/compose.yaml # la version voulue +curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.1/compose.yaml # la version voulue docker compose up -d docker compose exec posture-cockpit posture-cockpit info ``` @@ -327,6 +327,6 @@ docker compose exec posture-cockpit posture-cockpit disable-totp docker compose exec posture-cockpit posture-cockpit make-admin ``` -### Retour entre versions au schéma 5 (v0.5.0, v0.6.0 et candidate v0.6.1) +### Retour entre versions au schéma 5 (v0.5.0, v0.6.0 et v0.6.1) -Avant tout changement d’image : sauvegarde vérifiée hors du volume, ordonnanceur désactivé, arrêt propre de l’instance. Le schéma 5 reste identique : le retour à une image officielle épinglée peut réutiliser le volume courant sans restaurer une ancienne sauvegarde. Les données créées après la mise à niveau doivent être conservées. La v0.5.0 retrouve ses anciennes projections, notamment DMARC, sans changer les notes observées. Tester ce retour sur copie isolée ; ne jamais démarrer simultanément deux instances sur le volume. Le retour au schéma 4 reste une autre procédure exigeant une restauration. Aucun tag/image v0.6.1 n’est annoncé comme publié par ce guide. +Avant tout changement d’image : sauvegarde vérifiée hors du volume, ordonnanceur désactivé, arrêt propre de l’instance. Le schéma 5 reste identique : le retour à une image officielle épinglée peut réutiliser le volume courant sans restaurer une ancienne sauvegarde. Les données créées après la mise à niveau doivent être conservées. La v0.5.0 retrouve ses anciennes projections, notamment DMARC, sans changer les notes observées. Tester ce retour sur copie isolée ; ne jamais démarrer simultanément deux instances sur le volume. Le retour au schéma 4 reste une autre procédure exigeant une restauration. diff --git a/docs/user/INSTALLATION.md b/docs/user/INSTALLATION.md index 3e415fa..61356e7 100644 --- a/docs/user/INSTALLATION.md +++ b/docs/user/INSTALLATION.md @@ -4,17 +4,17 @@ ## With Docker (recommended) -**Fresh installations only:** these commands create a new **v0.6.0** instance. If you already have data from v0.4.1 or earlier, follow [Updating](#updating), make a verified backup outside the Docker volume and disable the scheduler before upgrading. v0.6.0 retains SQLite schema 5; changing the image alone does not downgrade a database. +**Fresh installations only:** these commands create a new **v0.6.1** instance. If you already have data from v0.4.1 or earlier, follow [Updating](#updating), make a verified backup outside the Docker volume and disable the scheduler before upgrading. v0.6.1 retains SQLite schema 5; changing the image alone does not downgrade a database. You need Docker Engine and **Docker Compose 2.24 or later** (`docker compose version`). Nothing to build, no Git: the official image is published on `ghcr.io/vinzgithub/posture-cockpit`, for amd64 and arm64 processors. ```bash mkdir posture-cockpit && cd posture-cockpit -curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.0/compose.yaml +curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.1/compose.yaml docker compose up -d ``` -The [`compose.yaml`](../../compose.yaml) file names an exact version of the image (`0.6.0`), never `latest`: an installation never changes version on its own. It keeps the protections: unprivileged user (uid 10001), read-only system, no Linux capability, `no-new-privileges`, `/tmp` in memory. The data goes to the volume `posture-cockpit_posture-cockpit-data`, whatever the installation folder. +The [`compose.yaml`](../../compose.yaml) file names an exact version of the image (`0.6.1`), never `latest`: an installation never changes version on its own. It keeps the protections: unprivileged user (uid 10001), read-only system, no Linux capability, `no-new-privileges`, `/tmp` in memory. The data goes to the volume `posture-cockpit_posture-cockpit-data`, whatever the installation folder. ### First start: the setup code @@ -32,7 +32,7 @@ For an automated installation, `POSTURE_COCKPIT_SETUP_CODE` sets the code (at le ### Check ```bash -curl http://localhost:8080/healthz # {"status":"ok","version":"0.6.0"} +curl http://localhost:8080/healthz # {"status":"ok","version":"0.6.1"} docker compose exec posture-cockpit posture-cockpit info # version, schema, accounts, scans ``` @@ -41,7 +41,7 @@ docker compose exec posture-cockpit posture-cockpit info # version, schema, acc Do not edit `compose.yaml`: an update replaces it. Settings go in an optional `.env` file next to it; the [`.env.example`](../../.env.example) template describes them all, commented out: ```bash -curl -fsSL https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.0/.env.example -o .env +curl -fsSL https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.1/.env.example -o .env nano .env # uncomment the lines you need docker compose up -d # applies the changes ``` @@ -201,7 +201,7 @@ As the session key is restored, open sessions stay valid; accounts, two-factor a 2. Replace `compose.yaml` with the one of the new version, then restart: ```bash -curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.0/compose.yaml # the version you want +curl -fsSLO https://raw.githubusercontent.com/vinzgithub/posture-cockpit/v0.6.1/compose.yaml # the version you want docker compose up -d docker compose exec posture-cockpit posture-cockpit info ``` @@ -327,6 +327,6 @@ docker compose exec posture-cockpit posture-cockpit disable-totp # docker compose exec posture-cockpit posture-cockpit make-admin ``` -### Returning between schema-5 versions (v0.5.0, v0.6.0 and v0.6.1 candidate) +### Returning between schema-5 versions (v0.5.0, v0.6.0 and v0.6.1) -Before changing images: verify a backup outside the volume, disable scheduling and stop the instance cleanly. Schema 5 is unchanged: a pinned official older image can reuse the current volume without restoring an earlier backup. Data created after the upgrade must remain available. v0.5.0 shows its older projections, including DMARC, while observed scores remain unchanged. Test on an isolated copy; never run two instances concurrently on that volume. Returning to schema 4 still requires a separate restore procedure. This guide does not claim a v0.6.1 tag/image has been published. +Before changing images: verify a backup outside the volume, disable scheduling and stop the instance cleanly. Schema 5 is unchanged: a pinned official older image can reuse the current volume without restoring an earlier backup. Data created after the upgrade must remain available. v0.5.0 shows its older projections, including DMARC, while observed scores remain unchanged. Test on an isolated copy; never run two instances concurrently on that volume. Returning to schema 4 still requires a separate restore procedure. From 7c7a41b60c538c9dc1d9869f3753c2884dc0f9f5 Mon Sep 17 00:00:00 2001 From: Vincent <87431839+vinzgithub@users.noreply.github.com> Date: Sat, 24 Oct 2026 21:16:56 +0200 Subject: [PATCH 2/3] docs(v0.6.1): record validated GitHub and GHCR publication --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8377858..f110e13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 0.6.1 — en préparation (non publiée) +## 0.6.1 — 2026-10-24 (publié sur GitHub et GHCR) - Projections du plan/PDF conditionnelles ou explicitement non concluantes ; aucun grade absent ni objectif de dégradation. - Attentes des étapes MTA-STS/TLS conservatrices, y compris perte possible du HTTPS moderne. @@ -9,7 +9,7 @@ - Recette image officielle v0.5.0/v0.6.0 ↔ candidate à schéma 5, libellés FR/EN et compteur de priorités corrigés. - Rapports de démonstration PDF FR/EN, génération reproductible sans réseau. - Notes observées inchangées ; génération 4, schéma 5, API, événements et sécurité réseau conservés. -- Aucun tag, release, publication GHCR ou déploiement autorisé implicitement. +**Publication :** PR #33 à #39 fusionnées dans `main` (commit `641f1dbde97e5e0166101f2c9c4f52b0ee6177fb`), puis tag et GitHub Release [v0.6.1](https://github.com/vinzgithub/posture-cockpit/releases/tag/v0.6.1). Le [workflow de publication GHCR #40123536677](https://github.com/vinzgithub/posture-cockpit/actions/runs/40123536677) a terminé ses 12 jobs avec succès, dont la recette AMD64 et le démarrage ARM64 émulé. Les tags `0.6.1`, `0.6` et `latest` ont été relus dans le registre et pointent vers le digest unique `sha256:f670500db50aff70b535a82ec0692660888f6b6387fbe25823feeb0a15d6f069`. **La publication n'entraîne aucun déploiement ni mise à jour des instances existantes.** Voir `docs/developer/RELEASE_V061.fr.md`. ## 0.6.0 — 2026-10-24 (publié sur GitHub et GHCR) From b132252e6dcf7b4f4c9c579417c75041d9286793 Mon Sep 17 00:00:00 2001 From: Vincent <87431839+vinzgithub@users.noreply.github.com> Date: Sat, 24 Oct 2026 21:16:58 +0200 Subject: [PATCH 3/3] docs(v0.6.1): finalize release evidence and registry digests --- docs/developer/RELEASE_V061.fr.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/developer/RELEASE_V061.fr.md b/docs/developer/RELEASE_V061.fr.md index 4806d42..d56b170 100644 --- a/docs/developer/RELEASE_V061.fr.md +++ b/docs/developer/RELEASE_V061.fr.md @@ -1,6 +1,6 @@ -# Posture Cockpit v0.6.1 — dossier de candidate +# Posture Cockpit v0.6.1 — dossier de livraison -**État : candidate développée et recette validée, non publiée — 24 octobre 2026.** Aucun tag, release, publication GHCR ni déploiement réalisé. Le mainteneur a autorisé le développement après validation technique du cahier des charges révision 3 par Claude. Une autorisation de publication reste distincte. +**État : version v0.6.1 validée et publiée le 24 octobre 2026 sur GitHub et GHCR.** Cahier des charges révision 3 validé techniquement par Claude ; intégration et publication approuvées par le mainteneur. **Aucun déploiement ni mise à jour d'une instance existante n'a été effectué.** ## Périmètre livré @@ -14,7 +14,7 @@ | 6 | #38 | Gain exact, événements vides, compteur de priorités | | 7 | #39 | Rapports fictifs FR/EN, guides, preuves et marqueurs de version 0.6.1 | -Les PR sont empilées : chacune cible la branche du lot précédent. Elles doivent être intégrées dans cet ordre sans réécrire l'historique. Les commits distants sont attribués au compte `vinzgithub`, sans co-auteur. Aucun merge implicite n'a été effectué pendant la préparation de ce dossier. +Les sept PR #33 à #39 ont été préparées en branches empilées, puis intégrées dans cet ordre à `main` avec l'accord explicite du mainteneur, sans réécrire l'historique. Le dernier merge est le commit `641f1dbde97e5e0166101f2c9c4f52b0ee6177fb`, identique au tag `v0.6.1`. Les commits distants sont attribués au compte `vinzgithub`, sans co-auteur. ## Invariants et décisions @@ -54,14 +54,19 @@ Le code cumulé de #33–#38 et les compléments de #39 sont validés. Les premi - ARM64 : build et démarrage émulé « quick » existants, dans le dry run du workflow release. **Limite : pas de F08 complète ARM64**, conformément à la spécification. - Aucun test manuel avec lecteur d'écran réel n'est revendiqué. Docker n'est pas disponible dans l'environnement local : seule Actions peut fournir ici la preuve au niveau image. -## Procédure de retour prévue +## Procédure de retour documentée (sur copie isolée) -Sur copie isolée : sauvegarde vérifiée hors volume, ordonnanceur off, arrêt propre, image officielle v0.5.0 épinglée par digest sur le volume courant (schéma 5), contrôle de `info`, connexion/lecture/écriture et intégrité, arrêt puis remontée candidate. Les projections anciennes DMARC de v0.5.0 peuvent réapparaître, pas une divergence des notes observées. Ne pas confondre ce retour avec le retour schéma 5→4 qui exige une restauration et perd les données post-sauvegarde. +Sur copie isolée : sauvegarde vérifiée hors volume, ordonnanceur off, arrêt propre, image officielle v0.5.0 épinglée par digest sur le volume courant (schéma 5), contrôle de `info`, connexion/lecture/écriture et intégrité, arrêt puis remontée de l'image v0.6.1. Les projections anciennes DMARC de v0.5.0 peuvent réapparaître, pas une divergence des notes observées. Ne pas confondre ce retour avec le retour schéma 5→4 qui exige une restauration et perd les données post-sauvegarde. Digest officiel v0.5.0 résolu directement auprès de GHCR : `sha256:c8dacc1e82646562a3a386ba850a8dca785df5ceee98bf9910ba74eef67a5651`. Image v0.6.0 : digest conservé de la publication vérifiée `sha256:70da24128abef742dc4649235d662a37596ed786a322d840c85aa02afc2fe633`. La CI vérifie aussi la version embarquée. -## Publication séparée +## Intégration et publication effectives -Les marqueurs sources (`pyproject.toml`, `__init__.py`, valeur par défaut Compose) sont préparés en 0.6.1 pour une candidate cohérente. Les commandes publiques des README et guides restent épinglées au tag publié v0.6.0. Pour tester la candidate, fournir une image locale/CI via `POSTURE_COCKPIT_IMAGE` ; ne pas prétendre que `ghcr.io/vinzgithub/posture-cockpit:0.6.1` existe déjà. +- **Intégration :** PR #33 à #39 fusionnées avec autorisation du mainteneur ; `main` et le tag `v0.6.1` pointent vers `641f1dbde97e5e0166101f2c9c4f52b0ee6177fb`. Le commit rassemble la candidate validée et ses preuves documentaires. +- **GitHub :** [release v0.6.1](https://github.com/vinzgithub/posture-cockpit/releases/tag/v0.6.1) publiée. +- **Publication GHCR distincte :** [workflow manuel #40123536677](https://github.com/vinzgithub/posture-cockpit/actions/runs/40123536677) **réussi**, 12 jobs terminés sans échec : tests Python 3.11–3.13, Chromium, Docker et migrations/retour arrière, recette AMD64 et démarrage ARM64 émulé, garde de version et lecture retour des tags. +- **Image multi-architecture :** `ghcr.io/vinzgithub/posture-cockpit:0.6.1`, digest `sha256:f670500db50aff70b535a82ec0692660888f6b6387fbe25823feeb0a15d6f069`. Les tags `0.6.1`, `0.6` et `latest` ont tous été relus avec ce même digest lors du workflow, après la publication du manifeste AMD64/ARM64. +- **Documentation :** PR #40 préparée pour synchroniser README FR/EN, guides et liens d'installation sur le tag publié `v0.6.1`, sans modification fonctionnelle du Compose. +- **Exploitation :** aucune instance existante n'est automatiquement migrée par la publication. Sauvegarde vérifiée et procédure de mise à niveau sont obligatoires avant une éventuelle intervention en production. -La recette est acceptée techniquement au SHA ci-dessus ; les sept PR restent ouvertes pour la décision d’intégration du mainteneur. Présenter le SHA, les PR et les preuves avant fusion et publication. Tag, GitHub Release, publication GHCR et déploiement nécessitent son autorisation explicite. La CI sur PR n'utilise qu'un registre de test local pour son dry run de publication. +La recette F08 complète a été exécutée sur AMD64. ARM64 a été compilée et démarrée sous émulation, sans revendication de recette F08 complète sur cette architecture. Aucun test manuel avec lecteur d'écran réel n'est revendiqué.