Fold a run of notices about one setting into the last one Cycling the reasoning level four times left four notes saying what it had been set to, three of which were no longer true, and the reader had to read to the bottom to find the one that was. A notice may now say what it supersedes. Where the last entry is a notice about the same thing, it is replaced rather than stacked under; where anything else has happened since, the new notice stands on its own, because what it would have replaced is no longer the last thing said. Switching the model gets the same treatment for the same reason. Notices with nothing to supersede are untouched: two interruptions are two events, not one restated. 419 tests pass.
Fold a run of notices about one setting into the last one
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-session.ts -
modified
packages/openagents-cli/test/coder-session.test.ts -
modified
packages/openagents-cli/test/coder-ui.test.ts
Diff
3 files changed, +79 -4
packages/openagents-cli/src/coder-session.ts modified +33 -4
@@ -117,6 +117,13 @@ export interface CoderEntry {
| 117 | 117 |
|
| 118 | 118 |
|
| 119 | 119 |
|
| 120 |
|
|
| 121 |
|
|
| 122 |
|
|
| 123 |
|
|
| 124 |
|
|
| 125 |
|
|
| 126 |
|
|
| 120 | 127 |
|
| 121 | 128 |
|
| 122 | 129 |
|
@@ -469,7 +476,7 @@ export class CoderSession {
| 469 | 476 |
|
| 470 | 477 |
|
| 471 | 478 |
|
| 472 |
|
|
| 479 |
|
|
| 473 | 480 |
|
| 474 | 481 |
|
| 475 | 482 |
|
@@ -481,7 +488,7 @@ export class CoderSession {
| 481 | 488 |
|
| 482 | 489 |
|
| 483 | 490 |
|
| 484 |
|
|
| 491 |
|
|
| 485 | 492 |
|
| 486 | 493 |
|
| 487 | 494 |
|
@@ -490,8 +497,30 @@ export class CoderSession {
| 490 | 497 |
|
| 491 | 498 |
|
| 492 | 499 |
|
| 493 |
|
|
| 494 |
|
|
| 500 |
|
|
| 501 |
|
|
| 502 |
|
|
| 503 |
|
|
| 504 |
|
|
| 505 |
|
|
| 506 |
|
|
| 507 |
|
|
| 508 |
|
|
| 509 |
|
|
| 510 |
|
|
| 511 |
|
|
| 512 |
|
|
| 513 |
|
|
| 514 |
|
|
| 515 |
|
|
| 516 |
|
|
| 517 |
|
|
| 518 |
|
|
| 519 |
|
|
| 520 |
|
|
| 521 |
|
|
| 522 |
|
|
| 523 |
|
|
| 495 | 524 |
|
| 496 | 525 |
|
| 497 | 526 |
|
packages/openagents-cli/test/coder-session.test.ts modified +37
@@ -448,3 +448,40 @@ describe("a turn's cost", () => {
| 448 | 448 |
|
| 449 | 449 |
|
| 450 | 450 |
|
| 451 |
|
|
| 452 |
|
|
| 453 |
|
|
| 454 |
|
|
| 455 |
|
|
| 456 |
|
|
| 457 |
|
|
| 458 |
|
|
| 459 |
|
|
| 460 |
|
|
| 461 |
|
|
| 462 |
|
|
| 463 |
|
|
| 464 |
|
|
| 465 |
|
|
| 466 |
|
|
| 467 |
|
|
| 468 |
|
|
| 469 |
|
|
| 470 |
|
|
| 471 |
|
|
| 472 |
|
|
| 473 |
|
|
| 474 |
|
|
| 475 |
|
|
| 476 |
|
|
| 477 |
|
|
| 478 |
|
|
| 479 |
|
|
| 480 |
|
|
| 481 |
|
|
| 482 |
|
|
| 483 |
|
|
| 484 |
|
|
| 485 |
|
|
| 486 |
|
|
| 487 |
|
packages/openagents-cli/test/coder-ui.test.ts modified +9
@@ -827,6 +827,15 @@ describe("changing how hard the model thinks", () => {
| 827 | 827 |
|
| 828 | 828 |
|
| 829 | 829 |
|
| 830 |
|
|
| 831 |
|
|
| 832 |
|
|
| 833 |
|
|
| 834 |
|
|
| 835 |
|
|
| 836 |
|
|
| 837 |
|
|
| 838 |
|
|
| 830 | 839 |
|
| 831 | 840 |
|
| 832 | 841 |
|