* update mask color for tabswitcher to work on lightmode
* fix background color on code blocks in markdown in light mode
* update wording on disconnected modal (restart wave backend instead of restart server)
* fix tooltip (should be Ctrl-Space)
* cleanup line-height/padding for code blocks
This adds support for Arch Linux via pacman. It also updates the product tagline in package.json and the "About" modal. It also removes the unused "Help" menu and updates the copyright year in About and fixes the window icon display on Linux.
* convert table to div
* remove comment
* more history UI updates. copy/use controls, change font, fix scroll area
* use css variables
* fix textfield placeholder color
* put back input styles
* change overflow-x to auto
* fix: set golbal ssh config to correct path
This adds the missing "etc" directory to the path for the global config
file.
* chore: update auth mode tooltip
This just changes the text to be slightly more accurate to the current
behavior.
* feat: add box to disable waveshell install modal
This hooks in to the existing don't show this again code that pops up
when creating a modal.
* refactor: remove install modal in remote creation
There used to be a modal that popped up while installing a remote that
informed the user that waveshell gets installed on their remote. Since
we have a new modal that pops up at the time of install, the older modal
can be removed.
* fix: allow user to cancel ssh dial
The new ssh code broke dial for invalid urls since the context did not
cancel the dial or any associated user input. This change reconnects
the context along with the context for installing waveshell.
* style: widen the rconndetail modal
The rconndetail modal is currently narrower than the xtermjs element
which results in awkward scrolling if a line is long. This change makes
the width auto so it can size itself as needed.
* add a max-width for safety
* Unify color definitions and clean up light mode
* consolidate form colors
* increase border thickness on dropdown and text
* remove dev conditional for theme
* fix secondary form element color
* increase dropdown border thickness
* fix history textinput
* make warning a bit darker
* attempt to fix rotate icons
* fix line actions bg
* fix terminal colors
* fix broken history colors
* fix textinput label padding
* fix bottom negative margin
* updates for prompt colors. darken magenta, grey out the whites slightly, and sneak in a change for git co.
* clean up prompt.tsx
* fixing wobbly icons
* center svg icon, simplify meta-line1
* clientsettings fixups -- border top, padding, and remove theme dropdown for prod
* new cmdinput actions, get the filter commands showing, titlebars for info history and info aichat, toggles for history
* checkpoint some ideas on a new branch
* checkpoint on new errors / errorcode passing
* get CodedError piped all the way through to infomsg
* implement a /reset:cwd command to deal with cases when the cwd is invalid. other assorted debugging, utility, and fixups
* on invalid cwd, show message to run /reset:cwd
* Sign and notarize in CI
* add dmg
* remove flag
* fix env var
* add team id
* conditionally set apple specific env vars
* publish to a staging location
* upload unzipped
* add script to publish to staging, update publish url
* turn off autodiscovery again
* update scripts
* deprecate old method
* move stuff
* remove autodiscovery
* fix: allow ssh user to use numbers/capital letters
Prior to this change, usernames could not start with numbers and could
not contain capital letters at all. Note that the username can also
start with capital letters.
* fix: update ssh_config with IdentityFiles fix
This adds the update that provides the ssh2 defaults for IdentityFiles.
This will allow the usual defaults to be searched when none are
explicitly provided.
* fix: overwrite identity files instead of appending
This change makes it so a waveterm configured identity file will
overwrite the one in the config instead of attempting to append it. This
matches the behavior of openssh.
* style: use regular font for markdown user input
This makes the Markdown User Input indistinct from user input without
markdown. It changes the font and makes a couple small adjustments to
the font size and line height.
* fix: use font property instead of font-family
The markdown css for User Input can be simplified with the font being
set by the "font" property rather than the "font-family" property.
* restore sidebar right border, fix line-container background color for history
* add a dev-only 'Toggle Dev UI' switch in the View Menu (for testing UI and screenshots, etc.)
* use native border (remove transparency from app window), remove css borders, remove default --term variables, force setClientData to set --term font variables on first set.
* terminal background images
* Add linux makers
* missed some
* remove eu-strip
* blah
* add description
* remove v from version
* add exec name
* use bin
* add bin to both
* test flatpak
* test adding dev dependencies
* remove flatpak for now
* add command to flatten directory structure
* update package info
* save rpm info
* save work
* add bin to packagerConfig
* save work
* okay let's see what happens
* iterate array
* test more
* remove large
* test
* test
* remove linux arm
* test addl targets
* add quiet to zip
* revert dir flatten
* remove pacman
* add s3 bucket to electron-builder config
* make dir
* only copy artifacts
* don't merge
* zip recurse
* blah
* replace with electronupdater
* make generic
* fix
* fix stuff
* Update build-helper.yml
* test fix
* fix path
* remove tree
* messed up comment
* remove touch
* add platform name to artifact
* remove license
* remove forge
* cleanup builder config
* switch artifact name order
* Remove darwin restriction on autoupdate
* try adding back pacman
* fix license
* remove pacman again
* rewrite scripts
* add binary paths to builder
* clean up
* Update scripts
* update interval and readme
* remove flatpak and snap dependencies for now
* upload with a wildcard
* fix paths for addl binaries
* add back blockmap
* update release path
* add newline
* remove forge config
* 2 small fixes - remove double cd for waveshell building, and remove GOARCH for wavesrv binary in dev mode
* light theme for button element
* light them for connections view
* remove box-shadows
* light theme for textfield
* unify form elements colors
* light theme for modals
* remove inset from modal box-shadow
* light theme for tooltip
* remove empty fies. theme new tab setting spacer
* light theme for cmdinput
* light theme for scroll
* minor global color change
* connections and history view light theme improvements
* light them for line actions bg
* light theme for sidebar actions
* more on line themes and fixes
* use font shorthand
* use --form-element-* for all form elements colors
* update/remove some cmdiput colors
* update terminal colors for light mode
* move term lightmode settings to new file (needs updates for more contrast)
* lighten up panel color, remove 'dev' panel color for now (since we're testing light mode)
---------
Co-authored-by: sawka <mike.sawka@gmail.com>
* updating fonts and colors
* use wavegreen for green
* cmdinput should use terminal colors
* adjust colors, bright up bright-white. cmdinput use more term colors.
* feat: allow user input verification for install
Depending on the method of installing waveshell, it may be desired to
pop up a modal for user verification. This is a first pass at handling
these special cases. The focus is on installing while previously
connected and auto installing while connecting.
* chore: update mshell to waveshell in error msg
* fix: run waveshell remotely with chosen shell
This ensures that the appropriate shell is used to run the waveshell
command remotely. It hasn't made a difference in my experience but is
desired in order to match the local launch.
* chore: simplify command to run waveshell remotely
This change removes the extra check for a directory and just tries to
run the command instead. It pipes the usual error to null and prints an
init packet instead.
* fix: prevent wavesrv crash during bad connection
The waveshell launch can fail in two different ways. If it has a
recoverable failure, it will attempt to reinstall waveshell. If not, it
is supposed to print an error. The unrecoverable case was causing a
segfault due to a misnamed variable. This change corrects it.
* fix: correct auto install user input modal
The previous combination of flags to catch auto install did not work
properly. This corrects them.
* chore: add "s" to countdown for user input timer
Makes it clear that the countdown is seconds.
* fix: remove auto password entry for sudo remote
The auto password entry for sudo remotes printed an error that was not
in response to the user input. To avoid this confusion, it has been
removed entirely.
* feat: add auto focus to user input modal
This automatically moves the cursor to the text box when the modal pops
up.
* feat: handle enter/escape keys for password entry
The password modal previously had to have buttons clicked to close it.
This change allows the user to close it with whatever is bound to escape
and to submit with whatever is bound to enter.
* chore: update an any type to correct type
* fix: correct keyboard event type from last commit
* fix: check identity files are readable early
Previously, an invalid identity file would send a dummy signer if the
file didn't exist. This resulted in extra sign in attempts that have no
chance of success. This could cause someone to get locked out of a
connection because of too many failed attempts. By performing the check
early, we no longer have to make these extra attempts.
* fix: only check global known hosts as root
The root user should not be able to write to a local known_hosts file.
If it does, it risks overwriting the default global behavior for only
the root user. This problem would only occur if waveterm was launched as
root, but we should protect against it just in case.
* feat: add remote name for remote password prompt
This change clarifies the remote name for password and keyboard
interactive prompts. It displays a message that authentication has been
requested from <hostname>. It is not added to publickey passphrase since
those phrases are specific to the key and not the remote.
* revert "simplify cmd to run waveshell remotely"
This reverts commit 4e5eea51b65318428f83a16133b7cc3df53832bd.
* init
* init
* theme override mechanism by changing href value in header link tag
* remove debugging code
* remove debugging code. no need to force rerender
* remove overrides.less
* get some light colors showing in light theme
* working on MagicLayout. update constants and move to dynamic computation in textmeasure.
* magic line height -- no jitter. and add some debugging code for helping to fix future problems
* fix openai fonts
* font updates, settings modals, tabs, change base font.
* aichat responses
* fix updatemodel errors/warnings. more font inconsistencies
* history fixes
* more fixups, fix some warnings, text/font updates for various subsystems
* refactor launch code to integrate install easier
The previous set up of launch was difficult to navigate. This makes it
much clearer which will make the auto install flow easier to manage.
* feat: integrate auto install into new ssh setup
This change makes it possible to auto install using the ssh library
instead of making a call to the ssh cli command. This will auto install
if the installed waveshell version is incorrect or cannot be found.
* chore: clean up some lints for sshclient
There was a context that didn't have it's cancel function deferred and
an error that wasn't being handle. They're fixed now.
* fix: disconnect client if requested or launch fail
A recent commit made it so a client remained part of the MShellProc
after being disconnected. This is undesireable since a manual
disconnection indicates that the user will need to enter their
credentials again if required. Similarly, if the launch fails with an
error, the expectation is that credentials will have to be entered
again.
* fix: use legacy timer for the time being
The legacy timer frustrates me because it adds a lot of state to the
MShellProc struct that is complicated to manage. But it currently works,
so I will be keeping it for the time being.
* fix: change separator between remoteref and name
With the inclusion of the port number in the canonical id, the :
separator between the remoteref and remote name causes problems if the
port is parsed instead. This changes it to a # in order to avoid this
conflict.
* fix: check for null when closing extra files
It is possible for the list of extra files to contain null files. This
change ensures the null files will not be erroneously closed.
* fix: change connecting method to show port once
With port added to the canonicalname, it no longer makes sense to append
the port afterward.
* feat: use user input modal for sudo connection
The sudo connection used to have a unique way of entering a password.
This change provides an alternative method using the user input modal
that the other connection methods use. It does not work perfectly with
this revision, but the basic building blocks are in place. It needs a
few timer updates to be complete.
* fix: remove old timer to prevent conflicts with it
With this change the old timer is no longer needed. It is not fully
removed yet, but it is disabled so as to not get in the way.
Additionally, error handling has been slightly improved.
There is still a bug where an incorrect password prints a new password
prompt after the error message. That needs to be fixed in the future.
* Add delimiters to screen tab, make active gradient a translucent mask
* make delimiter slightly shorter
* move end icon a bit to provide more separation
* fix zindex for tab contents
* fix magic layout
* make the tabs closer to the width they used to be
* termfontsize-sm (for meta1). add some small margin. remove rootIndicator. switch cwd/remote to red if root
* break LineHeader out into its own react component
* actual set our --term colors as the *theme* for xtermjs
* move line-actions into its own div (absolute position). hover/background colors
* add duration, format renderer, spacing, remove meta-wrap
* simplify cmdtext output. simpler multi-line rendering.
* adjust position/height of line actions for better interaction with long lines
* fix horiz scrolling
* remove unused
* quick fix for text lines
* remove [local] from prompt, remove prompt icons, restore --term vars (remove --prompt vars)
* working on prompt colors, cmdtext
* more generous padding around commands (and cmdinput)
* fix cmdinput background color
* fixes for cmdinput info box
* Fix logo not being visible in auxiliary views when sidebar is collapsed
* Refactor auxiliary views into MainView component
* fix contents formatting
* Need a better-centered version of the logo for the sidebar
* Add logo back to the sidebar
* revert root.less change
* Fix regressions from last pr
* zero out subtractor if sidebar is collapsed
* remove unnecessary var
* clean up emain
* add restart on disable auto update
* save work
* add zip
* save
* fix zip command
* make build-universal more generic
* clean up script
* fix autoupdate config
* update feed
* fix update feed path
* switch to custom update flow
* show notification
* remove enum
* test change
* debug sidebar
* save work
* remove weird import
* remove listeners if present
* save debug
* fixed banner
* fix sending of appupdatestatus, add comments
* Change to primary feed
* more comments, less debugs
* rename to app update
* code cleanup, add fireAndForget
* update paths for objects
Electron version 28.1.2 introduced a bug where the traffic light to undo
fullscreen was not available in fullscreen. It has been fixed by the
most recent version, so we are upgrading to it.
* MonoFontSize type, add label font, theme vars for sidebar
* fix line-height for tabs
* experiment with variable label font
* lato font, fix open ai fonts, fix cmdinput font
* updates for historyinfo
* cmdinput history fixups, scrollbars
* work with scrollbars
* create another drag region at the end of the tabs bar
* updates for header -- change title drag area, fix corner rounding, tabs spacing, etc.
* css variables for sidebar
* type
* line css vars
* lines css vars
* bookmarks css vars
* clientsettings css vars
* button.less css vars
* checkbox.less css vars
* cmdstrcode.less css vars
* dropdown.less css vars
* markdown css vars
* status css vars
* convert all hex colors to rgb color
* textfield css vars
* toggle css vars
* tooltip css vars
* statusindicator css vars
* about modal css vars
* disconnected modal css vars
* editremoteconn modal css vars
* linesettings modal css vars
* tos modal css vars
* viewremoteconndetail modal css vars
* prompt css vars
* connections view css vars
* add colors comments
* history view css vars
* cmdinput css vars
* cmdinput css vars
* screenview css vars
* convert less vars to css vars
* store version for build in txt file
* get version from version.txt
* remove quotes
* Use version.js for Go version too
* test
* test
* simplify things more
* rename zips to consistent waveterm name
* remove newline
* always use v
* always use Wave rather than waveterm
* undo awkward backgrounds, transparencies, etc. hope to sharpen up the active blocks and the grey/transparent backgrounds were getting in the way
* block UI and cmdinput UI overhaul
* updates for cmdinput spacing, input-sep fonts
* remove nth-child special case, fix sidebar margins
* sidebar styles
* bring back selected line
* codeedit fixes for layout / colors
* Set build version programmatically in build-helper
* remove env var definition
* fix paths in helper scripts
* missing import
* missed some more relative paths
* reorganize line styles, split lines.less into lines.less and line.less
* switch everyone to use termFontSize getter (easier to find usages)
* better font-family font-size update logic
* update line styles, clean up more
* replace icons, fix line heights
* make paddings/margins more consistent
* fix more margins, make command completions use termfontfamily
* updates for cmdinput margins, font sizes, etc.
* fix more font sizes and margins (mostly command input)
* add comment
* testing hack font
* updates to allow font to be variable
* allow setting of font-family. get initial font family from electron (needed for loading)
* add termfontfamily
* update wave logos for README
* hook up fontfamily setting, remove old dropdown active var
* get app to reload on font change. reload fonts
* on termfontsize change, bump render version as well
* font loading fix#302
* fix inconsistent paddings. issue was that the first '[' feels indented (because of the fixed with font). applying a negative 2px margin fixes it and allows us to remove the paddings on the other elements.
* Break update code out of sstore
* add license disclaimers
* missed one
* add another
* fix regression in openai updates, remove unnecessary functions
* another copyright
* update casts
* fix issue with variadic updates
* remove logs
* remove log
* remove unnecessary log
* save work
* moved a bunch of stuff to scbus
* make modelupdate an object
* fix new screen not updating active screen
* add comment
* make updates into packet types
* different cast
* update comments, remove unused methods
* add one more comment
* add an IsEmpty() on model updates to prevent sending empty updates to client
* feat: parse multiple identity files in ssh
While this does not make it possible to discover multiple identity files
in every case, it does make it possible to parse them individually and
check for user input if it's required for each one.
* chore: remove unnecessary print in updatebus.go
* chore: remove unnecessary print in sshclient.go
* chore: remove old publicKey auth check
With the new callback in place, we no longer need this, so it has been
removed.
* refactor: move logic for wave and config options
The logic for making decisions between details made available from wave
and details made available from ssh_config was spread out. This change
condenses it into one function for gathering those details and one for
picking between them.
It also adds a few new keywords but the logic for those hasn't been
implemented yet.
* feat: allow attempting auth methods in any order
While waveterm does not provide the control over which order to attempt
yet, it is possible to provide that information in the ssh_config. This
change allows that order to take precedence in a case where it is set.
* feat: add batch mode support
BatchMode turns off user input to enter passwords for ssh. Because we
save passwords, we can still attempt these methods but we disable the
user interactive prompts in this case.
* fix: fix auth ordering and identity files
The last few commits introduced a few bugs that are fixed here. The
first is that the auth ordering is parsed as a single string and not a
list. This is fixed by manually splitting the string into a list. The
second is that the copy of identity files was not long enough to copy
the contents of the original. This is now updated to use the length of
the original in its construction.
* deactivate timer while connecting to new ssh
The new ssh setup handles timers differently from the old one due to the
possibility of asking for user input multiple times. This limited the
user input to entirely be done within 15 seconds. This removes that
restriction which will allow those timers to increase. It does not
impact the legacy ssh systems or the local connections on the new
system.
* merge branch 'main' into 'ssh--auth-control'
This was mostly straightforward, but it appears that a previous commit
to main broke the user input modals by deleting a function. This adds
that back in addition to the merge.
* fix: allow 60 second timeouts for ssh inputs
With the previous change, it is now possible to extend the timeout for
manual inputs. 60 seconds should be a reasonable starting point.
* fix: change size of dummy key to 2048
This fixes the CodeQL scan issue for using a weak key.
2024-02-15 15:58:50 -08:00
220 changed files with 10926 additions and 15093 deletions
# Use only 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name:Checkout repository
uses:actions/checkout@v3
steps:
- name:Checkout repository
uses:actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name:Initialize CodeQL
uses:github/codeql-action/init@v3
with:
languages:${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Initializes the CodeQL tools for scanning.
- name:Initialize CodeQL
uses:github/codeql-action/init@v3
with:
languages:${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name:Autobuild
uses:github/codeql-action/autobuild@v3
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name:Autobuild
uses:github/codeql-action/autobuild@v3
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
Electron also requires specific builds of node_modules to work (because Electron embeds a specific node.js version that might not match your development node.js version). We use a special electron command to cross-compile those modules:
```
scripthaus run electron-rebuild
```
## Running WebPack
We use webpack to build both the React and Electron App Wrapper code. They are both run together using:
A open-source, cross-platform, AI-integrated, modern terminal for seamless workflows.
Wave is an open-source AI-native terminal built for seamless workflows.
Wave isn't just another terminal emulator; it's a rethink on how terminals are built. Wave combines command line with the power of the open web to help veteran CLI users and new developers alike.
@@ -17,13 +17,14 @@ Wave isn't just another terminal emulator; it's a rethink on how terminals are b
- Persistent sessions that can restore state across network disconnections and reboots
- Searchable contextual command history across all remote sessions (saved locally)
- Workspaces, tabs, and command blocks to keep you organized
- CodeEdit, to edit local and remote files with a VSCode-like inline editor
- AI Integration with ChatGPT (or ChatGPT compatible APIs) to help write commands and get answers inline
@@ -11,9 +11,9 @@ The license disclaimers for the backend are generated using the [go-licenses](ht
The license disclaimers for the frontend are generated using the [`yarn licenses` tool](https://classic.yarnpkg.com/lang/en/docs/cli/licenses/). This outputs to the file [`frontend.md`](./disclaimers/frontend.md).
These three disclaimer files linked above will be periodically regenerated to reflect new dependencies.
These disclaimer files linked above will be periodically regenerated to reflect new dependencies.
The [`scripthaus.md` file](../scripthaus.md) contains scripts to genrate the disclaimers and package them. To manually generate the disclaimers, run the following from the repository root directory:
The [`scripthaus.md` file](../scripthaus.md) contains scripts to generate the disclaimers and package them. To manually generate the disclaimers, run the following from the repository root directory:
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.