* refactor: `FullscreenLoading` to `FullviewLoading`
in case we use this not only on pages but on components that are not fullscreen
* refactor: remove unused import
* idle animation for empty board added
* min-height to the empty board suggestions panel
- Adds guideline to not use hash symbols before commit message lines
- Wraps commit message lines at 72 characters
- Specifies that only the commit message should be returned in the response
`/\n+(.*?)\w*/s` wasn't behaving correctly so I used `/\n+(.*)/s` from CommitDialog.svelte.
I want to consolidate this logic at some point because we've
got similar logic multiple times.
The ORing to empty strings isn't required and we can use the falsey nature of "" to
see if we should be showing just the summary or both
Change git config access to use the ConfigKeys enum instead of
string literals.
Also update import paths to use the new $lib alias for better modularity.
Add a test:watch script to the package.json files in the root
and ui directories. This script runs vitest in watch mode for
the development environment, allowing developers to run tests
continuously while making changes to the codebase.
Add a new enum value for Anthropic's Haiku model, which was released
on 2023-03-07. Update the default model to Haiku in the loadConfig
function. Add Haiku to the list of available models in the
configureAnthropicModel function.
Refactor commit message generation to use the summarizer from the
aiService context instead of building it locally. This allows the
summarizer to be shared across components and avoids unnecessary
rebuilds.
Also update the branch name generation in the branch view to use the
summarizer from the aiService context.
Add the aiService to the page context and retrieve the summarizer
observable in the components that need it.
No leaked keys found in the provided git diff.
This commit skips instrumenting the _handle parameter in the functions git_set_global_config and git_get_global_config for cleaner logs and improved clarity in the code.
The summarizer settings are extracted to a new class
`SummarizerSettings` that takes a `GitConfig` instance in its
constructor. This allows the settings to be built using the
`GitConfig` methods, removing the need for individual functions to
get and set each setting. The `GitConfig` instance is injected in
the `+page.svelte` file.
* Update "Yes, I'll use my own key" to "Yes, I'll provide my own key"
in the AI settings
* Add copy explaining GitButler's AI provider support and the
requirement to be logged in to use the GitButler API
* Remove unnecessary line breaks and simplify JSX in the AI settings
* Add copy about Anthropic's Opus and Sonnet models
- Change model kind selection from a dropdown to radio buttons
- Update copy for key option selection
- Conditionally show model version and API key inputs based on
selected model kind
- Add form element to handle model kind changes
- Update layout and styling of settings page
The most significant changes are:
- Switching from a dropdown to radio buttons for selecting the model
kind (OpenAI or Anthropic)
- Conditionally rendering the model version and API key inputs based
on the selected model kind
- Adding a form to handle changes to the selected model kind
This refactors the settings page to improve the user experience when
selecting the model configuration. The radio buttons make the options
clearer, and conditionally showing fields reduces clutter.
- Use await instead of then when calling the summarizer.branch
method to get the branch message
- Update the condition to check the currentSection value using ==
instead of ===