Rename app from oAI to Confab

"oAI" reads as easily confused with OpenAI, both visually and in
casual conversation. Renamed to "Confab" throughout: Xcode
target/scheme/bundle ID (com.oai.Confab), Info.plist and Help Book
identity, all user-facing UI text, internal Log subsystem and color
identifiers, localization catalogs (6 languages, including a proper
reworded/retranslated Intel-deprecation notice), Help Book HTML
content, and docs (README/DEVELOPMENT/PRIVACY/SECURITY).

Deliberately cosmetic-only: the on-disk data folder
(~/Library/Application Support/oAI/), database/backup filenames,
Keychain service identifiers, and EncryptionService's key-derivation
inputs are all left untouched so existing conversations, settings,
and stored API keys survive the update with zero migration and no
re-entering credentials. Verified live: a real signed build
successfully decrypted a stored API key and loaded an existing
conversation database after the bundle ID change.

Also includes a small already-completed, previously uncommitted
model-release-date feature (ModelInfo/OpenRouterModels/
OpenRouterProvider/ModelInfoView) that happened to share several
files with this rename.

Gitignored on this branch and updated on disk but not part of this
commit: CLAUDE.md, RELEASE_NOTES.md, and the build*.sh scripts.
This commit is contained in:
2026-08-02 14:58:14 +02:00
parent ae3de3d927
commit 76b58e6fdc
121 changed files with 987 additions and 692 deletions
+45 -45
View File
@@ -523,36 +523,36 @@
}
}
},
"• No credentials needed in oAI" : {
"• No credentials needed in Confab" : {
"localizations" : {
"da" : {
"stringUnit" : {
"state" : "translated",
"value" : "• Ingen legitimationsoplysninger nødvendige i oAI"
"value" : "• Ingen legitimationsoplysninger nødvendige i Confab"
}
},
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "• Keine Zugangsdaten in oAI erforderlich"
"value" : "• Keine Zugangsdaten in Confab erforderlich"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "• Aucun identifiant requis dans oAI"
"value" : "• Aucun identifiant requis dans Confab"
}
},
"nb" : {
"stringUnit" : {
"state" : "translated",
"value" : "• Ingen legitimasjon nødvendig i oAI"
"value" : "• Ingen legitimasjon nødvendig i Confab"
}
},
"sv" : {
"stringUnit" : {
"state" : "translated",
"value" : "• Inga inloggningsuppgifter behövs i oAI"
"value" : "• Inga inloggningsuppgifter behövs i Confab"
}
}
}
@@ -1878,36 +1878,36 @@
}
}
},
"About oAI" : {
"About Confab" : {
"localizations" : {
"da" : {
"stringUnit" : {
"state" : "translated",
"value" : "Om oAI"
"value" : "Om Confab"
}
},
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Über oAI"
"value" : "Über Confab"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "À propos d'oAI"
"value" : "À propos de Confab"
}
},
"nb" : {
"stringUnit" : {
"state" : "translated",
"value" : "Om oAI"
"value" : "Om Confab"
}
},
"sv" : {
"stringUnit" : {
"state" : "translated",
"value" : "Om oAI"
"value" : "Om Confab"
}
}
}
@@ -4666,36 +4666,36 @@
}
}
},
"Controls which messages are written to ~/Library/Logs/oAI.log" : {
"Controls which messages are written to ~/Library/Logs/Confab.log" : {
"localizations" : {
"da" : {
"stringUnit" : {
"state" : "translated",
"value" : "Styrer hvilke beskeder der skrives til ~/Library/Logs/oAI.log"
"value" : "Styrer hvilke beskeder der skrives til ~/Library/Logs/Confab.log"
}
},
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Steuert, welche Nachrichten in ~/Library/Logs/oAI.log geschrieben werden"
"value" : "Steuert, welche Nachrichten in ~/Library/Logs/Confab.log geschrieben werden"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Contrôle quels messages sont écrits dans ~/Library/Logs/oAI.log"
"value" : "Contrôle quels messages sont écrits dans ~/Library/Logs/Confab.log"
}
},
"nb" : {
"stringUnit" : {
"state" : "translated",
"value" : "Styrer hvilke meldinger som skrives til ~/Library/Logs/oAI.log"
"value" : "Styrer hvilke meldinger som skrives til ~/Library/Logs/Confab.log"
}
},
"sv" : {
"stringUnit" : {
"state" : "translated",
"value" : "Styr vilka meddelanden som skrivs till ~/Library/Logs/oAI.log"
"value" : "Styr vilka meddelanden som skrivs till ~/Library/Logs/Confab.log"
}
}
}
@@ -6795,36 +6795,36 @@
}
}
},
"Example: oai-bot-x7k2m9p3@gmail.com" : {
"Example: confab-bot-x7k2m9p3@gmail.com" : {
"localizations" : {
"da" : {
"stringUnit" : {
"state" : "translated",
"value" : "Example: oai-bot-x7k2m9p3@gmail.com"
"value" : "Example: confab-bot-x7k2m9p3@gmail.com"
}
},
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Example: oai-bot-x7k2m9p3@gmail.com"
"value" : "Example: confab-bot-x7k2m9p3@gmail.com"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Exemple : oai-bot-x7k2m9p3@gmail.com"
"value" : "Exemple : confab-bot-x7k2m9p3@gmail.com"
}
},
"nb" : {
"stringUnit" : {
"state" : "translated",
"value" : "Example: oai-bot-x7k2m9p3@gmail.com"
"value" : "Example: confab-bot-x7k2m9p3@gmail.com"
}
},
"sv" : {
"stringUnit" : {
"state" : "translated",
"value" : "Example: oai-bot-x7k2m9p3@gmail.com"
"value" : "Example: confab-bot-x7k2m9p3@gmail.com"
}
}
}
@@ -9805,7 +9805,7 @@
}
},
"Multi-provider AI chat client" : {
"comment" : "A description of oAI.",
"comment" : "A description of Confab.",
"isCommentAutoGenerated" : true,
"localizations" : {
"da" : {
@@ -10576,108 +10576,108 @@
}
}
},
"oAI" : {
"Confab" : {
"comment" : "The name of the app.",
"isCommentAutoGenerated" : true,
"localizations" : {
"da" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI"
"value" : "Confab"
}
},
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI"
"value" : "Confab"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI"
"value" : "Confab"
}
},
"nb" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI"
"value" : "Confab"
}
},
"sv" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI"
"value" : "Confab"
}
}
}
},
"oAI Help" : {
"Confab Help" : {
"localizations" : {
"da" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI-hjælp"
"value" : "Confab-hjælp"
}
},
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI-Hilfe"
"value" : "Confab-Hilfe"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Aide oAI"
"value" : "Aide Confab"
}
},
"nb" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI-hjelp"
"value" : "Confab-hjelp"
}
},
"sv" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI-hjälp"
"value" : "Confab-hjälp"
}
}
}
},
"oAI v2.4 is the last version to support Intel Macs and Rosetta. Starting with macOS 28, oAI will require Apple Silicon. Consider upgrading your Mac to continue receiving updates." : {
"Confab (formerly oAI) v2.4 was the last version to support Intel Macs and Rosetta. Starting with macOS 28, Confab will require Apple Silicon. Consider upgrading your Mac to continue receiving updates." : {
"comment" : "A warning that Intel Macs are no longer supported.",
"isCommentAutoGenerated" : true,
"localizations" : {
"da" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI v2.4 er den sidste version, der understøtter Intel-Mac og Rosetta. Fra macOS 28 vil oAI kræve Apple Silicon. Overvej at opgradere din Mac for at fortsætte med at få opdateringer."
"value" : "Confab (tidligere oAI) v2.4 var den sidste version, der understøttede Intel-Mac og Rosetta. Fra macOS 28 vil Confab kræve Apple Silicon. Overvej at opgradere din Mac for at fortsætte med at få opdateringer."
}
},
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI v2.4 ist die letzte Version, die Intel-Macs und Rosetta unterstützt. Ab macOS 28 benötigt oAI Apple Silicon. Erwäge ein Upgrade deines Mac, um weiterhin Updates zu erhalten."
"value" : "Confab (früher oAI) v2.4 war die letzte Version, die Intel-Macs und Rosetta unterstützte. Ab macOS 28 benötigt Confab Apple Silicon. Erwäge ein Upgrade deines Mac, um weiterhin Updates zu erhalten."
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI v2.4 est la dernière version à prendre en charge les Mac Intel et Rosetta. À partir de macOS 28, oAI nécessitera Apple Silicon. Envisage de mettre à niveau ton Mac pour continuer à recevoir des mises à jour."
"value" : "Confab (anciennement oAI) v2.4 était la dernière version à prendre en charge les Mac Intel et Rosetta. À partir de macOS 28, Confab nécessitera Apple Silicon. Envisage de mettre à niveau ton Mac pour continuer à recevoir des mises à jour."
}
},
"nb" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI v2.4 er den siste versjonen som støtter Intel-Mac og Rosetta. Fra macOS 28 vil oAI kreve Apple Silicon. Vurder å oppgradere Mac-en din for å fortsette å få oppdateringer."
"value" : "Confab (tidligere oAI) v2.4 var den siste versjonen som støttet Intel-Mac og Rosetta. Fra macOS 28 vil Confab kreve Apple Silicon. Vurder å oppgradere Mac-en din for å fortsette å få oppdateringer."
}
},
"sv" : {
"stringUnit" : {
"state" : "translated",
"value" : "oAI v2.4 är den sista versionen som stöder Intel-Mac och Rosetta. Från macOS 28 kommer oAI att kräva Apple Silicon. Överväg att uppgradera din Mac för att fortsätta få uppdateringar."
"value" : "Confab (tidigare oAI) v2.4 var den sista versionen som stödde Intel-Mac och Rosetta. Från macOS 28 kommer Confab att kräva Apple Silicon. Överväg att uppgradera din Mac för att fortsätta få uppdateringar."
}
}
}
@@ -15616,7 +15616,7 @@
}
},
"Update Available%@" : {
"comment" : "A button that opens a website with information about a new version of oAI. The argument is the version number of the new version.",
"comment" : "A button that opens a website with information about a new version of Confab. The argument is the version number of the new version.",
"isCommentAutoGenerated" : true,
"localizations" : {
"da" : {
@@ -15998,7 +15998,7 @@
}
},
"v%@" : {
"comment" : "A label showing the current version of oAI.",
"comment" : "A label showing the current version of Confab.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {