waveterm/pkg
Copilot e8d4cddb5a
Add optional per-workspace widget visibility via workspaces in widgets.json (#2898)
This change adds an optional `workspaces` field to widget config entries
so widgets can be scoped to specific workspace UUIDs. Widgets with no
`workspaces` field (or an empty array) continue to render globally,
preserving current `widgets.json` behavior.

- **Config model updates**
- Added `workspaces []string` to `wconfig.WidgetConfigType` with
`json:"workspaces,omitempty"`.
- Updated frontend generated type `WidgetConfigType` with `workspaces?:
string[]`.

- **Sidebar widget filtering**
- `frontend/app/workspace/widgets.tsx` now applies workspace-aware
filtering when building the sidebar widget list:
    - include if `workspaces` is missing or empty
    - include if current `workspace.oid` is present in `workspaces`
    - otherwise exclude
  - Existing `defwidget@ai` filtering logic remains intact.

- **Isolated filtering logic + coverage**
  - Added `frontend/app/workspace/widgetfilter.ts` with:
    - `shouldIncludeWidgetForWorkspace(widget, workspaceId)`
- Added focused tests in `frontend/app/workspace/widgetfilter.test.ts`
for:
    - missing/empty `workspaces`
    - matching/non-matching workspace IDs
    - missing active workspace ID

```ts
function shouldIncludeWidgetForWorkspace(widget: WidgetConfigType, workspaceId?: string): boolean {
  const workspaces = widget.workspaces;
  return !Array.isArray(workspaces) || workspaces.length === 0 || (workspaceId != null && workspaces.includes(workspaceId));
}
```

- **Screenshot**
-
<screenshot>https://github.com/user-attachments/assets/b1727003-793b-4eff-8fc1-00eac9c50b83</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>
Co-authored-by: sawka <mike@commandline.dev>
2026-02-19 16:14:22 -08:00
..
aiusechat feat: add NanoGPT as AI provider (#2746) 2026-02-19 12:13:35 -08:00
authkey Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
baseds very large refactor of wshrouter (#2732) 2026-01-01 17:44:00 -08:00
blockcontroller New ConnMonitor to Track "Stalled" Connection State for SSH Conns (#2846) 2026-02-09 17:11:55 -08:00
blocklogger conn updates 3 (#1711) 2025-01-10 14:09:32 -08:00
buildercontroller more misc builder improvements (#2592) 2025-11-24 13:37:24 -08:00
eventbus waveapps builder window (scaffolding, restructure AI panel to work in both builder and tab windows) (#2482) 2025-10-26 17:48:01 -07:00
faviconcache web bookmarks (#1930) 2025-02-07 16:11:40 -08:00
filebackup Add Write File Tools to WaveAI (#2492) 2025-10-31 14:40:03 -07:00
filestore Fix windows path for wsh url (#1798) 2025-01-22 17:28:59 -08:00
genconn WSL Updates for New Architecture (#1756) 2025-01-16 15:54:58 -08:00
gogen Embedded Structs in Code Generation (#1909) 2025-02-07 13:13:47 -08:00
ijson Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
jobcontroller fix windows compilation error (#2862) 2026-02-11 14:57:27 -08:00
jobmanager update logging for jobmanager. (#2854) 2026-02-10 18:43:54 -08:00
panichandler new tevents analytics framework (#1894) 2025-02-03 15:32:44 -08:00
remote conn error sub-codes for better classification (#2889) 2026-02-19 11:18:52 -08:00
schema settings schema.json (#1874) 2025-02-03 14:20:50 -08:00
secretstore minor v0.13 fixes (#2649) 2025-12-08 21:58:54 -08:00
service Persistent Terminal Sessions (+ improvements and bug fixes) (#2806) 2026-01-28 13:30:48 -08:00
shellexec fix windows compilation error (#2862) 2026-02-11 14:57:27 -08:00
streamclient stress test for the new RPC streaming primitives (+ bug fixes) (#2828) 2026-02-05 14:48:12 -08:00
suggestion Do not allow large/recursive file transfers (for now), remove s3 and wavefile fs implementations (#2808) 2026-01-28 14:28:31 -08:00
telemetry conn error sub-codes for better classification (#2889) 2026-02-19 11:18:52 -08:00
trimquotes Add license identifiers to missing files (#1806) 2025-01-22 20:06:36 -08:00
tsgen Session Durability Checkpoint (#2821) 2026-02-03 11:49:52 -08:00
tsunamiutil builder secrets, builder config/data tab hooked up (#2581) 2025-11-21 10:36:51 -08:00
userinput Working on Test Harness for Remote Connections (#2829) 2026-02-09 21:50:34 -08:00
util detect if omz is installed and shell completion mode in zsh (#2891) 2026-02-19 10:22:56 -08:00
utilds conn error sub-codes for better classification (#2889) 2026-02-19 11:18:52 -08:00
vdom Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
waveai update to gpt-5.1 (#2552) 2025-11-13 21:10:28 -08:00
waveapp Persistent Terminal Sessions (+ improvements and bug fixes) (#2806) 2026-01-28 13:30:48 -08:00
waveappstore show apps icon in the widgets bar which shows a tsunami app launcher (#2554) 2025-11-14 09:34:14 -08:00
waveapputil v0.12.4 release notes (#2590) 2025-11-21 16:03:15 -08:00
wavebase update logging for jobmanager. (#2854) 2026-02-10 18:43:54 -08:00
wavejwt Persistent Terminal Sessions (+ improvements and bug fixes) (#2806) 2026-01-28 13:30:48 -08:00
waveobj detect if omz is installed and shell completion mode in zsh (#2891) 2026-02-19 10:22:56 -08:00
wcloud very large refactor of wshrouter (#2732) 2026-01-01 17:44:00 -08:00
wconfig Add optional per-workspace widget visibility via workspaces in widgets.json (#2898) 2026-02-19 16:14:22 -08:00
wcore More Durable Shell Bug Fixes (#2822) 2026-02-04 11:10:21 -08:00
web Do not allow large/recursive file transfers (for now), remove s3 and wavefile fs implementations (#2808) 2026-01-28 14:28:31 -08:00
wps Session Durability Checkpoint (#2821) 2026-02-03 11:49:52 -08:00
wshrpc job events, terminal command types, connect error codes (#2855) 2026-02-10 20:23:06 -08:00
wshutil New ConnMonitor to Track "Stalled" Connection State for SSH Conns (#2846) 2026-02-09 17:11:55 -08:00
wsl More Durable Shell Bug Fixes (#2822) 2026-02-04 11:10:21 -08:00
wslconn increase initial command timeout to 30s from 5s (slow WSL start) (#2853) 2026-02-10 15:33:08 -08:00
wstore Persistent Terminal Sessions (+ improvements and bug fixes) (#2806) 2026-01-28 13:30:48 -08:00