From 39e759d015af5d82f387b57a8d137bdeb844d430 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Fri, 19 Jun 2026 22:40:08 +0800
Subject: [PATCH] Fix historical Apple default note migration

---
 src/Apptag/DataLayer.swift |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/src/Apptag/DataLayer.swift b/src/Apptag/DataLayer.swift
index 9b88064..d05beda 100644
--- a/src/Apptag/DataLayer.swift
+++ b/src/Apptag/DataLayer.swift
@@ -821,6 +821,26 @@
             }
         }
 
+        for tagName in orderedTagDefinitionNames(
+            tagDefinitions: effectiveTagDefinitions,
+            tagOrder: tagOrder
+        ) {
+            let displayName = nameOverrides[tagName] ?? tagName
+            guard displayName != macCategory,
+                  displayName != defaultGroupName
+            else { continue }
+
+            if containerIDsByGroupName[displayName] == nil {
+                containerIDsByGroupName[displayName] = AppContainerID.forTag(
+                    tagName,
+                    definition: effectiveTagDefinitions[tagName]
+                )
+            }
+            if dict[displayName] == nil {
+                dict[displayName] = []
+            }
+        }
+
         // Build sort index from tagOrder: lower index = appears first
         var orderIndex: [String: Int] = [:]
         for (i, name) in tagOrder.enumerated() {
@@ -881,6 +901,18 @@
         return ordered + remaining
     }
 
+    private static func orderedTagDefinitionNames(
+        tagDefinitions: [String: TagDatabase.TagDef],
+        tagOrder: [String]
+    ) -> [String] {
+        let ordered = tagOrder.filter { tagDefinitions[$0] != nil }
+        let orderedSet = Set(ordered)
+        let remaining = tagDefinitions.keys
+            .filter { !orderedSet.contains($0) }
+            .sorted()
+        return ordered + remaining
+    }
+
     private static func appendGroupedApp(
         _ app: AppInfo,
         to groupName: String,

--
Gitblit v1.9.3