∷ contributions · open source · soumises en amont

Ce que nous avons rendu

Cette page est l'étagère. Une entrée par patch shippé en amont.9 contributions soumises — quatre le même jour, le 22 avril 2026, après 58 jours où Claude Code vivait dans le terminal de Stéphane, puis un correctif de sécurité mergé en amont une semaine plus tard — et, en juin, trois autres correctifs ont atterri sur community-scripts/ProxmoxVE. L'idée de « rendre » a pris du temps à passer de l'intention au diff. Une fois qu'elle a traversé, elle a bien traversé.

Chaque entrée pointe vers la PR (ou discussion) sur GitHub. Si l'insight derrière le patch mérite une lecture plus longue, il y a un article pr-notes sur le blog.Le statut reflète l'état upstream aujourd'hui — 6 mergées, 2 fermées sans merge, 1 discussion. L'amont ne dit pas toujours oui ; les diffs et le raisonnement tiennent quand même.

# Shippées en amont

PR #94·2026-06-18
merged

adriannovegil / awesome-observability

ajoute Grafana Alloy aux collecteurs de logs

∷ insightGrafana Alloy manquait complètement à la liste — c'est la distribution du Collector OpenTelemetry de Grafana et le successeur officiel de Promtail et Grafana Agent, tous deux en fin de vie. Loki y figurait déjà, mais pas l'agent que Grafana recommande désormais pour y expédier les logs. Ajouté sous Collect → Logging, par ordre alphabétique entre Elastic Beats et mTAIL, au format existant (+1).

observabilitygrafanaalloyawesome-listdocs
PR #14995·2026-06-07
merged

community-scripts / ProxmoxVE

changedetection : migration de l'install Python vers un venv uv

∷ insightLe script d'install s'appuyait sur le --ignore-installed de pip, qui laisse des métadonnées dist-info dupliquées et un crash différé au redémarrage suivant du service. Reproduit en live sur mon propre conteneur (46 paquets dupliqués, certifi ×3) et migration de l'install + update vers le helper maison setup_uv du projet (venv Python 3.13), avec migration automatique du layout pip-global existant. Corrige la cause racine que leur #13548 ne faisait que masquer. (+33 −17)

proxmoxpythonuvpackaging
PR #14996·2026-06-07
merged

community-scripts / ProxmoxVE

homelable : préserver la config du serveur MCP à travers les updates

∷ insightLa routine d'update de Homelable écrasait la configuration du serveur MCP à chaque exécution, effaçant les personnalisations locales. Reprise du chemin d'update pour préserver la config existante au lieu de l'écraser.

proxmoxmcpconfig
PR #14870·2026-06-01
merged

community-scripts / ProxmoxVE

infisical : correction d'un abort d'update dû à un nom de champ d'identifiants erroné

∷ insightDécouvert sur mon propre CT : l'update d'Infisical avortait en cours de route et laissait le service à terre. ct/infisical.sh cherchait 'Database Password:' alors que setup_postgresql_db écrit 'Password:' — un grep erroné d'une ligne. Champ corrigé ; l'update se termine de nouveau proprement.

proxmoxinfisicalpostgresbugfix
PR #1060·2026-04-29
merged

RightNow-AI / openfang

fix(security): unifier la protection SSRF des appels hôte WASM

∷ insightLe host_net_fetch() du sandbox WASM portait sa propre vérification SSRF, divergée du check_ssrf() canonique de web_fetch.rs — les agents WASM pouvaient atteindre des cibles internes que les outils natifs bloquent correctement. Unification des deux appels sur l'implémentation canonique unique (+56 −98).

rustsecurityssrfwasm
PR #309·2026-04-22·première PR OSS
closed

ublue-os / homebrew-experimental-tap

Cask claude-code-linux — livecheck npm plutôt que GCS

∷ insightLe fichier GCS /stable officiel d'Anthropic accuse jusqu'à 13 versions de retard sur le registre npm. Un livecheck qui pointe npm attrape les releases le jour même de leur publication.

homebrewcaskbluefinclaude-code
discussion #7986·2026-04-22
open

requarks / wiki

`render IS NULL` en DB cause un HTTP 500 silencieux sans chemin de récupération

∷ insightRencontré en prod après migration : les pages dont la colonne render était NULL retournaient HTTP 500 au lieu de retomber sur un re-rendu depuis la source. Repro minimal + pointeur vers server/models/pages.js#L952-L969 + fix proposé.

wikijspostgresbug-report
PR #6108·2026-04-22
merged

grafana / alloy

docs : exemple systemd journal pour la migration Promtail → Alloy

∷ insightLe guide de migration officiel ne couvrait que les configs scrape file-based, oubliant la source Linux la plus courante — le journal systemd. Ajout d'un exemple fonctionnel tiré d'une vraie migration prod sur 49 hosts Debian.

grafanaalloypromtaildocsloki
PR #9512·2026-04-22
closed

wazuh / wazuh-documentation

avertissement : wazuh-agent entre en conflit avec wazuh-manager sur le même host

