Repository navigation
Commit 2efd7f3
fix: [AI-9171] create a quick workspace from an already-linked project
The picker's "+ Create a quick workspace here" row always failed when the
project was already linked, and told the user to re-run the command they were
already inside.
`createThenBindOrRebind` already had a correct rebind branch — it was simply
unreachable. Step one called `createAndBind`, and the server's `create_and_bind`
pre-checks both identifiers and 409s *before* creating anything, deliberately,
so a binding conflict cannot strand a half-created workspace. On an already
linked project that refuses the whole call, so nothing was created and the
rebind below it was dead code. The row's own hint promised the opposite:
"Creates a new workspace and repoints this project to it".
Split the two cases:
- unlinked: unchanged — `createAndBind` still creates and binds in one
server-side transaction, which is what makes a stranded workspace impossible
there.
- already linked: create the workspace unbound via `POST /datamates/`, then
repoint through the existing rebind path.
`createWorkspaceUnbound` sends `memory_enabled` and `knowledge_engine_enabled`
explicitly. `POST /datamates/` is the SaaS/extension creation path and defaults
both to false, while the create-and-bind path sets both true — so without this
the same menu row would hand back a differently configured workspace depending
only on whether the project happened to be linked, with memory and the
knowledge engine silently off. The comment names the coupling so the two move
together.
Also corrected the 409 message. After this change a conflict can only mean
another workspace claimed the project mid-selection, so it says that instead of
directing the user back into the command they are already running.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>1 parent 024e800 commit 2efd7f3
3 files changed
Lines changed: 230 additions & 22 deletions
File tree
- packages/opencode
- src
- altimate/workspace
- cli/cmd
- test/altimate/workspace
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
395 | 395 | | |
396 | 396 | | |
397 | 397 | | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
398 | 438 | | |
399 | 439 | | |
400 | 440 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
484 | 485 | | |
485 | 486 | | |
486 | 487 | | |
487 | | - | |
| 488 | + | |
488 | 489 | | |
489 | | - | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
490 | 507 | | |
491 | 508 | | |
492 | | - | |
493 | | - | |
494 | | - | |
495 | | - | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
496 | 513 | | |
497 | 514 | | |
498 | 515 | | |
499 | | - | |
| 516 | + | |
| 517 | + | |
500 | 518 | | |
501 | 519 | | |
502 | 520 | | |
| |||
510 | 528 | | |
511 | 529 | | |
512 | 530 | | |
513 | | - | |
514 | | - | |
515 | | - | |
516 | | - | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
517 | 534 | | |
518 | 535 | | |
519 | 536 | | |
| |||
537 | 554 | | |
538 | 555 | | |
539 | 556 | | |
| 557 | + | |
| 558 | + | |
540 | 559 | | |
541 | 560 | | |
542 | 561 | | |
543 | | - | |
544 | | - | |
| 562 | + | |
| 563 | + | |
545 | 564 | | |
546 | 565 | | |
547 | 566 | | |
548 | | - | |
549 | | - | |
550 | | - | |
551 | | - | |
552 | | - | |
553 | | - | |
554 | | - | |
555 | | - | |
556 | | - | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
557 | 582 | | |
558 | 583 | | |
559 | 584 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 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 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
0 commit comments