Commit Graph

137 Commits

Author SHA1 Message Date
Mike Sawka
ba5f929b3f
conn updates 3 (#1711)
lots of misc connection refactoring / fixes:

* adds blocklogger as a way to writing logging information from the backend directly to the a terminal block
* use blocklogger in conncontroller
* use blocklogger in sshclient
* fix remote name in password prompt
* use sh -c to get around shell weirdness
* remove cmd.exe special cases
* use GetWatcher().GetFullConfig() rather than re-reading the config file
* change order of things we do when establishing a connection.  ask for wsh up front.  then do domain socket, then connserver
* reduce number of sessions required in the common case when wsh is already installed.  running the connserver is now a "multi-command" which checks if it is installed, then asks for the version
* send jwt token over stdin instead of in initial command string
* fix focus bug for frontend conn modal
* track more information in connstatus
* simplify wshinstall function
* add nowshreason
* other misc cleanup
2025-01-10 14:09:32 -08:00
Evan Simkowitz
b51ff834b2
Happy new year! (#1684)
Update all 2024 references to 2025
2025-01-04 20:56:57 -08:00
Mike Sawka
4fd6d36d8e
conn updates 2 (#1660)
* use pwsh over powershell if installed (on windows) for default shell
* refactor blockcontroller.DoRunShellCommand into a "setup" and "manage" phase
* fix wshcmd-conn to also disconnect wsl connections
* new genconn interfaces to make a standardized environment to run SSH/WSL commands via `sh -c`.  also create better quoting functions that are composable
* replace html/template with text/template for shell command templating (avoids special chars getting turned into HTML entities, breaking the commands)
* do not reinstall wsh if the installed version has a higher version (prevents flip-flopping on shared systems)
* simplify clientOs/clientArch detection.  use `uname -sm`.  also validate the os/arch combo as compatible with our builds.
* replace CpHostToRemote with CpWshToRemote. hard codes wsh paths inside of the function instead of having them passed in (quoting restrictions)
* new SyncBuffer class to use with commands that properly synchronizes Writes/String output
* fix setTermSize to actually update DB with terminal size
2025-01-02 14:15:32 -08:00
Mike Sawka
fe91d167b6
fix all panichandlers for the new format (inline recover()) (#1659) 2024-12-31 09:31:55 -08:00
Sylvie Crowe
7d0fb0391f
Improved Shell Detection (#1658)
Use the SHELL environment variable instead of the /etc/passwd file for
determining the shell on Linux.
2024-12-30 22:18:56 -08:00
Mike Sawka
b59e9e95bd
conn updates (more consistency) (#1657) 2024-12-30 17:11:50 -08:00
Mike Sawka
9521e1d51b
correctly escape backslashes in wsh setbg. fixes windows paths #1604 (#1636) 2024-12-27 09:37:44 -08:00
Sylvie Crowe
b17e613d74
fix: add leading slash to default remote shell (#1596)
Adds a leading slash to `/bin/bash` as the default shell if no other
shell has been found
2024-12-20 13:51:32 -08:00
Evan Simkowitz
0a3dadb628
Add wsh wavepath command for getting Wave paths (#1545) 2024-12-17 14:11:40 -08:00
Mike Sawka
4fccd71227
minor docs fixups (consistency) (#1480) 2024-12-10 18:03:48 -08:00
Mike Sawka
ff459743cd
v10 docs / release notes (#1467) 2024-12-10 12:43:38 -08:00
Mike Sawka
7386fc19f7
activity update + dont allow empty workspace names (#1393) 2024-12-05 10:35:54 -08:00
Mike Sawka
942eeaa8e9
wsh setbg + updated tab background docs (#1394) 2024-12-05 10:27:08 -08:00
Mike Sawka
72f36a9639
wsh run (#1376)
implements `wsh run` command.  lots of fixes (and new options) for command blocks.  cleans up the UX/UI for command blocks.  lots of bug fixes for blockcontrollers.  other minor bug fixes.

also makes editor:* vars into settings override atoms.
2024-12-04 14:16:50 -08:00
Evan Simkowitz
7e49e14977
Fix initialdata bug (#1365)
There was a bug in main-server where we were returning Window from
EnsureInitialData and then overwriting the layout on the active tab. The
return values from this function are unclear. Some of the initial data
was being set in the wcore.EnsureInitialData and some was being set in
main, so I've moved all the logic into EnsureInitialData and now it just
returns error.
2024-12-02 11:44:08 -08:00
Evan Simkowitz
82f53dc1fb
Workspaces are back! (#1282) 2024-12-02 10:56:56 -08:00
Sylvie Crowe
24103213aa
SSH without using WSH (#1355) 2024-11-27 16:52:00 -08:00
Mike Sawka
c37d292224
fix newlines with wsh getvar. (#1349)
output a newline when running in a tty and don't output a newline when
running out of a tty.
add options -n and -N to override that behavior
2024-11-25 18:12:24 -08:00
Mike Sawka
b6ce2cd022
misc v0.9.3 fixes -- numToString, block counts, fix docsite images/video (#1354) 2024-11-25 18:07:29 -08:00
Mike Sawka
3136291140
temp oid in client (can use with wavefile) (#1329) 2024-11-20 18:48:46 -08:00
Mike Sawka
360964d4ba
panic handlers everywhere (#1327) 2024-11-20 18:05:13 -08:00
Mike Sawka
271d8e2e9c
wsh getva, setvar, and file commands (#1317) 2024-11-19 17:20:47 -08:00
Mike Sawka
784bc89588
allow resolving 'ws' and 'client' as blockids (#1316) 2024-11-18 10:27:23 -08:00
Mike Sawka
1210313d2b
activity updates (#1302) 2024-11-15 16:09:26 -08:00
Mike Sawka
c4d7779003
wsh ai file attachments -- renderer in waveai (#1281) 2024-11-14 16:20:33 -08:00
Mike Sawka
dcb38dd64e
release notes and more docs for v0.9.2 (#1270) 2024-11-11 18:26:21 -08:00
Mike Sawka
045405aa5e
new wsh ai command (#1257) 2024-11-08 16:34:50 -08:00
Mike Sawka
2c055b56d0
new resolver formats (tab:N), and also make the structure of the resolvers much more robust (#1254) 2024-11-08 15:48:54 -08:00
Mike Sawka
c34a5912e7
return clientid in WaveInfoData, print for wsh version -v (#1252) 2024-11-08 14:19:56 -08:00
Mike Sawka
d5297cc5d4
wsh editconfig (#1243) 2024-11-08 11:08:52 -08:00
Mike Sawka
8c17269c88
wsh getmeta updates (easier to get/transfer metadata using cli) (#1241) 2024-11-08 10:48:40 -08:00
Mike Sawka
b36a7df929
setmeta updates to support json files (or reading stdin). easier interop with getmeta (#1240) 2024-11-08 10:19:57 -08:00
Mike Sawka
f50ce9565c
VDom 11 (#1224)
* Fix VDom url caching -- use regular requests 
* new boilerplate to make writing apps easier
* render-blocking global styles (to prevent render flash)
* bug fixes and new functionality etc.
2024-11-07 00:07:23 -08:00
Mike Sawka
42e85aea6f
VDom 10 (#1206)
* get RefOperations and RefUpdates working. 
* implement a <canvas> API that can be called using RefOperations
* prop to disable rehype/markdown (memory leak)
2024-11-05 23:07:45 -08:00
Mike Sawka
61d6b4d8eb
VDom 9 (#1205)
Lots of quality of life improvements (and bug fixes):
* Class(), ClassIf(), ClassIfElse() methods
* <wave:style> that can use a file vdom:/// url
* UseStateWithFn() to allow for functional setters
* If, IfElse, and ForEach for vdom construction
* batched updates for large updates -- streaming -- to get around packet size issues
* more flexible file sending code, for []byte, io.Reader, fs.File, and a fileName (with optional MimeType)
* fix the vdom:// protocol handler to work with fetch
* updated wshcmd-html for new best practices
2024-11-05 15:52:59 -08:00
Mike Sawka
91c293e4be
VDom 8 (#1202)
* new vdomevents to support click, change, keydown, etc. easier type
signature
* can now pass a prop type instead of always converting to
map[string]any
* implement DefineComponent to allow easier vdom creation using a
component function directly
* separate vdomclient Make from Connect
* lots of bug fixes to get everything working again
* PStyle and special "style" attribute handling
2024-11-04 12:52:36 -08:00
Mike Sawka
eeda49bbde
vdom 7 (#1180) 2024-11-02 10:58:13 -07:00
Mike Sawka
8893a42cd6
wsh version -v (to print config/data dirs and updater-channel) (#1190) 2024-11-01 10:20:15 -07:00
Mike Sawka
7e6f96348f
fix for waveterm environment variables leaking from prod to dev (#1153) 2024-10-27 13:12:41 -07:00
sawka
0b33916b46 fix indentation, remove old code 2024-10-25 13:58:31 -07:00
Mike Sawka
416c26c1cd
vdom 5 (#1143) 2024-10-25 13:45:00 -07:00
Mike Sawka
701d93884d
vdom 4 (#1110) 2024-10-23 22:47:29 -07:00
Sylvie Crowe
8248637e00
WSL Integration (#1031)
Adds support for connecting to local WSL installations on Windows.

(also adds wshrpcmmultiproxy / connserver router)
2024-10-23 22:43:17 -07:00
Evan Simkowitz
33f05c6e0c
Update data and config paths to match platform defaults (#1047)
Going forward for new installations, config and data files will be
stored at the platform default paths, as defined by
[env-paths](https://www.npmjs.com/package/env-paths).

For backwards compatibility, if the `~/.waveterm` or `WAVETERM_HOME`
directory exists and contains valid data, it will be used. If this check
fails, then `WAVETERM_DATA_HOME` and `WAVETERM_CONFIG_HOME` will be
used. If these are not defined, then `XDG_DATA_HOME` and
`XDG_CONFIG_HOME` will be used. Finally, if none of these are defined,
the [env-paths](https://www.npmjs.com/package/env-paths) defaults will
be used.

As with the existing app, dev instances will write to `waveterm-dev`
directories, while all others will write to `waveterm`.
2024-10-22 09:26:58 -07:00
Evan Simkowitz
39fff9ecfd
Allow separate directories for each config part, add dropdown for editing AI presets (#1074)
Adds new functionality on the backend that will merge any file from the
config directory that matches `<partName>.json` or `<partName>/*.json`
into the corresponding config part (presets, termthemes, etc.). This
lets us separate the AI presets into `presets/ai.json` so that we can
add a dropdown in the AI preset selector that will directly open the
file so a user can edit it more easily. Right now, this will create a
preview block in the layout, but in the future we can look into making
this block disconnected from the layout.

If you put AI presets in the regular presets.json file, it will still
work, since all the presets get merged. Same for any other config part.
2024-10-21 16:51:18 -07:00
Mike Sawka
46783ba315
vdom 3 (#1033) 2024-10-17 14:50:36 -07:00
Mike Sawka
c1c90bb4f8
browser view (#1005) 2024-10-17 14:34:02 -07:00
Sylvie Crowe
c5527dd87b
Add a Notification Subcommand to Wsh (#985)
This allows users to use the `wsh notify` command to make a popup
notification, even from a remote connection.
2024-10-08 10:22:17 -07:00
Mike Sawka
26fcbe0f0f
remove blockid from the regular args, use an optional -b (#973) 2024-10-07 13:56:46 -07:00
Mike Sawka
f835441507
fix wsh output. all output is run through sprintf, so escape properly (#971) 2024-10-06 21:50:11 -07:00