Commit 543cb98
fix(web): review fixes — bridge no-config connect in wizard + per-client Connect All backups
Codex review of the Spec 078 US2 slice found two majors and a minor; all
three verified against the code and fixed:
1. OnboardingWizard ClientRow rendered 'Not installed' for EVERY
exists=false client, including bridge clients (Claude Desktop), which
the backend explicitly marks connectable without a config file
(internal/connect/connect.go:48; connect creates the file, returning an
empty backup_path — connect_test.go:253). That made the wizard's
"no prior file to back up" branch (FR-006 / US2 independent test)
unreachable. ClientRow now gates on !exists && !bridge, matching
ConnectModal's connectableClients predicate; non-bridge missing clients
still show 'Not installed'.
2. ConnectModal connectAll() let each connect() overwrite
resultBackupPath, so a bulk run over N modified configs displayed only
the Nth backup (SC-005 requires 100%). connectAll now accumulates a
per-client bulkBackups list ({name, path|no-prior-file} per successful
connect, each with its own Copy affordance) and suppresses the single-
result line for bulk runs. The loop also iterates a snapshot of
connectableClients — connect() refetches the listing mid-loop, which
mutated the computed while it was being iterated. Single connects
(connectSingle) and disconnects clear the bulk list.
3. Minor: the wizard's open watcher reset connectMessage but not
connectBackups/copiedBackupClient, so backup rows from a previous
wizard session replayed on reopen. Both are now session-scoped.
TDD: 4 new failing cases first — wizard bridge-no-config connect,
wizard non-bridge stays 'Not installed', wizard reopen clears backup rows,
ConnectModal Connect All shows all three per-client outcomes (two paths +
one no-prior-file) with per-row copy. Full frontend suite: 32 files,
239 tests pass; vue-tsc clean; make build rebuilds the embedded dist;
golangci-lint v2 + go test -race ./internal/connect/... clean (no Go
changes in this commit).
npm-ci metadata churn in frontend/package-lock.json reverted again, not
committed (same as the base commit).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent 3b33951 commit 543cb98
4 files changed
Lines changed: 308 additions & 12 deletions
File tree
- frontend
- src/components
- tests/unit
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
72 | | - | |
| 72 | + | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| |||
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
160 | 191 | | |
161 | 192 | | |
162 | 193 | | |
| |||
203 | 234 | | |
204 | 235 | | |
205 | 236 | | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
206 | 243 | | |
207 | 244 | | |
208 | 245 | | |
| |||
289 | 326 | | |
290 | 327 | | |
291 | 328 | | |
292 | | - | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
293 | 340 | | |
294 | 341 | | |
295 | 342 | | |
| |||
301 | 348 | | |
302 | 349 | | |
303 | 350 | | |
304 | | - | |
| 351 | + | |
| 352 | + | |
305 | 353 | | |
306 | 354 | | |
307 | 355 | | |
308 | 356 | | |
309 | 357 | | |
310 | 358 | | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
| 359 | + | |
317 | 360 | | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
318 | 366 | | |
319 | 367 | | |
320 | 368 | | |
321 | 369 | | |
322 | 370 | | |
323 | 371 | | |
324 | 372 | | |
| 373 | + | |
325 | 374 | | |
326 | 375 | | |
327 | 376 | | |
328 | 377 | | |
329 | 378 | | |
330 | 379 | | |
331 | 380 | | |
| 381 | + | |
| 382 | + | |
332 | 383 | | |
333 | 384 | | |
334 | 385 | | |
| |||
429 | 480 | | |
430 | 481 | | |
431 | 482 | | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
432 | 486 | | |
433 | | - | |
434 | | - | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
435 | 519 | | |
436 | 520 | | |
437 | 521 | | |
438 | 522 | | |
439 | 523 | | |
440 | 524 | | |
441 | 525 | | |
| 526 | + | |
| 527 | + | |
442 | 528 | | |
443 | 529 | | |
444 | 530 | | |
| |||
452 | 538 | | |
453 | 539 | | |
454 | 540 | | |
| 541 | + | |
| 542 | + | |
455 | 543 | | |
456 | 544 | | |
457 | 545 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
707 | 707 | | |
708 | 708 | | |
709 | 709 | | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
710 | 714 | | |
711 | 715 | | |
712 | 716 | | |
| |||
1160 | 1164 | | |
1161 | 1165 | | |
1162 | 1166 | | |
1163 | | - | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
1164 | 1172 | | |
1165 | 1173 | | |
1166 | 1174 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
513 | 513 | | |
514 | 514 | | |
515 | 515 | | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
516 | 613 | | |
517 | 614 | | |
518 | 615 | | |
| |||
0 commit comments