docs: resynchroniser roadmap et sprints sur l'etat reel - #77
Conversation
ROADMAP.md datait du 2026-08-04 et avait derive : - ICMP et SSH figuraient encore dans l'ordre recommande alors qu'ils sont livres et en attente de publication ; deplaces dans une liste « livres, non publies » avec leur limite connue. - Le tableau d'epics ne signalait pas que #56 et #70 sont bloques par #74, ni que #47 est clos dans #46. #74 devient la priorite : tant que The-Ultimate-PCAP.pcapng compte zero trame, #56 et #70 travaillent sur un corpus ampute et #68/#69 n'ont pas leurs trames de reference. - Nouvelle section 1 bis renvoyant vers l'epic #76, qui regroupe les trois ruptures d'API en attente (#21 non_exhaustive, #24 variantes TcpError, #48 variante QuicPacketType::Unknown) plutot que de declencher trois majeures successives. sprint_02.md passe de « actif » a « termine ». Ses deux dernieres cases de definition de termine ont ete verifiees a cette date : - cargo fmt --check passe ; - les sept cibles de fuzz rejouent leur corpus de regression sans une seule panique (cargo +nightly fuzz run <cible> -- -runs=0), soit 9 898 entrees. La matrice de support cible est fermee par decoder_for (src/parse/link/mod.rs:51) : Ethernet, RAW, IPV4, IPV6, SLL, SLL2 cables, tout autre LINKTYPE preserve puis refuse par UnsupportedLinkType. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
La validation des bits reserves QUIC est tranchee comme non applicable : les bits 2-3 sont sous header protection (RFC 9001 §5.4), donc illisibles sans les cles de handshake. #48 est fermee ; la suppression de la variante morte reste portee par #76. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cf04dcc010
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| > Statut : **termine** le 2026-08-15. Les quinze criteres de la « definition de | ||
| > termine » sont satisfaits ; les deux derniers (`cargo fmt --check` et le | ||
| > rejeu sans panique des cibles de fuzz) ont ete verifies a cette date. |
There was a problem hiding this comment.
Keep the sprint open until the delivery gate is met
Do not mark this sprint complete while its own Phase 1 checklist still leaves the final link-layer error contract unfinished (sprint_02.md:180) and the delivery rule explicitly prohibits release until that contract is applied (sprint_02.md:540-542). The implementation confirms this is not merely a stale checkbox: src/errors/link_layer.rs:12-14 says Ethernet still uses the historical error conversion. Combined with the new claim that no sprint is active, this drops required release work from the active plan; either complete the contract or retain an active sprint.
Useful? React with 👍 / 👎.
| Livres depuis le cadrage de cette liste, non encore publies : | ||
|
|
||
| - **ICMP** — ICMPv4 et ICMPv6, dont Router Solicitation / Advertisement. | ||
| - **SSH** — sur les trames de banniere. Limite connue consignee au |
There was a problem hiding this comment.
Remove delivered protocols from the proposed backlog
Update the protocol backlog when declaring ICMP and SSH delivered here. The same roadmap still lists ICMP under “Nouveaux protocoles proposes” and says it is “jamais decode” (ROADMAP.md:83), while SSH remains a proposed Tier 3 protocol (ROADMAP.md:106). These mutually exclusive statuses can cause roadmap readers to schedule already-completed work instead of the remaining priorities.
Useful? React with 👍 / 👎.
…vite sprint_02 etait annonce « termine » sur la seule foi de sa definition de termine. Sa phase 1 gardait pourtant une case non cochee — « remplacer les erreurs de liaison provisoires par le contrat final » — et elle est bien non tenue. ParseError porte deux chemins paralleles pour la meme responsabilite : InvalidDataLink(DataLinkError) pour Ethernet, historique et sans non_exhaustive, et InvalidLinkLayer(LinkLayerError) pour RAW/SLL/SLL2, qui applique le contrat final. Le doc-comment de LinkLayerError acte lui-meme la dette. Le traitement d'une erreur de liaison depend donc encore du LINKTYPE recu, ce que le sprint visait a supprimer. Les unifier modifie une surface publique : rupture, hors fenetre de stabilite. Reverse dans #76. Le statut du sprint devient « solde sur sa definition de termine, avec un reliquat identifie » plutot que « termine » tout court. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
La PR de sync (#77) a ete mergee avant celle du correctif (#78), si bien que la roadmap designait encore #74 comme priorite et comme bloquant de #56 et #70, alors qu'il etait clos dans la foulee. #74 est clos : scan_pcaps resout le LINKTYPE par paquet, et trois captures sortent de l'invisibilite (The-Ultimate-PCAP.pcapng 0 -> 51328, capwap-only.pcapng et capwap-association-valid.pcapng 0 -> 2). Le corpus n'est rendu qu'aux quatre cinquiemes : les 10667 trames en LINKTYPE 274 restent indecodees, soit 21 % de The-Ultimate-PCAP.pcapng. #79 devient donc le prealable restant a #56 — ces trames portent 2403 ICMPv6, 818 VRRP, 777 GLBP, 678 IS-IS et 599 NTP, dont plusieurs sans autre source de trames reelles dans le depot. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Volet local du sync demande. Le volet GitHub est deja applique : epic #76
cree, #21 fermee, #23 et #48 commentees.
ROADMAP.md
Le fichier datait du 2026-08-04 et avait derive sur trois points.
ICMP et SSH etaient encore dans « ordre recommande » alors qu'ils sont
livres et en attente de publication. Deplaces dans une liste « livres, non
publies », avec la limite connue de SSH (huit trames de banniere identifiees
sur les 542 qu'un dissecteur a etat etiquette SSH).
Le tableau d'epics ne signalait aucune dependance. #56 et #70 sont
bloques par #74, et #47 est desormais clos dans #46. #74 devient la priorite
explicite : tant que
examples/scan_pcaps.rs:70appelleget_datalink()uneseule fois sur un pcapng a 313 IDB,
The-Ultimate-PCAP.pcapngcompte zerotrame, #56 et #70 travaillent sur un corpus ampute, et #68/#69 n'ont pas
leurs trames de reference.
Nouvelle section 1 bis renvoyant vers l'epic #76, qui regroupe les trois
ruptures d'API en attente (#21
non_exhaustive, #24 variantesTcpError,#48 variante
QuicPacketType::Unknown). Elles etaient eparpillees et chacuneen tension silencieuse avec la regle de fenetre de stabilite du §4.
sprint_02.md
Passe de « actif » a termine. Il restait deux cases non cochees dans sa
definition de termine ; toutes deux ont ete verifiees a cette date :
cargo fmt --checkpasse ;panique —
cargo +nightly fuzz run <cible> -- -runs=0surparse_application,parse_cotp,parse_dns,parse_linktype,parse_packetflow,parse_quicetparse_s7comm, soit 9 898 entrees,exit 0.
La matrice de support cible est bien fermee :
decoder_for(
src/parse/link/mod.rs:51) cable Ethernet (1), RAW (101), IPV4 (228),IPV6 (229), SLL (113) et SLL2 (276) ; tout autre LINKTYPE, Bluetooth H4 (201)
inclus, est preserve puis refuse par
UnsupportedLinkType.Plus aucun sprint actif.
🤖 Generated with Claude Code