Commit 91bc653
jack
feat: Add real-time model display updates for lead-worker mode
## Summary
Implements real-time model display updates in the GUI when using lead-worker mode, showing which model (lead or worker) is currently active.
## Changes
### Backend
- Add ModelChange event type to AgentEvent enum for tracking model switches
- Emit ModelChange events when the lead-worker provider switches between models
- Add /config/current-model API endpoint to fetch the currently active model
- Update global current model store when providers complete requests
- Fix runtime panic by avoiding block_on in async context (use global store instead)
### Frontend
- Create LeadWorkerSettings UI component for configuring lead-worker mode
- Add fields for lead model, worker model, lead turns, failure threshold, and fallback turns
- Update useMessageStream hook to capture ModelChange events from SSE stream
- Use React Context to share current model info instead of window.appConfig (which is read-only)
- Update ModelsBottomBar to display active model with mode indicator (lead/worker)
- Prioritize active model display when lead-worker mode is enabled
### Event Handling
- Handle ModelChange events in all AgentEvent match statements:
- CLI session handler
- Web command handler
- FFI library
- Scheduler
- Scheduler executor
- Agent tests
## Testing
- Fixed agent tests to handle the new ModelChange event
- All tests pass
- Clippy checks pass
- Frontend linting and type checking pass1 parent 3bec469 commit 91bc653
16 files changed
Lines changed: 475 additions & 9 deletions
File tree
- crates
- goose-cli/src
- commands
- session
- goose-ffi/src
- goose-scheduler-executor/src
- goose-server/src/routes
- goose
- src
- agents
- providers
- tests
- ui/desktop/src
- components
- settings/models
- bottom_bar
- subcomponents
- hooks
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
589 | 589 | | |
590 | 590 | | |
591 | 591 | | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
592 | 596 | | |
593 | 597 | | |
594 | 598 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
928 | 928 | | |
929 | 929 | | |
930 | 930 | | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
931 | 937 | | |
932 | 938 | | |
933 | 939 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
266 | 266 | | |
267 | 267 | | |
268 | 268 | | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
269 | 272 | | |
270 | 273 | | |
271 | 274 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
165 | 165 | | |
166 | 166 | | |
167 | 167 | | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
168 | 171 | | |
169 | 172 | | |
170 | 173 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
441 | 441 | | |
442 | 442 | | |
443 | 443 | | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
444 | 464 | | |
445 | 465 | | |
446 | 466 | | |
| |||
454 | 474 | | |
455 | 475 | | |
456 | 476 | | |
| 477 | + | |
457 | 478 | | |
458 | 479 | | |
459 | 480 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
91 | 95 | | |
92 | 96 | | |
93 | 97 | | |
| |||
233 | 237 | | |
234 | 238 | | |
235 | 239 | | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
236 | 251 | | |
237 | 252 | | |
238 | 253 | | |
| |||
352 | 367 | | |
353 | 368 | | |
354 | 369 | | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
355 | 374 | | |
356 | 375 | | |
357 | 376 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| 68 | + | |
68 | 69 | | |
69 | 70 | | |
70 | 71 | | |
| |||
582 | 583 | | |
583 | 584 | | |
584 | 585 | | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
585 | 606 | | |
586 | 607 | | |
587 | 608 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
155 | 158 | | |
156 | 159 | | |
157 | 160 | | |
| |||
207 | 210 | | |
208 | 211 | | |
209 | 212 | | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
210 | 224 | | |
211 | 225 | | |
212 | 226 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
291 | 291 | | |
292 | 292 | | |
293 | 293 | | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
294 | 304 | | |
295 | 305 | | |
296 | 306 | | |
| |||
336 | 346 | | |
337 | 347 | | |
338 | 348 | | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
339 | 359 | | |
340 | 360 | | |
341 | | - | |
| 361 | + | |
342 | 362 | | |
343 | 363 | | |
344 | | - | |
| 364 | + | |
| 365 | + | |
345 | 366 | | |
346 | 367 | | |
347 | 368 | | |
348 | | - | |
| 369 | + | |
349 | 370 | | |
350 | 371 | | |
351 | | - | |
| 372 | + | |
| 373 | + | |
352 | 374 | | |
353 | 375 | | |
354 | 376 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1114 | 1114 | | |
1115 | 1115 | | |
1116 | 1116 | | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
1117 | 1120 | | |
1118 | 1121 | | |
1119 | 1122 | | |
| |||
0 commit comments