Rattrapage de l'état runtime .ideai/ (tickets #119-#139/#147 clôturés, compteur→149, ticket #148 clos et QA verte, métadonnées plugin android) — séparé du code de feature avant d'ouvrir le travail sur le nouveau bug de lancement CLI custom. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
39 lines
1.6 KiB
Markdown
39 lines
1.6 KiB
Markdown
---
|
||
issueRef: "#124"
|
||
version: 5
|
||
updatedBy: {"kind":"user"}
|
||
updatedAt: 1785881187593
|
||
---
|
||
## Problème
|
||
`WorkspaceService` public expose aujourd’hui seulement le projet courant, son root, et la lecture/écriture du contexte Markdown IdeA. Cela ne suffit pas pour un plugin de développement qui doit lire, écrire, lister ou surveiller les fichiers d’un projet.
|
||
|
||
## Pourquoi c’est global
|
||
Ce besoin n’a rien de spécifique à Android. Tout plugin de dev outillé doit pouvoir manipuler le workspace : configs, manifests, scripts, sources, fichiers générés, assets, etc.
|
||
|
||
## Ce que ce ticket doit produire
|
||
Une API publique de workspace/fichiers permettant au minimum :
|
||
- lecture de fichier texte/binaire
|
||
- écriture atomique ou contrôlée
|
||
- listing de répertoires
|
||
- existence/stat basiques
|
||
- résolution sûre de chemins dans le project root
|
||
- capacité de watch ou point d’extension compatible avec `#127`
|
||
|
||
## Contraintes d’architecture
|
||
- API strictement publique côté SDK TypeScript.
|
||
- Aucun accès direct aux objets runtime internes.
|
||
- Respect du sandboxing et du project root.
|
||
- Contrat clair sur les erreurs, encodages, chemins hors-root et fichiers absents.
|
||
|
||
## Non-objectifs
|
||
- Pas de parser Gradle/XML/JSON dans ce ticket.
|
||
- Pas d’analyse sémantique du projet.
|
||
- Pas de conventions Android codées en dur.
|
||
|
||
## Dépendances
|
||
- Bloque `#126`, `#129`, `#130`.
|
||
|
||
## Critères d’acceptation
|
||
- Un plugin peut lire/écrire/lister dans le workspace sans cast interne.
|
||
- Le contrat gère explicitement les chemins invalides/hors-root.
|
||
- La documentation SDK montre un exemple simple de manipulation de fichiers. |