Fix CI tooling and semantic skill recommendations
Resolve the pinned XcodeGen archive layout and let the keyboard derive bounded clipboard recommendations from the full catalog independently of installation state.
This commit is contained in:
@@ -402,7 +402,7 @@ final class AIKeyboardCoordinator {
|
||||
}
|
||||
|
||||
private func resolvedSkill(id: String) -> AIClipboardSkill? {
|
||||
state.enabledClipboardSkills.first { $0.id == id }
|
||||
state.clipboardSkillCatalog.first { $0.id == id }
|
||||
}
|
||||
|
||||
/// Parse an export skill. Empty → in-keyboard tip, stay in the host app.
|
||||
|
||||
@@ -119,6 +119,11 @@ public struct AppGroupPersistor {
|
||||
userCatalog: store.agentUserSkillCatalog,
|
||||
uiLanguage: language
|
||||
)
|
||||
state.clipboardSkillCatalog = AIClipboardSkillCatalog.all(
|
||||
officialCatalog: store.officialSkillCatalog,
|
||||
userCatalog: store.agentUserSkillCatalog,
|
||||
uiLanguage: language
|
||||
)
|
||||
}
|
||||
|
||||
/// Cloud without ASR/LLM keys blocks the mic. Local ASR still works when
|
||||
|
||||
@@ -34,6 +34,7 @@ struct AIKeyboardView: View {
|
||||
static let skillCellSpacing: CGFloat = 10
|
||||
static let pageDotSize: CGFloat = 5
|
||||
static let skillPaginationBottomInset: CGFloat = 6
|
||||
static let maximumSemanticSkills = 5
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
@@ -109,7 +110,7 @@ struct AIKeyboardView: View {
|
||||
selectedSkillPage = 0
|
||||
resetCarousel()
|
||||
}
|
||||
.onChange(of: state.enabledClipboardSkills) { _, _ in
|
||||
.onChange(of: state.clipboardSkillCatalog) { _, _ in
|
||||
selectedSkillPage = 0
|
||||
resetCarousel()
|
||||
}
|
||||
@@ -583,13 +584,14 @@ struct AIKeyboardView: View {
|
||||
guard let newest = clipboardHistory.newestEntry,
|
||||
let snapshot = semanticRanking.snapshot,
|
||||
snapshot.entryID == newest.id else {
|
||||
return state.enabledClipboardSkills
|
||||
return []
|
||||
}
|
||||
return ClipboardSkillSemanticRanker.ranked(
|
||||
skills: state.enabledClipboardSkills,
|
||||
return ClipboardSkillSemanticRanker.recommended(
|
||||
skills: state.clipboardSkillCatalog,
|
||||
sourceText: newest.text,
|
||||
analysis: snapshot.analysis,
|
||||
uiLanguage: state.uiLanguage
|
||||
uiLanguage: state.uiLanguage,
|
||||
limit: Layout.maximumSemanticSkills
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user