Skip to content

Le volet des ressources retient ce qu'on lui montre - #29

Merged
Shaenn merged 4 commits into
mainfrom
essai/volet-ressources
Aug 17, 2026
Merged

Le volet des ressources retient ce qu'on lui montre#29
Shaenn merged 4 commits into
mainfrom
essai/volet-ressources

Conversation

@Shaenn

@Shaenn Shaenn commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Ce que change cette PR

Le volet des ressources de la fiche projet ne retenait rien, et n'en montrait qu'une partie ailleurs. Quatre commits, un même sujet.

Il ne se rechargeait pas. La page Projet n'avait que le chargement de son arrivée : pour voir une ressource éditée hors d'AURA, il fallait quitter l'écran et y revenir. Le navigateur gagne le bouton que le volet des sessions portait déjà. Il n'appelle pas refresh — celui-là represélectionne le premier fichier, donc recharger l'arbre ferait perdre la page qu'on est en train de lire.

Il cachait les dossiers inclus au volet des sessions. Les deux surfaces lisaient le même inventaire, mais le volet n'en passait qu'une partie au navigateur. Un dossier qu'on a demandé à voir doit se voir partout où l'arbre se montre. ResourceSource gagne donc sa quatrième provenance, et la cascade de ternaires qui choisissait le lecteur devient une table — qui ne peut plus oublier un cas.

Il oubliait le fichier ouvert à chaque F5. La sélection ne vivait qu'en mémoire locale : un rechargement, et le panneau revenait au CLAUDE.md racine quelle que soit la page lue. Elle passe dans l'URL (?src=…&f=…), ce qui rend le lien partageable au passage.

S'y ajoute un commit de formatage sans effet : cinq fichiers n'étaient jamais passés sous pnpm format.

Vérifié

  • pnpm lint
  • pnpm typecheck
  • pnpm test — 390 passés, 1 ignoré, 44 fichiers
  • pnpm build — le seul à typer src/
  • Essayé dans l'application, pas seulement en test

L'essai portait sur le comportement qu'aucun test unitaire n'atteint : ouvrir CONTRIBUTING.md sur la fiche de tos, presser F5, vérifier qu'il revient — et non le CLAUDE.md racine. Puis forcer ?f=DISPARU.md à la main : la visionneuse retombe sur l'auto-sélection et l'URL se corrige d'elle-même, sans panneau vide.

À savoir

L'URL s'écrit en replace et non en push. Parcourir un arbre de fichiers n'est pas une navigation : empiler chaque clic dans l'historique rendrait le retour arrière inutilisable, il faudrait autant de retours que de fichiers consultés pour quitter la page.

La restauration ne se fie pas au seul chemin. Un rel ne veut rien dire hors de son propre magasin, et le fichier peut avoir disparu entre-temps — retiré du disque, ou d'un dossier qu'on vient d'exclure. Elle le cherche donc dans l'inventaire fraîchement chargé et rend la main à l'auto-sélection s'il n'y est plus. C'est ce que vérifie le second essai ci-dessus.

Aucune écriture dans ~/.claude : les quatre commits ne touchent qu'à la lecture et à l'affichage. Les gardes de server/ ne sont pas concernées.

🤖 Generated with Claude Code

Shaenn and others added 4 commits August 17, 2026 11:01
La page Projet n'avait qu'un chargement, celui de son arrivée : pour voir une
ressource éditée hors d'AURA, il fallait revenir sur l'écran. L'en-tête du
navigateur gagne le bouton que le volet des sessions actives portait déjà, avec
le même libellé accessible.

Il n'appelle pas `refresh` : celui-là vide la visionneuse et represélectionne le
premier fichier, donc recharger l'arbre ferait perdre le fichier qu'on était en
train de lire. `reloadResources` ne touche qu'à l'inventaire et aux plans, ne
pose pas le voile de la page entière, et signale son échec en notification
plutôt qu'en écran d'erreur.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Le volet des sessions actives lisait le même inventaire que la page Projet mais
n'en passait qu'une partie au navigateur : les dossiers inclus restaient dans la
réponse, invisibles. Un dossier qu'on a demandé à voir doit se voir partout où
l'arbre du projet se montre, sinon l'inclusion n'a de sens que sur un écran.

Le volet ne prend pas `can-include` : on lit les dossiers ici, on les choisit
dans la page Projet. Un même réglage éditable depuis deux écrans, c'est deux
endroits où le corriger.

`ResourceSource` gagne donc `included`, sa quatrième provenance, et
`ResourceDialog` la route de lecture qui va avec — la cascade de ternaires qui
choisissait le lecteur devient une table, qui ne peut plus oublier un cas. Le
compteur du volet, lui, compte maintenant ce que l'arbre montre.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cinq fichiers n'étaient jamais passés sous `pnpm format` : des sauts de ligne
dans les valeurs CSS, deux appels de test coupés à la main, un import éclaté en
cinq lignes et le tableau `exclude` du tsconfig racine.

Prettier n'a pas bougé depuis le premier commit — c'est donc un retard, pas la
conséquence d'une montée de version. `pnpm lint` ne l'attrapait pas : la config
prettier d'ESLint désactive les règles en conflit, elle ne vérifie pas la mise
en forme. Seul `prettier --check` le voyait, et personne ne l'appelait.

Aucun changement de comportement.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
La visionneuse ne gardait sa sélection qu'en mémoire locale : un F5 sur la fiche
d'un projet, et le panneau revenait au CLAUDE.md racine, quelle que soit la page
qu'on était en train de lire.

L'URL porte maintenant le fichier ouvert (`?src=…&f=…`). En `replace` et non en
`push` : parcourir l'arbre n'est pas une navigation, et empiler chaque clic dans
l'historique rendrait le retour arrière inutilisable. Le lien devient
partageable au passage.

La restauration ne se fie pas au seul chemin. Un `rel` ne veut rien dire hors de
son propre magasin, et le fichier peut avoir disparu entre-temps : elle le
cherche dans l'inventaire fraîchement chargé, et rend la main à l'auto-sélection
s'il n'y est plus — un fichier retiré du disque, ou d'un dossier qu'on vient
d'exclure, ne doit pas ouvrir un panneau vide.

Fermer la visionneuse vide aussi l'URL. Sans quoi le rechargement suivant
rouvrirait ce qu'on venait de fermer.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Shaenn
Shaenn merged commit 862f3b4 into main Aug 17, 2026
1 check passed
@Shaenn
Shaenn deleted the essai/volet-ressources branch August 17, 2026 22:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant