mirror of
https://github.com/openclaw/openclaw.git
synced 2026-09-28 14:12:28 +08:00
* feat(ios): render Mermaid diagrams in native chat * test(ci): require the Apple asset setup step * docs(mac): prepare chat assets for direct SwiftPM builds * style(ios): align Mermaid view with SwiftFormat 0.63
2.5 KiB
2.5 KiB
summary, read_when, title
| summary | read_when | title | ||
|---|---|---|---|---|
| How OpenClaw vendors Apple device model identifiers for friendly names in the macOS app. |
|
Device model database |
The macOS companion app's Instances UI maps Apple model identifiers to friendly names (iPad16,6 -> "iPad Pro 13-inch (M4)", Mac16,6 -> "MacBook Pro (14-inch, 2024)"). DeviceModelCatalog also uses the identifier prefix (falling back to device family) to pick an SF Symbol per device.
Files in apps/macos/Sources/OpenClaw/Resources/DeviceModels/:
| File | Purpose |
|---|---|
ios-device-identifiers.json |
iOS/iPadOS identifier -> name mapping |
mac-device-identifiers.json |
Mac identifier -> name mapping |
NOTICE.md |
Pinned upstream commit SHAs |
LICENSE.apple-device-identifiers.txt |
Upstream MIT license |
Data source
Vendored from the MIT-licensed kyle-seongwoo-jun/apple-device-identifiers GitHub repository. JSON files are pinned to commit SHAs recorded in NOTICE.md to keep builds deterministic.
Updating the database
- Pick the upstream commit SHAs to pin to (one for iOS, one for macOS).
- Update
apps/macos/Sources/OpenClaw/Resources/DeviceModels/NOTICE.mdwith the new SHAs. - Re-download the JSON files pinned to those commits:
IOS_COMMIT="<commit sha for ios-device-identifiers.json>"
MAC_COMMIT="<commit sha for mac-device-identifiers.json>"
curl -fsSL "https://raw.githubusercontent.com/kyle-seongwoo-jun/apple-device-identifiers/${IOS_COMMIT}/ios-device-identifiers.json" \
-o apps/macos/Sources/OpenClaw/Resources/DeviceModels/ios-device-identifiers.json
curl -fsSL "https://raw.githubusercontent.com/kyle-seongwoo-jun/apple-device-identifiers/${MAC_COMMIT}/mac-device-identifiers.json" \
-o apps/macos/Sources/OpenClaw/Resources/DeviceModels/mac-device-identifiers.json
- Confirm
LICENSE.apple-device-identifiers.txtstill matches upstream; replace it if the upstream license changed. - With workspace dependencies installed, run the following from the repository root to prepare the shared chat assets and verify the macOS app builds:
node scripts/prepare-apple-mermaid.mjs
swift build --package-path apps/macos