refonte(pc-mirror) : le legacy disparaît — l'interface écrite à la main, et son serveur #18

Merged
foXaCe merged 1 commit from refonte/sans-legacy into main 2026-10-17 16:23:03 +02:00
Owner

Ce que fait cette branche

Le dépôt portait encore tout l'appareil de l'ancienne interface Python alors que le service est en Rust
depuis la pose du 108. 2 828 lignes s'en vont, et rien ne s'en servait plus.

Fichier Lignes Rôle
status-server/server.py 893 le serveur Python de référence
crates/pcmirror-serveur/src/pages.rs 1 067 les pages écrites à la main
crates/pcmirror-serveur/src/assets.rs 315 leur feuille de style, engendrée
tests/fixtures/capturer_local.py 418 la capture hors ligne
tests/fixtures/extraire_assets.py 135 l'engendreur d'assets.rs
docs/COMPORTEMENT.md — il décrivait le serveur Python retiré

Partent avec : le mode PCMIRROR_FRONT (OrigineFront, le champ de configuration, VueTableau),
page_tableau/page_fichiers, l'en-tête Python attendu par le contrôle de référence, et les bancs de
page. Le service ne sert plus qu'une page — la Svelte embarquée — ou dit qu'il n'en porte pas (503).

/files redirige

L'explorateur écrit à la main n'existe plus ; la vue Svelte le remplace sous /fichiers. Plutôt que de
casser les liens en circulation (favoris, onglets ouverts, journaux), /files redirige vers
/fichiers, dossier compris — et l'exclusion renvoie au même endroit.

entete_telechargement vivait dans pages.rs sans être une page : elle passe dans format.rs.

Le contrat ne bouge pas, ses captures si

Le jeu de sondes mesuré sur le Python (status-server-local/attendu.json) reste le contrat : c'est
ce que cargo test rejoue, et il n'a pas changé — sauf les cinq sondes /files, qui passent de
200/400/500 à 303. Les captures brutes sont re-mesurées sur le service qui tourne désormais, et
l'exigence d'en-tête Server: BaseHTTP/0.6 Python/ disparaît : elle enfermait le contrat sur un serveur
qui n'existe plus.

La CI

Le job reference perd ses deux étapes Python devenues sans objet (py_compile des fichiers supprimés,
capturer_local.py --verifier). Les deux vérificateurs qui lisent le jeu figé restent.

Vérifications

  • 178 tests verts — les 17 des pages s'en vont avec elles — avec et sans frontend/dist (la
    condition de la CI, où le service rend 503 au lieu de la page).
  • Couverture 90,75 % (seuil 80), Clippy muet, formatage propre.
  • Les deux contrôles de référence : 21/21 en ligne, 17/17 hors ligne.
  • La capture des dix-huit sondages a été faite sur le service de cette branche, monté sur un miroir
    factice : aucun accès au miroir réel, et _exclusions.txt vérifié inchangé.

Après fusion

