Commit 387ed0e
committed
🤖 Invert architecture: Use workspace names as directories
Terminals always resolve symlinks, showing stable IDs instead of names.
Instead of managing symlinks, use workspace names as real directory names
and track stable IDs in config.
Changes:
- Workspaces created with name as directory (not stable ID)
- Rename uses `git worktree move` to rename directory + update config
- Removed all symlink creation/management code
- Both stableWorkspacePath and namedWorkspacePath now return same path
- Config stores ID mapping: workspace.id tracks stable identity
Benefits:
- Simpler code (no symlink management)
- Better UX (terminals naturally show friendly names)
- Still stable (IDs tracked in config, renames don't break identity)
- No existing users (can make breaking changes)
_Generated with `cmux`_
🤖 Fix lint errors from workspace rename changes
🤖 Block workspace rename during active streaming
Prevents race conditions when renaming while AI stream is active:
- Bash tool processes would have stale cwd references
- System message would contain incorrect workspace path
- Git worktree move could conflict with active file operations
Changes:
- Check isStreaming() before allowing rename
- Return clear error message to user
- Add integration test verifying blocking behavior
Rename succeeds immediately after stream completes.
_Generated with `cmux`_
Fix App.tsx to use correct NewWorkspaceModal props after rebase
Fix lint errors: add void to async call and workspaceMetadata dependency
Fix executeBash test to check for workspace name instead of ID
Fix gitService tests to detect default branch instead of hardcoding 'main'
🤖 Fix: path checks use workspace name for directory lookup (stable-ids arch)
- AgentSession.ensureMetadata compared against getWorkspacePath(projectPath, id)\n but directories are name-based. Use name instead.\n- Clarify config comment about getWorkspacePath usage.\n\nGenerated with1 parent e5972fb commit 387ed0e
File tree
12 files changed
+307
-293
lines changed- src
- hooks
- services
- utils/commands
- tests/ipcMain
12 files changed
+307
-293
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
149 | 149 | | |
150 | 150 | | |
151 | 151 | | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
152 | 159 | | |
153 | 160 | | |
154 | 161 | | |
| |||
166 | 173 | | |
167 | 174 | | |
168 | 175 | | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
174 | | - | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
175 | 187 | | |
176 | 188 | | |
177 | 189 | | |
| |||
221 | 233 | | |
222 | 234 | | |
223 | 235 | | |
224 | | - | |
| 236 | + | |
225 | 237 | | |
226 | 238 | | |
227 | 239 | | |
228 | 240 | | |
229 | | - | |
| 241 | + | |
230 | 242 | | |
231 | 243 | | |
232 | 244 | | |
233 | | - | |
| 245 | + | |
234 | 246 | | |
235 | 247 | | |
236 | 248 | | |
| |||
251 | 263 | | |
252 | 264 | | |
253 | 265 | | |
254 | | - | |
| 266 | + | |
255 | 267 | | |
256 | 268 | | |
257 | 269 | | |
258 | 270 | | |
259 | 271 | | |
260 | 272 | | |
261 | 273 | | |
262 | | - | |
| 274 | + | |
263 | 275 | | |
264 | 276 | | |
265 | | - | |
| 277 | + | |
266 | 278 | | |
267 | 279 | | |
268 | 280 | | |
| |||
274 | 286 | | |
275 | 287 | | |
276 | 288 | | |
277 | | - | |
278 | | - | |
279 | | - | |
| 289 | + | |
280 | 290 | | |
281 | 291 | | |
282 | 292 | | |
| |||
287 | 297 | | |
288 | 298 | | |
289 | 299 | | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
297 | 310 | | |
298 | 311 | | |
299 | 312 | | |
| |||
305 | 318 | | |
306 | 319 | | |
307 | 320 | | |
308 | | - | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
309 | 325 | | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
310 | 330 | | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
311 | 360 | | |
312 | 361 | | |
313 | 362 | | |
| |||
495 | 544 | | |
496 | 545 | | |
497 | 546 | | |
498 | | - | |
| 547 | + | |
499 | 548 | | |
500 | 549 | | |
501 | 550 | | |
| |||
682 | 731 | | |
683 | 732 | | |
684 | 733 | | |
685 | | - | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
686 | 738 | | |
687 | 739 | | |
688 | 740 | | |
| |||
703 | 755 | | |
704 | 756 | | |
705 | 757 | | |
706 | | - | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
707 | 762 | | |
| 763 | + | |
708 | 764 | | |
709 | 765 | | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
710 | 770 | | |
711 | 771 | | |
712 | 772 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | 38 | | |
138 | 39 | | |
139 | 40 | | |
| |||
0 commit comments