Move the coder status line under the delegate rows and add a three-line activity preview What the session is doing read as a caption on the wrong thing: the status line sat under the composer while the work it described sat in the fleet block above the transcript. The line now sits directly under the delegate rows, where the reader watching a delegation is already looking. Under it there is a preview box framed like the rest of the chrome: one row for each of the latest things the working children did. The box scrolls by staying fixed — each new tool use pushes the older rows up and the oldest falls off the top, so three lines are all it ever holds. Children that finished drop out of it, because their outcome is announced on the transcript and a box naming steps nothing is taking anymore is not a preview. The transcript funds both blocks, so a frame keeps its height whether children run or not, and paint now erases rows a shorter frame gave up, which the fleet's clamp on small terminals could already leave behind. The preview draws in `coder --dev` as everywhere else: the dev flag chooses the endpoint, never the interface.
Move the coder status line under the delegate rows and add a three-line activity preview
Deploy story
What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.
Not deployed through the forge lane
No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.
Changed files
-
modified
packages/openagents-cli/src/coder-fleet.ts -
modified
packages/openagents-cli/src/coder-ui.ts -
modified
packages/openagents-cli/test/coder-delegate.test.ts -
modified
packages/openagents-cli/test/coder-ui.test.ts
Diff
4 files changed, +287 -38
packages/openagents-cli/src/coder-fleet.ts modified +37 -2
@@ -19,7 +19,7 @@
| 19 | 19 |
|
| 20 | 20 |
|
| 21 | 21 |
|
| 22 |
|
|
| 22 |
|
|
| 23 | 23 |
|
| 24 | 24 |
|
| 25 | 25 |
|
@@ -93,8 +93,43 @@ export function taskActivity(task: CoderTask, now: number = Date.now()): string
| 93 | 93 |
|
| 94 | 94 |
|
| 95 | 95 |
|
| 96 |
|
|
| 97 |
|
|
| 98 |
|
|
| 99 |
|
|
| 100 |
|
|
| 101 |
|
|
| 102 |
|
|
| 103 |
|
|
| 104 |
|
|
| 105 |
|
|
| 106 |
|
|
| 96 | 107 |
|
| 97 |
|
|
| 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 |
|
|
| 98 | 133 |
|
| 99 | 134 |
|
| 100 | 135 |
|
packages/openagents-cli/src/coder-ui.ts modified +76 -23
@@ -14,8 +14,9 @@
| 14 | 14 |
|
| 15 | 15 |
|
| 16 | 16 |
|
| 17 |
|
|
| 18 |
|
|
| 17 |
|
|
| 18 |
|
|
| 19 |
|
|
| 19 | 20 |
|
| 20 | 21 |
|
| 21 | 22 |
|
@@ -29,7 +30,7 @@
| 29 | 30 |
|
| 30 | 31 |
|
| 31 | 32 |
|
| 32 |
|
|
| 33 |
|
|
| 33 | 34 |
|
| 34 | 35 |
|
| 35 | 36 |
|
@@ -86,6 +87,14 @@ const MAGENTA = "\x1b[35m";
| 86 | 87 |
|
| 87 | 88 |
|
| 88 | 89 |
|
| 90 |
|
|
| 91 |
|
|
| 92 |
|
|
| 93 |
|
|
| 94 |
|
|
| 95 |
|
|
| 96 |
|
|
| 97 |
|
|
| 89 | 98 |
|
| 90 | 99 |
|
| 91 | 100 |
|
@@ -103,6 +112,15 @@ const SPACER_ROWS = 1;
| 103 | 112 |
|
| 104 | 113 |
|
| 105 | 114 |
|
| 115 |
|
|
| 116 |
|
|
| 117 |
|
|
| 118 |
|
|
| 119 |
|
|
| 120 |
|
|
| 121 |
|
|
| 122 |
|
|
| 123 |
|
|
| 106 | 124 |
|
| 107 | 125 |
|
| 108 | 126 |
|
@@ -503,6 +521,31 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 503 | 521 |
|
| 504 | 522 |
|
| 505 | 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 |
|
|
| 506 | 549 |
|
| 507 | 550 |
|
| 508 | 551 |
|
@@ -594,9 +637,13 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 594 | 637 |
|
| 595 | 638 |
|
| 596 | 639 |
|
| 597 |
|
|
| 598 |
|
|
| 599 |
|
|
| 640 |
|
|
| 641 |
|
|
| 642 |
|
|
| 643 |
|
|
| 644 |
|
|
| 645 |
|
|
| 646 |
|
|
| 600 | 647 |
|
| 601 | 648 |
|
| 602 | 649 |
|
@@ -612,10 +659,11 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 612 | 659 |
|
| 613 | 660 |
|
| 614 | 661 |
|
| 615 |
|
|
| 616 |
|
|
| 617 |
|
|
| 618 |
|
|
| 662 |
|
|
| 663 |
|
|
| 664 |
|
|
| 665 |
|
|
| 666 |
|
|
| 619 | 667 |
|
| 620 | 668 |
|
| 621 | 669 |
|
@@ -648,10 +696,12 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 648 | 696 |
|
| 649 | 697 |
|
| 650 | 698 |
|
| 651 |
|
|
| 652 |
|
|
| 653 |
|
|
| 654 |
|
|
| 699 |
|
|
| 700 |
|
|
| 701 |
|
|
| 702 |
|
|
| 703 |
|
|
| 704 |
|
|
| 655 | 705 |
|
| 656 | 706 |
|
| 657 | 707 |
|
@@ -676,16 +726,12 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 676 | 726 |
|
| 677 | 727 |
|
| 678 | 728 |
|
| 679 |
|
|
| 680 |
|
|
| 681 |
|
|
| 682 |
|
|
| 683 |
|
|
| 684 |
|
|
| 685 |
|
|
| 686 |
|
|
| 687 | 729 |
|
| 688 |
|
|
| 730 |
|
|
| 731 |
|
|
| 732 |
|
|
| 733 |
|
|
| 734 |
|
|
| 689 | 735 |
|
| 690 | 736 |
|
| 691 | 737 |
|
@@ -701,6 +747,13 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 701 | 747 |
|
| 702 | 748 |
|
| 703 | 749 |
|
| 750 |
|
|
| 751 |
|
|
| 752 |
|
|
| 753 |
|
|
| 754 |
|
|
| 755 |
|
|
| 756 |
|
|
| 704 | 757 |
|
| 705 | 758 |
|
| 706 | 759 |
|
packages/openagents-cli/test/coder-delegate.test.ts modified +73 -1
@@ -8,7 +8,14 @@ import {
| 8 | 8 |
|
| 9 | 9 |
|
| 10 | 10 |
|
| 11 |
|
|
| 11 |
|
|
| 12 |
|
|
| 13 |
|
|
| 14 |
|
|
| 15 |
|
|
| 16 |
|
|
| 17 |
|
|
| 18 |
|
|
| 12 | 19 |
|
| 13 | 20 |
|
| 14 | 21 |
|
@@ -372,4 +379,69 @@ describe("fleet rendering", () => {
| 372 | 379 |
|
| 373 | 380 |
|
| 374 | 381 |
|
| 382 |
|
|
| 383 |
|
|
| 384 |
|
|
| 385 |
|
|
| 386 |
|
|
| 387 |
|
|
| 388 |
|
|
| 389 |
|
|
| 390 |
|
|
| 391 |
|
|
| 392 |
|
|
| 393 |
|
|
| 394 |
|
|
| 395 |
|
|
| 396 |
|
|
| 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 |
|
|
| 438 |
|
|
| 439 |
|
|
| 440 |
|
|
| 441 |
|
|
| 442 |
|
|
| 443 |
|
|
| 444 |
|
|
| 445 |
|
|
| 446 |
|
|
| 375 | 447 |
|
packages/openagents-cli/test/coder-ui.test.ts modified +101 -12
@@ -3,6 +3,7 @@ import { describe, expect, it } from "vitest";
| 3 | 3 |
|
| 4 | 4 |
|
| 5 | 5 |
|
| 6 |
|
|
| 6 | 7 |
|
| 7 | 8 |
|
| 8 | 9 |
|
@@ -170,14 +171,11 @@ describe("runCoderUi", () => {
| 170 | 171 |
|
| 171 | 172 |
|
| 172 | 173 |
|
| 173 |
|
|
| 174 |
|
|
| 175 | 174 |
|
| 176 | 175 |
|
| 177 | 176 |
|
| 178 | 177 |
|
| 179 | 178 |
|
| 180 |
|
|
| 181 | 179 |
|
| 182 | 180 |
|
| 183 | 181 |
|
@@ -200,7 +198,6 @@ describe("runCoderUi", () => {
| 200 | 198 |
|
| 201 | 199 |
|
| 202 | 200 |
|
| 203 |
|
|
| 204 | 201 |
|
| 205 | 202 |
|
| 206 | 203 |
|
@@ -261,7 +258,6 @@ describe("runCoderUi", () => {
| 261 | 258 |
|
| 262 | 259 |
|
| 263 | 260 |
|
| 264 |
|
|
| 265 | 261 |
|
| 266 | 262 |
|
| 267 | 263 |
|
@@ -864,14 +860,17 @@ describe("the transcript's marker column", () => {
| 864 | 860 |
|
| 865 | 861 |
|
| 866 | 862 |
|
| 867 |
|
|
| 863 |
|
|
| 868 | 864 |
|
| 869 |
|
|
| 870 |
|
|
| 871 |
|
|
| 872 |
|
|
| 873 |
|
|
| 874 |
|
|
| 865 |
|
|
| 866 |
|
|
| 867 |
|
|
| 868 |
|
|
| 869 |
|
|
| 870 |
|
|
| 871 |
|
|
| 872 |
|
|
| 873 |
|
|
| 875 | 874 |
|
| 876 | 875 |
|
| 877 | 876 |
|
@@ -907,3 +906,93 @@ describe("the chrome under the composer", () => {
| 907 | 906 |
|
| 908 | 907 |
|
| 909 | 908 |
|
| 909 |
|
|
| 910 |
|
|
| 911 |
|
|
| 912 |
|
|
| 913 |
|
|
| 914 |
|
|
| 915 |
|
|
| 916 |
|
|
| 917 |
|
|
| 918 |
|
|
| 919 |
|
|
| 920 |
|
|
| 921 |
|
|
| 922 |
|
|
| 923 |
|
|
| 924 |
|
|
| 925 |
|
|
| 926 |
|
|
| 927 |
|
|
| 928 |
|
|
| 929 |
|
|
| 930 |
|
|
| 931 |
|
|
| 932 |
|
|
| 933 |
|
|
| 934 |
|
|
| 935 |
|
|
| 936 |
|
|
| 937 |
|
|
| 938 |
|
|
| 939 |
|
|
| 940 |
|
|
| 941 |
|
|
| 942 |
|
|
| 943 |
|
|
| 944 |
|
|
| 945 |
|
|
| 946 |
|
|
| 947 |
|
|
| 948 |
|
|
| 949 |
|
|
| 950 |
|
|
| 951 |
|
|
| 952 |
|
|
| 953 |
|
|
| 954 |
|
|
| 955 |
|
|
| 956 |
|
|
| 957 |
|
|
| 958 |
|
|
| 959 |
|
|
| 960 |
|
|
| 961 |
|
|
| 962 |
|
|
| 963 |
|
|
| 964 |
|
|
| 965 |
|
|
| 966 |
|
|
| 967 |
|
|
| 968 |
|
|
| 969 |
|
|
| 970 |
|
|
| 971 |
|
|
| 972 |
|
|
| 973 |
|
|
| 974 |
|
|
| 975 |
|
|
| 976 |
|
|
| 977 |
|
|
| 978 |
|
|
| 979 |
|
|
| 980 |
|
|
| 981 |
|
|
| 982 |
|
|
| 983 |
|
|
| 984 |
|
|
| 985 |
|
|
| 986 |
|
|
| 987 |
|
|
| 988 |
|
|
| 989 |
|
|
| 990 |
|
|
| 991 |
|
|
| 992 |
|
|
| 993 |
|
|
| 994 |
|
|
| 995 |
|
|
| 996 |
|
|
| 997 |
|
|
| 998 |
|