Commit Graph

331 Commits

Author SHA1 Message Date
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
GeekGao
9d4df934c9
Update termthemes.json. Added new theme: One Dark Pro (#976)
One Dark Pro is one of the most popular themes in VSCode.
2024-10-07 10:06:49 -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
f835441507
fix wsh output. all output is run through sprintf, so escape properly (#971) 2024-10-06 21:50:11 -07:00
GeekGao
f1fe401dbe
Update termthemes.json (#966)
Add a new theme 'WarmYellow'
2024-10-06 13:08:12 -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
e795f75bbb
only use filemutex for windows (#960) 2024-10-04 12:20:52 -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
Mike Sawka
57c2f02c9d
add some fun new background presets (#930) 2024-10-02 11:03:37 -07:00
Mike Sawka
2fa88c4e50
add term:localshellopts (#914) 2024-09-30 21:19:07 -07:00
Sylvie Crowe
7b56b0fb00
ExpandHomeDir Fix on Windows (#909)
fix: check for backslash when expanding the home directory (~ character
-> full path)
2024-09-30 14:50:40 -07:00
Mike Sawka
6665e2d96e
better shellopts for commands and login/interactive shells (#907) 2024-09-30 12:36:05 -07:00
Sylvie Crowe
41a34ad49f
Add Extra Log Messages to Improve Debugging Experience (#906)
This adds more debugging statements for connections and ai chat, in
order to provide us more context if users run into bugs.
2024-09-30 12:32:22 -07:00
Sylvie Crowe
e84f07fa13
SSH Windows Fix (#894)
Only affects windows builds:

Previously, the ~/.waveterm/bin had to exist for wsh to be installed
properly. This fixes it to work on a remote machine where that isn't
already set up.
2024-09-27 16:41:53 -07:00
Mike Sawka
267e40cc67
conditionally write generated files (#890) 2024-09-27 13:46:10 -07:00
Mike Sawka
52cb36bc37
id 'tab' for current tabid (#891) 2024-09-26 23:49:35 -07:00
Mike Sawka
29b80bc028
support fish shell with wsh (#874) 2024-09-26 15:34:52 -07:00
Evan Simkowitz
3f15bfd2e4
Revert "better conditional taskfile running" (#872)
Reverts wavetermdev/waveterm#864

There's a typo here that's breaking the Taskfile
2024-09-26 14:36:47 -07:00
Mike Sawka
e567434b03
fix broken windows (with no tabs) (#867) 2024-09-26 13:29:07 -07:00
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