@@ -106,6 +106,9 @@ async function createWork() {
106106  if  ( noCache )  { 
107107    console . log ( `ℹ️ No cache directory found, this will take a while...` ) ; 
108108    await  mkdir ( CACHE_DIR ,  { recursive : true } ) ; 
109+   }  else  { 
110+     const  initialCacheFiles  =  await  readdir ( CACHE_DIR ) ; 
111+     console . log ( `📦 Cache directory has ${ initialCacheFiles . length }   files from previous build` ) ; 
109112  } 
110113
111114  // Track which cache files are used during this build 
@@ -213,24 +216,20 @@ async function createWork() {
213216    try  { 
214217      const  allFiles  =  await  readdir ( CACHE_DIR ) ; 
215218      const  filesToDelete  =  allFiles . filter ( file  =>  ! globalUsedCacheFiles . has ( file ) ) ; 
219+       const  overlaps  =  allFiles . filter ( file  =>  globalUsedCacheFiles . has ( file ) ) ; 
216220
217221      console . log ( `📊 Cache tracking stats:` ) ; 
218-       console . log ( `   - Files in cache dir: ${ allFiles . length }  ` ) ; 
222+       console . log ( `   - Files in cache dir (after build) : ${ allFiles . length }  ` ) ; 
219223      console . log ( `   - Files tracked as used: ${ globalUsedCacheFiles . size }  ` ) ; 
220-       console . log ( `   - Files to delete: ${ filesToDelete . length }  ` ) ; 
224+       console . log ( `   - Files that existed and were used: ${ overlaps . length }  ` ) ; 
225+       console . log ( `   - Files to delete (old/unused): ${ filesToDelete . length }  ` ) ; 
226+       console . log ( `   - Expected after cleanup: ${ overlaps . length }   files` ) ; 
221227
222-       // Debug: Show a few examples of what we're comparing 
223-       const  usedArray  =  Array . from ( globalUsedCacheFiles ) ; 
224-       console . log ( `   - Example used files: ${ usedArray . slice ( 0 ,  3 ) . join ( ', ' ) }  ` ) ; 
225-       console . log ( `   - Example dir files: ${ allFiles . slice ( 0 ,  3 ) . join ( ', ' ) }  ` ) ; 
226-       console . log ( `   - Example to delete: ${ filesToDelete . slice ( 0 ,  3 ) . join ( ', ' ) }  ` ) ; 
228+       // Debug: Show a few examples 
229+       console . log ( `   - Example used: ${ Array . from ( globalUsedCacheFiles ) . slice ( 0 ,  2 ) . join ( ', ' ) }  ` ) ; 
230+       console . log ( `   - Example to delete: ${ filesToDelete . slice ( 0 ,  2 ) . join ( ', ' ) }  ` ) ; 
231+       console . log ( `   - Example kept: ${ overlaps . slice ( 0 ,  2 ) . join ( ', ' ) }  ` ) ; 
227232
228-       // Check if there's ANY overlap 
229-       const  overlaps  =  allFiles . filter ( file  =>  globalUsedCacheFiles . has ( file ) ) ; 
230-       console . log ( `   - Files that overlap (exist in both): ${ overlaps . length }  ` ) ; 
231-       if  ( overlaps . length  >  0 )  { 
232-         console . log ( `   - Example overlaps: ${ overlaps . slice ( 0 ,  3 ) . join ( ', ' ) }  ` ) ; 
233-       } 
234233
235234      if  ( filesToDelete . length  >  0 )  { 
236235        await  Promise . all ( 
@@ -428,6 +427,9 @@ async function processTaskList({id, tasks, cacheDir, noCache, usedCacheFiles}) {
428427      `📤 Worker[${ id }  ]: Updated the following files on R2: \n${ r2CacheMisses . map ( n  =>  ` - ${ n }  ` ) . join ( '\n' ) }  ` 
429428    ) ; 
430429  } 
430+   const  cacheHits  =  success  -  cacheMisses . length ; 
431+   console . log ( `📈 Worker[${ id }  ]: Cache stats: ${ cacheHits }   hits, ${ cacheMisses . length }   misses (${ ( ( cacheMisses . length  /  success )  *  100 ) . toFixed ( 1 ) }  % miss rate)` ) ; 
432+ 
431433  if  ( cacheMisses . length  /  tasks . length  >  0.1 )  { 
432434    console . warn ( `⚠️ Worker[${ id }  ]: More than 10% cache miss rate during build.` ) ; 
433435  }  else  if  ( cacheMisses . length  >  0 )  { 
0 commit comments