Commit d1b3b41
ADE-29: Reorganize lane stack from Manage Lane (#311)
* feat(lanes): manage lane stack position and optional reparent base branch
- Extend lanes.reparent with stackBaseBranchRef (resolved in repo, prefers origin).
- Skip no-op reparent when parent link and base_ref are unchanged.
- Manage Lane dialog: parent lane selector, optional base branch, apply runs reparent.
- Parse stackBaseBranchRef for remote lanes.reparent in ade-cli sync.
ADE-29
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* docs(ui): disclose git rebase when applying stack change in Manage Lane
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* fix(ui): responsive lane modals and richer Manage Lane UX
- LaneDialogShell: viewport-centered, max-height, scrollable body (all lane modals).
- laneDialogTokens: hero and accent section styles for lane dialogs.
- Manage Lane: shell description, per-section guidance, batch vs single callouts,
adopt/archive/delete copy, stack accent panel and select styling.
ADE-29
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
* ship: continuation of ADE-29 lane management work
Picks up uncommitted lane work across desktop, ade-cli, ios, and docs:
ManageLaneDialog refactor (singleLane), chat pane turn-active error
handling, iOS sync command helpers (lanes.reparent), sync host /
remote command updates, project transition state, PR detail/route
state cleanup, and broad doc refreshes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* ship: iter 2 — address 12 review comments (Greptile/CodeRabbit/Copilot)
Greptile P1/P2 + CodeRabbit 10 + Copilot review-only on commit 56a8469.
- ManageLaneDialog + LaneManageSheet (iOS): normalize baseChanged compare
(strip refs/heads/, origin/), and treat empty input as a change when an
existing override is set so users can clear the base override.
- ptyService: zero out recentOutputTail in closeEntry + dispose to release
up-to-2MB tail buffer when a session ends.
- ptyService.test: add coverage for disk-only readTranscriptTail and
stripAnsi invocation on merged tail.
- ade-cli app.tsx: require trimmed summary length > 0; reject ambiguous
partial lane reference in resolveLaneReference; clear interrupted state
when sessionFound === false.
- registerIpc: keep in-flight projectGetDetail entries non-expiring until
the promise settles, then start TTL from resolve time.
- preload: do not null rememberProjectBinding inside clearAround's twice-
running cleanup for openRepo / switchToPath.
- chatExecutionSummary: preserve merged taskId on subagent_progress /
subagent_result so timeline doesn't collapse to the latest entry.
- PrsRootScreen (iOS): guard concurrent external history fetches behind
isLoadingExternalHistory flag to remove race on filter change.
addressed: 3246905124 3246905210 3246917318 3246917328 3246917331
3246917349 3246917363 3246917372 3246917378 3246917382 3246917386
3246917389
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* ship: iter 3 — fix Apply-on-open regression (Greptile P1)
Iter 2's baseChanged/reparentBaseChanged change made Apply enable on
initial dialog open whenever lane.baseRef was non-empty, because
lane.baseRef is a non-nullable string. That could fire an unintended
rebase on an unsuspecting click.
Now the empty-override branch flips true only when lane.baseRef
actually diverges from the selected parent's default branch (compared
with the existing normalizeBranchRefForCompare helper). Three states:
- empty override, lane.baseRef == default → baseChanged false
- empty override, lane.baseRef != default → baseChanged true (clear)
- non-empty override differing from existing → baseChanged true
Same fix applied to apps/ios/ADE/Views/Lanes/LaneManageSheet.swift.
addressed: 3247162053 3247162141
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* ship: iter 4 — exempt read-only chat from transition guard (CodeRabbit Major)
callProjectRuntimeActionIfBound previously threw for every chat-domain
call when projectRuntimeTransitionDepth > 0, including reads like list,
getSummary, getAvailableModels, and getEventHistory. That blocked the UI
from rendering chat summaries/history during a project switch.
Now only state-changing chat actions (MUTATING_CHAT_ACTIONS allowlist:
sendMessage, respondToInput, approveToolUse, interrupt, steer family,
session lifecycle, ensureCtoSession, ensureAgentIdentitySession, etc.)
throw the transition error. Read-only chat actions return
{handled:false} so the caller falls through to the IPC-backed read APIs.
Added preload.test coverage for read-only chat falling through to IPC
during an in-flight switchToPath.
addressed: 3247309433
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Arul Sharma <arul28@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 9eccaab commit d1b3b41
58 files changed
Lines changed: 3576 additions & 918 deletions
File tree
- apps
- ade-cli
- src
- services/sync
- tuiClient
- __tests__
- components
- desktop/src
- main
- services
- chat
- ipc
- lanes
- projects
- pty
- sync
- preload
- renderer
- components
- app
- chat
- lanes
- state
- ios
- ADETests
- ADE
- Services
- Views
- Lanes
- PRs
- docs
- features
- chat
- lanes
- project-home
- sync-and-multi-device
- terminals-and-sessions
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
229 | 229 | | |
230 | 230 | | |
231 | 231 | | |
| 232 | + | |
232 | 233 | | |
233 | 234 | | |
234 | 235 | | |
| |||
239 | 240 | | |
240 | 241 | | |
241 | 242 | | |
| 243 | + | |
242 | 244 | | |
243 | 245 | | |
244 | 246 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
337 | 337 | | |
338 | 338 | | |
339 | 339 | | |
| 340 | + | |
340 | 341 | | |
341 | 342 | | |
342 | 343 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3592 | 3592 | | |
3593 | 3593 | | |
3594 | 3594 | | |
3595 | | - | |
| 3595 | + | |
| 3596 | + | |
| 3597 | + | |
3596 | 3598 | | |
3597 | | - | |
| 3599 | + | |
3598 | 3600 | | |
3599 | 3601 | | |
3600 | 3602 | | |
| |||
3610 | 3612 | | |
3611 | 3613 | | |
3612 | 3614 | | |
3613 | | - | |
| 3615 | + | |
| 3616 | + | |
| 3617 | + | |
3614 | 3618 | | |
3615 | | - | |
| 3619 | + | |
3616 | 3620 | | |
3617 | 3621 | | |
3618 | 3622 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1502 | 1502 | | |
1503 | 1503 | | |
1504 | 1504 | | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + | |
| 1514 | + | |
| 1515 | + | |
| 1516 | + | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
| 1529 | + | |
| 1530 | + | |
| 1531 | + | |
| 1532 | + | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
| 1563 | + | |
| 1564 | + | |
| 1565 | + | |
| 1566 | + | |
| 1567 | + | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
| 1572 | + | |
1505 | 1573 | | |
1506 | 1574 | | |
1507 | 1575 | | |
| |||
1854 | 1922 | | |
1855 | 1923 | | |
1856 | 1924 | | |
| 1925 | + | |
| 1926 | + | |
| 1927 | + | |
| 1928 | + | |
| 1929 | + | |
| 1930 | + | |
| 1931 | + | |
| 1932 | + | |
| 1933 | + | |
| 1934 | + | |
1857 | 1935 | | |
1858 | 1936 | | |
1859 | 1937 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
882 | 882 | | |
883 | 883 | | |
884 | 884 | | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
885 | 888 | | |
886 | 889 | | |
887 | 890 | | |
| |||
947 | 950 | | |
948 | 951 | | |
949 | 952 | | |
| 953 | + | |
| 954 | + | |
950 | 955 | | |
951 | 956 | | |
952 | 957 | | |
| |||
2478 | 2483 | | |
2479 | 2484 | | |
2480 | 2485 | | |
| 2486 | + | |
| 2487 | + | |
| 2488 | + | |
| 2489 | + | |
| 2490 | + | |
| 2491 | + | |
| 2492 | + | |
| 2493 | + | |
| 2494 | + | |
| 2495 | + | |
| 2496 | + | |
| 2497 | + | |
| 2498 | + | |
| 2499 | + | |
| 2500 | + | |
| 2501 | + | |
| 2502 | + | |
2481 | 2503 | | |
2482 | 2504 | | |
2483 | 2505 | | |
| |||
2486 | 2508 | | |
2487 | 2509 | | |
2488 | 2510 | | |
2489 | | - | |
2490 | | - | |
2491 | | - | |
2492 | | - | |
2493 | | - | |
2494 | | - | |
2495 | | - | |
2496 | | - | |
2497 | | - | |
| 2511 | + | |
2498 | 2512 | | |
2499 | 2513 | | |
2500 | 2514 | | |
| |||
3628 | 3642 | | |
3629 | 3643 | | |
3630 | 3644 | | |
3631 | | - | |
| 3645 | + | |
| 3646 | + | |
| 3647 | + | |
| 3648 | + | |
| 3649 | + | |
| 3650 | + | |
| 3651 | + | |
3632 | 3652 | | |
3633 | 3653 | | |
3634 | 3654 | | |
| |||
3637 | 3657 | | |
3638 | 3658 | | |
3639 | 3659 | | |
3640 | | - | |
3641 | | - | |
3642 | | - | |
| 3660 | + | |
3643 | 3661 | | |
3644 | 3662 | | |
3645 | 3663 | | |
| 3664 | + | |
3646 | 3665 | | |
3647 | 3666 | | |
3648 | 3667 | | |
| |||
8312 | 8331 | | |
8313 | 8332 | | |
8314 | 8333 | | |
| 8334 | + | |
8315 | 8335 | | |
8316 | 8336 | | |
8317 | 8337 | | |
| |||
8449 | 8469 | | |
8450 | 8470 | | |
8451 | 8471 | | |
| 8472 | + | |
| 8473 | + | |
8452 | 8474 | | |
8453 | 8475 | | |
8454 | 8476 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
292 | 292 | | |
293 | 293 | | |
294 | 294 | | |
| 295 | + | |
295 | 296 | | |
296 | 297 | | |
297 | 298 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2830 | 2830 | | |
2831 | 2831 | | |
2832 | 2832 | | |
2833 | | - | |
2834 | | - | |
2835 | | - | |
2836 | | - | |
2837 | | - | |
| 2833 | + | |
| 2834 | + | |
| 2835 | + | |
| 2836 | + | |
| 2837 | + | |
| 2838 | + | |
2838 | 2839 | | |
2839 | 2840 | | |
2840 | 2841 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
404 | 404 | | |
405 | 405 | | |
406 | 406 | | |
| 407 | + | |
407 | 408 | | |
408 | 409 | | |
409 | 410 | | |
| 411 | + | |
410 | 412 | | |
411 | 413 | | |
412 | 414 | | |
| |||
2333 | 2335 | | |
2334 | 2336 | | |
2335 | 2337 | | |
2336 | | - | |
| 2338 | + | |
| 2339 | + | |
| 2340 | + | |
| 2341 | + | |
2337 | 2342 | | |
2338 | 2343 | | |
2339 | 2344 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
177 | 256 | | |
178 | 257 | | |
179 | 258 | | |
| |||
0 commit comments