feat(keyboard): ship AI hint carousel, home library cards, and clipboard polish

Rotate AI idle suggestions with optional remote packs, move history/dictionary onto self-sizing Home preview cards, harden clipboard capture/prompting, and simplify keyboard chrome by dropping most liquid-glass shadows.
This commit is contained in:
Rocky
2026-08-13 01:00:51 +08:00
parent fd6e0d3e7e
commit 9f308fadd2
202 changed files with 10897 additions and 5962 deletions
@@ -21,6 +21,8 @@ public struct HistoryMutation: Codable, Equatable, Sendable, Identifiable {
public let sequence: Int64
public let action: Action
public let entryID: UUID
/// Optimistic-lock revision; a mismatch preserves the edit as a new row
/// instead of overwriting a newer history value.
public let expectedRevision: Int64?
public let text: String?
public let engineMode: String?
@@ -53,6 +55,8 @@ public struct HistoryMutation: Codable, Equatable, Sendable, Identifiable {
}
}
/// Durable FIFO between the extension and host. Enqueue is idempotent by
/// mutation ID; the host removes an item only after applying and acknowledging it.
public enum HistoryMutationOutbox {
private static let key = "editLastInput.historyMutations.v1"
public static func enqueue(
@@ -163,6 +167,8 @@ public struct PendingTextEditTransaction: Codable, Equatable, Sendable {
case append
}
/// Crash-recovery ordering: persist `prepared` before touching the field,
/// then `fieldApplied` before enqueueing history, and `committed` last.
public enum Phase: String, Codable, Sendable {
case prepared
case fieldApplied