Releases: intitni/CopilotForXcode
0.35.2
- Support prompt caching for Anthropic through OpenRouter.
- Support adding debug area as context.
- Bump GitHub Copilot and Codeium language servers.
- Fix that errors from GitHub Copilot Chat are not correctly handled.
- Fix incorrect color space when syncing theme with Xcode.
- Fix message text color in light mode.
- Fix that the chat may hang if the context window is small but the app fail to truncate the context.
0.35.1
This release focuses on the chat and modification features.
Quick Fix
- Fix that the chat doesn't have memory when the limit is set to no limit. #606
- Update the file search to support fuzzy match.
Chat
- Updated prompt to make use of prompt caching from OpenAI and Anthropic.
Note
Prompt caching for Anthropic through OpenRouter is not supported yet.
-
Added the new chat tab to replace the old one.
The old chat tab will not be automatically converted to the new one, so you need to manually start a new chat.
-
New chat UI that should be more readable.
-
New input field that comes with a context picker that allows you to better control the context of the chat.
- You can add context by clicking the
+
button and remove context by clicking thex
button. You can also use the@
to add a context, the app will show the context list as you type. - (Plus, free trial) Unlimited contexts.
- You can add context by clicking the
-
Display the file name of code block if detected.
-
Added apply button to code block to apply the suggested code to selection or active document.
Note
This feature relies on the modification feature, so it doesn't work without a chat model yet.
- Added create file button to code block to create a new file with the suggested code if the file doesn't exist yet.
- Added run button to code block if the code block is a shell command or AppleScript.
- Updated the copy button to draggable one so you can drag the button to the file tree to create a new file with the code block content.
Tip
Just in case you don't know, you can paste the code into the Xcode file tree to create a new file since Xcode 16.
- (Plus, free trial) Send message to a specific agent using the
@
symbol. But there is only one extra agent for now@casual
. - (Plus, free trial) Send message without waiting for the response to complete.
- The custom command will behave differently now. The
extra system prompt
will now be injected into the context as atopic
. Topics will be put into the system prompt. - You can still use
/
to run a command. - Updated
@sense
scope behavior. - Updated
@web
scope to be RAG based. - Removed the scope settings from the host app. The settings are now in the context picker. You can click the added context to configure each context.
- The custom system prompt will now be appended to the default system prompt. The default system prompt contains a bunch of rules about the response format, so you don't need to include those rules in the custom system prompt.
Modification
- Updated prompt to make use of prompt caching from OpenAI and Anthropic.
- The same new input field that comes with a context picker that allows you to better control the context of the modification.
- Display modifications in full diff.
- Updated the copy button to draggable one so you can drag the button to the file tree to create a new file with the code block content.
Others
- Added custom header field settings for OpenAI compatible models.
- Added dimension settings for the embedding model.
- Fix that the embedding feature doesn't work with models that has a different embedding dimension than the default one.
- Fix that the web content retrieval always wait for the timeout.
0.35.0
This release focuses on the chat and modification features.
Chat
- Updated prompt to make use of prompt caching from OpenAI and Anthropic.
Note
Prompt caching for Anthropic through OpenRouter is not supported yet.
-
Added the new chat tab to replace the old one.
The old chat tab will not be automatically converted to the new one, so you need to manually start a new chat.
-
New chat UI that should be more readable.
-
New input field that comes with a context picker that allows you to better control the context of the chat.
- You can add context by clicking the
+
button and remove context by clicking thex
button. You can also use the@
to add a context, the app will show the context list as you type. - (Plus, free trial) Unlimited contexts.
- You can add context by clicking the
-
Display the file name of code block if detected.
-
Added apply button to code block to apply the suggested code to selection or active document.
Note
This feature relies on the modification feature, so it doesn't work without a chat model yet.
- Added create file button to code block to create a new file with the suggested code if the file doesn't exist yet.
- Added run button to code block if the code block is a shell command or AppleScript.
- Updated the copy button to draggable one so you can drag the button to the file tree to create a new file with the code block content.
Tip
Just in case you don't know, you can paste the code into the Xcode file tree to create a new file since Xcode 16.
- (Plus, free trial) Send message to a specific agent using the
@
symbol. But there is only one extra agent for now@casual
. - (Plus, free trial) Send message without waiting for the response to complete.
- The custom command will behave differently now. The
extra system prompt
will now be injected into the context as atopic
. Topics will be put into the system prompt. - You can still use
/
to run a command. - Updated
@sense
scope behavior. - Updated
@web
scope to be RAG based. - Removed the scope settings from the host app. The settings are now in the context picker. You can click the added context to configure each context.
- The custom system prompt will now be appended to the default system prompt. The default system prompt contains a bunch of rules about the response format, so you don't need to include those rules in the custom system prompt.
Modification
- Updated prompt to make use of prompt caching from OpenAI and Anthropic.
- The same new input field that comes with a context picker that allows you to better control the context of the modification.
- Display modifications in full diff.
- Updated the copy button to draggable one so you can drag the button to the file tree to create a new file with the code block content.
Others
- Added custom header field settings for OpenAI compatible models.
- Added dimension settings for the embedding model.
- Fix that the embedding feature doesn't work with models that has a different embedding dimension than the default one.
- Fix that the web content retrieval always wait for the timeout.
0.34.3
0.35.0 beta
For any feedback please report to the release discussion.
Beta 3
-
Support Apply code block in chat to selection and active document. You can now see the progress in the modification panel.
-
Modification panel now supports full diff.
-
Bring plugins to the new chat panel, you can use
/run
to run a shell command now. -
Add completion panel to the new chat panel. You can type
/
or@
to trigger auto complete. You can use it to mention a file or symbol from the message.
-
Update sense scope to detect relevant symbols from the whole file so hopefully it's more useful.
-
Other minor fixes.
What's New
-
Adds a new chat tab to replace the old one. The old chat tab will not be converted to the new one automatically, so you will need to manually start a new chat.
The new things are:
-
New UI
- The responses will make use of the full width of the window. The text contents will still have a max width so they are more readable when the window is too wide.
- Reimplemnted the pin to bottom behavior.
-
New context picker that allows you to better control the context of the chat.
You can add context by clicking the
+
button and remove context by clicking thex
button. You can also use auto completion to add context to the chat by typing@
. -
Updated prompt format to better utilize prompt caching from OpenAI and Claude.
-
Apply button on the code block to apply the suggestions to the target file, the current file or the current selection. The chat will also prompt the chat models to indicates the target file of a code block.
In this example, clicking the apply button will generate the new file content with the suggestion for the file
Contents.swift
. The new content will be presented in the modification window. -
You can send multiple message at the same time withot waiting for the response.
-
The custom command will behave differently now. The
extra system prompt
will now be injected into the context as atopic
.Topic
s will be put into the system prompt.
-
0.34.2
0.34.1
0.34.0
-
Rename Prompt to Code to Modification.
-
Modification now supports modifying multiple selections at the same time.
-
Suggestions and Modification now support displaying diffs (insertions only).
-
(Free Trial) Add suggestion cheatsheet "Instructed Suggestions".
When this cheatsheet is on, you can use
\\\ instructions
to instruct the suggestions. For example, typing.frame\\\width 30 height 100
will instruct the suggestion to be.frame(width: 30, height: 100)
.If you want the suggestion to rewrite the whole line, you can use
let foo \\< instructions
.For more details, see Instructed Suggestions.
-
(Free Until Useful) Add suggestion cheatsheet "Typo Fix".
When this cheatsheet is on, it will try to fix the typo of the word under the text cursor in the suggestion.
-
(Free Trial) Support sending a message to chat using comments. You can use
// chat: message
to initiate a special suggestion. When you accept the suggestion, it will send the message to the chat. -
Support installing to other folders than
/Applications
. If it's installed in other folders, you will have to install the launch agent manually by clicking the button. The launch agent will be installed into~/Library/LaunchAgents
. -
Support setting OpenAI organization and project.
-
Bump Copilot Vim to 1.40.0.
-
Update text content (plain text, markdown) to always wrap in code block.
-
Modification window can now be as tall as the editor area.
-
Fix that the app may affect Xcode's performance when accessing it's UI with Accessibility API.
-
Fix that the previous suggestion button in non-compact mode will dismiss the suggestion.
-
Some other refactoring and bug fixes.
Note
The new suggestion cheatsheets are more like a hack so they may not work for all cases. I found that it's really not a good idea to make them in such a hacky way. The result is just not good enough. But let's leave them here for now.
In the next version, I will focus on improving the prompt and context awareness of chat and modification.
0.34.0 beta
For any feedback please report to the release discussion.
Beta 4
- Bug fixes.
Beta 3
- Fix that the app may affect Xcode's performance when accessing it's UI with Accessibility API.
- Rename Prompt to Code to Modification, support modifying multiple selections, support displaying addition diffs.
- Other fixes.
Beta 2
- Support setting OpenAI organization and project.
Beta 1
-
Add suggestion cheatsheet "Instructed Suggestions".
When this cheatsheet is on, you can use
\\\ instructions
to instruct the suggestions. For example, typing.frame\\\width 30 height 100
will instruct the suggestion to be.frame(width: 30, height: 100)
.If you want the suggestion to rewrite the whole line, you can use
let foo \\< instructions
. -
Add suggestion cheatsheet "Typo Fix".
When this cheatsheet is on, it will try to fix the typo of the word under the text cursor in the suggestion.
-
Support sending a message to chat using comments. You can use
// chat: message
to initiate a special suggestion. When you accept the suggestion, it will send the message to the chat. -
Support installing to other folders than
/Applications
. If it's installed in other folders, you will have to install the launch agent manually by clicking the button. The launch agent will be installed into~/Library/LaunchAgents
. -
Display diffs in the suggestion.
-
Some refactoring and bug fixes.