-
Notifications
You must be signed in to change notification settings - Fork 253
Add Prompt Mode: condense dictation into a tight prompt (closes #196) #268
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -663,6 +663,9 @@ struct GeneralSettingsView: View { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SettingsCard("Edit Mode", icon: "pencil") { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| commandModeSection | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SettingsCard("Prompt Mode", icon: "wand.and.stars") { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| promptModeSection | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SettingsCard("Clipboard", icon: "doc.on.clipboard") { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| clipboardSection | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -1296,6 +1299,36 @@ struct GeneralSettingsView: View { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // MARK: Prompt Mode | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| private var promptModeSection: some View { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| VStack(alignment: .leading, spacing: 10) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Text("Condense rambling dictation into a tight prompt that preserves your full intent — useful when dictating into AI tools like Claude, ChatGPT, or Cursor.") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .font(.caption) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .foregroundStyle(.secondary) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| HStack { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Text("Condense dictation") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .font(.system(size: 13)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Spacer() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Picker("", selection: $appState.promptMode) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Text("Off").tag(PromptModeSetting.off) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Text("Always").tag(PromptModeSetting.always) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Text("Only in AI apps").tag(PromptModeSetting.auto) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .labelsHidden() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .pickerStyle(.menu) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .frame(maxWidth: 240) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+1310
to
+1322
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win Add an accessibility label to the Prompt Mode picker. The picker uses ♿ Proposed fix Picker("", selection: $appState.promptMode) {
Text("Off").tag(PromptModeSetting.off)
Text("Always").tag(PromptModeSetting.always)
Text("Only in AI apps").tag(PromptModeSetting.auto)
}
.labelsHidden()
+ .accessibilityLabel("Condense dictation")
.pickerStyle(.menu)
.frame(maxWidth: 240)📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if appState.promptMode == .auto { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Text("Detects Claude, ChatGPT, Cursor, and similar tools from the active app and window title.") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .font(.caption) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .foregroundStyle(.secondary) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // MARK: Custom Vocabulary | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| private var vocabularySection: some View { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🌐 Web query:
What is the current bundle identifier of the ChatGPT desktop app for macOS?💡 Result:
The current bundle identifier for the official ChatGPT desktop application on macOS is com.openai.chat [1][2][3]. This identifier is consistently used in the application's configuration, package management, and system integration workflows [2][3][4].
Citations:
Tighten the
copilotwindow-title marker.com.openai.chatis the correct ChatGPT bundle ID, so the bundle list looks fine. The broadcopilottitle match can still fire on unrelated windows and cause unintended condensation; require a stronger signal or narrow the marker.🤖 Prompt for AI Agents