 				return false if options?.keep == dir
 				# remove any directories over the hard limit
 				return true if index > OutputCacheManager.CACHE_LIMIT
-				# we can get the build time from the directory name
-				dirTime = parseInt(dir, 16)
+				# we can get the build time from the first part of the directory name DDDD-RRRR
+				# DDDD is date and RRRR is random bytes
+				dirTime = parseInt(dir.split('-')?[0], 16)
 				age = currentTime - dirTime
 				return age > OutputCacheManager.CACHE_AGE
 

					else
						# pass back the list of new files in the cache
						callback(err, results)
	
	archiveLogs: (outputFiles, compileDir, callback = (error) ->) ->
		buildId = Date.now().toString(16)
		archiveDir = Path.join(compileDir, OutputCacheManager.ARCHIVE_SUBDIR, buildId)
		logger.log {dir: archiveDir}, "archiving log files for project"
		fse.ensureDir archiveDir, (err) ->


		# Archive logs in background
		if Settings.clsi?.archive_logs or Settings.clsi?.strace
			OutputCacheManager.archiveLogs outputFiles, compileDir, buildId, (err) ->
				if err?
					logger.warn err:err, "erroring archiving log files"

