| ... | @@ -469,7 +469,7 @@ describe("deriveMessagesTimelineRows", () => { | ... | @@ -469,7 +469,7 @@ describe("deriveMessagesTimelineRows", () => { |
| 469 | expect(assistantRow?.assistantTurnDiffSummary).toBe(assistantTurnDiffSummary); | 469 | expect(assistantRow?.assistantTurnDiffSummary).toBe(assistantTurnDiffSummary); |
| 470 | }); | 470 | }); |
| 471 | | 471 | |
| 472 | it("keeps the first and terminal assistant messages visible around settled work", () => { | 472 | it("folds the first assistant message and settled work before the terminal response", () => { |
| 473 | const timelineEntries = [ | 473 | const timelineEntries = [ |
| 474 | { | 474 | { |
| 475 | id: "user-entry", | 475 | id: "user-entry", |
| ... | @@ -545,7 +545,6 @@ describe("deriveMessagesTimelineRows", () => { | ... | @@ -545,7 +545,6 @@ describe("deriveMessagesTimelineRows", () => { |
| 545 | expect(foldRow?.label).toBe("Worked for 22s"); | 545 | expect(foldRow?.label).toBe("Worked for 22s"); |
| 546 | expect(collapsedRows.map((row) => row.id)).toEqual([ | 546 | expect(collapsedRows.map((row) => row.id)).toEqual([ |
| 547 | "user-entry", | 547 | "user-entry", |
| 548 | "assistant-first-entry", | | |
| 549 | "turn-fold:turn-1", | 548 | "turn-fold:turn-1", |
| 550 | "assistant-final-entry", | 549 | "assistant-final-entry", |
| 551 | ]); | 550 | ]); |
| ... | @@ -561,8 +560,8 @@ describe("deriveMessagesTimelineRows", () => { | ... | @@ -561,8 +560,8 @@ describe("deriveMessagesTimelineRows", () => { |
| 561 | | 560 | |
| 562 | expect(expandedRows.map((row) => row.id)).toEqual([ | 561 | expect(expandedRows.map((row) => row.id)).toEqual([ |
| 563 | "user-entry", | 562 | "user-entry", |
| 564 | "assistant-first-entry", | | |
| 565 | "turn-fold:turn-1", | 563 | "turn-fold:turn-1", |
| | 564 | "assistant-first-entry", |
| 566 | "work-toggle:work-entry-1", | 565 | "work-toggle:work-entry-1", |
| 567 | "assistant-final-entry", | 566 | "assistant-final-entry", |
| 568 | ]); | 567 | ]); |
| ... | @@ -571,7 +570,7 @@ describe("deriveMessagesTimelineRows", () => { | ... | @@ -571,7 +570,7 @@ describe("deriveMessagesTimelineRows", () => { |
| 571 | ).toBeDefined(); | 570 | ).toBeDefined(); |
| 572 | }); | 571 | }); |
| 573 | | 572 | |
| 574 | it("folds assistant messages between the first and terminal messages", () => { | 573 | it("folds all assistant messages before the terminal message", () => { |
| 575 | const timelineEntries = [ | 574 | const timelineEntries = [ |
| 576 | { | 575 | { |
| 577 | id: "assistant-first-entry", | 576 | id: "assistant-first-entry", |
| ... | @@ -625,11 +624,7 @@ describe("deriveMessagesTimelineRows", () => { | ... | @@ -625,11 +624,7 @@ describe("deriveMessagesTimelineRows", () => { |
| 625 | revertTurnCountByUserMessageId: new Map(), | 624 | revertTurnCountByUserMessageId: new Map(), |
| 626 | }); | 625 | }); |
| 627 | | 626 | |
| 628 | expect(rows.map((row) => row.id)).toEqual([ | 627 | expect(rows.map((row) => row.id)).toEqual(["turn-fold:turn-1", "assistant-final-entry"]); |
| 629 | "assistant-first-entry", | | |
| 630 | "turn-fold:turn-1", | | |
| 631 | "assistant-final-entry", | | |
| 632 | ]); | | |
| 633 | }); | 628 | }); |
| 634 | | 629 | |
| 635 | it("derives a sane duration for a steer-superseded turn with one instant commentary message", () => { | 630 | it("derives a sane duration for a steer-superseded turn with one instant commentary message", () => { |