La livraison repose le service sur le 108 — avec le correctif de pose renommée (#15), qui rend
l'opération reproductible.

## Ce que fait cette branche Le dépôt portait encore tout l'appareil de l'ancienne interface Python alors que le service est en Rust depuis la pose du 108. **2 828 lignes s'en vont**, et rien ne s'en servait plus. | Fichier | Lignes | Rôle | | --- | --- | --- | | `status-server/server.py` | 893 | le serveur Python de référence | | `crates/pcmirror-serveur/src/pages.rs` | 1 067 | les pages écrites à la main | | `crates/pcmirror-serveur/src/assets.rs` | 315 | leur feuille de style, **engendrée** | | `tests/fixtures/capturer_local.py` | 418 | la capture hors ligne | | `tests/fixtures/extraire_assets.py` | 135 | l'engendreur d'`assets.rs` | | `docs/COMPORTEMENT.md` | — | il décrivait le serveur Python retiré | Partent avec : le mode `PCMIRROR_FRONT` (`OrigineFront`, le champ de configuration, `VueTableau`), `page_tableau`/`page_fichiers`, l'en-tête Python attendu par le contrôle de référence, et les bancs de page. Le service ne sert plus qu'une page — la Svelte embarquée — ou dit qu'il n'en porte pas (`503`). ### `/files` redirige L'explorateur écrit à la main n'existe plus ; la vue Svelte le remplace sous `/fichiers`. Plutôt que de casser les liens en circulation (favoris, onglets ouverts, journaux), `/files` **redirige** vers `/fichiers`, dossier compris — et l'exclusion renvoie au même endroit. `entete_telechargement` vivait dans `pages.rs` sans être une page : elle passe dans `format.rs`. ### Le contrat ne bouge pas, ses captures si Le jeu de sondes mesuré sur le Python (`status-server-local/attendu.json`) reste **le contrat** : c'est ce que `cargo test` rejoue, et il n'a pas changé — sauf les cinq sondes `/files`, qui passent de `200`/`400`/`500` à `303`. Les captures brutes sont re-mesurées sur le service qui tourne désormais, et l'exigence d'en-tête `Server: BaseHTTP/0.6 Python/` disparaît : elle enfermait le contrat sur un serveur qui n'existe plus. ### La CI Le job `reference` perd ses deux étapes Python devenues sans objet (`py_compile` des fichiers supprimés, `capturer_local.py --verifier`). Les deux vérificateurs qui lisent le jeu figé restent. ## Vérifications - **178 tests verts** — les 17 des pages s'en vont avec elles — **avec et sans `frontend/dist`** (la condition de la CI, où le service rend 503 au lieu de la page). - Couverture **90,75 %** (seuil 80), Clippy muet, formatage propre. - Les deux contrôles de référence : **21/21** en ligne, **17/17** hors ligne. - La capture des dix-huit sondages a été faite sur le service de cette branche, monté sur un miroir factice : aucun accès au miroir réel, et `_exclusions.txt` vérifié inchangé. ## Après fusion La livraison repose le service sur le 108 — avec le correctif de pose renommée (#15), qui rend l'opération reproductible.
refonte(pc-mirror) : le legacy disparaît — l'interface écrite à la main, et son serveur
All checks were successful
Contrôles des références / Références du comportement (pull_request) Successful in 1s
Contrôles des références / Crate pcmirror (formatage, Clippy, tests) (pull_request) Successful in 1m17s
Contrôles des références / Livraison (style des scripts, essai à blanc) (pull_request) Successful in 3s
Contrôles des références / Front d'état (types, lint, format, tests, build, bout en bout) (pull_request) Successful in 38s
d3e7640f6f
Le service d'état est en Rust depuis la pose du 108 ; le dépôt portait encore tout
l'appareil de l'ancienne interface Python, et plus rien ne s'en servait.

Ce qui part — **2 828 lignes** :

- `status-server/server.py` (893) : le serveur Python de référence ;
- `crates/pcmirror-serveur/src/pages.rs` (1 067) : les pages écrites à la main ;
- `crates/pcmirror-serveur/src/assets.rs` (315) : leur feuille de style, engendrée ;
- `tests/fixtures/extraire_assets.py` (135) et `tests/fixtures/capturer_local.py`
  (418) : l'engendreur et la capture hors ligne ;
- `docs/COMPORTEMENT.md` : il décrivait le serveur Python retiré.

Ce qui part avec : le mode `PCMIRROR_FRONT` (`OrigineFront`, le champ de
configuration, `VueTableau`), `page_tableau`/`page_fichiers`, et les bancs de page.
Le service ne sert plus qu'une page — la Svelte embarquée — ou dit qu'il n'en
porte pas (`503`).

`/files` menait à l'explorateur écrit à la main : il **redirige** vers
`/fichiers`, dossier compris, pour ne pas casser les liens en circulation.
L'exclusion renvoie au même endroit. L'en-tête `Content-Disposition` du
téléchargement, qui vivait dans `pages.rs` sans être une page, passe dans
`format.rs`.

Le jeu de sondes mesuré sur le Python (`status-server-local/attendu.json`) reste
le contrat : c'est ce que `cargo test` rejoue. Ses cinq sondes `/files` passent de
`200`/`400`/`500` à `303`, et les captures brutes sont re-mesurées sur le service
qui tourne désormais — l'exigence d'en-tête `Server: BaseHTTP/0.6 Python/`
disparaît, elle enfermait le contrat sur un serveur qui n'existe plus.

Le job `reference` de la CI perd ses deux étapes Python devenues sans objet ; les
deux vérificateurs qui lisent le jeu figé restent.

Vérifié : **178 tests verts** (les 17 des pages s'en vont avec elles), avec et
sans `frontend/dist`, couverture 90,75 %, Clippy muet, et les deux contrôles de
référence conformes — 21/21 en ligne, 17/17 hors ligne.
foXaCe merged commit 52b88e5617 into main 2026-10-17 16:23:03 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
foXaCe/pc-mirror!18
No description provided.