Skip to content

feat: full parity with .NET SDK v0.1.23+#8

Merged
0xeb merged 1 commit intomainfrom
feat/v0.1.23-parity
Feb 7, 2026
Merged

feat: full parity with .NET SDK v0.1.23+#8
0xeb merged 1 commit intomainfrom
feat/v0.1.23-parity

Conversation

@0xeb
Copy link
Owner

@0xeb 0xeb commented Feb 7, 2026

Full feature parity with official Copilot SDK .NET reference (v0.1.23+). 14 parity gaps implemented: hooks (6 types), user input handler, reasoning effort, 3 new events, extended fields, auth options, models caching, selection attachments, lifecycle events, resume config parity. 275 tests (0 failures). 3 new examples.

Implement all parity gaps (Gaps 1-14) for complete feature parity with the
official Copilot SDK .NET reference (v0.1.23+).

Hooks System:
- 6 hook types: PreToolUse, PostToolUse, UserPromptSubmitted, SessionStart,
  SessionEnd, ErrorOccurred
- SessionHooks config with handler registration
- hooks.invoke RPC handler wired into session create/resume

User Input Handler:
- UserInputRequest/Response/Invocation types
- userInput.request RPC handler for ask_user tool support

Reasoning Effort:
- reasoning_effort on SessionConfig and ResumeSessionConfig
- Model capability fields (supported_reasoning_efforts, default_reasoning_effort)

New Event Types:
- session.shutdown (ShutdownType, CodeChanges, metrics)
- session.snapshot_rewind (upToEventId, eventsRemoved)
- skill.invoked (name, path, content, allowedTools)

Extended Event Fields:
- SessionError: statusCode, providerCallId
- CompactionComplete: checkpointNumber, checkpointPath
- AssistantMessage: reasoningOpaque, reasoningText, encryptedContent
- AssistantUsage: parentToolCallId
- ToolExecutionStart: mcpServerName
- ToolExecutionComplete: detailedContent

Additional Features:
- Client auth options (github_token, use_logged_in_user) with validation
- list_models caching with mutex + cache clear on disconnect
- ResumeSessionConfig full parity with SessionConfig
- Selection attachment type with start/end positions
- Session lifecycle event types
- Subagent wire format fix (subagent.* + legacy custom_agent.*)
- 4 missing event types (compaction start/complete, usage info, tool progress)
- ModelVisionLimits + GetModelsResponse wrapper

Examples (3 new):
- hooks.cpp: all 6 hook types with interactive chat
- user_input.cpp: choice-based and freeform input handling
- reasoning_effort.cpp: model capability query + effort config

Tests: 215 unit + 60 E2E (275 total, 0 failures, 16 BYOK-skipped)
@0xeb 0xeb merged commit d582206 into main Feb 7, 2026
3 checks passed
@0xeb 0xeb deleted the feat/v0.1.23-parity branch February 8, 2026 13:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant