SPB Git

spb/prisme Public MIT

Navigateur iOS intelligent — chaque page comprise localement avant d'être affichée. SwiftUI · WebKit · Foundation Models, 100% on-device.

Swift 96.7% JavaScript 3.3%
1.5 KB · 37 lines swift
Raw Blame History
1//2//  IdentityContainer.swift3//  Prisme4//5//  Author: Simon-Pierre Boucher <contact@spboucher.ai>6//78import Foundation910/// An isolated browsing identity. Cookies, sessions and local storage are11/// fully partitioned per container via `WKWebsiteDataStore(forIdentifier:)`.12/// A site opened in "Travail" can never link you to "Perso".13struct IdentityContainer: Identifiable, Codable, Hashable, Sendable {14    let id: UUID15    /// User-facing name (French, per product conventions).16    var name: String17    /// SF Symbol name shown in the chrome and tab switcher.18    var symbol: String19    var color: ContainerColor20    /// Sensitive containers are hard-excluded from any cloud escalation21    /// once the intelligence layer lands (CLAUDE.md §3).22    var isSensitive: Bool23}2425extension IdentityContainer {26    /// Default set created on first launch. IDs are generated once and then27    /// persisted — they must stay stable because they key the data stores.28    static func makeDefaults() -> [IdentityContainer] {29        [30            IdentityContainer(id: UUID(), name: "Perso", symbol: "person.fill", color: .vert, isSensitive: false),31            IdentityContainer(id: UUID(), name: "Travail", symbol: "briefcase.fill", color: .bleu, isSensitive: false),32            IdentityContainer(id: UUID(), name: "Magasinage", symbol: "cart.fill", color: .orange, isSensitive: false),33            IdentityContainer(id: UUID(), name: "Recherche sensible", symbol: "lock.shield.fill", color: .violet, isSensitive: true),34        ]35    }36}37