Commit Graph

410 Commits

Author SHA1 Message Date
Mike Sawka
68dfc4ab90
better conditional taskfile running (#864)
still builds the server, but fixes the generate steps and wsh
2024-09-26 12:49:17 -07:00
Evan Simkowitz
df57896e2b
Dispose of the window DB entry when no tabs are left (#866)
Fixes issue where closing the last tab in the last window would cause
app to show a blank window the next time it opens. Instead, we should
dispose of the window so that it can be created from scratch the next
time the app launches.

Also fixes a potential DB resource leak from dead windows cluttering up
the DB
2024-09-26 12:48:40 -07:00
Mike Sawka
fbbacbc09b
legacy message for v7 upgrades (#858) 2024-09-25 15:52:12 -07:00
Evan Simkowitz
ce3ce7e6fd
Rename fileName to path to try and appease CodeQL (#852) 2024-09-25 12:58:30 -07:00
Evan Simkowitz
4b665dec90
Add setting to disable Chromium hardware acceleration (#847) 2024-09-25 10:08:15 -07:00
Evan Simkowitz
0f09a70836
Add native titlebar setting (#837) 2024-09-24 22:05:38 -07:00
Evan Simkowitz
ccf344d107
Fix path traversal vulnerabilities (#817)
Properly validate expanded paths to ensure they are not attempting path
traversal attacks
2024-09-24 18:24:39 -07:00
Evan Simkowitz
a369381c4e
Fix uncontrolled path expression in ExpandHomeDir (#816) 2024-09-24 16:19:59 -07:00
sawka
91a85e06c8 make no-telemetry request async 2024-09-23 20:47:39 -07:00
Evan Simkowitz
4907552379
Fix number parsing for MetaSettingsType (#806)
json.Unmarshal parses all numbers to float64, which breaks any integer
settings values. This PR changes MetaSettingsType.UnmarshalJSON to use
json.Decoder, which is capable of parsing into a meta-type json.Number,
which can be interpreted as a float or an integer. It also properly
handles pointer types.
2024-09-23 18:51:30 -07:00
sawka
96ad70ffdd log clientid 2024-09-23 13:59:55 -07:00
Mike Sawka
62cc9d8a6b
telemetry fix, log no-telemetry (#802) 2024-09-23 13:33:39 -07:00
Sylvie Crowe
bc057876a1
Powershell Execution Policy (#798)
Bypasses the Execution Policy for setting the script that adds wsh to
the path.
2024-09-20 12:48:29 -07:00
Mike Sawka
31414a7536
don't open files when stating directory (#797) 2024-09-20 12:25:46 -07:00
Mike Sawka
e281cebb56
tips update (add to starter layout) (#796) 2024-09-20 12:17:49 -07:00
Mike Sawka
047513bf3a
default url, default search, open in external browser (#794) 2024-09-20 11:24:37 -07:00
sawka
c31bd4a94d thenextwave cleanups 2024-09-19 14:04:47 -07:00
Evan Simkowitz
7126c47ecc
Fix missing new tab layouts (#402) 2024-09-19 12:59:09 -07:00
sawka
63f41c146c send autoupdate enabled/channel w/ telemetry 2024-09-19 11:58:01 -07:00
sawka
88d31bc692 set apptype = w2 2024-09-19 11:39:21 -07:00
Mike Sawka
c7a60a80f8
initwshrpc in electron (#391) 2024-09-17 23:10:09 -07:00
Sylvie Crowe
040bcf49b7
Remove Tips Modal (#393)
This tips modal wasn't discovered often enough in tests, so we are
removing it.
2024-09-17 14:29:44 -07:00
Evan Simkowitz
5b7535d08f
Add release channels (#385)
## New release flow

1. Run "Bump Version" workflow with the desired version bump and the
prerelease flag set to `true`. This will push a new version bump to the
target branch and create a new git tag.
    - See below for more info on how the version bumping works.
2. A new "Build Helper" workflow run will kick off automatically for the
new tag. Once it is complete, test the new build locally by downloading
with the [download
script](https://github.com/wavetermdev/thenextwave/blob/main/scripts/artifacts/download-staged-artifact.sh).
3. Release the new build using the [publish
script](https://github.com/wavetermdev/thenextwave/blob/main/scripts/artifacts/publish-from-staging.sh).
This will trigger electron-updater to distribute the package to beta
users.
4. Run "Bump Version" again with a release bump (either `major`,
`minor`, or `patch`) and the prerelease flag set to `false`.
6. Release the new build to all channels using the [publish
script](https://github.com/wavetermdev/thenextwave/blob/main/scripts/artifacts/publish-from-staging.sh).
This will trigger electron-updater to distribute the package to all
users.

## Change Summary

Creates a new "Bump Version" workflow to manage versioning and tag
creation.

Build Helper is now automated.

### Version bumps

Updates the `version.cjs` script so that an argument can be passed to
trigger a version bump. Under the hood, this utilizes NPM's `semver`
package.

If arguments are present, the version will be bumped.
If only a single argument is given, the following are valid inputs:
    - `none`: No-op.
    - `patch`: Bumps the patch version.
    - `minor`: Bumps the minor version.
    - `major`: Bumps the major version.
    - '1', 'true': Bumps the prerelease version.
If two arguments are given, the first argument must be either `none`,
`patch`, `minor`, or `major`. The second argument must be `1` or `true`
to bump the prerelease version.

### electron-builder

We are now using the release channels support in electron-builder. This
will automatically detect the channel being built based on the package
version to determine which channel update files need to be generated.
See
[here](https://www.electron.build/tutorials/release-using-channels.html)
for more information.

### Github Actions

#### Bump Version

This adds a new "Bump Version" workflow for managing versioning and
queuing new builds. When run, this workflow will bump the version,
create a new tag, and push the changes to the target branch. There is a
new dropdown when queuing the "Bump Version" workflow to select what
kind of version bump to perform. A bump must always be performed when
running a new build to ensure consistency.

I had to create a GitHub App to grant write permissions to our main
branch for the version bump commits. I've made a separate workflow file
to manage the version bump commits, which should help prevent tampering.
Thanks to using the GitHub API directly, I am able to make these commits
signed!

#### Build Helper

Build Helper is now triggered when new tags are created, rather than
being triggered automatically. This ensures we're always creating
artifacts from known checkpoints.

### Settings

Adds a new `autoupdate:channel` configuration to the settings file. If
unset, the default from the artifact will be used (should correspond to
the channel of the artifact when downloaded).

## Future Work

I want to add a release workflow that will automatically copy over the
corresponding version artifacts to the release bucket when a new GitHub
Release is created.

I also want to separate versions into separate subdirectories in the
release bucket so we can clean them up more-easily.

---------

Co-authored-by: wave-builder <builds@commandline.dev>
Co-authored-by: wave-builder[bot] <181805596+wave-builder[bot]@users.noreply.github.com>
2024-09-17 13:10:35 -07:00
sawka
d94a4bc666 don't bookstrap the newwindow layout for the first run 2024-09-17 00:00:20 -07:00
Evan Simkowitz
fd6e92ee2c
Clear previous layout when applying portable layout to tab (#382) 2024-09-16 17:26:37 -07:00
Mike Sawka
3939648bbb
fe wsh router + wsh client impl (#381) 2024-09-16 11:59:39 -07:00
Sylvie Crowe
555ab07861
Add Tips Modal for Directory (#374)
This is an experimental modal to show tips. If it helps improve
discoverability, it will be improved in the future.
2024-09-13 03:36:15 -07:00
Evan Simkowitz
936d4bfb30
Migrate websocket eventbus messages to wps (#367)
This migrates all remaining eventbus events sent over the websocket to
use the wps interface. WPS is more flexible for registering events and
callbacks and provides support for more reliable unsubscribes and
resubscribes.
2024-09-11 18:03:55 -07:00
Evan Simkowitz
4bfb96b001
Add a new terminal to the default tab in a new window (#368) 2024-09-11 17:39:08 -07:00
Mike Sawka
e46be65baf
guard wsh completion installation by prereqs (#364) 2024-09-11 11:14:38 -07:00
Red J Adaya
df2af04a6e
telemetry fix (#365) 2024-09-11 09:26:43 -07:00
Sylvie Crowe
04fb8e5aad
Mimetype Quick Fixes (#359) 2024-09-10 13:23:02 -07:00
sawka
62eb04090a fix shell integration directories, add bash/zsh completion scripts 2024-09-09 22:26:10 -07:00
sawka
3dbc8139eb fix slow tab closing 2024-09-06 17:48:34 -07:00
sawka
7b866ed3a8 fix wshrpc concurrency 2024-09-06 16:06:50 -07:00
Sylvia Crowe
f07ac79b0b fix: ssh error parsing order fix
Needed to check for non-error case before error case.
2024-09-06 13:58:27 -07:00
Sylvie Crowe
a9533b0426
SSH Agent Integration (#334)
Hook into an existing SSH Agent.
This allows us to pull keys already authenticated by the agent and write
to the agent ourselves.

---------

Co-authored-by: Evan Simkowitz <esimkowitz@users.noreply.github.com>
2024-09-06 13:19:38 -07:00
Mike Sawka
566bf461ff
implement img streaming (local and remote) for markdown (#348) 2024-09-06 12:59:28 -07:00
Mike Sawka
acae25f6e3
connmodal updates. connection colors, conn status in modal (#335) 2024-09-05 23:09:30 -07:00
Sylvie Crowe
fc0b1929ec
Connection Typeahead/Suggestions (#332)
Adds a list of potential remotes to add and filters it as you type. It
also provides options for reconnecting on a disconnection and
specifically connecting to a local connection
2024-09-05 17:02:44 -07:00
sawka
05306e36d1 fix default settings (telemetry), and stop block controllers in a background thread. 2024-09-05 16:36:24 -07:00
Mike Sawka
8ad84fd78a
update all gopkg imports (#330) 2024-09-05 14:25:45 -07:00
Mike Sawka
a5f563b52d
new directory structure and oldmigrate (#327) 2024-09-05 14:05:42 -07:00
Evan Simkowitz
debbed7003
Remove WOS dependency from wshrpc (#329)
The frontend wshserver.ts had a weird circuitous dependency on wos.ts,
which was unnecessary. This moves the misplaced functions into wshrpc.ts
and updates the generation logic.
2024-09-05 13:17:35 -07:00
Evan Simkowitz
779d2d35b7
make window opacity and window tile gap size pointers so the value gets sent if it is zero 2024-09-05 11:19:52 -07:00
Mike Sawka
3e0ca6b41e
connection handling / block controller handling (#326) 2024-09-05 00:21:08 -07:00
Evan Simkowitz
e1a19a0b80
add user setting for sticky scroll 2024-09-04 23:08:56 -07:00
Evan Simkowitz
74c8044c73
Add gap size setting (#325)
Adds a new setting for the gap size between tiles in a layout. Also
updates the resize handle calculations so they are dynamically generated
based on the gap size. Also updates the styling for the resize handles
to be more robust.

This also updates the default gap size to 3px.

This also slims out the Block Frame padding so it is just enough that
the blocks don't overlap when there's no gap.
2024-09-04 22:07:47 -07:00
Evan Simkowitz
74612c7e62
Add user setting for the editor minimap (#321) 2024-09-04 14:00:29 -07:00
Evan Simkowitz
0413b240dd
Only copy the relevant wavesrv binary when packaging for a specific architecture (#316)
This change shaves ~20 MB off the download size by only copying over the
wavesrv binary that is relevant for whichever architecture we're
currently packaging. This is only relevant for macOS at the moment,
though it can also apply to Windows when we get multi-arch builds
working.

This required renaming our Go binaries from .amd64 to .x64 to comply
with electron-builder's naming conventions.
2024-09-04 11:23:39 -07:00
Sylvie Crowe
b3a7c466e5
Powershell Wsh Integration (#320)
Add wsh to the path in powershell. Should work locally and in remote
connections. Should work on both windows and unix systems.
2024-09-04 02:13:00 -07:00
Mike Sawka
7bc154771a
implement wsh conn commands (#319) 2024-09-03 23:04:19 -07:00
Mike Sawka
afd83f0f6f
wsh connreinstall (#317) 2024-09-03 22:15:02 -07:00
Mike Sawka
a7746bc5cc
fix rpc no-route errors, fix fileopen in preview (#313) 2024-09-03 21:08:51 -07:00
sawka
70ef76be62 implement cmd:i, hook up telemetry switch, fix some settings types 2024-09-02 20:21:35 -07:00
Mike Sawka
e3b7ab73c0
preview refactor for keyboard/focus (#303) 2024-09-02 16:48:10 -07:00
Sylvie Crowe
226bc4ee6f
Connect With Non-Terminal Widgets (#304)
- Adds connection buttons for previews
- Makes it possible for graphs and previews to connect on backend
(without a terminal open to connection)
- Changes the wsh install message
2024-09-02 12:34:49 -07:00
Evan Simkowitz
aab487541b
Resolve BlockNum in WSH commands (#301) 2024-08-30 20:20:25 -07:00
sawka
1975b9b1db connstatus icon 2024-08-30 14:36:16 -07:00
sawka
74f551b212 connstatus fix, update connection icons appropriately for status 2024-08-30 13:56:53 -07:00
Mike Sawka
e488862355
remote sysinfo data plotting (#294) 2024-08-30 11:33:04 -07:00
sawka
945c63a3e5 add monokai, make themes more generic -- display:name/display:order 2024-08-29 21:35:33 -07:00
Sylvie Crowe
934d7247db
Store TermSize in RuntimeOpts on Resize (#293)
This keeps the TermSize in RuntimeOpts which allows the terminally to be
correctly sized when reloading a block. Also, it seems to correctly size
the terminal on an app reboot (or at least immediately fixes it).
2024-08-29 20:13:02 -07:00
sawka
3f92c31bfe move sendupdates func to eventbus 2024-08-29 18:39:27 -07:00
sawka
2d883da8f0 fix wsh view et al, send updates via ws 2024-08-29 18:23:12 -07:00
Mike Sawka
a104a6e446
new focus system part 1 (#290) 2024-08-29 16:06:15 -07:00
Evan Simkowitz
f7c9fd9a02
revert formatting for auto generated files 2024-08-28 13:21:08 -07:00
Sylvie Crowe
ea5e5e1bac
Integrate Skeema Knownhosts fix (#287)
This fix makes it possible to differentiate between keys when multiple
are provided by the remote server. It does not solve the case of
multiple keys of the same type being shared, but it handles multiple
keys of different types being shared, which is much more common.
2024-08-28 13:18:43 -07:00
sawka
a7606b8363 update visuals to say gpt-4o-mini 2024-08-28 12:05:36 -07:00
Evan Simkowitz
efe85ff4f5
enforce go fmt usage in vscode 2024-08-28 10:59:08 -07:00
Evan Simkowitz
fb65ec1e23
Explicitly set focus on insert (#285)
Adds a flag to the insert layout action to explicitly set the focus of a
newly inserted node. This also adds a flag in the starter layout to
focus on the terminal block.
2024-08-27 23:16:07 -07:00
Mike Sawka
a3aa941b68
implement wsh setconfig (#284) 2024-08-27 22:02:21 -07:00
Mike Sawka
8630e23239
new config system (#283) 2024-08-27 18:49:49 -07:00
Evan Simkowitz
c9c555452a
Establish wlayout for coordinating backend layout actions (#282) 2024-08-27 18:38:57 -07:00
Sylvie Crowe
ee0bc0a377
Windows Bug Fixes (#281)
Fixes two bugs
- ai component now works on windows
- forces files to use lf line endings on windows instead of crlf
2024-08-27 15:12:26 -07:00
Red J Adaya
a665d372e3
telemetry toggle (#278)
<img width="1316" alt="image"
src="https://github.com/user-attachments/assets/01dc517c-2e9c-46ea-aaf0-4fff1fd3909d">
2024-08-26 18:03:32 -07:00
Evan Simkowitz
cdaf8865a2
fix blockstore_test TestDelete 2024-08-26 16:38:57 -07:00
Mike Sawka
c2fe3b18e1
move connection switching to blockheader (#276) 2024-08-26 16:19:03 -07:00
Mike Sawka
f28bdccb5d
move CreateX functions to wcore (#275) 2024-08-26 15:17:37 -07:00
Evan Simkowitz
4e68211f22
make auth key header a constant 2024-08-26 13:55:47 -07:00
Evan Simkowitz
164afeeb66
Unified node model to pass data from layout to blocks (#259)
This adds a new NodeModel, which can be passed from the TileLayout to
contained blocks. It contains all the layout data that the block should
care about, including focus status, whether a drag operation is
underway, whether the node is magnified, etc.

This also adds a focus stack for the layout, which will let the focus
switch to the last-focused node when the currently-focused one is
closed.

This also addresses a regression in the resize handles that caused them
to be offset from the cursor when dragged.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-08-26 11:56:00 -07:00
Sylvie Crowe
636d71e652
Change Connection UI (#269)
This allows the user to select different connections from the terminal
block. Some features include:
- a status bar at the top of the term block that shows your current
connection
- an icon next to the status bar that shows whether the connection is
currently connected
- the ability to click the status bar and type in a new connection in
order to change the current connection

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-08-23 18:12:40 -07:00
Evan Simkowitz
7df91de2e5
use unauthorized instead of internalservererror for failed authkey validation 2024-08-21 15:23:15 -07:00
Evan Simkowitz
e527e2ab77
Add authkey header for requests to the backend (#256)
With this PR, Electron will generate a new authorization key that the Go
backend will look for in any incoming requests. The Electron backend
will inject this header with all requests to the backend to ensure no
additional work is required on the frontend.

This also adds a `fetchutil` abstraction that will use the Electron
`net` module when calls are made from the Electron backend to the Go
backend. When using the `node:fetch` module, Electron can't inject
headers to requests. The Electron `net` module is also faster than the
Node module.

This also breaks out platform functions in emain into their own file so
other emain modules can import them.
2024-08-21 15:04:39 -07:00
Evan Simkowitz
23261a7a98
Add flag for specifying a new node as magnified on insert (#253) 2024-08-20 20:14:14 -07:00
Evan Simkowitz
bd4bf93d4a
Update copyright indicators on a bunch of files (#255) 2024-08-20 17:01:29 -07:00
Mike Sawka
037497e7f1
wsh edit working (#252) 2024-08-20 14:56:48 -07:00
Sylvie Crowe
5cbf2673f4
windows ssh fixes (#250)
a couple small bug fixes
- wsh not being executable in windows (this doesn't add it to the path
yet)
- windows using the wrong slash for the path to wsh on the remote
2024-08-20 12:42:43 -07:00
sawka
e70e08e531 implement history functions for preview 2024-08-19 22:07:35 -07:00
sawka
a639fc3c8d implement defaultwidgets 2024-08-19 17:21:44 -07:00
Mike Sawka
534fcc5d0a
client support for rpc cancel (#249) 2024-08-19 15:44:30 -07:00
sawka
00958b8fed refactor 2024-08-19 15:01:00 -07:00
Mike Sawka
0d8c159101
remote file preview (streaming) working (#248) 2024-08-19 14:37:52 -07:00
Mike Sawka
8651659c02
get remote preview working (#246)
almost all there -- just need to fix streamfile for web urls.
2024-08-19 11:02:40 -07:00
Mike Sawka
85874f92ca
set up remote connserver (#245) 2024-08-18 21:26:44 -07:00
Sylvie Crowe
c30188552f
Add Unix Domain Socket Listener when Establishing Connections (#243)
This makes it possible to send wsh commands from wsh on a remote session
to wavesrv running locally. The exact behavior of running those commands
isn't implemented, but the underlying interface is added here.
2024-08-17 11:21:25 -07:00
Mike Sawka
a451743937
POC showing how statfile can call the conn wshclient to get file info (#242) 2024-08-16 18:45:45 -07:00
Mike Sawka
ae7d85630b
two level routing (based on how network switches work) (#241) 2024-08-16 16:49:49 -07:00
Sylvie Crowe
6bc3054733
SSH Wsh Install (#225)
This change adds the wsh installation to remote shells, so they have
access to its commands.
2024-08-15 21:32:08 -07:00
Evan Simkowitz
b5c6c1a937
Create reduced motIon setting (#226)
Adds a new setting that emulates the prefers-reduced-motion media query, allowing users to disable Wave animations without affecting other apps on their system. It also honors the prefers-reduced-motion query in case a system-level configuration is present.
2024-08-14 21:47:09 -07:00
Evan Simkowitz
e85b0d205e
New layout model (#210)
This PR is a large refactoring of the layout code to move as much of the
layout state logic as possible into a unified model class, with atoms
and derived atoms to notify the display logic of changes. It also fixes
some latent bugs in the node resize code, significantly speeds up
response times for resizing and dragging, and sets us up to fully
replace the React-DnD library in the future.
2024-08-14 18:40:41 -07:00
sawka
961502916b implement remotewritefile 2024-08-13 18:36:11 -07:00
sawka
c962391b71 hook up wsh router to wps 2024-08-13 18:19:29 -07:00
Mike Sawka
844451ea0d
wsh routing + proxy (#224)
lots of changes, including:
* source/route to rpcmessage
* rpcproxy
* wshrouter
* bug fixing
* wps uses routeids not clients
2024-08-13 16:52:35 -07:00
sawka
a2aef5b0ce add wsh term to open a new terminal in directory 2024-08-12 16:14:19 -07:00
sawka
f464223aab switch from 'main' to 'term' for main terminal blockfile 2024-08-12 15:53:34 -07:00
Mike Sawka
c4a0e85d32
update wsh code for easier creation of client servers (for readfile/readdir/fileinfo) (#218) 2024-08-12 10:58:39 -07:00
Sylvie Crowe
c192fe2663
Windows Pty (#206)
Add Windows Pty support, so the terminal works properly on windows
machines
2024-08-09 18:49:35 -07:00
sawka
4498ca8e9d allow 'this' for blockid 2024-08-09 18:37:23 -07:00
Mike Sawka
5165d099c2
wsh working over domain socket (and assorted bug fixes) (#217) 2024-08-09 17:46:52 -07:00
Mike Sawka
ed0279ad72
adding telemetry updates (#209) 2024-08-08 18:24:54 -07:00
sawka
fc7c640e6b remove topicbus (moved to wps). also have CreateWindow call CreateTab 2024-08-08 14:51:40 -07:00
Evan Simkowitz
7b87b7d7b9
Add WebGL acceleration and link handling to terminal (#205)
This PR adds back WebGL acceleration (enabled by default) for XTerm. It
also adds back link handling and adds a new option (disabled by default)
to open all links internally as a new web block.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-08-07 14:27:16 -07:00
Evan Simkowitz
21684b0995
use native install on quit instead 2024-08-06 16:30:42 -07:00
sawka
de28e7e00c fix wshhome/bindir 2024-08-01 01:53:42 -07:00
Sylvie Crowe
7cba3c46d4
Additional Demo Fixes (#191) 2024-08-01 00:57:06 -07:00
sawka
49a365e10b remove video, make initial window larger to fill the screen 2024-08-01 00:52:15 -07:00
sawka
a23b5ca0e0 panic handlers in wshrpc. also stop waveai from grabbing focus all the time 2024-08-01 00:03:19 -07:00
Sylvie Crowe
c5707de2fd
Fixes For the Demo (#190) 2024-07-31 23:50:38 -07:00
Mike Sawka
75c274c104
wsh shellintegration (#189) 2024-07-31 23:47:33 -07:00
Sylvie Crowe
fc8c1104f4
Create a Help Block (#188)
Adds a block to explain how to use the app.
2024-07-31 22:22:52 -07:00
Evan Simkowitz
74e86ef0cc
Bootstrap layout on first launch (#186) 2024-07-31 21:27:46 -07:00
sawka
d7712da862 fix deletewindow 2024-07-31 18:02:36 -07:00
Sylvie Crowe
efd1e3c189
CPU Plot (#185)
Adds a CPU % Plotting Widget
2024-07-31 14:13:36 -07:00
Red J Adaya
3ff03f7b34
setting of active tab improvements (#166) 2024-07-31 12:49:20 -07:00
sawka
8456c57bc1 implement bg presets 2024-07-30 23:22:41 -07:00
sawka
d68d32f96c terminal themes, use terminal bg to style the full block 2024-07-30 19:52:50 -07:00
sawka
4025d2fa9a filter fs events for valid names. don't respond to chmod events 2024-07-30 15:54:59 -07:00
Mike Sawka
cfc875bc21
metadata updates (frontend typing) (#174) 2024-07-30 12:33:28 -07:00
Red J Adaya
9233b3dbd7
modals component and model and TOS modal (#164)
Co-authored-by: Sylvia Crowe <software@oneirocosm.com>
Co-authored-by: sawka <mike.sawka@gmail.com>
2024-07-30 11:44:19 -07:00
Evan Simkowitz
f3f272a47b
Add action for magnifying a block (#172)
Adds the implementation for the "Magnify Block" context menu item. This
will pop a block out of the layout and bring it to the foreground.

This also cleans up some block styling to make radii more consistent.

<img width="814" alt="image"
src="https://github.com/user-attachments/assets/c81521e1-c91f-4bb5-9eec-ff0eda178268">
2024-07-30 10:59:53 -07:00
Sylvie Crowe
923850313f
AI Fixes (#173)
Fixing a few AI-related bugs
2024-07-29 22:35:21 -07:00
Sylvie Crowe
4494dc25cb
AI Port Context (#170)
This brings over the AI context from the previous app. In particular, it
makes it so each block has its own context that persists after the app
is reloaded.

Note that this does not provide the app with the cli-specific context
from the previous app.
2024-07-29 13:21:44 -07:00
Mike Sawka
551802dbd7
background support (from metadata). colors, gradients, images. (#168) 2024-07-29 11:55:10 -07:00
Evan Simkowitz
72fc42a050
Support window blur in addition to transparency (#161)
Adds support for window blur via the Vibrancy feature on macOS and the
BackgroundMaterial feature on Windows. The setting has no effect on
Linux. If both transparency and blur are set, transparency will take
precedence.
2024-07-26 16:18:53 -07:00
Mike Sawka
9df9c99fbd
checkpoint on domain sockets + update background colors + transparency (#160) 2024-07-26 13:30:11 -07:00
Sylvie Crowe
3162ad2c41
Directory Context Menus (#155)
This adds the ability to open a directory as a terminal in a new block.
it uses the directory table items for child directories and the block
header for the current directory.
2024-07-26 00:48:12 -07:00
Red J Adaya
2fea8e0a68
directory preview fixes (#130)
- Set all cols of navigation row(first row) to - except the first col
- Fixed the issue where it scrolls right on load or when you click back
from the file preview
- Use OverlayScrollbars
2024-07-25 21:14:21 -07:00
sawka
67ee0df322 add bare bones jwt stuff to support authsock 2024-07-25 16:41:34 -07:00
Sylvie Crowe
0e46b79c22
Open Ai Port (#154)
This brings over a simplified version of the open ai feature from the
previous app but in widget form. It still needs some work to reach
parity with that version, but this includes all of the basic building
blocks to get that working.
2024-07-25 02:30:49 -07:00
Red J Adaya
dcb4d5f2bf
terminal themes feature (#135)
Co-authored-by: sawka
2024-07-24 20:34:22 -07:00
sawka
9cf5ea979d write a little pubsub system for events 2024-07-23 14:21:19 -07:00
Mike Sawka
6c2ef6cb99
working on vdom implementation, other fixes (#136) 2024-07-23 13:16:53 -07:00
Evan Simkowitz
21e5e94db4
Remove unnecessary var declaration in WindowService (#133) 2024-07-22 16:43:18 -07:00
Evan Simkowitz
b2ee164b85
Close a window automatically when the last tab is closed (#131) 2024-07-22 16:39:45 -07:00
sawka
fd3581fc42 wsh deleteblock 2024-07-18 18:14:11 -07:00
Sylvie Crowe
f0263865bd
Remote Pty Resize (#123)
fix: set SIGWINCH on remote pty blocks
2024-07-18 16:56:00 -07:00
Evan Simkowitz
c47e17903d
Add auto updater configuration (#122)
Adds a new set of configurations for managing whether the app will
automatically check for updates. Ports over the auto update code from
the old app. In this version, the main difference is that updates can be
manually checked for using a menu bar item, even if auto updates are
disabled.
2024-07-18 16:55:04 -07:00
Mike Sawka
776ccd7da0
streaming rpc support (backend streams to the frontend) (#120) 2024-07-18 15:56:04 -07:00
Sylvie Crowe
f3743f90ec
User Input (#119)
Port the User Input feature from the previous version of the app. This
is currently being used to verify a few different prompts for ssh.
2024-07-18 15:21:33 -07:00
Red J Adaya
2a81f19b15
code editor header controls (#117) 2024-07-17 23:41:33 -07:00
Evan Simkowitz
8971e2feba
Set up electron-builder for new app (#113)
Adds electron-builder, which we will use to package and distribute our
application, same as in the existing app.
Replaces explicit port assignments with dynamic ones, which are then
stored into environment variables.
Adds a ~/.w2-dev folder for use when running a dev build.

The build-helper pipeline from the old repo is included here too, but it
is not updated yet so it will fail.

Also removes some redundant utility functions and cleans up some let vs.
const usage.

The packaging can be run using the `package:prod` and `package:dev`
tasks.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-07-17 18:42:49 -07:00
Mike Sawka
01b5d71709
new wshrpc mechanism (#112)
lots of changes. new wshrpc implementation. unify websocket, web,
blockcontroller, domain sockets, and terminal inputs to all use the new
rpc system.

lots of moving files around to deal with circular dependencies

use new wshrpc as a client in wsh cmd
2024-07-17 15:24:43 -07:00
Sylvie Crowe
3385608b4a
SSH Port (#111)
This enables basic ssh for connections using publickey auth without a
passphrase. It can be established by creating a widget with the "meta"
property set to
```
{
    "connection": "<user>@<host>:<port>"
}
```
where the :<port> is optional.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-07-15 18:00:10 -07:00
sawka
be392ee755 start unix domain socket server. fix a couple small bugs 2024-07-09 14:31:16 -07:00
sawka
fa3a670603 split web server into a listen and serve call 2024-07-09 13:47:39 -07:00
Mike Sawka
848a9af9a0
dynamic header updates (#102) 2024-07-08 15:04:48 -07:00
Red J Adaya
1f973b3fdc
WaveAI (#93) 2024-07-03 14:32:55 -07:00
Sylvie Crowe
ecd2464bbf
Hidden Files (#86)
Adds the following changes
- rename "Permissions" to "Perm"
- use a "-" if the mimetype is unknown
- add a button to hide and show hidden files
- fix the datetime to format based on how far in the past the date is
2024-06-27 18:13:42 -07:00
Sylvie Crowe
23e1c8797d
Search Fixes (#84)
This change:
- now clears the search box when entering a new directory
- fixes some styling issues
- adds a .. to the path
- uses the correct path (except on the initial start of the directory
widget)
2024-06-27 12:30:08 -07:00
Sylvie Crowe
0a8c97858c
Download File Option (#80)
This adds to the context menu to give the ability to download a file. It
also fixes a couple bugs and improves some formatting of the directory
view.
2024-06-26 12:14:59 -07:00
Red J Adaya
566f6764c2
Web view (#78) 2024-06-26 09:39:41 -07:00
Mike Sawka
7b93354657
initial implementation of move block to window (#77) 2024-06-25 14:56:37 -07:00
Sylvie Crowe
182c5f6e3d
Open New Block and Delete Files (#76)
This implements the behavior for the context menu recently added to the
directories. Open New Block simply opens the file in a preview in a new
block.

Delete files will delete the selected file, but it does not trigger a
rerender at this time. To see the change, you must navigate to a
different directory and then return. This will be fixed in a future
update.
2024-06-25 13:53:55 -07:00
sawka
7bf64fb268 wsh view works -- uses a WS event to send to the frontend 2024-06-24 19:04:08 -07:00
sawka
a0b8bd5c0b add config option to show block header ids 2024-06-24 16:25:53 -07:00
Mike Sawka
77b5acfc5a
cmd blocks (#74) 2024-06-24 14:34:31 -07:00
Sylvie Crowe
c2b8b32b44
New Directory View Columns (#71)
This adds several new columns to the directory view. It adds a last
modified timestamp, a logo for the type, human-readable file sizes, and
permissions. Several of these are configurable via the
config/settings.json file.
2024-06-22 00:41:49 -07:00
sawka
e7550c0a3e add block icon 2024-06-21 15:15:38 -07:00
sawka
8683105f70 fun customization for the block title 2024-06-21 14:44:11 -07:00
sawka
516f1faa47 fix ordering of typeunions in generated typescript. add term config fontsize and fontfamily. 2024-06-21 13:23:07 -07:00
Red J Adaya
9cc5d9d3ae
Add ability to edit tab name (#67) 2024-06-21 10:23:04 -07:00
Mike Sawka
5e655c7c55
refactor cmdqueue out of blockcontroller (#65) 2024-06-20 16:01:55 -07:00
sawka
68ca79fcbc update widgets, add label, color, description, change top two widgets 2024-06-20 13:03:50 -07:00
Mike Sawka
0a19aa31d4
working on wsh createblock (wsh view). bug fix for emain closed windows (#64) 2024-06-20 00:00:00 -07:00
Sylvie Crowe
21fa9a601f
Add filewatcher for config files (#63)
This adds the filewatcher and forwards events to the frontend. It also
sets up the widgets as something that can be controlled with a config
file.
2024-06-19 23:59:41 -07:00
Mike Sawka
fb668fd4e5
multi-window support (#62) 2024-06-19 19:10:53 -07:00
Mike Sawka
4ded6d94b6
stickers and terminal serialization (#57) 2024-06-17 22:38:48 -07:00
Red J Adaya
b6c85e38f6
DnD tabs (#44) 2024-06-17 21:50:33 -07:00
Mike Sawka
e46906d423
wsh rpc working (#55)
lots of iterations on an RPC protocol. getting wsh working with a
getmeta/setmeta command in addition to html mode.
2024-06-17 09:58:28 -07:00
Sylvie Crowe
d0c4f5c46f
Support Windows Builds (#54)
This adds support for windows builds. With it, the app can successfully
run on windows and unix systems. Note that the terminal still only works
on unix systems at this time.
2024-06-15 14:59:14 -07:00
sawka
014c6fb2ec redo ptybuffer, move to wshutil to help with stdin processing. change wsh to use cobra 2024-06-14 14:43:47 -07:00
sawka
ab785aa992 move DeleteZone to its own go routine -- crazy bug where we used the wrong DB conn 2024-06-14 10:09:28 -07:00
Mike Sawka
8e3540f754
working on ijson and wsh magic (#53) 2024-06-13 23:54:04 -07:00
Evan Simkowitz
b2b1f9b9df
Switch to using electron-vite instead of WebPack (#45)
This sets us back up to use Vite via the electron-vite package. This
will let us continue to build our testing suite on Vitest and take
advantage of Vite features like Hot Module Reloading, etc.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-06-13 16:49:25 -07:00
Mike Sawka
0f992c535d
working on wave OSC escapes, modes for the terminal (#46) 2024-06-13 14:41:28 -07:00
sawka
336dd0c0e3 unify the logging between electron and wavesrv (emain now proxies the wavesrv logs) 2024-06-12 19:33:44 -07:00
sawka
8a71180f20 implement wscommand using type union interface, send resize events there 2024-06-12 14:18:03 -07:00
sawka
083e00227e update BlockService to use the new type union feature of tsgen. strongly type the arguments to BlockService.SendCommand 2024-06-12 13:47:13 -07:00
sawka
c139a33954 remove dependency on SysProcAttr 2024-06-12 11:33:45 -07:00
Mike Sawka
1874d9a252
port to electron (#33) 2024-06-11 17:42:10 -07:00
Sylvie Crowe
ba7d2cf061
Automatically Detect Monaco Syntax Highlighting (#20)
This change passes the file name to monaco, so it can use its own
detection to determine highlighting of supported files. It also resolves
some of the mimetypes with more common use cases for a terminal.
2024-06-06 14:52:01 -07:00
Evan Simkowitz
f12e246c15
Break layout node into its own Wave Object (#21)
I am updating the layout node setup to write to its own wave object. 

The existing setup requires me to plumb the layout updates through every
time the tab gets updated, which produces a lot of annoying and
unintuitive design patterns. With this new setup, the tab object doesn't
get written to when the layout changes, only the layout object will get
written to. This prevents collisions when both the tab object and the
layout node object are getting updated, such as when a new block is
added or deleted.
2024-06-05 17:21:40 -07:00
Sylvie Crowe
2f2ff8a1cb
Extra Mimetypes (#17)
Vastly expands the list of mimetypes we can detect from file extensions.
2024-06-04 17:58:29 -07:00
Evan Simkowitz
c3e71c5c7d
Integrate Faraday layout system (#16)
Co-authored-by: Mike Sawka <sawka@users.noreply.github.com>
Co-authored-by: sawka <mike.sawka@gmail.com>
2024-06-04 13:05:44 -07:00
sawka
7429520d31 simple topic bus implementation -- creates topics on subscribe, deletes topics with no subscribers, extenal notification channel 2024-06-04 00:12:58 -07:00
sawka
0164851cf6 move ijson frontend/backend to nextwave 2024-06-03 18:25:12 -07:00
Sylvia Crowe
b12417101e Merge branch 'main' into sylvie/backwards-nav 2024-06-03 15:55:48 -07:00
sawka
dcd6d04b0b rpc checkpoint 2024-06-03 14:10:36 -07:00
sawka
f90554e87e not found should return null 2024-06-03 13:43:50 -07:00