TASK-006 — Mettre en cache les lectures web avec revalidation HTTP #12

Closed
opened 2026-10-11 10:06:43 +02:00 by mathieu · 0 comments
Owner

Relire la même page de documentation à chaque session coûte un WebFetch complet, et rien ne distingue une lecture fraîche d'une lecture de mémoire.

addyosmani/agent-skills (MIT) résout ça dans hooks/sdd-cache-*.sh : cache disque des WebFetch, mais le contenu n'est servi du cache que sur un 304 — chaque réemploi porte un If-None-Match / If-Modified-Since. Pas de TTL, donc aucune fraîcheur inventée. Dégradation propre si jq ou curl manquent, et une entrée sans validateur n'est jamais mise en cache.

Prendre le mécanisme, pas le script : c'est la seule forme de cache qui ne transforme pas une vérification en souvenir. Le reprendre tel quel exigerait d'auditer leurs hooks ; en réécrire un court sur le même invariant est plus sûr.

Voir memoire/veille-repos-2026-09-17.md, section « Deux mécanismes à prendre ».

Critères d'acceptation

  • Une lecture web répétée n'est servie du cache qu'après un 304 du serveur
  • Une entrée sans ETag ni Last-Modified n'est pas mise en cache
  • L'absence de jq ou de curl dégrade vers la lecture directe, sans échec
  • Un test montre qu'une page modifiée à la source est bien relue

Migré de Backlog.md (TASK-006, créé le 2026-09-21 20:27, étiquettes : veille-2026-09-17, outillage).

Importé d'OpenProject (#1109, essai Kaneo, ADR-0008).


Migré de Kaneo le 2026-10-11 : ATE-9 du projet « Atelier », créée le 2026-10-04.

Relire la même page de documentation à chaque session coûte un WebFetch complet, et rien ne distingue une lecture fraîche d'une lecture de mémoire. addyosmani/agent-skills (MIT) résout ça dans hooks/sdd-cache-*.sh : cache disque des WebFetch, mais le contenu n'est servi du cache que sur un 304 — chaque réemploi porte un If-None-Match / If-Modified-Since. Pas de TTL, donc aucune fraîcheur inventée. Dégradation propre si jq ou curl manquent, et une entrée sans validateur n'est jamais mise en cache. Prendre le mécanisme, pas le script : c'est la seule forme de cache qui ne transforme pas une vérification en souvenir. Le reprendre tel quel exigerait d'auditer leurs hooks ; en réécrire un court sur le même invariant est plus sûr. Voir memoire/veille-repos-2026-09-17.md, section « Deux mécanismes à prendre ». ## Critères d'acceptation - [x] Une lecture web répétée n'est servie du cache qu'après un 304 du serveur - [x] Une entrée sans ETag ni Last-Modified n'est pas mise en cache - [x] L'absence de jq ou de curl dégrade vers la lecture directe, sans échec - [x] Un test montre qu'une page modifiée à la source est bien relue *Migré de Backlog.md (TASK-006, créé le 2026-09-21 20:27, étiquettes : veille-2026-09-17, outillage).* *Importé d'OpenProject (#1109, essai Kaneo, ADR-0008).* --- *Migré de Kaneo le 2026-10-11 : ATE-9 du projet « Atelier », créée le 2026-10-04.* <!-- kaneo-id: loq942w910gjrm741ohzq3cp -->
mathieu added this to the (deleted) milestone 2026-10-11 10:06:43 +02:00
mathieu 2026-10-11 10:06:43 +02:00
  • closed this issue
  • added the
    Skills
    label
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mathieu/essai-actions#12
No description provided.