docs(calm): rebase Pi compatibility evidence on the installed 0.84.2 - #2492
Open
Kallas95 wants to merge 6 commits into
Open
docs(calm): rebase Pi compatibility evidence on the installed 0.84.2#2492Kallas95 wants to merge 6 commits into
Kallas95 wants to merge 6 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Update docs/calm-mode-feasibility.md so it no longer asserts a Pi compatibility baseline (verified on Pi 0.81.1 through 0.82.0) that is contradicted by its own more recent sections and by the actually-installed Pi 0.84.2. The document must describe the behavior of the installed version and say so explicitly, mark each compatibility claim as verified or unverified, and must not widen the announced version range without proof. The installed Pi is 0.84.2 and the Calm test suite passes against it; the earlier 0.81.1-0.82.0 evidence is retained as history.
What Changed
docs/calm-mode-feasibility.mdfrom a version-range baseline into a dated journal: the intro now states the installed Pi is 0.84.2, each survey carries its own observation date and Pi version, and the former "verified on Pi 0.81.1 through 0.82.0" claims on both presentation adapters, the transcript taxonomy table, and the cross-harness Pi row are narrowed to the individual dated observations that back them.defaultTools,expandPromptTemplates) plus the Pi package version now read as 0.84.2 bytests/fm-pi-primary-types.test.shwhile its last real typecheck ran against 0.80.10.tsctypecheck, one cleantests/fm-calm-pi-extension.test.shrun, and the intermittent follow-up-adjacent pane-capture race (9/24) whose fix sits in unmerged PR test(calm): name the missing E2E tool and wait for Pi's paint #2477; the header comment intests/fm-calm-pi-extension.test.shnow names 0.84.2 as current evidence with 0.81.1/0.82.0 retained as history.Risk Assessment
✅ Low: Changement purement documentaire (la seule modification hors documentation est un commentaire dans un test, sans effet exécutable) : le critère nommé par l'intent est vérifiablement satisfait, plus aucune plage de compatibilité n'est annoncée, et toutes les affirmations factuelles contrôlables - version Pi installée, entrées du CHANGELOG 0.84.2, logique d'enregistrement des sept outils, dates de vérification des deux adaptateurs, état de la PR #2477, mesure 9/24, ancres internes - se vérifient contre les sources ; il ne reste que deux imprécisions de provenance de niveau info.
Testing
J'ai validé le document comme surface lue par un relecteur et comme registre de preuves reproductibles. Les commandes que la nouvelle section 2026-08-16 enregistre ont été rejouées sur cette machine : Pi binaire et paquet en 0.84.2, déclarations des deux classes exportées présentes (confirmées en plus par une sonde runtime des méthodes patchées), typecheck sauté faute de
tsc, et suitetests/fm-calm-pi-extension.test.shdont les 12 lignesok -sont strictement identiques au transcript publié. Les affirmations 0.84.2 du document ont été recoupées avec le CHANGELOG du paquet installé, l'absence de plage élargie vérifiée sur tout le dépôt, et les 11 liens internes validés par un parsing sémantique des titres selon les règles de slug GitHub, le renommage de titre ne cassant aucune référence externe. Les rendus HTML avant/après et leurs captures montrent la bascule de « Pi (verified 0.81.1 through 0.82.0) » vers des observations datées et explicitement marquées vérifiées ou non. Sur 4 exécutions de la suite, une a échoué sur la course de capture de pane déjà documentée, mais sur le casloaded_offet non sur le casadjacentnommé par le document ; ce défaut est préexistant et son correctif vit dans une PR non fusionnée. Arbre de travail laissé propre.Evidence: Rendus HTML du document (base et cible), ouvrables directement
Source: Rendus HTML du document (base et cible), ouvrables directement
Evidence: Reproduction des commandes enregistrées par la section 2026-08-16 (versions, déclarations, sonde runtime, typecheck, CHANGELOG)
Source: Reproduction des commandes enregistrées par la section 2026-08-16 (versions, déclarations, sonde runtime, typecheck, CHANGELOG)
$ pi --version 0.84.2 $ jq -r .version "$(npm root -g)/@earendil-works/pi-coding-agent/package.json" 0.84.2 typeof AssistantMessageComponent.prototype.updateContent = function typeof InteractiveMode.prototype.addMessageToChat = function $ tests/fm-pi-primary-types.test.sh skip: tsc not found for Pi extension typecheckEvidence: Suite Calm contre le Pi 0.84.2 installé : 12/12 ok, transcript identique à celui publié dans le document
Source: Suite Calm contre le Pi 0.84.2 installé : 12/12 ok, transcript identique à celui publié dans le document
Evidence: Résolution des liens et ancres du document (11/11)
Source: Résolution des liens et ancres du document (11/11)
headings=20 links_checked=11 broken=0Evidence: 4 exécutions de la suite : 3 succès, 1 échec sur la course documentée (cas loaded_off)
Source: 4 exécutions de la suite : 3 succès, 1 échec sur la course documentée (cas loaded_off)
run 1: PASS (12/12 ok, 49s) run 2: FAIL - not ok - Pi follow-up loaded_off case rendered a duplicate captain answer run 3: PASS (12/12 ok) run 4: PASS (12/12 ok)Evidence: Index des artefacts de preuve
Source: Index des artefacts de preuve
Pipeline
Updates from git push no-mistakes
... (4 earlier update rounds omitted to keep the PR body within GitHub's 65536-char limit; full history is in the run log.)
🔧 Fix: restate Calm Pi evidence as a dated journal
7 issues (4 warnings, 3 infos) still open:
docs/calm-mode-feasibility.md:22- Le paragraphe de synthèse « Compatibility evidence » réintroduit exactement l'élargissement que le round vise à supprimer, en contredisant ses propres sections. Ligne 22 : « The API surveys, the transcript taxonomy, and the cross-harness inspection date from Pi 0.81.1 on 2026-07-22 and Pi 0.82.0 on 2026-07-30 » - or la ligne 210 dit l'inverse pour la taxonomie (« That survey has not been redone on 0.82.0 or 0.84.2 »), et la section cross-harness date son inspection du 2026-07-22 avec une revérification Pi à 0.81.1 le 2026-07-23 (lignes 246, 263, 270), jamais à 0.82.0 ; le seul enregistrement du 2026-07-30 (ligne 411) porte uniquement sur la révision du bateau de travail, vérifiée sur le CLI 0.82.0. Deuxième instance dans le même paragraphe, ligne 19 : « Two things were observed against it that day and nothing else » est démenti par l'enregistrement cité, qui contient une troisième observation (jq -r .versionsur le manifeste du paquet installé, ligne 533) dont la ligne 288 dépend explicitement. Correction : aligner la ligne 22 sur les versions/dates réelles de chaque section, et ouvrir l'énumération de la ligne 19 ou y inclure la lecture du manifeste.docs/calm-mode-feasibility.md:4- La promesse universelle supprimée de la ligne 18 est réapparue dans le préambule : ligne 4 « Each entry records when an observation was made, which harness version it was made against, and what was actually seen » et ligne 5 « An observation is not carried to a version it was not made on ». Le corps ne la tient pas : la section « Calm working presentation » énonce quatre observations sur le comportement de Pi sans aucune version ni date, au présent - ligne 162 « Pi's documented custom working-indicator frames are static and width-blind », ligne 166 « Pi emitsagent_settledfrom afinallyblock », ligne 167 « Pi disposes the previous component before installing a replacement under the same key », ligne 168 « Pi's above-editor widget container reserves one spacer row whether or not a widget is present ». Ces observations ont été faites sur le CLI Pi 0.82.0 le 2026-07-30 (ligne 411), donc elles sont bien portées implicitement jusqu'à la version installée, ce que la ligne 5 déclare ne jamais se produire. L'intent exige de « mark each compatibility claim as verified or unverified » : soit ancrer ces quatre phrases sur 0.82.0 / 2026-07-30 avec renvoi à l'enregistrement, soit retirer la portée universelle des lignes 4-5.docs/calm-mode-feasibility.md:212- La nouvelle phrase « Rows carrying their own version note were observed on that version; the rest carry the 0.81.1 survey date above » et le nouvel en-tête de colonne « Pi transcript path (Pi 0.81.1 survey, 2026-07-22) » (ligne 214) antidatent des lignes du tableau qui n'existaient pas au moment de ce relevé. Vérifié par l'historique : la mention du widget working-ship de la ligneworking-statusa été ajoutée le 2026-07-30 (commit 3a112a1, ère Pi 0.82.0), et toute la ligneassistant-working-note, y compris sa colonne de chemin de transcript décrivant la sémantique destopReason, a été ajoutée le 2026-08-13 (commit 9823ff8) - sa propre note dit d'ailleurs « verified on Pi 0.84.1 », pas 0.81.1. Le résultat est une affirmation positive et fausse : ces chemins de transcript sont présentés comme observés sur Pi 0.81.1 le 2026-07-22. Restreindre la phrase et l'en-tête aux lignes réellement issues du relevé 0.81.1, ou donner à ces deux lignes leur propre date/version.docs/calm-mode-feasibility.md:564- « then fixed in PR test(calm): name the missing E2E tool and wait for Pi's paint #2477 (branchfm/fm-calm-bash5-regression, headadce327) » présente le correctif comme acquis. Vérification via l'API GitHub : la PR test(calm): name the missing E2E tool and wait for Pi's paint #2477 existe bien, sa branche et son head correspondent exactement (fm/fm-calm-bash5-regression,adce3276e6eb4be7309d433a8438232e71a98b19, basemain), mais son état estopenetmerged: false. Combinée à la phrase suivante (« That fix is not in this branch's history »), la formulation laisse comprendre que le correctif est déjà dans main et que seule cette branche est en retard, alors qu'il n'est fusionné nulle part : un mainteneur qui exécute la suite sur main rencontrera le même échec 9 fois sur 24. Formuler le correctif comme proposé dans une PR encore ouverte à la date de l'enregistrement.docs/calm-mode-feasibility.md:289- « the typecheck has not been rerun since, so it is unverified against 0.84.2 » est en tension avec l'enregistrement du même changement, qui montre$ tests/fm-pi-primary-types.test.shexécuté le 2026-08-16 avec la sortieskip: tsc not found for Pi extension typecheck(ligne 546). Le test a bien été relancé ; c'est le typecheck qui n'a pas eu lieu, faute detsc(vérifié en source :tests/fm-pi-primary-types.test.sh:8sort en 0 avec ce message quandtscest absent). La conclusion « unverified against 0.84.2 » est correcte, mais la cause réelle - l'absence detscsur la machine - est l'information utile pour le journal et elle est perdue par la formulation actuelle.docs/calm-mode-feasibility.md:526- « Two 0.84.2 changes fall outside what the suite exercises and were not tested against Calm » est une énumération fermée qui sous-évalue. Le CHANGELOG 0.84.2 du paquet installé contient au moins un troisième élément de la même nature, touchant précisément les outils que Calm remplace : « Added experimental strict JSON-schema constrained sampling for the defaultread,bash,edit, andwritetools underPI_EXPERIMENTAL=1» - quatre des sept intégrés quewrapBuiltInréenregistre sous le même nom (.pi/extensions/fm-calm.ts:214-235), et que la suite n'exerce pas non plus sous ce drapeau. Ouvrir l'énumération (« notamment ») ou ajouter cette troisième entrée.docs/calm-mode-feasibility.md:16- Note de traçabilité, aucune action attendue. L'intent affirme « the Calm test suite passes against it », alors que le document dit désormais « completed a clean run » plus « not a uniformly reproducible pass ». Ce n'est pas une contradiction à traiter : les décisions du capitaine des rounds 1 et 2 interdisent explicitement d'écrire « the suite passes » lorsqu'un échec intermittent est enregistré, et l'échec est réel et reproductible ici (9 sur 24, correctif absent de l'historique de cette branche, cf. lignes 563-565). La divergence par rapport à la prémisse de l'intent est donc autorisée.🔧 Fix: date every Calm journal claim to its real evidence
5 issues (2 warnings, 3 infos) still open:
docs/calm-mode-feasibility.md:92- L'intent nomme littéralement la formulation à supprimer : « so it no longer asserts a Pi compatibility baseline (verified on Pi 0.81.1 through 0.82.0) » et « must not widen the announced version range without proof ». Cette phrase exacte subsiste à deux endroits non touchés par le changement : ligne 92 « The fix installs one idempotent presentation adapter, verified on Pi 0.81.1 through 0.82.0, on the exportedAssistantMessageComponent.updateContentmethod. » et ligne 150 la même chose pourInteractiveMode.addMessageToChat. Le changement a retiré cette plage de l'en-tête du tableau de taxonomie et de la ligne Pi du tableau cross-harness, mais l'a laissée dans le corps. « through » porte l'observation sur toutes les versions intermédiaires (0.81.2 … 0.81.x) qui n'ont jamais été testées, ce que le nouveau préambule interdit explicitement (ligne 5 : « An observation is not carried to a version it was not made on »), et que le document lui-même a déjà corrigé ailleurs en énumérant (ligne 246 : « observed exported on Pi 0.81.1, on 0.82.0 »). Les commentaires source utilisent d'ailleurs déjà la forme énumérée correcte (.pi/extensions/lib/fm-calm-assistant-layout.ts:1etfm-calm-operational-user-layout.ts:1: « Verified against Pi 0.81.1 and 0.82.0 »). Les deux sections concernées sont datées (2026-07-23, Pi 0.81.1) et l'enregistrement du 2026-07-26 couvre 0.82.0, donc la correction est un simple passage à « verified on Pi 0.81.1 and on 0.82.0 » - mais elle porte sur le critère nommé par l'intent, donc décision auteur.docs/calm-mode-feasibility.md:25- La promesse universelle du préambule reste démentie par le corps, pour la troisième fois. Ligne 4 « Each entry records when an observation was made, which harness version it was made against » et ligne 25 « Each section below repeats its own date and version. » Trois sections n'ont toujours aucune date : « Built-in tool override constraints » (ligne 35, « Inspection of Pi 0.80.10 and 0.82.0 established that ... », version sans date), « Duplicate-turn regression and semantic boundary » (ligne 122, « because Pi 0.81.1 exposes no supported ordinary-user renderer », version sans date, et la section entière n'ouvre sur aucune date contrairement aux sections voisines 44 et 126), et « Central visibility and input policy » (ligne 209 « Pi 0.83.0 made every expansion change emit its own status line, and Pi coalesces consecutive status lines », ligne 211 « Pi 0.81.1's sidebar tree », versions sans date). Le round 3 avait déjà tranché : garder la promesse et faire tenir le corps partout ; le round 4 l'a fait pour « Calm working presentation » (ligne 163) mais pas pour ces trois-là. Deux issues honnêtes : dater ces trois sections (les observations 0.83.0 sont rattachables à l'enregistrement du 2026-08-15, les 0.80.10/0.82.0 à celui du 2026-07-26), ou restreindre la portée des lignes 4 et 25 aux sections d'enregistrement. C'est le 5e round sur ce thème : la décision permanente du capitaine était d'escalader plutôt que d'enchaîner une correction automatique de plus.docs/calm-mode-feasibility.md:573- « That race was measured on 2026-08-16 at 9 failures in 24 executions, at the same rate under both interpreters » emploie « both interpreters » sans que le terme n'apparaisse nulle part ailleurs dans le document : un lecteur ne peut pas savoir de quels deux interpréteurs il s'agit, ni si 9/24 est le total ou le chiffre par interpréteur. Le fait est vérifiable via la référence déjà citée à côté : le corps de la PR test(calm): name the missing E2E tool and wait for Pi's paint #2477 identifie l'interpréteur livré par Apple en 3.2.57 et celui installé par Homebrew en 5.3.15 (la branche s'appellefm/fm-calm-bash5-regression). Nommer les deux shells et préciser si le 9/24 est cumulé rend la mesure vérifiable, ce qui est tout l'objet d'un journal daté.docs/calm-mode-feasibility.md:19- La liste « What was observed against it that day is what the [2026-08-16 verification record] shows and nothing more: » énumère quatre choses (versionspiet paquet, une exécution propre de la suite, la revérification des déclarations, le typecheck qui n'a pas eu lieu) mais omet la cinquième observation faite le même jour et consignée dans le même enregistrement : la lecture du CHANGELOG 0.84.2 (ligne 534), qui est précisément celle qui produit le contenu le plus lourd de conséquences (trois changements 0.84.2 non testés contre Calm). Le round 3 avait déjà corrigé la version « Two things ... and nothing else » de cette phrase ; l'énumération est passée de deux à quatre éléments mais reste incomplète alors qu'elle se présente comme close. Ajouter la lecture du CHANGELOG à la liste.docs/calm-mode-feasibility.md:4- Note de routage, aucune action de code attendue. Les deux findings « warning » ci-dessus sont la 5e itération du même thème (portée de version / promesse globale) après quatre rounds de correction successifs. L'instruction permanente du firstmate au round 3 était explicite : « This is round 4: if a 5th finding of the same theme appears, do not fix it - append needs-decision and stop. » Le round 4 a corrigé sans escalader et aucune noteneeds-decisionn'a été déposée. Le choix de forme restant (dater les trois sections vs restreindre la portée de la promesse ; énumérer vs conserver « through ») est une décision d'auteur, pas une correction mécanique de plus.🔧 Fix: no change: sole finding carried no actionable content
2 issues (1 warning, 1 info) still open:
docs/calm-mode-feasibility.md:163- La phrase ajoutée par le round de correction attribue quatre comportements Pi à un enregistrement qui n'en contient aucun : « The Pi behaviors this section relies on - the documented custom working-indicator frames, theagent_settledemission point, widget disposal under a repeated key, and the above-editor spacer row - were observed against the Pi 0.82.0 CLI on 2026-07-30, recorded in the 2026-07-30 revision verification ». J'ai lu l'enregistrement cité intégralement (lignes 415-464) : il consigne la cadence du sprite (hull_col), les codes ANSI, les deux inversions au redimensionnement à 12 colonnes, le repli à 3 colonnes et l'abandon par Escape. Il ne consigne ni les frames d'indicateur de travail documentées, ni le point d'émission d'agent_settled, ni la disposition du composant sous clé répétée, ni la rangée d'espacement du conteneur de widget. Le seul appui partiel pour la quatrième (« no residual blank row ») se trouve dans l'enregistrement superseded (ligne 413), pas dans celui qui est cité. Ces quatre énoncés sont des lectures de la source Pi, pas des observations du CLI : j'ai confirmé que celui suragent_settledest exact aujourd'hui sur 0.84.2 (finallyendist/core/agent-session.js:755), donc la substance tient - c'est l'attribution qui est fausse. Un lecteur qui suit le lien pour vérifier ne trouve rien, ce qui est exactement le mode de défaillance que la forme « journal daté » (lignes 4-5) doit éliminer. Deux issues honnêtes : citer l'enregistrement qui les porte réellement (le superseded pour la rangée d'espacement) et dater séparément la lecture de source Pi qui a produit les trois autres, ou requalifier la phrase en « dérivées de la lecture des déclarations et dudistde Pi 0.82.0 » sans renvoi à un enregistrement de TUI.docs/calm-mode-feasibility.md:575- « That fix is therefore in no branch of this repository,mainincluded » est factuellement faux. Vérifié :git branch -a --contains adce3276e6eb4be7309d433a8438232e71a98b19renvoiefm/fm-calm-bash5-regression, une branche bien présente dans ce dépôt (et c'est la tête de la PR test(calm): name the missing E2E tool and wait for Pi's paint #2477 côté GitHub). L'information utile et exacte est celle que la phrase suivante porte déjà et que j'ai confirmée (git merge-base --is-ancestor adce327 origin/mainéchoue) : le correctif n'est ni dansorigin/mainni dans l'historique de cette branche, donc l'échec reste atteignable pour quiconque exécute la suite depuismain. La formulation actuelle dépasse l'instruction du round précédent (« absent from the code this document describes ») et transforme une constatation vraie en une affirmation universelle fausse, dans un document dont l'objet est précisément de ne pas dépasser sa preuve. Remplacer par « ce correctif n'est donc ni dansmainni dans l'historique de cette branche ».🔧 Fix: replace adapter version range with dated observation points
2 infos still open:
docs/calm-mode-feasibility.md:217- « Two rows postdate it and carry their own dates instead » est une énumération fermée et un décompte inexact. Vérifié par l'historique : en comparant le tableau au commit du relevé (6db3b09, 2026-07-22) avec la version actuelle, six lignes ont un contenu postérieur au 2026-07-22, pas deux. Outreworking-statusetassistant-working-noteque la phrase nomme, quatre autres ont été réécrites le 2026-07-23 :genuine-user-prompt(« Visible. » → « Visible, including every tested operational near miss. »),custom-message,custom-entry, etsynthetic-user; et surtoutassistant-thinkingdont la colonne Pi transcript path elle-même a changé (« Working indicator and thinking content inAssistantMessageComponent» → « Thinking content inAssistantMessageComponent»), alors que la phrase précédente affirme que « its transcript paths ... are 0.81.1 observations » issues du relevé du 2026-07-22. Portée réelle du défaut : la version reste correcte partout (le relevé 2026-07-23 montrepi --version→ 0.81.1, donc ces lignes sont bien des observations 0.81.1), c'est la date de provenance qui est fausse d'un jour et le décompte qui est faux. Le critère de version de l'intent n'est donc pas violé, mais un mainteneur lisant cette phrase croira que toutes les autres lignes sont verbatim du relevé du 2026-07-22. Deux issues : ouvrir la phrase (« plusieurs lignes ont été révisées le 2026-07-23, toujours sur Pi 0.81.1 »), ou dater ces lignes. Note de routage : c'est le 6e round sur le thème de la provenance ; l'instruction permanente du firstmate au round 3 était d'escalader plutôt que d'enchaîner une correction automatique, d'où le classement en décision auteur.docs/calm-mode-feasibility.md:28- « the later CHANGELOG entries that did touch Calm were found when they broke or changed it and are written up in the dated entries below » est démenti par l'enregistrement que la phrase elle-même désigne. L'entrée du 2026-08-16 (ligne 534) consigne une lecture proactive du CHANGELOG 0.84.2 qui a trouvé trois entrées touchant la surface de Calm (defaultTools, rendu de repli des résultats d'outils d'extension, échantillonnage contraint expérimental surread/bash/edit/write) - vérifiées littéralement dans le CHANGELOG du paquet installé - et le document dit explicitement qu'aucune n'a été testée contre Calm, donc aucune n'a « cassé ou changé » quoi que ce soit. Seule l'entrée 0.83.0 (ligne d'état d'expansion) correspond à la description « trouvée quand elle a cassé ». La phrase caractérise donc comme exhaustif un mode de découverte qui ne l'est pas, dans le paragraphe même qui annonce que le document ne dépasse plus sa preuve. Correction possible : « ... ont été trouvées soit quand elles ont cassé Calm, soit par la lecture ponctuelle consignée dans l'entrée du 2026-08-16 ».tests/fm-calm-pi-extension.test.sh:1821- Test instable préexistant :tests/fm-calm-pi-extension.test.sha échoué sur 1 exécution sur 4 avecnot ok - Pi follow-up loaded_off case rendered a duplicate captain answer. L'assertion en cause capture le pane tmux juste après l'écriture deMONITOR_HANDLED_${label}_ONEdans le fichier de session et exige exactement une occurrence deCAPTAIN_ANSWER_$label; elle est partagée par tous les cas de l'E2E follow-up. Non causé par ce changement (seul un commentaire est modifié dans ce fichier), correctif écrit dans la PR test(calm): name the missing E2E tool and wait for Pi's paint #2477 (fm/fm-calm-bash5-regression) non fusionnée. Les 3 autres exécutions passent 12/12.docs/calm-mode-feasibility.md:571- La nouvelle entrée datée attribue l'intermittence au seul « follow-up adjacent case », alors que la course observée frappe l'assertion partagée de capture de pane : elle s'est déclenchée ici sur le casloaded_off. La portée réelle du défaut est « tout cas de l'E2E follow-up », pas uniquement le cas adjacent - à ajuster si le document veut rester exact sur ce qu'il a observé.pi --version→ 0.84.2 etjq -r .version "$(npm root -g)/@earendil-works/pi-coding-agent/package.json"→ 0.84.2tests/fm-calm-pi-extension.test.sh(4 exécutions : 3 succès 12/12, 1 échec sur la course connue)diffentre les lignesok -enregistrées dans la section 2026-08-16 du document et la sortie réelle de la suite → identiquestests/fm-pi-primary-types.test.sh→skip: tsc not found for Pi extension typecheck(conforme au document)Sonde runtime des seams patchés :node --input-type=module -e "import('file://.../pi-coding-agent/dist/index.js')"→AssistantMessageComponent.prototype.updateContentetInteractiveMode.prototype.addMessageToChatsont desfunctionReproduction desgrep -oE 'AssistantMessageComponent|InteractiveMode' dist/index.d.tsetgrep -oE 'updateContent|addMessageToChat' …assistant-message.d.ts …interactive-mode.d.tscités par le documentVérification des affirmations 0.84.2 dans le CHANGELOG du paquet installé (defaultTools,expandPromptTemplates, rendu de repli des résultats d'outils d'extension, échantillonnage contraint sousPI_EXPERIMENTAL=1)Validation sémantique des liens : parsing du markdown en titres + liens avec les règles de slug GitHub → 11/11 ancres internes résolvent (/tmp/anchor-check.mjs docs/calm-mode-feasibility.md)grep -rn "0.81.1 through 0.82.0"sur le dépôt → aucune occurrence restante ; aucune autre référence à une ancre decalm-mode-feasibility.mdcassée par le renommage de titreRendu HTML des versions base (ef35d79) et cible (0692b6b) du document et captures d'écran des sections Compatibility evidence, taxonomie, cross-harness, plus clic réel sur la nouvelle référence croisée « 2026-08-16 verification record »docs/calm-mode-feasibility.md:575- L'entrée 2026-08-16 de docs/calm-mode-feasibility.md (fin de fichier) cite le nom de branchefm/fm-calm-bash5-regressionet le SHA de têteadce327d'une PR non fusionnee, alors que docs/documentation-audiences.md:17 demande que branches, chemins temporaires et identifiants de processus ponctuels restent dans les rapports de tache prives ou les preuves de PR. Je ne l'ai pas retire : ce passage est porteur (il justifie pourquoi la passe est qualifiee de « clean run » et non de succes reproductible), il a ete ajoute par un tour de revue anterieur (8fee818), et la politique exige de distiller le fait durable avant toute suppression. Suivi possible hors perimetre : conserver la mesure 9 echecs sur 24 et le renvoi de regression, et reduire branche et SHA a la seule reference PR test(calm): name the missing E2E tool and wait for Pi's paint #2477.✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.