* Fix 'Generate New Task' no-op on existing sessions
sendAndCreateChat only works for new (untitled) sessions or when
multi-chat is enabled. For existing/completed sessions it threw an
error that was silently swallowed, making the action appear to do
nothing.
Add a _generateNewTask helper that checks the session status:
- Untitled sessions: use sendAndCreateChat (existing first-chat flow)
- Existing sessions: send /generate-run-commands directly to the
active chat widget via acceptInput
Fixes#308805
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address review: use passed-in session, add sendAndCreateChat fallback
- Use session.mainChat.resource instead of re-reading activeSession
from global state, avoiding stale-reference bugs.
- Fall back to sendAndCreateChat when no chat widget is found for
the session, so the action is never a silent no-op.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Simplify _generateNewTask: consolidate sendAndCreateChat fallback
Both the untitled and widget-not-found paths called sendAndCreateChat,
so collapse the if/else into a single widget-first-then-fallback flow.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Rename the `inSessions` task property to `inAgents` across all source,
tests, JSON configs, and documentation.
Also fix a bug in `updateTask` where `setProperty` with a numeric
array index was inserting a duplicate entry instead of replacing the
existing one. The fix replaces the entire tasks array with the updated
entry mapped in at the correct index, consistent with how `removeTask`
already works.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Set update.showReleaseNotes to false in the sessions app configuration
defaults so release notes do not auto-open after a version update.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Redesign chat customizations welcome page
- Extract welcome page into dedicated AICustomizationWelcomePage class
and aiCustomizationWelcome.css for better code organization
- Replace old banner + card grid with:
- 'Analyze Your Project and Configure AI' input box that opens
/agent-customization in chat with user's description
- 2x3 category card grid (Agents, Skills, Instructions, Hooks,
MCP Servers, Plugins) with actionable chip buttons
- Chips prepopulate chat with specific prompts (e.g. 'Create a
code review agent', 'Enforce coding style')
- Remove redundant 'Chat Customizations' heading (already in tab)
- Remove redundant 'browse by type' pills (cards serve same purpose)
- Improve chip contrast with visible borders and link-colored text
- Tighten card padding and description sizing for cleaner layout
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Polish welcome page: bigger input, separator, more copy
- Make input box taller with rounded corners and inner submit button
styled like a chat input (pill-shaped submit that fills on hover)
- Add section divider line between input area and card grid
- Add 'Or configure individual customizations:' label above grid
- Expand description copy to mention codebase analysis
- Bump card label font-weight to 600 and restore 12px desc size
- Restore card padding to 14px for better breathing room
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Rework welcome page: stacked list, better input, centered divider
- Replace 2x3 card grid with full-width stacked category list
where each row shows icon, label, description, and chip buttons
inline on a single line
- Input box uses cornerRadius-large, proper padding matching chat
input style, submit button inside with pill shape
- Separator now shows centered text: 'or configure individually'
with lines extending on both sides
- Reduce max-width to 680px and remove all excess whitespace
- Remove card/grid CSS entirely
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Improve welcome page hierarchy and command styling
- Restore strong page intro with 'Chat Customizations' heading and
descriptive copy from the original welcome page
- Increase overall scale: wider content, larger workflow heading,
larger description text, and roomier input box
- Break each section into title row, description row, and command row
instead of compressing everything into a single line
- Restyle example actions as monospace command-like entries such as
'/create-skill ...' to better communicate they prepopulate chat
- Make category rows roomier with card-like boundaries and better
visual hierarchy
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Simplify welcome page into launcher-style sections
- Replace boxed customization cards with lightweight stacked sections
separated by subtle rules
- Keep the centered 'or configure individually' separator
- Increase overall scale for the intro, workflow heading, copy, and input
- Make command examples look like real slash commands with plain
command-link styling instead of pill buttons
- Separate each section into title, description, and command rows for
clearer hierarchy
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Revert welcome page to original design (keep file separation)
Restore the original welcome page layout from main exactly as it was:
- 'Chat Customizations' heading + subtitle
- 'Configure Your AI' getting-started banner
- Responsive card grid with Browse and Generate with AI buttons
The only structural change kept is the file separation:
welcome page logic lives in aiCustomizationWelcomePage.ts and
welcome CSS lives in media/aiCustomizationWelcome.css.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add centered 'or configure individually' divider between banner and cards
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Replace Configure Your AI banner with chat-style input box
Swap the old getting-started banner for a clean input box styled
like the chat input part: cornerRadius-large, input-background,
submit arrow inside. No highlight borders or extra UI chrome.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix input box focus outlines to match chat input part
Remove the double-outline: the inner monaco-inputbox and the native
input element both had their own focus borders showing through. Force
border/outline to none on both inner elements and let only the outer
container show the single focus border. Use transparent as default
border (matching chat input) and add overflow: hidden to clip inner
outlines at the rounded corners.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix inner input box border by passing transparent inputBoxStyles
The InputBox sets an inline style border via applyStyles() which
cannot be overridden by CSS. Pass inputBorder: transparent and
inputBackground: transparent so the inner box is invisible and
only the outer container provides the border.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Refactor agent customizations welcome page
Split the Agent Customizations welcome page into classic and prompt-launcher variants, add a configuration switch for selecting the implementation, and add component fixtures for the welcome page variants.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Polish customization welcome page variants
Refine the classic and prompt-launcher welcome pages so the workflow entry point is more prominent and the category actions are simpler and better aligned.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Swap welcome variants and fix sessions chat prefill
Move the polished workflow-box layout into promptLaunchers (now the default) and restore classic to the origin/main baseline. Add prefillChat callback so the Generate Workflow input works in both the sessions app (via NewChatViewPane.sendQuery) and core VS Code (via workbench.action.chat.open). Enable the getting-started banner in sessions. Fix double-box input styling and card footer alignment.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix input focus outline and polish welcome page layout
Replace InputBox widget with plain <input> element to eliminate the focus border that the global .monaco-workbench input[type=text]:focus rule was applying. Move helper text above the input, match input-row rounding to the outer card, and add strong specificity overrides for all focus states.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Scope the sessions-only sash styling to round the hover indicator and orthogonal drag handles, and document the layout update in LAYOUT.md.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
We need proper command detection to make this work flawlessly, but this
does the initial hookup replacing the copilot SDK's terminal tools with
our tools which are backed by real PTY's.
refactor(xtab): extract _performFetch from _streamEditsImpl
Separate the HTTP fetch lifecycle (FetchStreamSource setup, makeChatRequest2,
initial error handling, line stream construction with cursor-tag removal and
latency logging) into a dedicated _performFetch method.
This makes the fetch infrastructure self-contained and returns a clean
AsyncIterable<string> line stream + getFetchFailure callback for downstream
format handlers, matching the pattern already used by
XtabCustomDiffPatchResponseHandler.
_streamEditsImpl is now a coordinator: it calls _performFetch, then dispatches
to format handlers, then post-processes edit-window results.
Part of #308744