Adds `window:savelastwindow` and `window:confirmclose` settings, which
can be used to alter the default window close behavior. Both of these
default to `true` to maintain the existing default behavior.
If `window:savelastwindow` is unset, the same logic will be used as if
the user had more than one window remaining (see below).
If `window:confirmonclose` is unset, the user will no longer be prompted
to confirm if they are closing a window whose workspace has unsaved
changes (the workspace is not named and it has more than one tab).
This adds a split atom for the messages so that the WaveAI component and
the ChatWindow component don't actually need to watch changes to all of
the messages. This makes the repaining a lot less expensive and makes it
easier to scroll while new messages come in.
I also increased the tolerance on the `determineUnsetScroll` callback so
that the bottom message won't get unattached as easily.
This makes the chat window flex-grow so we no longer need to manually
fix its height. It also cleans up some other styling.
It also fixes the scroll handlers so we detect when the user is at the
bottom of the chat window so we can follow the latest message. It also
fixes some circular references in the callbacks that were causing React
to bug out.
There's a potential DDoS vulnerability in the older version of the net
package that we were using. It likely isn't something that would impact
us, but we should still update for posterity.
Fixes a bug where if you deleted all but one character in the workspace
name, you couldn't delete the final character. To fix this, I have made
the workspace editor save a separate entry from the backend. The backend
will also only update its DB value and notify the frontend if something
was actually edited. If you delete all the characters in the name and
don't put anything new in, though, the name will be whatever the last
character you had was, since the name of a saved workspace cannot be
empty.
The AI chat window was not allowing the user to resize it due to an
interacting scss class being removed. This replaces the max-height from
the removed class with a dynamic calculation to resize properly.
Due to the way this command is run, the quotes are not being handled by
the shell. Removing them allows them to be interpreted correctly in most
cases. This resolves#1569
Match statements in files that are included in an ssh config still seem
to cause panics with the ssh_config library. This adds a panic handler
to catch them, and prevent the app from crashing. It does not resolve
the underlying issue which will need to be done later.
Adds warning and docs to let users know when they're running in ARM
translation mode. Also lets them configure to always dismiss if they
don't care.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Added a configuration option to dismiss architecture warnings during
application startup.
- Introduced new FAQs addressing ARM64 translation warnings and
instructions for joining beta builds.
- Added platform-specific requirements for macOS, Windows, and Linux in
the getting started documentation.
- **Bug Fixes**
- Enhanced build command flexibility by allowing dynamic command-line
arguments during the build process.
- **Documentation**
- Updated configuration documentation to include the new dismiss
architecture warning key.
- Minor formatting adjustments in FAQs and getting started
documentation.
- Clarified platform compatibility details in the README.
- **Chores**
- Added a new constant for the dismiss architecture warning
configuration key.
- Introduced a new field for managing architecture warning settings in
the application configuration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
- adds a more practical example
- moves the examples above this list of allowed keys
- adds the word "Space" as an option for the space character to the docs
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Documentation**
- Updated the configuration documentation for improved clarity and
additional examples.
- Expanded section on customizable global hotkeys with practical
examples.
- Clarified representation of the space key in allowed key names.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
- adds pictures to the fish and pwsh examples
- reformats some tabs as spaces in the example json
- adds missing brackets around some older json examples
- rewords repetitive parts of the shell examples
Adds a few examples to the `connections.mdx` file to show:
- hiding a connection
- re-ordering connections
- theming connections
- disabling wsh for a connection
Adds the following changes:
- renames "key:globalhotkey" to "app:globalhotkey"
- adds globalhostkey documentation (especially in regard to what keys are allowed)
- improves the algorithm that converts electron keybindings from wave keybindings
- fixes some regexp problems
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced new configuration options for markdown rendering:
- `markdown:fontsize` for normal text size (default 14px).
- `markdown:fixedfontsize` for code block text size (default 12px).
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
A recent change meant that if certain operations for setting up wsh
failed, a fallback would be employed to launch the terminal without the
wsh connection. This adds the domain socket listener to the list of
things that are allowed to fail before retrying without wsh instead of
failing outright.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved handling of terminal data processing by ensuring it only
occurs when the terminal is fully initialized.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This adds:
- "editor:fontsize" to modify the code editor's font size
- "ai:fontsize" to modify the ai widget's font size (for general text)
- "ai:fixedfontsize" to modify the ai widget's fixed font size (for code
fragments)