∷ insightLe paquet wazuh-agent désinstalle silencieusement wazuh-manager via dpkg Conflicts/Replaces quand les deux sont installés sur la même machine. Aucun avertissement dans la doc install. Nous a coûté 17h de panne silencieuse (voir le post-mortem sur le blog).

wazuhsiemdocsdpkg

# Rapports & reviews

Toute contribution n'est pas un patch mergeable. Certaines sont des rapports de bug qui ont coûté de vraies pannes, d'autres des reviews sourcées sur la PR de quelqu'un d'autre, et une est une PR que j'ai fermée moi-même une fois le correctif du mainteneur livré. Ça compte aussi.

issue #4741·2026-06-05
rapport

ublue-os / bluefin

∷ insightLe wallpaper JXL par défaut s'affiche tout blanc sur Fedora 44 : libjxl est livré comme codec, mais sans module loader gdk-pixbuf — GNOME ne sait pas décoder le .jxl que la gschema par défaut désigne. Trois semaines de diagnostic, croisé avec le fix jumeau de bluefin-lts (EPEL only, non transposable).

bluefinfedorajxlgnome
bug #8022·2026-06-05
rapport

requarks / wiki

∷ insightUn appel pages.update sans tags ne s'applique qu'à moitié : le contenu est commité, mais le render, la recherche et le stockage sont sautés — et l'API répond quand même succeeded:false. Cause racine : associateTags n'est pas gardé comme createPage le garde. L'angle que le rapport de 2021 a manqué, c'est la non-atomicité, pas le crash.

wikijsgraphqlbug-report
review #29412·2026-06-02
review

BerriAI / litellm

∷ insightLe max_input_tokens de MiniMax-M3 était à 512000 — or c'est le seuil de palier de facturation, pas la fenêtre de 1M du modèle (1048576). Sourcé depuis OpenRouter, le pricing officiel et les entrées sœurs M2.x. Mergé avec la mauvaise valeur malgré tout, et mes deux PR de correction ont ensuite été avalées par le pipeline de staging éphémère de litellm. Une leçon nette : lire le flux de merge d'un dépôt avant de contribuer.

litellmllmreview
review #2273·2026-06-05
review

rtk-ai / rtk

∷ insight`rtk gh run view --job <id>` échouait encore après le correctif du crash run-id : un bug à deux couches où --job n'est pas dans l'allowlist de passthrough et tombe dans le mauvais formateur. Sourcé sur la PR existante plutôt qu'en doublon.

rustclireview
rapport

gadievron / raptor

∷ insightEn podman rootless/distrobox, le sandbox ne s'engage qu'à moitié et raptor rapportait « 0 findings in 0 files » au lieu d'échouer bruyamment — un faux propre. Le mainteneur a décliné mon approche par variable d'env pour des raisons de trust model, mais a livré son propre fix fail-loud (#800 — silence du warning env sous strict_env + attribution Landlock-only), que j'ai validé de bout en bout sur distrobox rootless, --extra-config compris. Il a été mergé.

securitysandboxpython
rapport

grafana / alloy

∷ insightLe reporting d'usage anonyme d'Alloy réinterrogeait stats.grafana.org toutes les ~3 s sans backoff. Quand une blocklist DNS NXDOMAIN ce host, un seul endpoint injoignable devient une tempête de requêtes à l'échelle du parc — ~900k requêtes DNS par jour sur 57 agents. Signalé avec le repro et le mécanisme ; le mainteneur a écrit le fix le jour même (#6478 — backoff sur échec persistant au lieu de réessayer à chaque tick), je l'ai vérifié sur notre parc, et il a été mergé.

grafanaalloydnsreliability

blader / humanizer

∷ insightAprès avoir forké humanizer-fr (33 motifs d'écriture IA propres au français, MIT, attribution préservée), j'ai posé la question d'intégrer une variante SKILL localisée directement en amont. Réponse de blader : garder les locales comme dépôts communautaires séparés, pour que chaque langue évolue sans dupliquer d'autorité d'exécution en amont — humanizer-fr est la bonne forme. Clos avec cette validation.

i18nskillclaude-codecommunity

# En cuisine

Je surveille une poignée de projets pour leurs « good first issues » que je peux prendre sans être insider. Les watchers tournent surchangedetection (CT 228) et me ping via ntfyquand une nouvelle issue tombe.

  • ublue-os/homebrew-tap — casks supplémentaires pour utilisateurs Bluefin
  • Bluefin (good first issues) — doc, scripts, petits fixes
  • Beszel (good first issues) — l'agent monitoring dont je dépends tous les jours
  • CrowdSec Hub — scénarios & parsers pour les services que je fais tourner

Quand j'en prends une, elle atterrit ici. Pour l'instant, cette section est un pointeur, pas une promesse.

∷ la règleUne PR mérite son article ici par la taille de l'insight, pas du diff. Vingt-cinq lignes bien placées qui rendent un outil plus rapide, plus sûr, plus honnête — celles-là valent un article. Une correction de typo vit dans un récap mensuel, pas sa propre page.