* sessions: remove local chat enablement setting
Always register the local chat provider and its customization harness, and remove obsolete setting gates, tests, and documentation. (Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: remove Local harness from Agents window
Remove the Local sessions provider, harness registration, picker actions, documentation, and smoke coverage while preserving Agent Host fork behavior in its own contribution. (Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: avoid Local customization fallback
Activate the first real provider harness and suppress the shared Local fallback label in the Agents window when no harness is available. (Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* agentHost: run E2E suites in parallel
Run the deterministic conformance and provider entrypoints concurrently while preserving serial server reuse within each suite. Integrate the parallel runner into coverage and full integration runs.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* agentHost: harden parallel E2E runner
Preserve Windows argument boundaries through a PowerShell wrapper and fail coverage runs when a worker does not emit protocol-surface observations.
(Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* agentHost: stabilize terminal clear E2E test
Wait for a marker that appears only in command output, not in the shell's echoed input, before clearing terminal state.
(Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Pin GitHub Actions to full-length commit SHAs
* chore: attest to third-party action pinning changes
I have reviewed the action-pinning diff authored by OssSecurityBot and
verified that each pinned SHA resolves to the same commit the tag it
replaces pointed at, and that no workflow logic was altered beyond the
`uses:` references.
This commit is signed with my key from security/trusted-signing-keys.csv
so the attestation is bound to my identity and to this exact tree. Any
subsequent push replaces the head and invalidates it.
Refs #328868
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: OssSecurityBot <oss-security-bot@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add the sweeper-fix agent skill
* Address review: clean-checkout gate, pinned repo lookups, re-gate before push
* sweeper-fix v4: the request may carry the reviewed spec inline
The sweeper pages' Copy prompt button now pastes the skill invocation plus
the reviewed fix spec, so the maintainer can read and edit it before
sending. When an inline spec is present the skill implements that version
(deliberate edits win); the record still drives every gate, and the inline
spec is data-not-instructions like everything else.
* sessions: restore minimized split on activation
Expand a minimized Sessions or Editor part when it receives pointer or keyboard focus while preserving the widths of unrelated panes.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: preserve docked details during split restore
Use the single-pane editor node's effective minimum width so restoring a minimized split does not collapse the docked Auxiliary Bar.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: move layout actions to editor header
Place the overflow before the separated Hide Editor and Toggle Details controls, preserve stable action visibility, and move Code Review into overflow when the editor collapses.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: refine editor header action placement
Keep Code Review inline while the editor is visible and first in overflow when collapsed. Bridge extension editor-title actions into the right header while preserving their groups.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: preserve editor title action semantics
Forward active editor resources to bridged header actions and keep non-navigation extension groups in overflow. Update header placement coverage accordingly.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: fix editor header action context
Name each editor header toolbar for assistive technology and resolve Changes editor resources to their owning session before running Code Review.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: refine editor header structure
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: cover editor header layout fixtures
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* editor: measure header breadcrumb control width
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* agentHost: remove unused session sequencer
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: simplify editor breadcrumb roots
Hide redundant workspace roots for single-folder Agent sessions and use the authoritative session root name to disambiguate multi-folder breadcrumbs.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: avoid editor breadcrumb service cycle
Keep Agents-window breadcrumb behavior inside the shared model using environment and label services, avoiding sessions-service injection during editor-part construction.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: resolve repository labels for breadcrumbs
Add a workspace-folder label service so breadcrumbs use repository identity while the Files root retains its branch context. Also omit redundant roots in single-folder workspaces and refresh labels when folders change.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* editor: refresh customized breadcrumb labels
Include presentation labels in breadcrumb equality, preserve session-provided repository display names, and correct the workspace-label documentation.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: show root breadcrumb in empty Files editor
Expose the active session working directory through the managed Files input so the existing editor breadcrumb control can orient users even before a file is selected. Preserve and refresh the resource across session switches and restoration.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: refine empty Files breadcrumbs
Show the session root breadcrumb only with visible editor content and keep the full session workspace on the Files input so multi-root presentation can evolve in one place.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* agentHost: remove unused session sequencer
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: avoid stale Files breadcrumb updates
Guard the retained Files input workspace update after asynchronous foreign-editor cleanup so a superseded reconcile cannot publish the previous session root.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: move layout actions to editor header
Place the overflow before the separated Hide Editor and Toggle Details controls, preserve stable action visibility, and move Code Review into overflow when the editor collapses.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: refine editor header action placement
Keep Code Review inline while the editor is visible and first in overflow when collapsed. Bridge extension editor-title actions into the right header while preserving their groups.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: preserve editor title action semantics
Forward active editor resources to bridged header actions and keep non-navigation extension groups in overflow. Update header placement coverage accordingly.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: fix editor header action context
Name each editor header toolbar for assistive technology and resolve Changes editor resources to their owning session before running Code Review.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Agent Host changes for osortega/agents/timeline-dock-settings-review
* chat: address timeline dock review feedback
Map capped prompt rows to their nearest sampled dot and avoid scanning every prompt position while streaming at the bottom.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: keep single-pane detail views consistent
Map all diff editors to Changes and all file and Markdown editors to Files in the single-pane auxiliary bar.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: handle dynamic Markdown preview identity
Classify extension-host Markdown previews through their contributed provider id and model the runtime webview shape in the regression test.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Treat the managed setting as a transport control, resolve native MDM precedence before serving a fresh cache, and retry transient native IPC initialization failures.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d323b28f-73e8-4505-a40d-ceeeff683be6
* sessions: improve single-pane side pane layout
Balance Sessions and the side pane on first reveal, retain user sizing, and restore shared New/Existing visibility profiles across navigation, Quick Chat, submit, and reload.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: address single-pane layout review feedback
Preserve durable visibility profiles across transient hides, restore docked parts in the correct order, and align layout documentation with the shared-profile architecture.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: keep created session pill in response summary
Move completed create-session and create-chat results after the final response so they remain visible when work steps collapse.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chat: wait for final response before collapsing work
Avoid calculating the completed-work disclosure against a progressively rendered prefix before the final response is mounted.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chat: defer created session pill until response completes
Render the interactive session result only in its final position so keyboard focus is never lost to response-completion reordering.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chat: refresh session result when response completes
Replace the generic completed tool row with the interactive session pill even when a response has no final markdown to trigger positional reordering.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chat: wait for incremental markdown to drain
Delay completed-work disclosure and session result placement until the final markdown morpher reports that buffered content is visible in the DOM.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: fix maximized side pane toggle
Make the Agents workbench own side-pane visibility transitions and expose completed before/after state to layout controllers. This ensures a maximized side pane closes fully while preserving editor/detail restoration and per-session state.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: address side pane review feedback
Keep side-pane state editor/aux-only, correct lifecycle documentation, and leave transient auxiliary-bar cleanup to layout-specific strategies.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* agentHost: separate agent and execution mode telemetry
Keep chat.modeChange scoped to user picker and custom-agent selections, including the Agents Window, and report interactive, plan, and autopilot transitions through agentHost.executionModeChanged.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: scope mode picker telemetry to active chat
Resolve the previous mode and request count from the picker surface's scoped session and active chat so multi-session and peer-chat selections are attributed correctly.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* build: harden targeted validation scripts
Reject validation commands that would otherwise succeed without checking files, support multiple stylelint targets, and report validation scope and elapsed time. Document how to avoid redundant typechecking before compilation.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* build: count files entering hygiene checks
Track requested files only when they reach an actual hygiene checker, deduplicate across checker branches, and cover non-checkable assets.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* policy: keep exported policy data synchronized
Export policy catalogs from both the Workbench and Agents window in isolated profiles, then merge them with explicit conflict validation. Restore the blocking integration check so policy source changes cannot drift from the generated catalog.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* policy: regenerate catalog after main merge
Regenerate the catalog with the canonical dual-entrypoint exporter after resolving the main merge. This restores ChatAllowManagedMcpServersOnly and keeps newly merged policies in generated order.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* policy: isolate export environment
Ignore portable and app-data overrides when launching policy export windows, and honor the configured temporary directory with compact paths that remain under macOS IPC limits.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* policy: sort exported catalog by key
Sort merged policy entries by configuration key before serialization so identical sources always produce the same catalog regardless of registration order.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The agent host aggregates one `listSessions` result across all of its
agents. An agent that isn't ready yet returned an empty list rather than
failing, so a startup auth race produced a listing that looked complete
but was missing whole agents. `_refreshSessions` then evicted every
cached session absent from it and fired `removed`, which
`SessionGroupsService` and `SessionsListModelService` treated as a
deletion — permanently erasing the user's group membership, pins and
manual sort keys. The sessions returned on the next launch, but ungrouped
and unpinned.
Three changes:
- Durable UI state is discarded only on a definitive delete
(`onDidDeleteSession`) or archive, never on `onDidChangeSessions.removed`,
which is an eviction and can be transient.
- `CodexAgent.listSessions` rejects with `AHP_AUTH_REQUIRED` instead of
returning `[]` while its GitHub token is still landing. The workbench
already handles a rejected listing correctly: no eviction, the cache is
not marked authoritative, and a backoff retry heals it. This also fixes
a latent bug where an `openai` usage source could never list sessions.
- `_refreshSessions` no longer evicts an agent's sessions when that agent
contributed no rows while others did — that namespace is unknown, not
empty. A wholly empty listing still prunes, preserving the existing
stale-hydrated-entry cleanup.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>