diff options
Diffstat (limited to 'internal/askcli/task_alias_cache.go')
| -rw-r--r-- | internal/askcli/task_alias_cache.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/internal/askcli/task_alias_cache.go b/internal/askcli/task_alias_cache.go index 21967d8..e89dbb5 100644 --- a/internal/askcli/task_alias_cache.go +++ b/internal/askcli/task_alias_cache.go @@ -91,7 +91,11 @@ func loadTaskAliasCache() (taskAliasCache, string, error) { var cache taskAliasCache if err := json.Unmarshal(data, &cache); err != nil { - return taskAliasCache{}, "", fmt.Errorf("parse task alias cache: %w", err) + // Cache file is unreadable (e.g. truncated write or duplicate-write + // corruption). Discard and start fresh — tasks will get new alias IDs on + // the next run, which is preferable to a hard failure. + _ = os.Remove(path) + return taskAliasCache{}, path, nil } if err := cache.validate(); err != nil { return taskAliasCache{}, "", fmt.Errorf("validate task alias cache: %w", err) |
