
Cinq choses sont arrivées le 22 août 2026, et la plus importante est qu’un agent peut désormais lire directement vos rapports de bugs.
Votre agent peut lire la file
Session Replay parle le Model Context Protocol. Il y a un seul point d’entrée, POST /mcp, et rien
à installer : on donne l’adresse à un agent et on l’autorise une fois, exactement comme on le
pointerait vers n’importe quel autre serveur avec lequel il travaille.
Cinq outils se trouvent derrière. Quatre lisent et un écrit :
-
list_domainsne prend rien et répond avec chaque domaine revendiqué par le compte, l’équipe qui le détient et s’il a été vérifié. C’est là que commence celui qui lit, parce que tout ce qui suit est indexé par domaine. -
list_reportsprend un domaine et, en option, un terme de recherche, un statut, une plage de dates et une page. Il répond du plus récent au plus ancien. -
get_reportprend le jeton de partage d’un rapport et répond avec le rapport entier. -
get_frameprend un jeton et un décalage en millisecondes, et répond avec une image fixe de l’enregistrement, sous une forme que l’agent peut réellement regarder. -
set_statusprend un jeton et un statut, et fait avancer le rapport dans le tri. Ce qu’il écrit parvient à la personne qui a déposé le rapport.
La recherche derrière list_reports couvre maintenant le commentaire du rapporteur en plus de l’URL
et du titre de la page, ce qui fait la différence entre trouver le rapport à propos d’un captcha et
s’entendre dire qu’il n’y en a pas. L’ensemble s’appuie désormais sur un index plutôt que de lire la
table.
L’autorisation se fait en OAuth 2.1 avec PKCE, et le jeton a besoin de la portée mcp:read. Cette
surface est réservée à Professional, et une équipe en dessous est refusée avant qu’aucun message
ne soit lu, le refus nommant le forfait sur lequel l’équipe se trouve réellement et l’endroit où en
changer. Ce dernier point compte plus qu’il n’y paraît : un agent ne peut relayer que ce qu’on lui a
remis, et un refus générique devient “vous n’avez aucun bug” une fois arrivé jusqu’à une personne.
Une page lui est consacrée dans le tableau de bord, à côté d’Intégration : elle donne l’adresse, ce que demande l’autorisation, ceux de vos domaines qui sont vérifiés, et trois messages détaillés dans l’ordre où un agent les enverrait. Elle est visible sur tous les forfaits. Seule l’adresse est grisée en dessous de Professional.
Deux choses qu’elle refuse délibérément de faire. Il n’existe pas encore de portée mcp:write,
donc set_status écrit sous la même portée de lecture que tout le reste ; séparer les deux commence
par un écran de consentement capable d’expliquer la différence, et c’est un chantier à part. Et rien
sur cette surface ne supprime quoi que ce soit, ne déplace un rapport d’une équipe à une autre, ni
ne touche à la facturation.
L’avance image par image et la vitesse de lecture
Trouver l’unique image où la mise en page a cassé, c’était jusqu’ici faire glisser, dépasser, puis faire glisser en arrière. La page de partage portait les seuls contrôles du navigateur, et le réglage de vitesse que Chrome range dans un menu débordant est enterré là où il ne manque pas carrément.
Il y a maintenant un bandeau fin sous la vidéo, avec les deux contrôles que le navigateur ne vous
donne pas : cinq vitesses de lecture - 0.25×, 0.5×, 1×, 1.5× et 2× - et un pas en arrière et un pas
en avant. , et . avancent d’une image, < et > parcourent les vitesses. Le jeu de contrôles
du navigateur reste intact en dessous, parce que le remplacer signifierait regagner le support
clavier, la gestion du focus et le plein écran sur une page publique, atteinte par des gens qui ne
se sont jamais inscrits à quoi que ce soit.
L’avance image par image est honnête sur ce qu’elle sait faire. Ces enregistrements viennent de l’enregistreur du navigateur lui-même : ils sont donc à fréquence d’images variable et ne déclarent aucune fréquence, et il n’existe aucun nombre correct d’images par seconde à ajouter. Là où le navigateur veut bien dire quelle image il présente, un pas tombe sur une vraie image. Là où il ne le dit pas, Firefox aujourd’hui, un pas vaut nominalement un trentième de seconde, et les boutons l’affichent sur leur propre surface plutôt que de revendiquer une précision qu’ils n’ont pas.
Les panneaux console, réseau et interactions suivent un pas comme ils suivent un déplacement, si bien que la ligne correspondant à la nouvelle image est mise en évidence sans rien faire d’autre.
La conservation répond selon le forfait sur lequel vous êtes
La fenêtre de conservation d’un domaine était fixée au moment où le domaine était revendiqué, puis ne bougeait plus jamais. Une équipe qui montait de forfait continuait de recevoir la fenêtre vendue par son ancien forfait, et cela sur des rapports déposés après le changement, pas seulement sur ceux qui le précédaient.
La conservation est désormais demandée au forfait au moment où un rapport est déposé, et une montée en gamme amène les rapports déjà déposés jusqu’à la nouvelle fenêtre en retenant la plus tardive des deux dates. Une descente en gamme ne déplace rien, et une conservation plus longue réglée sur un domaine n’est jamais raccourcie par un changement de forfait. Un domaine réglé pour garder ses rapports pour toujours les garde pour toujours.
Session Replay
Extension Chrome gratuite. Un clic sur la page qui se comporte mal capture la copie d'écran, la console et le journal réseau, et vous rend un lien à coller dans le ticket.
Les plafonds correspondent enfin à ce que chaque forfait vend
Celle-ci est une erreur de notre part, et elle mérite d’être écrite plutôt qu’enterrée.
Professional annonce trente minutes d’enregistrement et Starter dix. Le nombre d’octets que chaque palier acceptait réellement avait été fixé indépendamment du nombre de minutes qu’il propose, et personne n’avait mis les deux chiffres côte à côte. Une capture tourne à environ 18,7 Mo la minute, donc le plafond de 250 Mo de Professional valait treize minutes, les 100 Mo de Starter en valaient neuf, et les 50 Mo des réglages gratuits par défaut en valaient quatre contre les cinq annoncées. Chaque palier vendait une durée que sa propre limite refusait.
Les plafonds sont maintenant de 600 Mo pour Professional, 200 Mo pour Starter et 100 Mo pour les réglages gratuits par défaut, ce qui couvre largement la durée annoncée par chacun. L’autre moitié du sujet, le panneau qui enregistre pendant la durée que son forfait vend plutôt que dix minutes pour tout le monde, est arrivée le lendemain dans l’extension 1.5.0 : une capture Professional va donc maintenant jusqu’à trente minutes des deux côtés.
La bibliothèque d’intégration dit qui est tombé sur le bug
La version 0.3.1 de la bibliothèque est publiée et servie depuis nos propres pages. Elle apporte
identify(), une API de contexte à sens unique : votre page nous dit qui regardait et ce qu’il
regardait, et un rapport fait ensuite le transporte.
SessionReplay.identify({ email: 'ada@example.com', release: '2026.08.18' });
Cinq clés et pas une de plus - email, plan, orderId, release, requestId. Les appels
répétés fusionnent, si bien qu’une application monopage peut compléter au fur et à mesure qu’elle en
apprend davantage plutôt que de tout répéter ; une clé passée à null est retirée, ce qui est
exactement ce que veut une déconnexion.
La bibliothèque ne part jamais chercher quoi que ce soit d’elle-même. Elle ne lit rien dans votre
DOM : pas de récupération d’une adresse e-mail dans un en-tête, pas de forfait deviné à partir d’un
badge. Elle garde ce que vous lui avez transmis et ne le remet que lorsque l’extension le demande.
Une page qui n’appelle jamais identify() ne dit strictement rien, et cet appel ne démarre jamais
un enregistrement.
La même version a réécrit ce que voit un visiteur sur Safari ou Firefox lorsqu’il appuie sur le bouton. Elle disait auparavant que le navigateur ne pouvait pas faire tourner l’extension, proposait le lien vers la page, et s’arrêtait là. Ce lecteur est le public le moins informé et le plus sollicité de cette bibliothèque, et on lui demandait d’aller trouver un autre navigateur sur la foi de rien du tout. Il obtient maintenant ce que porterait le rapport, le fait que cela ne coûte rien, et où en lire davantage : tout cela était déjà écrit et déjà traduit, et retenu par une vérification d’état.
Des choses plus petites la même semaine
- L’API répond dans la langue que demande l’appelant.
- Les polices sont servies depuis nos propres machines. Les trois CDN de polices ont disparu.
- Le sitemap ne date plus chaque page selon le dernier passage de la tâche nocturne.
- La page des fonctionnalités niait que nous ayons un serveur MCP, ce qui était vrai au moment où elle a été écrite.