Commit Graph

282 Commits

Author SHA1 Message Date
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
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