David Kaya and Copilot
f1fa52f9c3
feat: full Copilot SDK feature parity — custom agents, hooks, image input, skills, steering, session persistence
...
Backend (sidecar):
- Extended ProtocolModels with DTOs for custom agents, hooks, skills,
infinite sessions, session lifecycle, and 9 new event types
- Added CopilotManagedSessionIds for stable SDK session ID mapping
- Added CopilotSessionManager/ICopilotSessionManager for session lifecycle
- Added CopilotSessionHooks for hook registration
- Added CopilotMessageOptionsMetadata for mid-turn steering
- Extended CopilotAgentBundle to wire custom agents, hooks, skills,
infinite sessions, and stable session IDs
- Extended CopilotTurnExecutionState to project 13 new SDK event types
- Widened ITurnWorkflowRunner callback to accept SidecarEventDto
- Added list/delete/disconnect session commands to SidecarProtocolHost
- Added AryxCopilotAgentMessageOptionsTests (14 new tests, 142 total)
Frontend (renderer + main + shared):
- Added ChatMessageAttachment type and helpers (attachment.ts)
- Extended sidecar contracts with MessageMode, 3 new command types,
9 new event types, and agent/session config DTOs
- Extended SessionEventRecord with 6 new event kinds and ~20 fields
- Added PatternAgentCopilotConfig to pattern domain
- Added attachments support to ChatMessageRecord
- Updated sidecar client with session lifecycle methods and
turn-scoped event routing via onTurnScopedEvent callback
- Updated main process: handleTurnScopedEvent(), deleteSession(),
steering bypass for mid-turn messages, attachment passthrough
- Added deleteSession IPC handler and preload binding
- Added TurnEventLog state tracker with format/apply/prune helpers
- ChatPane: always-enabled composer, steering indicator, attachment
picker with preview, image thumbnails in message history,
context-usage bar, amber steer mode for send button
- ActivityPanel: turn events section with sub-agent, hook, skill,
and compaction event rendering
- Sidebar: delete session action in context menu
- App.tsx: wired sessionUsage, turnEventLogs, and deleteSession
Documentation:
- AGENTS.md: added glob safety rule for node_modules
- README.md: added steering, image input, and richer observability
- ARCHITECTURE.md: added turn-scoped events, steering, and attachments
- Website: added steering and image input feature cards, updated
live visibility and session cards
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-28 12:28:20 +01:00
David Kaya and Copilot
3ec69d990b
feat: enable 'always approve for session' for runtime tools
...
Runtime tool permission requests (read, write, shell, store_memory) now
resolve stable approval names via fallback in the sidecar approval
coordinator, enabling the 'Always approve' button and session-level
auto-approval for built-in tools.
Backend:
- Add fallback tool names for PermissionRequestRead (read),
PermissionRequestWrite (write), PermissionRequestShell (shell),
and PermissionRequestMemory (store_memory)
- Add autoApprovedToolName parameter to RequiresToolCallApproval
for permission-kind-based session approval matching
- Track tool.execution_start events in ToolNamesByCallId for
supplementary exact-name resolution
Frontend:
- Use approval.toolName ?? approval.permissionKind as fallback key
in resolveSessionApproval and ApprovalBanner
- Add shell, read, write permission-kind entries to builtin approval
tool definitions so pruning preserves session overrides
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-27 21:20:14 +01:00
David Kaya and Copilot
13c543e2fd
feat: add structured tool approval details to sidecar protocol
...
Expose SDK permission request details on approval-requested events via a
new permissionDetail payload. This preserves the existing title/detail
summary while carrying the command, URL, diff, args, and other
kind-specific data needed for richer approval UI in the renderer.
Also adds sidecar coverage for all supported permission request kinds and
verifies the new payload serializes over the protocol.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-26 16:40:41 +01:00