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
Applied consistent whitespace and JSX wrapping to improve readability.
Aligned tooltip link formatting and string literals with project
standards.
Cleaned doc markdown spacing to avoid stray blank lines and indentation.
Copy file name to clipboardExpand all lines: docs/AGENTS.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,13 +71,15 @@ Write PR bodies for **busy reviewers**. Be concise and avoid redundancy:
71
71
-**If it's obvious, omit it** - Problem obvious from solution? Don't state it. Solution obvious from problem? Skip to implementation details.
72
72
73
73
❌ **Bad** (redundant):
74
+
74
75
```
75
76
Problem: Markdown rendering is slow, causing 50ms tasks
76
77
Solution: Make markdown rendering faster
77
78
Impact: Reduces task time to <16ms
78
79
```
79
80
80
81
✅ **Good** (each section adds value):
82
+
81
83
```
82
84
ReactMarkdown was re-parsing content on every parent render because plugin arrays
83
85
were created fresh each time. Moved to module scope for stable references.
@@ -104,8 +106,8 @@ Verify with React DevTools Profiler - MarkdownCore should only re-render when co
104
106
- User docs are built with mdbook and deployed to https://cmux.io
105
107
- Must be added to `docs/SUMMARY.md` to appear in the docs
106
108
- Use standard markdown + mermaid diagrams
107
-
-**Developer docs** → inline with the code its documenting as comments. Consider them notes as notes to future Assistants to understand the logic more quickly.
108
-
**DO NOT** create standalone documentation files in the project root or random locations.
109
+
-**Developer docs** → inline with the code its documenting as comments. Consider them notes as notes to future Assistants to understand the logic more quickly.
110
+
**DO NOT** create standalone documentation files in the project root or random locations.
109
111
110
112
### External API Docs
111
113
@@ -162,10 +164,10 @@ This project uses **Make** as the primary build orchestrator. See `Makefile` for
162
164
163
165
### Test-Driven Development (TDD)
164
166
165
-
**TDD is the preferred development style for agents.**
167
+
**TDD is the preferred development style for agents.**
166
168
167
169
- Prefer relocated complex logic into places where they're easily tested
168
-
- E.g. pure functions in `utils` are easier to test than complex logic in a React component
170
+
- E.g. pure functions in `utils` are easier to test than complex logic in a React component
169
171
- Strive for broad coverage with minimal tests
170
172
- Prefer testing large blocks of composite logic
171
173
- Tests should be written with the end-user experience in mind
Copy file name to clipboardExpand all lines: docs/vim-mode.md
+17-2Lines changed: 17 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,11 +15,13 @@ Vim mode is always enabled. Press **ESC** to enter normal mode from insert mode.
15
15
## Modes
16
16
17
17
### Insert Mode (Default)
18
+
18
19
- This is the default mode when typing in the chat input
19
20
- Type normally, all characters are inserted
20
21
- Press **ESC** or **Ctrl-[** to enter normal mode
21
22
22
23
### Normal Mode
24
+
23
25
- Command mode for navigation and editing
24
26
- Indicated by "NORMAL" text above the input
25
27
- Pending commands are shown (e.g., "NORMAL d" when delete is pending)
@@ -28,12 +30,14 @@ Vim mode is always enabled. Press **ESC** to enter normal mode from insert mode.
28
30
## Navigation
29
31
30
32
### Basic Movement
33
+
31
34
-**h** - Move left one character
32
35
-**j** - Move down one line
33
36
-**k** - Move up one line
34
37
-**l** - Move right one character
35
38
36
39
### Word Movement
40
+
37
41
-**w** - Move forward to start of next word
38
42
-**W** - Move forward to start of next WORD (whitespace-separated)
39
43
-**b** - Move backward to start of previous word
@@ -42,12 +46,14 @@ Vim mode is always enabled. Press **ESC** to enter normal mode from insert mode.
42
46
-**E** - Move to end of current/next WORD
43
47
44
48
### Line Movement
49
+
45
50
-**0** - Move to beginning of line
46
51
-**$** - Move to end of line
47
52
-**Home** - Same as **0**
48
53
-**End** - Same as **$**
49
54
50
55
### Column Preservation
56
+
51
57
When moving up/down with **j**/**k**, the cursor attempts to stay in the same column position. If a line is shorter, the cursor moves to the end of that line, but will return to the original column on longer lines.
52
58
53
59
## Entering Insert Mode
@@ -62,15 +68,18 @@ When moving up/down with **j**/**k**, the cursor attempts to stay in the same co
62
68
## Editing Commands
63
69
64
70
### Simple Edits
71
+
65
72
-**x** - Delete character under cursor
66
73
-**p** - Paste after cursor
67
74
-**P** - Paste before cursor
68
75
69
76
### Undo/Redo
77
+
70
78
-**u** - Undo last change
71
79
-**Ctrl-r** - Redo
72
80
73
81
### Line Operations
82
+
74
83
-**dd** - Delete line (yank to clipboard)
75
84
-**yy** - Yank (copy) line
76
85
-**cc** - Change line (delete and enter insert mode)
@@ -80,18 +89,21 @@ When moving up/down with **j**/**k**, the cursor attempts to stay in the same co
80
89
Vim's power comes from combining operators with motions. All operators work with all motions:
81
90
82
91
### Operators
92
+
83
93
-**d** - Delete
84
94
-**c** - Change (delete and enter insert mode)
85
95
-**y** - Yank (copy)
86
96
87
97
### Motions
98
+
88
99
-**w** - To next word
89
100
-**b** - To previous word
90
101
-**e** - To end of word
91
102
-**$** - To end of line
92
103
-**0** - To beginning of line
93
104
94
105
### Examples
106
+
95
107
-**dw** - Delete to next word
96
108
-**de** - Delete to end of word
97
109
-**d$** - Delete to end of line
@@ -103,6 +115,7 @@ Vim's power comes from combining operators with motions. All operators work with
103
115
-**yy** - Yank line (doubled operator)
104
116
105
117
### Shortcuts
118
+
106
119
-**D** - Same as **d$** (delete to end of line)
107
120
-**C** - Same as **c$** (change to end of line)
108
121
@@ -111,6 +124,7 @@ Vim's power comes from combining operators with motions. All operators work with
111
124
Text objects let you operate on semantic units:
112
125
113
126
### Inner Word (iw)
127
+
114
128
-**diw** - Delete inner word (word under cursor)
115
129
-**ciw** - Change inner word
116
130
-**yiw** - Yank inner word
@@ -125,13 +139,13 @@ Text objects work from anywhere within the word - you don't need to be at the st
125
139
## Keybind Conflicts
126
140
127
141
### ESC Key
142
+
128
143
ESC is used for:
144
+
129
145
1. Exiting Vim normal mode (highest priority)
130
146
2. NOT used for canceling edits (use **Ctrl-Q** instead)
131
147
3. NOT used for interrupting streams (use **Ctrl-C** instead)
132
148
133
-
134
-
135
149
## Tips
136
150
137
151
1.**Learn operators + motions**: Instead of memorizing every command, learn the operators (d, c, y) and motions (w, b, $, 0). They combine naturally.
@@ -143,6 +157,7 @@ ESC is used for:
143
157
## Not Yet Implemented
144
158
145
159
Features that may be added in the future:
160
+
146
161
-**ge** - Backward end of word motion
147
162
-**f{char}**, **t{char}** - Find character motions
148
163
-**i"**, **i'**, **i(**, **i[**, **i{** - More text objects
0 commit comments