* fix: support rollback to non-versioned layout
* fix: destination for tools in rollback
Location matrix:
1) Version update
a) Background - {app}/versionfolder/tools
b) Non-background - {app}/versionfolder/tools
2) Non version update
a) Background - {app}/tools
b) Non-background - {app}/tools
* Initial plan
* Implement lazy rendering for collapsible chat tool parts
- Modified ChatCollapsibleContentPart to defer initContent() call until expanded
- Modified ChatCollapsibleInputOutputContentPart to defer createMessageContents() until expanded
- Content now renders only when:
1. Tool is running (initially expanded)
2. User clicks to expand a complete tool call
- Applies to tool result lists, MCP output editors, and input/output parts
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* Make tools expanded by default when running
- Updated ChatInputOutputMarkdownProgressPart to expand by default when tool is not complete
- This ensures content is rendered for running tools
- Complete tools remain collapsed by default (lazy rendering)
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* Fix undefined wrapper access in ChatThinkingContentPart
Added guards to check if wrapper exists before accessing its properties.
With lazy rendering, wrapper may not be created until content is expanded.
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* Make lazy rendering truly lazy by deferring text model creation
- Changed IChatCollapsibleIOCodePart.textModel to accept string | ITextModel
- Text models are now created lazily in addCodeBlock when content is expanded
- Added IModelService and ILanguageService to ChatCollapsibleInputOutputContentPart constructor
- Updated ChatInputOutputMarkdownProgressPart to pass input data as string instead of creating models eagerly
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* Fix uriPromise type error in createCodePart
- Changed uriPromise from undefined to Promise.resolve(undefined) to match expected type
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* Simplify lazy rendering implementation
- Changed IChatCollapsibleIOCodePart to use simple 'data: string' field instead of 'textModel: ITextModel | string'
- Removed codeBlockInfo from interface, using simpler fields (codeBlockIndex, ownerMarkdownPartId)
- Simplified createCodePart to a cleaner object literal
- Removed conditional logic from addCodeBlock - always creates model from data
- Streamlined codeblocks getter to delegate directly to collapsibleListPart
- Removed redundant _codeblocks array tracking
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* Fix error
* Restore missing onDidChangeHeight event handling
- Restored _onDidChangeHeight emitter and onDidChangeHeight event in ChatCollapsibleInputOutputContentPart
- Added missing Emitter import
- Restored onDidChangeHeight subscriptions for titlePart, outputSubPart, and editorReference
- Restored _onDidChangeHeight.fire() call in autorun block
- Restored onDidChangeHeight subscription in ChatInputOutputMarkdownProgressPart
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* Fix all build errors from interface changes
- Fixed chatToolPostExecuteConfirmationPart.ts to use new 'data' field instead of 'textModel'
- Fixed chatToolOutputContentSubPart.ts to create models lazily from 'data' field
- Added IModelService and ILanguageService to ChatToolOutputContentSubPart
- Fixed chatTerminalToolProgressPart.ts _contentElement name conflict (renamed to _terminalContentElement)
- Added override modifier to hasSameContent in ChatTerminalThinkingCollapsibleWrapper
- Added missing Emitter import to chatInputOutputMarkdownProgressPart.ts
- Removed invalid onDidChangeHeight subscription (ChatToolOutputContentSubPart doesn't expose this event)
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* Remove unused model variables
- Removed unused 'model' variables from chatToolPostExecuteConfirmationPart.ts
- Models are now created lazily in ChatToolOutputContentSubPart, not here
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* Remove unused service parameters
- Removed IModelService and ILanguageService from ChatToolPostExecuteConfirmationPart constructor
- Services are no longer needed since models are created lazily elsewhere
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* Remove unused imports
- Removed unused IModelService and ILanguageService imports from chatToolPostExecuteConfirmationPart.ts
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* Fix undefined wrapper access in ChatSubagentContentPart
- Added guards to check if wrapper exists before accessing its properties
- Moved wrapper.style.display initialization to initContent() where wrapper is created
- With lazy rendering, wrapper is only created when content is expanded
- Fixed 'Cannot read properties of undefined (reading style)' error
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* hygiene
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
Co-authored-by: Rob Lourens <roblourens@gmail.com>