mirror of
https://github.com/github/awesome-copilot.git
synced 2026-10-12 23:04:14 +00:00
* Update .NET Copilot SDK cookbook: fix On<T> breaking change, add in-process runtime, tool search, and message provenance recipes - Fix breaking change: Session.On is now generic (On<T> where T : SessionEvent). Updated all recipes that used the old non-generic session.On(evt => ...) pattern: error-handling, pr-visualization, managing-local-files, accessibility-report, ralph-loop (both .md and .cs where applicable). - Add new 'In-Process Runtime' recipe (in-process-runtime.md + recipe/in-process-runtime.cs) demonstrating RuntimeConnection.ForInProcess(), live-tested. - Document tool search / deferred loading (SessionConfig.ToolSearch / ToolSearchConfig) in pr-visualization.md, live-tested. - Document typed message provenance (MessageOptions.Source / MessageSource) in error-handling.md, live-tested. - Fix dotnet/README.md recipe index: it was missing Ralph Loop and Accessibility Report entries; also added the new In-Process Runtime entry. - Add In-Process Runtime entry to the top-level cookbook/copilot-sdk/README.md .NET section. - Update dotnet/recipe/README.md runnable-examples table with the new recipe. All existing .NET cookbook recipes were rebuilt and rechecked against the current GitHub Copilot SDK (Copilot CLI 1.0.85); no other breaking changes were found. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update cookbook model names to current supported models - Replace stale/nonexistent model IDs (gpt-5, claude-sonnet-4.5, claude-opus-4.6, gpt-5.1-codex-mini) with current values from the supported AI models list - Prefer Model = "auto" wherever a specific model isn't load-bearing to the recipe's teaching point - ralph-loop: pin gpt-5.3-codex (current codex-family GA model), since a dedicated coding model is a deliberate, documented choice for the autonomous loop - multiple-sessions: reshape the model narrative so it demonstrates a real explicit-override use case (A/B testing via claude-sonnet-5) instead of two sessions sharing the same hardcoded model Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Use SendAndWaitAsync in in-process runtime recipe Replace the event-based TaskCompletionSource pattern with SendAndWaitAsync so the example waits for the final assistant response, propagates session errors, and uses the SDK timeout behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
113 lines
5.7 KiB
Markdown
113 lines
5.7 KiB
Markdown
# GitHub Copilot SDK Cookbook
|
||
|
||
This cookbook collects small, focused recipes showing how to accomplish common tasks with the GitHub Copilot SDK across languages. Each recipe is intentionally short and practical, with copy‑pasteable snippets and pointers to fuller examples and tests.
|
||
|
||
## Recipes by Language
|
||
|
||
### .NET (C#)
|
||
|
||
- [Ralph Loop](dotnet/ralph-loop.md): Build autonomous AI coding loops with fresh context per iteration, planning/building modes, and backpressure.
|
||
- [Error Handling](dotnet/error-handling.md): Handle errors gracefully including connection failures, timeouts, and cleanup.
|
||
- [Multiple Sessions](dotnet/multiple-sessions.md): Manage multiple independent conversations simultaneously.
|
||
- [Managing Local Files](dotnet/managing-local-files.md): Organize files by metadata using AI-powered grouping strategies.
|
||
- [PR Visualization](dotnet/pr-visualization.md): Generate interactive PR age charts using GitHub MCP Server.
|
||
- [Persisting Sessions](dotnet/persisting-sessions.md): Save and resume sessions across restarts.
|
||
- [Accessibility Report](dotnet/accessibility-report.md): Generate WCAG accessibility reports using the Playwright MCP server.
|
||
- [In-Process Runtime](dotnet/in-process-runtime.md): Run the Copilot runtime in-process instead of launching a separate CLI process.
|
||
|
||
### Node.js / TypeScript
|
||
|
||
- [Ralph Loop](nodejs/ralph-loop.md): Build autonomous AI coding loops with fresh context per iteration, planning/building modes, and backpressure.
|
||
- [Error Handling](nodejs/error-handling.md): Handle errors gracefully including connection failures, timeouts, and cleanup.
|
||
- [Multiple Sessions](nodejs/multiple-sessions.md): Manage multiple independent conversations simultaneously.
|
||
- [Managing Local Files](nodejs/managing-local-files.md): Organize files by metadata using AI-powered grouping strategies.
|
||
- [PR Visualization](nodejs/pr-visualization.md): Generate interactive PR age charts using GitHub MCP Server.
|
||
- [Persisting Sessions](nodejs/persisting-sessions.md): Save and resume sessions across restarts.
|
||
- [Accessibility Report](nodejs/accessibility-report.md): Generate WCAG accessibility reports using the Playwright MCP server.
|
||
|
||
### Python
|
||
|
||
- [Ralph Loop](python/ralph-loop.md): Build autonomous AI coding loops with fresh context per iteration, planning/building modes, and backpressure.
|
||
- [Error Handling](python/error-handling.md): Handle errors gracefully including connection failures, timeouts, and cleanup.
|
||
- [Multiple Sessions](python/multiple-sessions.md): Manage multiple independent conversations simultaneously.
|
||
- [Managing Local Files](python/managing-local-files.md): Organize files by metadata using AI-powered grouping strategies.
|
||
- [PR Visualization](python/pr-visualization.md): Generate interactive PR age charts using GitHub MCP Server.
|
||
- [Persisting Sessions](python/persisting-sessions.md): Save and resume sessions across restarts.
|
||
- [Accessibility Report](python/accessibility-report.md): Generate WCAG accessibility reports using the Playwright MCP server.
|
||
|
||
### Go
|
||
|
||
- [Ralph Loop](go/ralph-loop.md): Build autonomous AI coding loops with fresh context per iteration, planning/building modes, and backpressure.
|
||
- [Error Handling](go/error-handling.md): Handle errors gracefully including connection failures, timeouts, and cleanup.
|
||
- [Multiple Sessions](go/multiple-sessions.md): Manage multiple independent conversations simultaneously.
|
||
- [Managing Local Files](go/managing-local-files.md): Organize files by metadata using AI-powered grouping strategies.
|
||
- [PR Visualization](go/pr-visualization.md): Generate interactive PR age charts using GitHub MCP Server.
|
||
- [Persisting Sessions](go/persisting-sessions.md): Save and resume sessions across restarts.
|
||
- [Accessibility Report](go/accessibility-report.md): Generate WCAG accessibility reports using the Playwright MCP server.
|
||
|
||
### Java
|
||
|
||
- [Ralph Loop](java/ralph-loop.md): Build autonomous AI coding loops with fresh context per iteration, planning/building modes, and backpressure.
|
||
- [Error Handling](java/error-handling.md): Handle errors gracefully including connection failures, timeouts, and cleanup.
|
||
- [Multiple Sessions](java/multiple-sessions.md): Manage multiple independent conversations simultaneously.
|
||
- [Managing Local Files](java/managing-local-files.md): Organize files by metadata using AI-powered grouping strategies.
|
||
- [PR Visualization](java/pr-visualization.md): Generate interactive PR age charts using GitHub MCP Server.
|
||
- [Persisting Sessions](java/persisting-sessions.md): Save and resume sessions across restarts.
|
||
- [Accessibility Report](java/accessibility-report.md): Generate WCAG accessibility reports using the Playwright MCP server.
|
||
|
||
## How to Use
|
||
|
||
- Browse your language section above and open the recipe links
|
||
- Each recipe includes runnable examples in a `recipe/` subfolder with language-specific tooling
|
||
- See existing examples and tests for working references:
|
||
- Node.js examples: `nodejs/examples/basic-example.ts`
|
||
- E2E tests: `go/e2e`, `python/e2e`, `nodejs/test/e2e`, `dotnet/test/Harness`
|
||
|
||
## Running Examples
|
||
|
||
### .NET
|
||
|
||
```bash
|
||
cd dotnet/cookbook/recipe
|
||
dotnet run <filename>.cs
|
||
```
|
||
|
||
### Node.js
|
||
|
||
```bash
|
||
cd nodejs/cookbook/recipe
|
||
npm install
|
||
npx tsx <filename>.ts
|
||
```
|
||
|
||
### Python
|
||
|
||
```bash
|
||
cd python/cookbook/recipe
|
||
pip install -r requirements.txt
|
||
python <filename>.py
|
||
```
|
||
|
||
### Go
|
||
|
||
```bash
|
||
cd go/cookbook/recipe
|
||
go run <filename>.go
|
||
```
|
||
|
||
### Java
|
||
|
||
```bash
|
||
cd java/recipe
|
||
jbang <FileName>.java
|
||
```
|
||
|
||
## Contributing
|
||
|
||
- Propose or add a new recipe by creating a markdown file in your language's `cookbook/` folder and a runnable example in `recipe/`
|
||
- Follow repository guidance in [CONTRIBUTING.md](../../CONTRIBUTING.md)
|
||
|
||
## Status
|
||
|
||
Cookbook structure is complete with 7 recipes across all 5 supported languages. Each recipe includes both markdown documentation and runnable examples.
|