Define precise disableCache trigger points for uncacheable operations
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 52/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Calme
- Stack technique
- javascript, rust
- Domaine
- build-system, tooling
Piste de recherche
Tracez le chemin de démarrage/écoute du serveur HTTP Vite, le chemin de démarrage du watcher, les chemins génériques de création/configuration du serveur, ainsi que vite_task_client::Client::disable_cache(). Vérifiez que le mode d’exécution cacheable de Vitest n’effectue ni listening ni watching, tandis que les modes API/server et watch se désengagent à leurs limites d’opération. Une fois les sémantiques couvertes, annulez le workaround no-op de PR #481 et restaurez la requête effective du client.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Problem
disableCache() currently has an imprecise contract in practice. Tool integrations can call it while configuring a server because the configuration may later lead to an uncacheable operation. That is too early.
The observed failure mode is Vite/Vitest: a task can create a Vite server for transforms or test execution without actually listening on a port or watching the filesystem. If disableCache() fires during server/config setup, cacheable tasks such as vitest run are reported as Not cached: the task opted out of caching even though no uncacheable operation happened.
Principle
disableCache() should be called immediately before the concrete operation that makes the task uncacheable, not when reading configuration that might eventually lead to such an operation.
Concrete examples:
- Listening on a port should disable caching immediately before the listen/bind operation.
- Observing the filesystem should disable caching immediately before the watcher starts observing paths.
- Creating/configuring an object that might later listen or watch should not disable caching by itself.
Temporary workaround
PR #481 makes vite_task_client::Client::disable_cache() a no-op so false opt-outs stop affecting downstream task caching while the real fix is designed and shipped.
Real solution
Move the Vite/Vitest integration points to operation boundaries:
- In Vite, call
disableCache()from the HTTP server start/listen path immediately before binding a port. - In Vite, call
disableCache()from the watcher start path immediately before filesystem observation begins. - Do not call
disableCache()from generic server creation/config resolution paths. - Verify Vitest
runwithout watch/API does not listen or watch and therefore remains cacheable. - Verify Vitest API/server mode and watch mode still opt out because they perform uncacheable operations.
After those semantics are implemented and covered, revert the vite-task client no-op workaround and restore disableCache() as an effective client request.
- Langage dominant
- Rust
- Étoiles
- 473
- Forks
- 44
- Merge moyen
- 1 j 1 h
- PR mergées (30 j)
- 63
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de voidzero-dev/vite-task
-
Windows: automatic filesystem tracking makes Git/MSYS sh.exe fail with MapViewOfFileEx error 487Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 18/100
voidzero-dev/vite-task#830 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
voidzero-dev/vite-task#822 ·
Les mainteneurs répondent en général sous 1 jour
-
Let tools mark cache directories with CACHEDIR.TAGPeut-être pris @lifeiscontent l’a pris il y a 9 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
voidzero-dev/vite-task#793 ·
Les mainteneurs répondent en général sous 1 jour
-
Preview cache hits without running tasksPeut-être pris @lifeiscontent l’a pris il y a 10 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
voidzero-dev/vite-task#791 ·
Les mainteneurs répondent en général sous 1 jour
-
Built-in tool tasks miss the cache after the workspace movesPeut-être pris @lifeiscontent l’a pris il y a 10 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 67/100
voidzero-dev/vite-task#790 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de voidzero-dev/vite-task
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
swc-project/swc#12516 ·
Les mainteneurs répondent en général sous 1 jour
-
mls-rs-crypto-awslc: exact aws-lc-rs =1.16.3 pin blocks rustls security updatePeut-être pris @muscariello l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
[work-item] adam-adae-worsening-emergence: conform spec.yaml to the specification style contract (REQ-1280)Peut-être pris @muse-yamaa-bot l’a pris aujourd’hui. Ouvertework-item
Difficulté 1/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
[Bug]:设置的关于页面,“系统信息”部分排版异常Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100
metasequoiaime/msime#7328 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
eclipse-opensovd/classic-diagnostic-adapter#616 ·
Les mainteneurs répondent en général sous 2 jours