Skip to content

bxc 0.9.6 — audit du module wiki

Choose a tag to compare

@aphrody-code aphrody-code released this 06 Sep 07:58
· 5 commits to main since this release

Un seul commit depuis v0.9.5 : l'audit du module bxc wikidouze défauts mesurés, une couche de service partagée sans argv ni process.exit, 46 tests.

Les trois défauts les plus coûteux

  • redirects=1 manquait à action=parse. Une page atteinte par un alias rendait un moignon de 1 010 o là où la page en fait 519 579 — et ces 1 010 o passaient la garde des 200 caractères, donc étaient servis comme un succès.
  • parserInfobox bouclait à l'infini sur une infobox non fermée (re.lastIndex reposé sur la position déjà examinée) : une page tronquée figeait la CLI. Non-régression bornée à 500 ms.
  • Le limiteur de débit ne limitait rien en concurrence : il lisait la date, dormait, puis l'écrivait — N appels simultanés lisaient la même date et repartaient ensemble. Réservation désormais synchrone (0 / 6 000 / 12 000 ms vérifiés).

Les autres : tableaux imbriqués absorbés, <br> collant deux valeurs, decodeURIComponent levant sur un titre à pourcent, préfixes de langue régionaux (pt-br, zh-tw, es-419) partant sur le wiki anglais, ?title= visant /api.php au lieu de /w/api.php, --out polluant la requête de find, Bun.stdout.write non attendu, --proxy et --insecure jetés.

Ajouté

  • src/crawler/wiki-service.ts — couche de capacités partagée entre la CLI et le serveur MCP.
  • Vérification des images contre le SHA-1 publié par le wiki : un CDN qui rend 200 avec une page d'erreur produisait un .png illisible que rien ne signalait.
  • --compress en zstd : 521 843 o → 51 656 o en 1,5 ms (×10,1 ; gzip fait ×9,6 en 3,4 ms).

Note de publication

npm était resté à 0.9.0 : les versions 0.9.1 à 0.9.5 n'avaient jamais été publiées alors que leurs tags existent. Cette release les livre toutes, avec les 15 sous-paquets @aphrody/* que la racine épingle à la version exacte.

Vérifié avant publication : bun run test = 1 390 pass, 33 skip, 0 fail ; bun run typecheck = 0.

Les artefacts multi-plateformes ne sont pas joints : GitHub Actions est verrouillé pour un problème de facturation sur le compte, les workflows publish et release n'ont pas démarré. La publication npm a donc été faite depuis la machine de développement, par scripts/publish-workspaces.ts16 paquets publiés, 0 sauté, 0 en échec.