Commit graph

117 commits

Author SHA1 Message Date
Mike Sawka
158e404d80
Lots of fixes, big and small for processviewer (frontend and backend) (#3224)
The big fix is not spawning a goroutine per process. other fixes are
more minor, but improve the quality and clean up some edge cases.
2026-04-15 22:36:28 -07:00
Mike Sawka
ac6b2f3520
New Vertical Tab Bar Option (#3059)
Lots of work on the vtabbar UI / UX to make it work and integrate into
the Wave UI
Lots of work on the workspace-layout-model to handle *two* resizable
panels.
2026-03-13 18:38:10 -07:00
Copilot
9c3cf984e8
Make frontend CSS color validation Chromium-only (remove DOM style fallback) (#2946)
The new color validator is used exclusively in the Electron/Chromium
frontend, so fallback parsing via temporary DOM elements is unnecessary.
This update tightens the implementation to rely on the browser-native
CSS capability check only.

- **Scope**
- Keep `validateCssColor(color: string): string` behavior unchanged
(returns normalized type for valid colors, throws on invalid).
  - Remove non-Chromium fallback logic from validation path.

- **Implementation**
  - **`frontend/util/color-validator.ts`**
    - `isValidCssColor` now exclusively uses:
      - `CSS.supports("color", color)`
- Removed fallback using `document.createElement(...).style.color`
assignment/parsing.

- **Behavioral contract (unchanged)**
- Valid values still return specific type strings (`hex`, `hex8`, `rgb`,
`rgba`, `hsl`, `keyword`, etc.).
  - Invalid values still throw `Error("Invalid CSS color: ...")`.

```ts
function isValidCssColor(color: string): boolean {
    if (typeof CSS == "undefined" || typeof CSS.supports != "function") {
        return false;
    }
    return CSS.supports("color", color);
}
```

<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/wavetermdev/waveterm/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
Co-authored-by: sawka <mike@commandline.dev>
2026-02-27 15:48:56 -08:00
Mike Sawka
b1d11f72c4
add noprofile/noninteractive to all powershell commands (#2959) 2026-02-27 15:46:36 -08:00
Mike Sawka
9abd590176
UI only preview server (+ deployments) (#2919)
adds a new "preview server" for UI testing. hooking up to cloudflare
pages deployments. for now, just a test "about modal" component. will
add more later.
2026-02-23 12:48:28 -08:00
Mike Sawka
73bb5beb3b
Tab Indicators, Confirm on Quit, etc (#2811)
* Adds a Confirm on Quit dialog (and new config to disable it)
* New MacOS keybinding for Cmd:ArrowLeft/Cmd:ArrowRight to send Ctrl-A
and Ctrl-E respectively
* Fix Ctrl-V regression on windows to allow config setting to override
* Remove questionnaire in bug template
* Full featured tab indicators -- icon, color, priority, clear features.
Can be manipulated by new `wsh tabindicator` command
* Hook up BEL to new tab indicator system. BEL can now play a sound
and/or set an indicator (controlled by two new config options)
2026-01-29 17:04:29 -08:00
Mike Sawka
e3c9984e68
removed pinned tabs feature (#2737) 2026-01-02 21:12:03 -08:00
Mike Sawka
2b243627c3
very large refactor of wshrouter (#2732)
the PR spiraled and ended up being much larger than anticipated.

it is a refactor of wshrouter to have it track "links" as opposed to
just routes. this lets us simplify a lot of things when it comes to
multi-level routing.

* now the router can handle unauthenticated links directly, instead of a
weird limbo in wshproxy
* no more wshmultiproxy
* no more "authtoken" weirdness
* more straightforward handling in connserver (when using router option)

also adds more debugging, more logging, some windows fixes, other wsl
fixes
2026-01-01 17:44:00 -08:00
Mike Sawka
90011a7ede
add empty go.mod file in scaffold directory to prevent errant imports (#2710) 2025-12-22 15:30:05 -08:00
Mike Sawka
667de56198
updates to allow wave ai panel to function without telemetry with BYOK/local models (#2685)
* lots of changes to how aimodes are shown on frontend
* backend now requires aimode to be sent with request
* diagnostic ping
2025-12-16 09:06:56 -08:00
Mike Sawka
fbb0c4d052
windows, have a new "local" conn option for Git Bash if installed (#2666) 2025-12-12 14:05:48 -08:00
Mike Sawka
1f4835643b
remove storybook, tasks, and dependencies (#2593) 2025-11-24 13:36:00 -08:00
Mike Sawka
ce978c1205
More Builder Improvements + Tsunami AppInit (#2571)
* Kebab Menu + Switch App Functionality
* Updated Secrets Tab (still more to do, but closer)
* Better Error Handling (Switch to Secrets Tab)
* Add AppInit functionality to Tsunami (fixes initialization issues and
races with embedded assets, and error handling)
* Tsunami - ListStaticFiles
* Tsunami - More Robust Manifest generation (even when there are extra
stdout messages)
2025-11-19 09:41:11 -08:00
Mike Sawka
3b97084471
fix tsunami scaffold in build (#2564) 2025-11-14 16:35:37 -08:00
Mike Sawka
926475e5db
fix tsunami:scaffold for windows runner (#2562) 2025-11-14 12:21:07 -08:00
Mike Sawka
e9bc34a03a
more work on tsunami builder (#2534) 2025-11-07 18:19:52 -08:00
Copilot
a23bbc00dc
Remove embedded docsite, always use live docs.waveterm.dev (#2503)
Removes the embedded Docusaurus build from the application. The help
view now always loads from https://docs.waveterm.dev/ instead of serving
a locally bundled copy. This eliminates package size constraints on
documentation content (e.g., videos) and removes unnecessary
build/packaging overhead.

**Backend changes:**
- Deleted `pkg/docsite` package entirely
- Removed docsite handler from `pkg/web/web.go`
- Simplified `emain/docsite.ts` to return constant URL instead of
probing for embedded docs

**Frontend changes:**
- Removed embedded URL translation logic from `helpview.tsx`
- Homepage URL now uses constant instead of IPC call

**Build configuration:**
- Removed `docsite:build:embedded` task and all references
- Removed `dist/docsite/**/*` from electron-builder asarUnpack
- Removed `build-embedded` script from docs package.json

Net result: -141 lines, +9 lines across 8 files.

<!-- START COPILOT CODING AGENT SUFFIX -->



<details>

<summary>Original prompt</summary>

> right now we build a docusaurus project to run both the online docs at
docs.waveterm.dev AND to embed into the application. but this limits
what we can show in the docs (especially large things like videos etc.)
> 
> the internal docs already fall back to the website when it cannot find
the embedded docs.
> 
> i'd like to update the build and packaging etc to no longer build the
embedded doc site. i'd also like to have the "help" view always render
the live doc site at https://docs.waveterm.dev.


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
2025-11-04 14:09:08 -08:00
Mike Sawka
6a173a6227
working on more terminal context (#2444)
* add automatic OSC 7 support to bash and zsh
* add new wave OSC 16162 (planck length) to get up-to-date shell
information into blockrtinfo. currently implemented only for zsh. bash
will not support as rich of data as zsh, but we'll be able to do some.
* new rtinfo will be used to provide better context for AI in the
future, and to make sure AI is running safe commands.
* added a small local machine description to tab context (so AI knows
we're running on MacOS, Linux, or Windows)
2025-10-17 12:19:40 -07:00
Mike Sawka
de39bc3ea6
fix api-dev URLs (#2436) 2025-10-15 18:21:44 -07:00
Mike Sawka
d272a4ec03
New AIPanel (#2370)
Massive PR, over 13k LOC updated, 128 commits to implement the first pass at the new Wave AI panel.  Two backend adapters (OpenAI and Anthropic), layout changes to support the panel, keyboard shortcuts, and a huge focus/layout change to integrate the panel seamlessly into the UI.

Also fixes some small issues found during the Wave AI journey (zoom fixes, documentation, more scss removal, circular dependency issues, settings, etc)
2025-10-07 13:32:10 -07:00
Mike Sawka
8583e6d106
fix env tasks in docsite package.json (#2358) 2025-09-15 18:32:55 -07:00
Mike Sawka
50cc08a769
add tsunami view in wave (#2350)
checkpoint.  good to merge.  we have a working tsunami view inside of wave (with lots of caveats).  but enough for some dev testing.  merge so we dont drift too far from main and while we're at a stable point.
2025-09-15 12:58:59 -07:00
Mike Sawka
88747742c9
switch from yarn to npm (#2347)
no need for yarn anymore in 2025 (especially yarn berry which is just an AI + githubactions nightmare). switch to the more standard npm.  update go version to 1.24 across the board.  cleanup some vite stuff, and deps.  all-around improvements.
2025-09-12 15:36:03 -07:00
Mike Sawka
e7cd584659
tsunami framework (waveapps v2) (#2315)
Huge PR.  135 commits here to rebuild waveapps into the "Tsunami" framework.

* Simplified API
* Updated system.md prompt
* Basic applications building and running
* /api/config and /api/data support
* tailwind styling
* no need for async updates
* goroutine/timer primitives for async routing handling
* POC for integrating 3rd party react frameworks (recharts)
* POC for server side components (table.go)
* POC for interacting with apps via /api/config (tsunamiconfig)

Checkpoint.  Still needs to be tightly integrated with Wave (lifecycle, AI interaction, etc.) but looking very promising 🚀
2025-09-11 14:25:07 -07:00
Mike Sawka
e02193543d
remove universal builds, fix cleaning/wsh building (#2296) 2025-08-26 23:21:49 -07:00
Mike Sawka
6845cd5a72
standalone fixes, linting errors, speedups, QOL changes ported from wave-12 branch (#2271) 2025-08-20 18:07:11 -07:00
Mike Sawka
559ed2ea5a
update to electron v37 (#2260) 2025-08-19 10:19:15 -07:00
Mike Sawka
f71b17fa7a
try again to fix the build, remove generates (#2157) 2025-05-02 15:42:27 -07:00
Mike Sawka
2bd2a46daa
try fixing rm on windows again (#2155) 2025-05-02 14:53:54 -07:00
Mike Sawka
a1d7e49308
fix taskfile rm command to use powershell (#2154) 2025-05-02 13:40:09 -07:00
Mike Sawka
d7a9006f13
new tevents analytics framework (#1894) 2025-02-03 15:32:44 -08:00
Sylvie Crowe
8febd09c2c
fix: schema build process ignore rmrf error (#1897)
In prod builds, the RMRF step of build:schema is breaking the build.
This ignores the error produced to avoid that.
2025-02-03 15:05:06 -08:00
Sylvie Crowe
fc298f2a50
settings schema.json (#1874)
Adds schema.json support to the settings file to provide type hints and
other eventual details. This also adds a system to easily add more
schema files for other type of configurations.
2025-02-03 14:20:50 -08:00
Evan Simkowitz
d224bd471d
Add mips builds for wsh (#1878) 2025-01-30 17:36:45 -08:00
Evan Simkowitz
db3de47def
Use Zig for Windows and ARM64 Linux (#1713)
I'm making steps to simplify our build dependencies, consolidating our C
compiler requirements so we only depend on Zig.

Before, we used Zig for x64 but not for arm64. This meant that users
using an ARM dev machine would need to install `build-essentials` and
Zig. We also required MinGW-w64 on Windows, which is a pain to install
since it can be provided by a bunch of different tools, the smallest of
which is like a 2GB install.
2025-01-10 15:23:56 -08:00
Evan Simkowitz
d2802ad297
Add init task (#1681)
Add init task to initialize the dev environment
2025-01-04 20:18:31 -08:00
Evan Simkowitz
cb2cd72cd4
add aliases for electron:dev, electron:start, and docsite:start tasks (#1651) 2024-12-29 10:05:17 -08:00
Evan Simkowitz
0925af5300
Add warning when user is running in ARM translation mode (#1560)
Adds warning and docs to let users know when they're running in ARM
translation mode. Also lets them configure to always dismiss if they
don't care.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added a configuration option to dismiss architecture warnings during
application startup.
- Introduced new FAQs addressing ARM64 translation warnings and
instructions for joining beta builds.
- Added platform-specific requirements for macOS, Windows, and Linux in
the getting started documentation.

- **Bug Fixes**
- Enhanced build command flexibility by allowing dynamic command-line
arguments during the build process.

- **Documentation**
- Updated configuration documentation to include the new dismiss
architecture warning key.
- Minor formatting adjustments in FAQs and getting started
documentation.
	- Clarified platform compatibility details in the README.

- **Chores**
- Added a new constant for the dismiss architecture warning
configuration key.
- Introduced a new field for managing architecture warning settings in
the application configuration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-18 19:44:50 -08:00
Evan Simkowitz
247d84e8e8
Fix environment variable access for winget script (#1506) 2024-12-12 12:15:03 -08:00
Mike Sawka
09128fe88a
new bg theme (#1454)
thanks to shadowarcanist in discord
2024-12-10 10:05:28 -08:00
Evan Simkowitz
cf9d24a834
Separate Snap publish jobs (#1433)
Separating Snap publish jobs so they can be retried individually
2024-12-09 10:13:41 -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
7c6fa91016
Fix copyfiles for docsite (#1321) 2024-11-19 14:15:11 -08:00
Evan Simkowitz
c7d7c0aa98
Add tasks to clear the waveterm-dev config and data dirs (#1318) 2024-11-18 14:08:25 -08:00
Evan Simkowitz
5e534f5cda
Reduce rebuilding in Taskfile (#1306)
Moves around where `sources` and `generates` are defined for different
tasks to reduce unnecessary rebuilds.
2024-11-15 16:12:21 -08:00
Evan Simkowitz
4a330a4842
Fix copyfiles step so storybook serves correctly (#1299)
confirmed this still works on Windows
2024-11-15 13:19:20 -08:00
Evan Simkowitz
3b117805fe
Move docsite build scripts to Taskfile, make the electron tasks depend on them (#1298)
This adds the new tasks `docsite:start`, `docsite:build:public`,
`docsite:build:embedded`, `storybook:build`, and `copyfiles:*:*` to
Taskfile.

It also updates the "Build Helper" and "Docsite and Storybook CI/CD"
workflows to use these new tasks.

It also makes the docsite embedded build a dependency of the electron
tasks, ensuring that the embedded docsite is included when building
locally.

Tested and confirms this works on Windows
2024-11-15 12:19:31 -08:00
Evan Simkowitz
3a21d3183c
Fix electron:start task not having wcloud env vars (#1261) 2024-11-11 10:46:58 -08:00
Evan Simkowitz
a170e2c80c
Fix WinGet version bump (#1165)
Use WinGet to install `wingetcreate`, rather than using
Invoke-WebRequest
2024-10-28 22:45:13 -07:00
Mike Sawka
7e6f96348f
fix for waveterm environment variables leaking from prod to dev (#1153) 2024-10-27 13:12:41 -07:00