Commit Graph

737 Commits

Author SHA1 Message Date
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
48001ee734
make sure the user affirmatively acknowledged window deletion before deleting, fix for #1167 (#1181) 2024-10-31 18:13:27 -07:00
Mike Sawka
473225d94b
issue squashing #1175 #1038 #1086 #1081 #1066 #1020 (#1177) 2024-10-31 12:34:30 -07:00
Evan Simkowitz
b3fdbbc331
Various updater fixes (#1170)
- Fixes updater status not showing on tabs that were previously
unloaded.
- Fixes updater status showing as error when not connected to the
internet
- Adds delay after setting installing status to avoid race condition
with any window close event handlers. This may fix #1167
2024-10-30 14:20:19 -07:00
Evan Simkowitz
96cc2adc91
Fix Wave AI styling again (#1164) 2024-10-28 16:46:00 -07:00
Sylvie Crowe
bf8cc732af
feat: add checkmark next to current connection (#1159)
The is specifically for the typeahead dropdown for connections.
2024-10-27 23:55:43 -07:00
Sylvie Crowe
58ff42d9fd
Sysinfo Plot Height (#1158)
This makes two small changes
- renames a class to resolve two css classes having the same name
- ensures sysinfo's outermost element follows the *-view pattern
2024-10-27 23:02:28 -07:00
Mike Sawka
b746a0bfb6
fix long tab names and syncing tab renaming (#1160) 2024-10-27 23:01:47 -07:00
Evan Simkowitz
be5d73af21
Fix wave ai styling (#1157) 2024-10-27 21:34:20 -07:00
Mike Sawka
d0d9095c92
call isDev() function to properly hide workspace switcher in prod (#1154) 2024-10-27 14:23:52 -07:00
Red J Adaya
55c8e5a213
workspace switcher + new elements (in storybook) (#1148) 2024-10-27 13:22:06 -07:00
Sylvie Crowe
cbb825982b
fix: add gaps in plots where no data exists (#1065)
Scans the window from the most recent timestamp to however many seconds
back are being stored. Then adds blank spaces (NaN values) in between
data items that are too far apart. Lastly, if the earliest item is
blank, there are probably fewer than the expected number of items. In
that case, it adjusts the first timestamp to keep plot width mostly
consistent.
2024-10-27 12:00:15 -07:00
Sylvie Crowe
bbd530c052
AI Sliding Window (#1151)
Only send the 30 most recent ai questions and responses to the model
when making requests. This prevents the amount of data being sent from
getting too big.
2024-10-27 11:49:34 -07:00
Mike Sawka
a782d83628
vdom 6 (#1145) 2024-10-25 18:36:09 -07:00
Mike Sawka
416c26c1cd
vdom 5 (#1143) 2024-10-25 13:45:00 -07:00
Evan Simkowitz
e9fcb9b145
Merge branch 'main' into dev-v0.9 2024-10-25 10:21:33 -07:00
Evan Simkowitz
34e4ffc429
Use FloatingPortal to position menu above all other contents (#1136) 2024-10-24 23:32:54 -07:00
Evan Simkowitz
20d333f724
Make menubutton text clip to avoid overflow (#1135) 2024-10-24 23:24:54 -07:00
Mike Sawka
369fababa6
tab updates (#1134) 2024-10-24 23:16:44 -07:00
sawka
e1d538ed8b merge v0.8.13 changes 2024-10-24 17:02:35 -07:00
Mike Sawka
1742c19e13
resize terminal on restoring state (#1100) (backport from dev0.9) (#1116) 2024-10-24 11:01:58 -07:00
Mike Sawka
d65eabe494
termfontsize override (#1118) 2024-10-24 11:01:39 -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
df25c54a31
Merge branch 'main' into dev-v0.9 2024-10-22 21:19:56 -07:00
Evan Simkowitz
ec70ce8c91
Display error message on failed WebView page load (#1072)
closes #1023
2024-10-22 18:17:42 -07:00
Mike Sawka
fa160313ea
resize terminal on restoring state (#1100) 2024-10-22 12:50:44 -07:00
sawka
cf1b082c10 Merge remote-tracking branch 'origin/main' into dev-v0.9 2024-10-22 09:59:15 -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
Evan Simkowitz
a173468e02
Fix telemetry link in TOS (#1087)
closes #1085
2024-10-21 11:56:29 -07:00
sawka
613a583513 add the use version of settingskeyatom 2024-10-18 17:21:18 -07:00
Mike Sawka
3c94669d93
metakeyatom and overrideconfigatom (#1078) 2024-10-18 17:07:44 -07:00
sawka
0590ba2509 merge main to dev 0.9 2024-10-18 09:29:39 -07:00
Mike Sawka
dc70ab4014
ws reconnection bug + clean up logging (#1058) 2024-10-17 23:42:55 -07:00
Evan Simkowitz
70811cb730
Add helpview callback to resolve failed webview loads (#1057) 2024-10-17 16:03:17 -07:00
Evan Simkowitz
f77b42d70c
Fix bug where helpview fails to load sub-pages after idle (#1056)
closes #1048
2024-10-17 15:38:42 -07:00
Sylvie Crowe
a5999aa02a
Plot Sysinfo (#1054)
Expands the cpuplot with memory plots and individual cpu plots. Also
improves the styling and handling of multiple plots.
2024-10-17 15:19:13 -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
Evan Simkowitz
7628e667ca
Separate AppBackground into its own file (#1053)
Setup for command palette. I'm moving AppBackground to its own file and
simplifying the imports
2024-10-17 11:14:59 -07:00
Evan Simkowitz
a90e747f92
Fix runaway name appending on the default AI preset (#1051)
Shallow copy the presets when updating `display:name` so that the
appending of the model name for the default preset doesn't accumulate
every time the tab refreshes.

closes #1040
2024-10-17 09:53:49 -07:00
Mike Sawka
924d1495a3
add new generic open clipboard url (#1045) 2024-10-16 11:04:22 -07:00
Mike Sawka
fe70efab8d
fix bg image css processing (#1044) 2024-10-16 09:57:27 -07:00
Sylvie Crowe
0b3888d900
Quicklook only for local files on mac (#1039)
bug fix so quicklook does attempt to launch for remote directory
previews
2024-10-16 09:24:22 -07:00
Evan Simkowitz
69c99dd13a
Add button to mute audio when media is playing in webview (#1036)
![image](https://github.com/user-attachments/assets/202636dc-aab5-4164-9729-fecd0cc804ae)

Also fixes atom usage for the url bar so it will properly update when
any upstream atom states change
2024-10-15 15:15:33 -07:00
Mike Sawka
e24fab34dc
get json/yaml validation working (#1032) 2024-10-14 18:18:58 -07:00
Mike Sawka
a629b28194
implement a config error button + message modal that shows the errors (#1030) 2024-10-14 14:57:12 -07:00
Mike Sawka
a15b339f39
implement copy on select for terminal (#1029) 2024-10-14 10:05:38 -07:00
Evan Simkowitz
31535404f5
Fix menu stories (#1028) 2024-10-13 09:45:02 -07:00
Evan Simkowitz
0b88fa590d
Move AI model configs to presets and add a dropdown to swap between configs (#1024) 2024-10-12 18:40:14 -04:00
Sylvie Crowe
1354c34921
fix: add conn prefix to askbeforewshinstall flag (#1013) 2024-10-10 17:23:27 -07:00
Mike Sawka
3d2d68bc73
fix initial size of windows (#1011) 2024-10-10 16:12:56 -07:00
Sylvie Crowe
f3e0ba8148
Add Don't Ask Again Checkbox for Wsh Install (#1010)
This provides a checkbox when installing wsh that will prevent the
message from popping up in the future. It can also be disabled by adding
`"askbeforewshinstall": false` to the config file.
2024-10-10 15:50:46 -07:00
Evan Simkowitz
23eda19ead
Remove 6px padding from terminal block, make scrollbar properly overlay the terminal contents (#1009) 2024-10-10 14:42:44 -07:00
Evan Simkowitz
3ae8d693e8
Adjust the gap sizes and padding for the Wave AI controls div so it's more uniform (#1008)
Fix two-tone color in input box as well
2024-10-10 14:13:25 -07:00
Evan Simkowitz
e92b388260
Make terminal block scrollbar thumb slightly wider, closer to edge (#1007)
I can't push the scrollbar all the way to the edge because XTerm.js is
doing some fancy calculations for their viewport width and when I try to
mess with the CSS too much everything breaks, but I was able to get the
scrollbar thumb to be slightly wider and slightly closer to the edge
without everything falling apart
2024-10-10 14:02:58 -07:00
Evan Simkowitz
a109ccfec8
Fix new tab bug that would remove terminal block (#1006) 2024-10-10 13:33:48 -07:00
Evan Simkowitz
64084d3e27
Remove global.ts dependency from emain (#1003)
Removes global atoms dependency from emain by moving WOS to grab the
globalAtoms from window, if present. Also removes interdependency
between wshrpcutil and wps

Also adds showmenubar setting for Windows and Linux
2024-10-10 10:12:42 -07:00
Evan Simkowitz
bd3a971dca
Remove unnecessary onScroll log (#1002) 2024-10-09 20:43:04 -04:00
Mike Sawka
4f00595311
allow ai defaults to be overridden by block meta (#1000) 2024-10-09 15:16:35 -07:00
Sylvie Crowe
c43fd787a0
Simple Quicklook (#998)
This adds some ability to use quicklook from the directory view with the
spacebar on mac.
2024-10-09 15:12:20 -07:00
Sylvie Crowe
9dd4188810
fix: add error messages to ai chat (#999)
This will print error messages to the chat when there is an error
getting an ai response. The actual content of the responses are not
forwarded to the models in future requests.

<img width="389" alt="Screenshot 2024-10-09 at 2 36 13 PM"
src="https://github.com/user-attachments/assets/e6c6b1c1-fa19-4456-be3b-596feaeaafed">
2024-10-09 14:50:56 -07:00
Mike Sawka
f33028af1d
azure ai support (#997) 2024-10-09 13:36:02 -07:00
Evan Simkowitz
b81ab63ddc
Fix 404 for docsite subpages when hard reloading app (#995)
This adds a custom resolver to the docsite server to fall back to .html
addresses when it gets a not found for a given path. This fixes an issue
where subpages would return a 404 after a hard reload of the frontend. I
also added an effect that will run on startup to resolve the latest
docsite url and set it in the metadata, since the backend port changes
on every run of the app. I also made it so that setting the default
homepage in the webview widget will also unset any block-specific
homepage.
2024-10-09 12:42:33 -07:00
Evan Simkowitz
1eb458dc16
Fix directory preview scroll to selected entry (#996) 2024-10-09 12:42:23 -07:00
Mike Sawka
d4f86f3a2f
use windowSettingsAtom (#993) 2024-10-09 10:49:25 -07:00
Mike Sawka
5d6b85cf54
implement back/forward for help view (#991) 2024-10-08 16:54:41 -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
Evan Simkowitz
d2b2491211
Add markdown alert parsing, fix buffer issue when switching files (#988)
Adds the GitHub alert syntax parsing to the markdown element, fixes an
issue where the file edit buffer was not getting unset when the file
path changed, continues my crusade on star imports
2024-10-08 09:25:41 -07:00
Evan Simkowitz
2e27296677
Add Block and Default homepage menu options (#986) 2024-10-08 08:46:50 -07:00
Evan Simkowitz
e2bd3cd94a
Add per-block WebView homepage setting, help view is now just a skinned webview (#982)
Adds a meta field `pinnedurl` that can be set to override the
`web:defaulturl` setting for a given block. Also adds a home button to
the webview to reset the block url to the homepage

The help view is now an extension of the webview with some of the chrome
removed.

Also updates the cookie dependency to resolve a vulnerability
2024-10-07 17:20:18 -07:00
Mike Sawka
447596b5e7
new config preview:showhiddenfiles and term:theme (#981) 2024-10-07 14:08:57 -07:00
Sylvie Crowe
0ca1dbfbcc
Back Arrow goes back to existing parent (#979)
This change makes the preview back arrow take you back to a parent
directory that already exists if you are stuck in a bad state. this
prevents it from opening a directory that doesn't exist as a file, which
can happen if you use the typeahead to reach a file that doesn't exist
inside a directory that doesn't exist.
2024-10-07 09:58:12 -07:00
Mike Sawka
92fd371fc9
term scrollback size and reduce cache frequency (#978) 2024-10-07 09:51:23 -07:00
Mike Sawka
d9d19f8368
allow metadata to override the frame title, icon, and text (#972) 2024-10-06 22:08:26 -07:00
Mike Sawka
f05032bcd4
add webcontents id to helpview webview. (#969)
also allow contextmneu items to have sublabel, visible, and enabled
2024-10-06 13:55:26 -07:00
Mike Sawka
545a914c4c
better shutdown logic to capture waveapp logs from wavesrv shutdown (#931) 2024-10-06 13:40:02 -07:00
Sylvie Crowe
76ccd83c5c
Open Text File if File Does Not Exist (#963)
This will open new files as empty text files for editing.
2024-10-06 13:38:03 -07:00
Red J Adaya
28ca193c19
Add 'scrollable' prop to Markdown component for better control over scrolling behavior (#964)
The scrollable prop controls if ScrollbarOverlay is added to the
Markdown component.
2024-10-06 13:30:02 -07:00
Mike Sawka
b490113a87
change cursorAccent to cursor to match xtermjs. (#968)
also add more feedback for waveai -- tooltips + icon for local/cloud.
also use 'ai:name' correctly
2024-10-06 12:42:25 -07:00
Mike Sawka
1bd2fe83cb
right click save image in webview (#962) 2024-10-04 16:34:05 -07:00
Evan Simkowitz
fe06e0d93e
Remove unnecessary log in helpview (#951) 2024-10-03 20:54:55 -07:00
Evan Simkowitz
74cda378f8
Embed static copy of docsite for help view (#949)
This will take the latest artifact from the waveterm-docs repo and embed
it in the app binary. When the help view is launched, it will be served
from our backend. If the embedded copy doesn't exist, such as in
unpackaged versions of the app or in locally packaged versions, it will
use the hosted site instead.

There is a sibling PR in the docs repository to build the embedded
version of the app (strips out some external links, removes Algolia
DocSearch, updates the baseUrl)
https://github.com/wavetermdev/waveterm-docs/pull/46
2024-10-03 20:28:05 -07:00
Evan Simkowitz
a1e0d03fcc
Better handle background color for dir preview table (#944) 2024-10-02 17:37:02 -07:00
Evan Simkowitz
1737c686c2
Fix double scrollbars in dir preview (#932)
Phew this took a while, but I think it's a good compromise. All the
scrolling for a preview view now must happen inside the individual
views, rather than at the root level. Now, the scrollbars render in the
right places and are always visible inside the block. I don't love the
blurred header for the table, but it was make it blurry or make it even
more opaque, which would ruin the transparency
2024-10-02 17:21:34 -07:00
Evan Simkowitz
c34fa963a7
Fix Alt+G on Windows/Linux (#943)
fixes #921
2024-10-02 17:18:16 -07:00
Mike Sawka
f21045d8dd
have terminal ignore all global keybindings (#924) 2024-10-01 14:07:28 -07:00
Sylvie Crowe
3f7af7bfb8
fix: modifier keys on windows and linux (#922) 2024-10-01 11:54:39 -07:00
Mike Sawka
538d4be8be
use makeIconClass for widgets, add 'brands' support (#920) 2024-10-01 09:51:22 -07:00
Sylvie Crowe
7df587d9a4
Speed Up Ai (#911)
fix: remove ai frontend throttling
2024-09-30 22:14:30 -07:00
Mike Sawka
72e24900f4
quick hack to try to reserve some alt keys from the terminal (#915) 2024-09-30 21:48:02 -07:00
Mike Sawka
2fa88c4e50
add term:localshellopts (#914) 2024-09-30 21:19:07 -07:00
Mike Sawka
8460620196
try to get meta tag to detect color (#908) 2024-09-30 13:51:01 -07:00
Mike Sawka
cacde1b0ba
fix use dimensions hook (#905) 2024-09-30 12:19:29 -07:00