One row of chrome, no banner, and qwen starts thinking low The session opened with four lines of keys and commands, and carried a second row of keys under the status line for the rest of it. Both are reference material, and reference material belongs where a reader looks for it once rather than past it always. `/help` now carries all of it, keys included, and neither the banner nor the second row is printed. That leaves one row under the composer, and it is the status line. The scroll indicator moved onto it, because losing the second row would otherwise have lost the one thing on it that was state rather than reminder: a still transcript with nothing saying the reader is scrolled up reads as a stopped session. A hint that outranked everything else on a narrow row went with the row. It existed for the key that stops the fleet from spending, and there is no longer a row for that key to be dropped from, so the ranking it needed is gone rather than kept as machinery nothing reaches. `qwen3.8` now starts at low reasoning rather than medium. It thinks at length by default — one measured turn produced 150,322 characters of reasoning against 8,232 of answer — and on a local machine that is the wall clock. `shift+tab` raises it for the turn that wants it, which is the right way round: a reader asks for more thinking when the work needs it rather than paying for it on every question. Only that family, and `--reasoning` still wins where it is given. Five tests covered the row that is gone. They are removed rather than adapted, because what they asserted — that the counter survives a narrow row, that a key appears only where it does something — is no longer true of anything. Three replace them: the chrome is one row, the session opens without a banner, and the scroll state is still reported. 508 tests pass.
One row of chrome, no banner, and qwen starts thinking low
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-ollama.ts -
modified
packages/openagents-cli/src/coder-session.ts -
modified
packages/openagents-cli/src/coder-ui.ts -
modified
packages/openagents-cli/test/coder-ui.test.ts
Diff
4 files changed, +135 -174
packages/openagents-cli/src/coder-ollama.ts modified +15 -1
@@ -88,6 +88,18 @@ const FROM_FLAG: Record<string, string> = {
| 88 | 88 |
|
| 89 | 89 |
|
| 90 | 90 |
|
| 91 |
|
|
| 92 |
|
|
| 93 |
|
|
| 94 |
|
|
| 95 |
|
|
| 96 |
|
|
| 97 |
|
|
| 98 |
|
|
| 99 |
|
|
| 100 |
|
|
| 101 |
|
|
| 102 |
|
|
| 91 | 103 |
|
| 92 | 104 |
|
| 93 | 105 |
|
@@ -277,7 +289,9 @@ export class OllamaReplySource implements ReplySource {
| 277 | 289 |
|
| 278 | 290 |
|
| 279 | 291 |
|
| 280 |
|
|
| 292 |
|
|
| 293 |
|
|
| 294 |
|
|
| 281 | 295 |
|
| 282 | 296 |
|
| 283 | 297 |
|
packages/openagents-cli/src/coder-session.ts modified +55
@@ -723,6 +723,61 @@ export class CoderSession {
| 723 | 723 |
|
| 724 | 724 |
|
| 725 | 725 |
|
| 726 |
|
|
| 727 |
|
|
| 728 |
|
|
| 729 |
|
|
| 730 |
|
|
| 731 |
|
|
| 732 |
|
|
| 733 |
|
|
| 734 |
|
|
| 735 |
|
|
| 736 |
|
|
| 737 |
|
|
| 738 |
|
|
| 739 |
|
|
| 740 |
|
|
| 741 |
|
|
| 742 |
|
|
| 743 |
|
|
| 744 |
|
|
| 745 |
|
|
| 746 |
|
|
| 747 |
|
|
| 748 |
|
|
| 749 |
|
|
| 750 |
|
|
| 751 |
|
|
| 752 |
|
|
| 753 |
|
|
| 754 |
|
|
| 755 |
|
|
| 756 |
|
|
| 757 |
|
|
| 758 |
|
|
| 759 |
|
|
| 760 |
|
|
| 761 |
|
|
| 762 |
|
|
| 763 |
|
|
| 764 |
|
|
| 765 |
|
|
| 766 |
|
|
| 767 |
|
|
| 768 |
|
|
| 769 |
|
|
| 770 |
|
|
| 771 |
|
|
| 772 |
|
|
| 773 |
|
|
| 774 |
|
|
| 775 |
|
|
| 776 |
|
|
| 777 |
|
|
| 778 |
|
|
| 779 |
|
|
| 780 |
|
|
| 726 | 781 |
|
| 727 | 782 |
|
| 728 | 783 |
|
packages/openagents-cli/src/coder-ui.ts modified +20 -71
@@ -161,25 +161,18 @@ function justify(left: string, right: string, width: number): string {
| 161 | 161 |
|
| 162 | 162 |
|
| 163 | 163 |
|
| 164 |
|
|
| 164 |
|
|
| 165 | 165 |
|
| 166 | 166 |
|
| 167 |
|
|
| 168 | 167 |
|
| 169 | 168 |
|
| 170 | 169 |
|
| 171 |
|
|
| 172 |
|
|
| 170 |
|
|
| 173 | 171 |
|
| 174 |
|
|
| 175 |
|
|
| 176 |
|
|
| 177 |
|
|
| 178 |
|
|
| 179 |
|
|
| 180 |
|
|
| 181 |
|
|
| 182 |
|
|
| 172 |
|
|
| 173 |
|
|
| 174 |
|
|
| 175 |
|
|
| 183 | 176 |
|
| 184 | 177 |
|
| 185 | 178 |
|
@@ -188,12 +181,8 @@ function hints(keys: ReadonlyArray<Hint>, right: string, width: number): string
| 188 | 181 |
|
| 189 | 182 |
|
| 190 | 183 |
|
| 191 |
|
|
| 192 |
|
|
| 193 |
|
|
| 194 |
|
|
| 195 |
|
|
| 196 |
|
|
| 184 |
|
|
| 185 |
|
|
| 197 | 186 |
|
| 198 | 187 |
|
| 199 | 188 |
|
@@ -602,7 +591,7 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 602 | 591 |
|
| 603 | 592 |
|
| 604 | 593 |
|
| 605 |
|
|
| 594 |
|
|
| 606 | 595 |
|
| 607 | 596 |
|
| 608 | 597 |
|
@@ -615,8 +604,9 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 615 | 604 |
|
| 616 | 605 |
|
| 617 | 606 |
|
| 607 |
|
|
| 608 |
|
|
| 618 | 609 |
|
| 619 |
|
|
| 620 | 610 |
|
| 621 | 611 |
|
| 622 | 612 |
|
@@ -640,8 +630,10 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 640 | 630 |
|
| 641 | 631 |
|
| 642 | 632 |
|
| 633 |
|
|
| 643 | 634 |
|
| 644 |
|
|
| 635 |
|
|
| 636 |
|
|
| 645 | 637 |
|
| 646 | 638 |
|
| 647 | 639 |
|
@@ -689,49 +681,9 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 689 | 681 |
|
| 690 | 682 |
|
| 691 | 683 |
|
| 692 |
|
|
| 693 |
|
|
| 694 |
|
|
| 695 |
|
|
| 696 |
|
|
| 697 |
|
|
| 698 |
|
|
| 699 |
|
|
| 700 |
|
|
| 701 |
|
|
| 702 |
|
|
| 703 |
|
|
| 704 |
|
|
| 705 |
|
|
| 706 |
|
|
| 707 |
|
|
| 708 |
|
|
| 709 |
|
|
| 710 |
|
|
| 711 |
|
|
| 712 |
|
|
| 713 |
|
|
| 714 |
|
|
| 715 |
|
|
| 716 |
|
|
| 717 |
|
|
| 718 |
|
|
| 719 |
|
|
| 720 |
|
|
| 721 |
|
|
| 722 |
|
|
| 723 |
|
|
| 724 |
|
|
| 725 |
|
|
| 726 |
|
|
| 727 |
|
|
| 728 |
|
|
| 729 |
|
|
| 730 |
|
|
| 731 |
|
|
| 732 |
|
|
| 733 |
|
|
| 734 |
|
|
| 684 |
|
|
| 685 |
|
|
| 686 |
|
|
| 735 | 687 |
|
| 736 | 688 |
|
| 737 | 689 |
|
@@ -1151,12 +1103,9 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 1151 | 1103 |
|
| 1152 | 1104 |
|
| 1153 | 1105 |
|
| 1154 |
|
|
| 1155 |
|
|
| 1156 |
|
|
| 1157 |
|
|
| 1158 |
|
|
| 1159 |
|
|
| 1106 |
|
|
| 1107 |
|
|
| 1108 |
|
|
| 1160 | 1109 |
|
| 1161 | 1110 |
|
| 1162 | 1111 |
|
packages/openagents-cli/test/coder-ui.test.ts modified +45 -102
@@ -171,60 +171,13 @@ describe("runCoderUi", () => {
| 171 | 171 |
|
| 172 | 172 |
|
| 173 | 173 |
|
| 174 |
|
|
| 175 |
|
|
| 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 | 174 |
|
| 208 |
|
|
| 209 |
|
|
| 210 |
|
|
| 211 |
|
|
| 212 | 175 |
|
| 213 | 176 |
|
| 214 | 177 |
|
| 215 | 178 |
|
| 216 | 179 |
|
| 217 | 180 |
|
| 218 |
|
|
| 219 |
|
|
| 220 |
|
|
| 221 |
|
|
| 222 |
|
|
| 223 |
|
|
| 224 |
|
|
| 225 |
|
|
| 226 |
|
|
| 227 |
|
|
| 228 | 181 |
|
| 229 | 182 |
|
| 230 | 183 |
|
@@ -248,10 +201,6 @@ describe("runCoderUi", () => {
| 248 | 201 |
|
| 249 | 202 |
|
| 250 | 203 |
|
| 251 |
|
|
| 252 |
|
|
| 253 |
|
|
| 254 |
|
|
| 255 | 204 |
|
| 256 | 205 |
|
| 257 | 206 |
|
@@ -313,57 +262,6 @@ describe("runCoderUi", () => {
| 313 | 262 |
|
| 314 | 263 |
|
| 315 | 264 |
|
| 316 |
|
|
| 317 |
|
|
| 318 |
|
|
| 319 |
|
|
| 320 |
|
|
| 321 |
|
|
| 322 |
|
|
| 323 |
|
|
| 324 |
|
|
| 325 |
|
|
| 326 |
|
|
| 327 |
|
|
| 328 |
|
|
| 329 |
|
|
| 330 |
|
|
| 331 |
|
|
| 332 |
|
|
| 333 |
|
|
| 334 |
|
|
| 335 |
|
|
| 336 |
|
|
| 337 |
|
|
| 338 |
|
|
| 339 |
|
|
| 340 |
|
|
| 341 |
|
|
| 342 |
|
|
| 343 |
|
|
| 344 |
|
|
| 345 |
|
|
| 346 |
|
|
| 347 |
|
|
| 348 |
|
|
| 349 |
|
|
| 350 |
|
|
| 351 |
|
|
| 352 |
|
|
| 353 |
|
|
| 354 |
|
|
| 355 |
|
|
| 356 |
|
|
| 357 |
|
|
| 358 |
|
|
| 359 |
|
|
| 360 |
|
|
| 361 |
|
|
| 362 |
|
|
| 363 |
|
|
| 364 |
|
|
| 365 |
|
|
| 366 |
|
|
| 367 | 265 |
|
| 368 | 266 |
|
| 369 | 267 |
|
@@ -965,3 +863,48 @@ describe("the transcript's marker column", () => {
| 965 | 863 |
|
| 966 | 864 |
|
| 967 | 865 |
|
| 866 |
|
|
| 867 |
|
|
| 868 |
|
|
| 869 |
|
|
| 870 |
|
|
| 871 |
|
|
| 872 |
|
|
| 873 |
|
|
| 874 |
|
|
| 875 |
|
|
| 876 |
|
|
| 877 |
|
|
| 878 |
|
|
| 879 |
|
|
| 880 |
|
|
| 881 |
|
|
| 882 |
|
|
| 883 |
|
|
| 884 |
|
|
| 885 |
|
|
| 886 |
|
|
| 887 |
|
|
| 888 |
|
|
| 889 |
|
|
| 890 |
|
|
| 891 |
|
|
| 892 |
|
|
| 893 |
|
|
| 894 |
|
|
| 895 |
|
|
| 896 |
|
|
| 897 |
|
|
| 898 |
|
|
| 899 |
|
|
| 900 |
|
|
| 901 |
|
|
| 902 |
|
|
| 903 |
|
|
| 904 |
|
|
| 905 |
|
|
| 906 |
|
|
| 907 |
|
|
| 908 |
|
|
| 909 |
|
|
| 910 |
|