test(coding-agent): verified transcript component streaming and state management
- Added comprehensive unit tests for `TranscriptContainer` to verify uncommitted block tracking. - Created integration tests ensuring `AssistantMessageComponent` correctly streams thinking and answer content into scrollback. - Added tests verifying that expanded tool evaluation output records rows correctly without duplication after settling. - Updated `AssistantMessageComponent` test suite to cover table streaming scenarios in the unsettled tail.
This commit is contained in:
@@ -930,6 +930,17 @@ export class InteractiveMode implements InteractiveModeContext {
|
||||
pushTerminalTitle();
|
||||
setSessionTerminalTitle(this.sessionManager.getSessionName(), this.sessionManager.getCwd());
|
||||
this.updateEditorBorderColor();
|
||||
// Single side-effect point for title changes: every setSessionName caller
|
||||
// (first-input titling, /rename, extension renames, plan seeding, replan
|
||||
// refresh) gets the terminal title + accent updates from here. Registered
|
||||
// before initHooksAndCustomTools/#reconcileModeFromSession/#enterPlanMode —
|
||||
// all of which can reach setSessionName during init.
|
||||
this.#eventBusUnsubscribers.push(
|
||||
this.sessionManager.onSessionNameChanged(() => {
|
||||
setSessionTerminalTitle(this.sessionManager.getSessionName(), this.sessionManager.getCwd());
|
||||
this.#handleSessionAccentInputsChanged();
|
||||
}),
|
||||
);
|
||||
this.#syncEditorMaxHeight();
|
||||
this.isInitialized = true;
|
||||
this.ui.requestRender(true);
|
||||
@@ -986,13 +997,6 @@ export class InteractiveMode implements InteractiveModeContext {
|
||||
this.session.subscribe(event => {
|
||||
void this.#handleGoalSessionEvent(event);
|
||||
}),
|
||||
this.sessionManager.onSessionNameChanged(() => {
|
||||
// Single side-effect point for title changes: every setSessionName
|
||||
// caller (first-input titling, /rename, plan seeding, replan refresh)
|
||||
// gets the terminal title + accent updates from here.
|
||||
setSessionTerminalTitle(this.sessionManager.getSessionName(), this.sessionManager.getCwd());
|
||||
this.#handleSessionAccentInputsChanged();
|
||||
}),
|
||||
onStatusLineSessionAccentChanged(() => {
|
||||
this.#syncStatusLineSettings();
|
||||
this.#handleSessionAccentInputsChanged();
|
||||
|
||||
Reference in New Issue
Block a user