diff --git a/internal/topdata/native.go b/internal/topdata/native.go index d674a74..a9bfdf6 100644 --- a/internal/topdata/native.go +++ b/internal/topdata/native.go @@ -1440,7 +1440,7 @@ func collectExistingFeatKeys(featDir string) (map[string]struct{}, error) { return nil, err } if rawEntries, ok := obj["entries"].(map[string]any); ok { - for key := range rawEntries { + for _, key := range sortedKeys(rawEntries) { if key != "" { keys[key] = struct{}{} } @@ -1512,7 +1512,8 @@ func collectRetiredFeatKeys(featDir string) (map[string]struct{}, error) { return nil, err } if rawEntries, ok := obj["entries"].(map[string]any); ok { - for key, rawEntry := range rawEntries { + for _, key := range sortedKeys(rawEntries) { + rawEntry := rawEntries[key] entry, ok := rawEntry.(map[string]any) if !ok || key == "" { continue @@ -2647,7 +2648,7 @@ func resolveAffinitySkillKey(skillRows map[string]map[string]any, skillKey strin return skillKey } target := normalizeKeyIdentity(strings.TrimPrefix(skillKey, "skills:")) - for key := range skillRows { + for _, key := range sortedStringMapKeys(skillRows) { if normalizeKeyIdentity(strings.TrimPrefix(key, "skills:")) == target { return key }