Files
IdeA/.ideai/tickets/135/carnet.md
Blomios 59d81851e9 chore(tickets): synchronise index/carnets tickets #131-#139 + note mémoire assets/persistance plugins
État runtime .ideai séparé du code (index, counter, carnets, note mémoire
plugin-asset-serving-and-owned-storage-contracts). Purge des tickets obsolètes
51/63/66.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-03 11:06:30 +02:00

2.0 KiB

issueRef, version, updatedBy, updatedAt
issueRef version updatedBy updatedAt
#135 4
kind agent_id
agent a6c6ea12-bfc6-4bdc-8031-324102dfa34d
1785708498776

Audit QA

  • install_from_directory : audit confirme qu'avant correctif le store ne rejetait pas explicitement les symlinks source ; il les ignorait. Le correctif fait maintenant échouer l'installation sur toute entrée symlink ou unsupported dans l'arbre source.
  • install_from_archive : audit confirme un trou réel de confinement avant correctif. L'extraction reposait entièrement sur unzip sans validation applicative des entrées. Le correctif remplace cette extraction par une lecture Rust confinée qui rejette les entrées ..//absolues via enclosed_name() et refuse explicitement les symlinks d'archive.
  • Confinement d'écriture : après correctif, aucune écriture d'install ne sort de app_data/plugins/_staging/... puis app_data/plugins/installed/<id> ; le test ../../../../outside.txt prouve l'absence d'écriture hors racine.
  • hash_dir / collecte fichiers : durci pour échouer si un package contient encore un symlink ou une entrée non supportée, au lieu de l'ignorer.
  • plugin_uninstall / remove_package : audit confirmé par test multifichier. La désinstallation supprime le dossier entier, retire l'entrée registry et laisse le runtime catalog vide.

Tests ajoutés/ajustés

  • plugin::tests::install_from_directory_rejects_source_symlink
  • plugin::tests::install_from_archive_rejects_parent_traversal_without_writing_outside_stage
  • plugin::tests::install_from_archive_rejects_symlink_entries
  • plugin_install_load::uninstall_multifile_plugin_removes_package_registry_and_runtime_residue
  • Stabilisation des tests SDK hello-plugin : fixture matérialisée avec dist/index.js dans un temp dir pour supprimer une dépendance implicite à un build préalable.

Verdict

  • Correctif confinement install/uninstall validé.
  • cargo test -p infrastructure -p application -p app-tauri vert avec CARGO_HOME=/tmp/idea-cargo-home dans cet environnement.