You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .roo/rules/rules.md
+9-7Lines changed: 9 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,7 @@ The frontend uses yarn (berry).
44
44
45
45
### Styling
46
46
47
-
- We use tailwind v4 to style. Custom stuff is defined in tailwindsetup.css.
47
+
- We use **Tailwind v4** to style. Custom stuff is defined in frontend/tailwindsetup.css
48
48
-_never_ use cursor-help (it looks terrible)
49
49
- We have custom CSS setup as well, so it is a hybrid system. For new code we prefer tailwind, and are working to migrate code to all use tailwind.
50
50
@@ -53,14 +53,16 @@ The frontend uses yarn (berry).
53
53
-**TypeScript Types**: TypeScript types are automatically generated from Go types. After modifying Go types in `pkg/wshrpc/wshrpctypes.go`, run `task generate` to update the TypeScript type definitions in `frontend/types/gotypes.d.ts`.
54
54
-**Manual Edits**: Do not manually edit generated files like `frontend/types/gotypes.d.ts` or `frontend/app/store/wshclientapi.ts`. Instead, modify the source Go types and run `task generate`.
55
55
56
-
### Documentation References
56
+
### Development Documentation
57
57
58
-
Found in /aiprompts
58
+
The `/aiprompts` directory contains comprehensive guides for common development tasks:
59
59
60
-
- config-system.md -- for help with adding new config or settings values
61
-
- contextmenu.md
62
-
- getsetconfigvar.md
63
-
- view-prompt.md -- view model guide
60
+
-**config-system.md** - Complete guide for adding new configuration settings, including the hierarchical config system with global, connection, and block-level overrides
61
+
-**contextmenu.md** - Instructions for adding context menu items and actions
62
+
-**getsetconfigvar.md** - Reference for reading and writing configuration values programmatically
63
+
-**view-prompt.md** - Architecture guide for implementing new view models and components
64
+
65
+
These files provide step-by-step instructions, code examples, and best practices for extending Wave Terminal's functionality.
-**[`pkg/wconfig/settingsconfig.go`](pkg/wconfig/settingsconfig.go)** - Defines the `SettingsType` struct with all configuration fields
45
46
-**[`schema/settings.json`](schema/settings.json)** - JSON Schema for validation and type checking
46
47
-**[`pkg/wconfig/defaultconfig/settings.json`](pkg/wconfig/defaultconfig/settings.json)** - Default values for all settings
@@ -56,6 +57,38 @@ waveterm/
56
57
57
58
Settings cascade from defaults → user settings → block overrides.
58
59
60
+
### Block-Level Metadata Override System
61
+
62
+
Wave Terminal supports block-level configuration overrides through the metadata system. This allows settings to be applied globally, per-connection, or per-block:
63
+
64
+
1.**Global Settings** (`~/.config/waveterm/settings.json`) - Apply to all blocks by default
65
+
2.**Connection Settings** (in connections config) - Apply to all blocks using a specific connection
66
+
3.**Block Metadata** - Override settings for individual blocks
67
+
68
+
**Key Files for Block Overrides:**
69
+
70
+
-**[`pkg/waveobj/wtypemeta.go`](pkg/waveobj/wtypemeta.go)** - Defines the `MetaTSType` struct for block-level metadata
71
+
- Block metadata fields should match the corresponding settings fields for consistency
72
+
73
+
**Frontend Usage:**
74
+
75
+
```typescript
76
+
// Use getOverrideConfigAtom for hierarchical config resolution
0 commit comments