Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: wavetermdev/waveterm
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.14.2-beta.1
Choose a base ref
...
head repository: wavetermdev/waveterm
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.14.2-beta.2
Choose a head ref
  • 13 commits
  • 74 files changed
  • 4 contributors

Commits on Mar 10, 2026

  1. Configuration menu
    Copy the full SHA
    fc96f49 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e3c46b7 View commit details
    Browse the repository at this point in the history
  3. add wsh badge documentation (#3031)

    sawka authored Mar 10, 2026
    Configuration menu
    Copy the full SHA
    568027d View commit details
    Browse the repository at this point in the history

Commits on Mar 11, 2026

  1. TabBar full preview + much more FE mocking via WaveEnv to enable it (#…

    …3028)
    
    Large PR that extends WaveEnv mocking to fully cover the (complicated) TabBar implementation.  Also includes a full preview of the tab bar in the preview server with lots of controls to simulate different scenarios.
    
    As a result of this mocking, also fixed a bunch of dependencies, and layout errors, random bugs, and visual UX bugs in the tab bar, making it more robust.
    
    ---------
    
    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>
    3 people authored Mar 11, 2026
    Configuration menu
    Copy the full SHA
    ecccad6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    60cdf05 View commit details
    Browse the repository at this point in the history
  3. Share tab badge rendering with vertical tabs (#3034)

    Vertical tabs were still using the older single-badge path and did not
    honor the newer `tab:flagcolor` metadata. This updates `vtab` to use the
    same badge rendering model as `tab`, including validated flag-color
    badges.
    
    - **Shared badge renderer**
    - Extract `TabBadges` from `tab.tsx` into a shared
    `frontend/app/tab/tabbadges.tsx` component.
    - Keep the existing horizontal tab behavior unchanged while making the
    badge stack reusable by `vtab`.
    
    - **Vertical tab badge parity**
    - Replace the legacy `badge` icon rendering in `vtab.tsx` with
    `TabBadges`.
    - Support both existing `badge` callers and the newer `badges` array
    shape.
    - Add `flagColor` support in `vtab` using the same
    `validateCssColor(...)` guard as `tab.tsx`, so invalid colors are
    ignored rather than rendered.
    
    - **Preview / regression coverage**
      - Update the `vtabbar` preview to show:
        - multiple badges
        - flag-only tabs
        - mixed badge + flag tabs
    - Add focused `vtab` coverage for valid and invalid `flagColor`
    handling.
    
    - **Example**
      ```tsx
      const rawFlagColor = tab.flagColor;
      let flagColor: string | null = null;
      if (rawFlagColor) {
          try {
              validateCssColor(rawFlagColor);
              flagColor = rawFlagColor;
          } catch {
              flagColor = null;
          }
      }
    
      <TabBadges badges={badges} flagColor={flagColor} />
      ```
    
    - **Screenshot**
    - Updated vertical tab preview:
    https://github.com/user-attachments/assets/7d79930f-00cc-49a7-a0ec-d5554fb9e166
    
    <!-- START COPILOT CODING AGENT TIPS -->
    ---
    
    🔒 GitHub Advanced Security automatically protects Copilot coding agent
    pull requests. You can protect all pull requests by enabling Advanced
    Security for your repositories. [Learn more about Advanced
    Security.](https://gh.io/cca-advanced-security)
    
    ---------
    
    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
    Copilot and sawka authored Mar 11, 2026
    Configuration menu
    Copy the full SHA
    2cf8c26 View commit details
    Browse the repository at this point in the history
  4. Add full sysinfo block preview backed by mock WaveEnv/WOS data (#3033)

    This adds a standalone preview for `sysinfo` using the newer WaveEnv
    mock pattern, but renders the full block instead of the bare view. The
    preview seeds a mock block in WOS (`meta.view = "sysinfo"`), provides
    history via mock RPC, and drives live updates through frontend-only WPS
    event dispatch.
    
    - **What changed**
    - Added `frontend/preview/previews/sysinfo.preview.tsx` to render a full
    `Block` with sysinfo block chrome, tab/workspace context, and mock WOS
    objects.
    - Added `frontend/preview/previews/sysinfo.preview-util.ts` to generate
    deterministic sysinfo history + live events for preview use.
    - Added `frontend/preview/previews/sysinfo.preview.test.ts` to lock down
    the mock event/history shape used by the preview.
    
    - **Preview wiring**
    - Seeds mock `workspace`, `tab`, and `block` objects so the preview
    exercises the real block path rather than a component-only render.
      - Configures the mock block metadata with:
        - `view: "sysinfo"`
        - `connection: "local"`
        - `sysinfo:type: "CPU + Mem"`
        - `graph:numpoints`
    - Overrides `EventReadHistoryCommand` in the preview env so
    `SysinfoViewModel` can load initial history normally.
    
    - **Live FE-only event flow**
    - Uses `handleWaveEvent()` directly in the preview to simulate incoming
    `sysinfo` events without touching backend transport.
    - Keeps the preview aligned with the real WPS subscription path already
    used by `sysinfo.tsx`.
    
    ```tsx
    const env = applyMockEnvOverrides(baseEnv, {
        mockWaveObjs: {
            [`block:${PreviewBlockId}`]: {
                otype: "block",
                oid: PreviewBlockId,
                version: 1,
                meta: {
                    view: "sysinfo",
                    connection: "local",
                    "sysinfo:type": "CPU + Mem",
                    "graph:numpoints": 90,
                },
            } as Block,
        },
        rpc: {
            EventReadHistoryCommand: async (_client, data) => {
                if (data.event !== "sysinfo" || data.scope !== "local") {
                    return [];
                }
                return historyRef.current.slice(-(data.maxitems ?? historyRef.current.length));
            },
        },
    });
    ```
    
    - **Result**
    - The preview now exercises the real sysinfo block path: block
    frame/header, model initialization, history load, and ongoing chart
    updates.
    
    - **Screenshot**
    -
    <screenshot>https://github.com/user-attachments/assets/dc2ed145-9ec8-4fde-adb0-79adc62c3071</screenshot>
    
    <!-- START COPILOT CODING AGENT TIPS -->
    ---
    
    🔒 GitHub Advanced Security automatically protects Copilot coding agent
    pull requests. You can protect all pull requests by enabling Advanced
    Security for your repositories. [Learn more about Advanced
    Security.](https://gh.io/cca-advanced-security)
    
    ---------
    
    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
    Copilot and sawka authored Mar 11, 2026
    Configuration menu
    Copy the full SHA
    8762b47 View commit details
    Browse the repository at this point in the history
  5. Preview Directory Updates (modtime format, zebra, default sort, yml, …

    …context-menu) (#3038)
    
    Lots of small updates:
    * Fix modtime format to show time not just "today". Make fixed font.
    * Zebra stripe rows
    * Fix .yml files to be detected as yaml
    * Add a new config option for changing the default sort (Name vs Mod
    Time)
    * Add ability to change the defaults using the context menu
    * Make Size column fixed font
    * Add vertical bars between header columns (more visual resize handles)
    sawka authored Mar 11, 2026
    Configuration menu
    Copy the full SHA
    9ee654d View commit details
    Browse the repository at this point in the history

Commits on Mar 12, 2026

  1. Configuration menu
    Copy the full SHA
    8164ffc View commit details
    Browse the repository at this point in the history
  2. Add preview-native context menus and fix submenu rendering in `fronte…

    …nd/preview` (#3035)
    
    `frontend/preview` was still routing context menus through the
    Electron-backed production path, so preview menus did not behave
    correctly. This change adds a preview-native menu renderer, then
    tightens its sizing and fixes submenu clipping so nested menus are fully
    visible and usable.
    
    - **Preview-native context menu host**
      - Adds `frontend/preview/preview-contextmenu.tsx`
    - Renders context menus directly in the preview app via
    `@floating-ui/react`
    - Supports existing `ContextMenuItem` features already used by previews:
        - nested submenus
        - checkbox/radio states
        - separators / headers
        - click handlers
        - outside-click / escape dismissal
    
    - **Mock env integration**
    - Wires the mock `WaveEnv.showContextMenu` path to the preview renderer
    - Keeps existing preview callers unchanged (`env.showContextMenu(menu,
    e)`)
    
    - **Preview root mounting**
    - Mounts a single shared context menu host in
    `frontend/preview/preview.tsx`
      - Makes tabbar/widgets previews work without any Electron dependency
    
    - **Menu sizing + submenu visibility**
      - Reduces menu width, font size, and row padding for a denser menu
    - Switches the menu panel to `overflow-visible` so submenu panels are
    not clipped by the parent container
    
    ```tsx
    // frontend/preview/mock/mockwaveenv.ts
    showContextMenu: overrides.showContextMenu ?? showPreviewContextMenu,
    ```
    
    <screenshot>
    
    ![Preview context menu with visible
    submenu](https://github.com/user-attachments/assets/18501804-c01b-4c33-a1ff-800854f25489)
    
    </screenshot>
    
    <!-- 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>
    Copilot and sawka authored Mar 12, 2026
    Configuration menu
    Copy the full SHA
    82048b6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    52dd0a2 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    59b8368 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    af6afc2 View commit details
    Browse the repository at this point in the history
Loading