summaryrefslogtreecommitdiff
path: root/internal/askcli/task_alias_cache.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/askcli/task_alias_cache.go')
-rw-r--r--internal/askcli/task_alias_cache.go6
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)