* 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.
* working on easy global shortcut for wave
* globalshortcut setting working
* cmd for macos, alt for others
* re-remove types.ts (was added back during merge)
* rename DDItem to DropdownItem, put into custom.d.ts
* make some consts
* declare types as global
* remove mobx types aliases
* put back model_old.ts
* remove types.ts
* add main screens to Cmd-P search
* make viewData optional
* minor hint fix
* address improvements suggested by evan
* more on let to const
This PR changes ModelUpdate mechanism from a statically-typed struct to an interface, allowing us to define the update mechanism and the update types separately. This sets us up to move app logic and update mechanisms into separate packages. Ultimately, sstore will only define low-level persistence logic.