Commit Graph

368 Commits

Author SHA1 Message Date
Sylvia Crowe
56f291d25a feat: use hujson to parse config files 2024-12-04 13:58:02 -08:00
Evan Simkowitz
aa77b2c259
Pinned tabs (#1375)
![image](https://github.com/user-attachments/assets/a4072368-b204-4eed-bb65-8e3884687f9a)

This functions very similarly to VSCode's pinned tab feature. To pin a
tab, you can right-click on it and select "Pin tab" from the context
menu. Once pinned, a tab will be fixed to the left-most edge of the tab
bar, in order of pinning. Pinned tabs can be dragged around like any
others. If you drag an unpinned tab into the pinned tabs section (any
index less than the highest-index pinned tab), it will be pinned. If you
drag a pinned tab out of the pinned tab section, it will be unpinned.
Pinned tabs' close button is replaced with a persistent pin button,
which can be clicked to unpin them. This adds an extra barrier to
accidentally closing a pinned tab. They can still be closed from the
context menu.
2024-12-04 13:34:22 -08:00
Evan Simkowitz
a72d3e5c7a
Add recursive flag to prevent unwanted deletion of parents while they're already being deleted (#1378)
When a tab was being deleted, for instance, the last block that got
deleted would cascade to delete its parent tab, even though the
`DeleteTab` function was already going to do this. This would produce DB
collisions that would put the app into a bad state. Now we pass a
`recursive` flag that is used to determine whether to perform the
recursive close of the parents.

Also updates `DeleteWorkspace` so that named workspaces will always be
deleted if they're empty, even if `force` is false
2024-12-03 18:39:06 -08:00
Evan Simkowitz
90e31dfa48
Delete a tab when it's out of blocks, cascade to window (#1374)
Updates `DeleteBlock` to close its parent tab if the tab has no more
blocks. This will also cascade to close the workspace if it no longer
has any tabs, same for window.

I had to move some block-related functionality around on the backend.
2024-12-03 09:38:46 -08:00
Evan Simkowitz
04c4f0a203
Create and rename files and dirs in dirpreview (#1156)
New context menu options are available in the directory preview to
create and rename files and directories

It's missing three pieces of functionality, none of which are a
regression:
- Editing or creating an entry does not update the focused index. Focus
index right now is pretty dumb, it doesn't factor in the column sorting
so if you change that, the selected item will change to whatever is now
at that index. We should update this so we use the actual file name to
determine which element to focus and let the table determine which index
to then highlight given the current sorting algo
- Open in native preview should not be an option on remote connections
with the exception of WSL, where it should resolve the file in the
Windows filesystem, rather than the WSL one
- We should catch CRUD errors in the dir preview and display a popup
2024-12-02 22:23:44 -08:00
Evan Simkowitz
0ec60f5a7b
Fix switch workspace (#1370) 2024-12-02 14:52:34 -08:00
Evan Simkowitz
f368a61c70
Fix close active tab behavior (#1367)
This fixes a bug where closing the active tab would clean up the closed
tab view before switching to an un-closed tab view, putting the window
into an unrecoverable state. This also moves around some of the CloseTab
logic so that it's more standardized and reduces unnecessary
frontend-backend comms and DB writes
2024-12-02 12:59:03 -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
b6ce2cd022
misc v0.9.3 fixes -- numToString, block counts, fix docsite images/video (#1354) 2024-11-25 18:07:29 -08:00
Evan Simkowitz
7054b17eb3
Better fix for presets on Windows (#1336) 2024-11-21 12:58:03 -08:00
Mike Sawka
3136291140
temp oid in client (can use with wavefile) (#1329) 2024-11-20 18:48:46 -08:00
Sylvie Crowe
c003ddff83
Quick Ssh Fix/Logging (#1328)
This adds two things:
- prints a log error if the user isn't parsed properly in ssh
- ensures that a host isn't reused when sending to the conn list
2024-11-20 18:11:47 -08:00
Mike Sawka
360964d4ba
panic handlers everywhere (#1327) 2024-11-20 18:05:13 -08:00
Mike Sawka
24807cfd34
add display resolutions to activity updates, update docs (#1323) 2024-11-19 19:41:53 -08:00
Sylvie Crowe
958a5ece10
Documentation Pictures (#1324)
Adds pictures and videos to documentation for clarity
2024-11-19 19:34:50 -08:00
Mike Sawka
271d8e2e9c
wsh getva, setvar, and file commands (#1317) 2024-11-19 17:20:47 -08:00
Evan Simkowitz
0acad2fbe2
Fix reading presets dir on Windows (#1322)
Nested directories in the embedded FS always expect a `/`, even on
Windows. This adds a fallback in `readConfigFileFS` to try swapping the
path separators if we get an "invalid argument" error from `Read`
2024-11-19 15:21:23 -08:00
Evan Simkowitz
416ba8d5da
Add settings to control the size of the magnified/ephemeral nodes and their blur (#1319) 2024-11-18 14:41:09 -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
e6d7f74964
working on a buffered log viewer class (#1301) 2024-11-15 14:02:33 -08:00
Mike Sawka
c4d7779003
wsh ai file attachments -- renderer in waveai (#1281) 2024-11-14 16:20:33 -08:00
Mike Sawka
631fad23d8
add new vdom.H() func and Filter/FilterIdx (#1291) 2024-11-14 16:19:21 -08:00
Mike Sawka
8b672211a9
move vdomclient to waveapp (#1290) 2024-11-14 13:32:58 -08:00
Evan Simkowitz
6216dca17a
Fix docsite path error in docsite.go (#1272)
The docsite path was being initialized as a global variable. This wasn't
an issue before we were caching and unsetting the env vars, but now that
`wavebase.GetWaveAppPath()` returns the contents of the cached variable,
we need to read its value at runtime, since it won't be set at the time
the global variable is initialized.
2024-11-12 12:30:37 -08:00
Mike Sawka
95fd00617e
fixes for o1 models (#1269) 2024-11-11 17:11:09 -08:00
Mike Sawka
3fc45c63f3
vdom terminal toolbar (#1263) 2024-11-11 13:11:09 -08:00
Mike Sawka
de902ec2b7
ai backend refactor + claude/anthropic API support (#1262) 2024-11-11 11:39:08 -08:00
Mike Sawka
38eeba5bd2
set maxcompletiontokens (#1260) 2024-11-11 10:52:59 -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
7afb9c5803
fix default config error (#1255) 2024-11-08 15:09:19 -08:00
Mike Sawka
c34a5912e7
return clientid in WaveInfoData, print for wsh version -v (#1252) 2024-11-08 14:19:56 -08:00
Evan Simkowitz
3216bc2389
Use one unified widgets.json file for managing widgets in the sidebar (#1250)
Renames defaultwidgets.json file in defaultconfig to widgets.json and
removes references to defaultwidgets in the codebase and documentation.

Going forward, users will see one unified list of widgets in the sidebar
with no separator between default and custom widgets. Users can manually
move any edits to their defaultwidgets.json file into their widgets.json
file to get back their overrides.
2024-11-08 14:14:59 -08:00
Mike Sawka
e3370ebe6d
customization docs (#1231) 2024-11-07 16:05:42 -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
Evan Simkowitz
4a09c06021
Use native title bar for all platforms while we fix Window Controls Overlay (#1193) 2024-11-01 12:19:49 -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
b945a8d039
restore old tab naming logic (#1186)
fixes the tab naming confusion going on in #1167
2024-11-01 09:41:23 -07:00
Mike Sawka
473225d94b
issue squashing #1175 #1038 #1086 #1081 #1066 #1020 (#1177) 2024-10-31 12:34:30 -07:00
Evan Simkowitz
502f9515d8
Two extremely low-hanging fruit tests generated by GitHub Workspace (#1172) 2024-10-30 20:19:22 -07:00
Sylvie Crowe
94eb165346
fix: ignore the match statement in ssh config (#1155)
This change will skip over match statements in the ssh config without
panicking. Note that this change still does not add match statement
parsing--it merely makes it possible to continue parsing if the match
keyword is present.
2024-10-27 20:35:19 -07:00
Mike Sawka
7e6f96348f
fix for waveterm environment variables leaking from prod to dev (#1153) 2024-10-27 13:12:41 -07:00
Mike Sawka
416c26c1cd
vdom 5 (#1143) 2024-10-25 13:45:00 -07:00