Repository navigation
Annuaires de noms, destinations et capture web - #89
Merged
Merged
Conversation
Troisieme lot : lecture du module d'assainissement de pikepdf (liant qpdf,
recupere depuis PyPI ; les docs de qpdf et de mutool sont injoignables depuis
la session et les depots tiers hors perimetre).
Sa liste recoupe la notre ENTREE PAR ENTREE sur /Thumb, /PieceInfo, /AF,
/Collection et /RichMedia. C'est la meilleure validation possible de la passe :
un outil mature qui edite en place, arrive independamment a la meme liste. Il
en nommait trois que nous n'avions pas testees, et les trois fuyaient.
/SpiderInfo (capture web) 200 pass complete corrige
/Names URLS+Templates+... 200 pass complete corrige
/Dests, les deux emplacements 200 pass complete corrige
/PieceInfo/SearchIndex 200 pass complete deja couvert
Deux decisions de forme. /Names/EmbeddedFiles et /Names/JavaScript ne sont pas
coupes la : ils ont deja leur drapeau, et les couper ici retirerait a un
appelant ce qu'il a explicitement choisi de garder --
test_carriers_survive_when_the_caller_opts_out garde ce droit. Les destinations
nommees suivent remove_annotations plutot qu'aucun drapeau, parce qu'une
destination nommee n'existe que pour etre visee par un lien : quand les liens
partent elle ne coute rien, quand l'appelant les garde, la couper laisserait un
lien pointant dans le vide.
L'index plein texte d'Acrobat ne demande aucun code : il vit dans /PieceInfo,
coupe en entier depuis le premier lot. pikepdf le traite a part et nomme
exactement le risque (« avoids a stale index leaking content you intended to
edit or redact ») ; un test le fige, pour qu'un decoupage plus fin de
/PieceInfo un jour ne rouvre pas ce trou sans qu'on le voie.
191 tests (contre 188), ruff et mypy strict propres.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LuxbBUCDqSKrotwpp9mTxc
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.
Troisième et dernier lot de la passe bornée : lecture du module d'assainissement de pikepdf (liant qpdf, récupéré depuis PyPI ; les docs de qpdf et de mutool sont injoignables depuis la session, et les dépôts tiers sont hors périmètre).
Le résultat qui compte n'est pas le correctif
Sa liste recoupe la nôtre entrée par entrée sur
/Thumb,/PieceInfo,/AF,/Collectionet/RichMedia. Un outil mature, qui édite en place, arrive indépendamment à la même liste que celle que la passe a produite en partant de l'énumération du format. C'est la meilleure validation de la méthode qu'on pouvait espérer.Il en nommait trois que nous n'avions pas testées. Les trois fuyaient.
/SpiderInfo(capture web Acrobat)/Names:URLS,Templates,IDS, …/Dests, aux deux emplacements du format/PieceInfo/SearchIndexDeux décisions de forme
/Names/EmbeddedFileset/Names/JavaScriptne sont pas coupés là. Ils ont déjà leur drapeau, et les couper ici retirerait à un appelant ce qu'il a explicitement choisi de garder.test_carriers_survive_when_the_caller_opts_outgarde ce droit de retrait.Les destinations nommées suivent
remove_annotations, plutôt que de partir sans drapeau. Une destination nommée n'existe que pour être visée par un lien : quand les liens partent elle ne coûte rien, quand l'appelant les garde, la couper laisserait un lien pointant dans le vide. C'est le seul drapeau dont la réponse soit la même que celle de ce porteur.L'index plein texte ne demande aucun code
Acrobat range son index dans
/PieceInfo, coupé en entier depuis le premier lot. pikepdf le traite à part et nomme exactement le risque :Un test le fige quand même, pour qu'un découpage plus fin de
/PieceInfoun jour ne rouvre pas ce trou sans qu'on le voie.191 tests (contre 188),
ruffetmypy --strictpropres.🤖 Generated with Claude Code
https://claude.ai/code/session_01LuxbBUCDqSKrotwpp9mTxc
Generated by Claude Code