Commit Graph

1804 Commits

Author SHA1 Message Date
github-actions[bot] 5c1ed34a51 chore: publish from staged 2026-06-12 02:00:40 +00:00
github-actions[bot] 2154b6b735 chore: publish from staged 2026-06-12 01:44:02 +00:00
github-actions[bot] 03052d4183 chore: publish from staged 2026-06-12 00:09:37 +00:00
github-actions[bot] 2ca3b85095 chore: publish from staged 2026-06-11 05:58:49 +00:00
github-actions[bot] 68945defe3 chore: publish from staged 2026-06-11 05:18:03 +00:00
github-actions[bot] c66eb401d2 chore: publish from staged 2026-06-10 05:15:22 +00:00
github-actions[bot] 88dd4b3bc7 chore: publish from staged 2026-06-10 04:45:05 +00:00
github-actions[bot] dd56f2575a chore: publish from staged 2026-06-10 04:44:36 +00:00
github-actions[bot] bbf8f7bccd chore: publish from staged 2026-06-10 04:43:53 +00:00
github-actions[bot] d45fb99396 chore: publish from staged 2026-06-10 04:36:46 +00:00
github-actions[bot] b21ec1daeb chore: publish from staged 2026-06-10 04:34:58 +00:00
github-actions[bot] 5b20e61978 chore: publish from staged 2026-06-10 04:30:07 +00:00
github-actions[bot] d0ba91a006 chore: publish from staged 2026-06-09 06:58:26 +00:00
github-actions[bot] d012a24e98 chore: publish from staged 2026-06-09 06:57:59 +00:00
github-actions[bot] 4a5a7897ad chore: publish from staged 2026-06-09 05:55:34 +00:00
github-actions[bot] 1262e69ac7 chore: publish from staged 2026-06-09 05:54:11 +00:00
github-actions[bot] c5a197e347 chore: publish from staged 2026-06-09 05:09:05 +00:00
github-actions[bot] 3b5ee9cfe8 chore: publish from staged 2026-06-08 06:21:10 +00:00
github-actions[bot] 338bc5f711 chore: publish from staged 2026-06-05 22:43:42 +00:00
github-actions[bot] 62d44f1697 chore: publish from staged 2026-06-04 19:53:52 +00:00
github-actions[bot] 2205f68e48 chore: publish from staged 2026-06-04 19:31:15 +00:00
github-actions[bot] 1fd59ee7e1 chore: publish from staged 2026-06-02 18:18:24 +00:00
github-actions[bot] 3d8e3d6e98 chore: publish from staged 2026-05-29 04:10:23 +00:00
github-actions[bot] b01ef7005a chore: publish from staged 2026-05-29 01:23:52 +00:00
github-actions[bot] cc1000d4a9 chore: publish from staged 2026-05-29 01:16:52 +00:00
github-actions[bot] b778365674 chore: publish from staged 2026-05-29 01:11:32 +00:00
github-actions[bot] 53230940c5 chore: publish from staged 2026-05-28 05:50:33 +00:00
github-actions[bot] a1ebf8a4f2 chore: publish from staged 2026-05-28 05:07:46 +00:00
github-actions[bot] 2524d960ca chore: publish from staged 2026-05-28 05:07:21 +00:00
github-actions[bot] e544bc04b0 chore: publish from staged 2026-05-28 05:05:26 +00:00
github-actions[bot] e19676b683 chore: publish from staged 2026-05-28 05:04:43 +00:00
github-actions[bot] 6941e57afd chore: publish from staged 2026-05-28 00:10:20 +00:00
github-actions[bot] 58d82917b4 chore: publish from staged 2026-05-28 00:09:38 +00:00
github-actions[bot] a3ee80acdb chore: publish from staged 2026-05-28 00:09:02 +00:00
github-actions[bot] 1f4149a216 chore: publish from staged 2026-05-28 00:08:06 +00:00
github-actions[bot] e9089dd31c chore: publish from staged 2026-05-27 20:09:44 +00:00
github-actions[bot] b3ca113258 chore: publish from staged 2026-05-27 01:10:37 +00:00
github-actions[bot] 1979b1b543 chore: publish from staged 2026-05-27 01:05:58 +00:00
github-actions[bot] 92249bc03e chore: publish from staged 2026-05-27 00:37:28 +00:00
github-actions[bot] 9ff1151e28 chore: publish from staged 2026-05-27 00:32:58 +00:00
github-actions[bot] 75aef48aee chore: publish from staged 2026-05-27 00:25:23 +00:00
github-actions[bot] 9e94c25dd8 chore: publish from staged 2026-05-26 23:56:28 +00:00
github-actions[bot] 5551be581a chore: publish from staged 2026-05-26 23:51:44 +00:00
github-actions[bot] 42615dba90 chore: publish from staged 2026-05-26 23:47:20 +00:00
github-actions[bot] fb74fd709f chore: publish from staged 2026-05-26 00:45:04 +00:00
github-actions[bot] 83cd18c260 chore: publish from staged 2026-05-25 23:47:57 +00:00
github-actions[bot] 5cb6ef998e Add external plugin vercel-plugin (#1829)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-26 09:47:30 +10:00
Mikael c9dace874d feat: add efcore-d2-db-diagram skill and related documentation (#1821) 2026-05-25 11:34:34 +10:00
Ed Burns 59fdc7867a Prepare for archiving of copilot-sdk-java repo in favor of java directory in copilot-sdk (#1811)
* Prepare for archiving of copilot-sdk-java repo in favor of java directory in copilot-sdk

* Update README

* Update with latest `java` from `copilot-sdk`.

### 16:37 Prompt

I have added `copilot-sdk-00` to this VS Code workspace. The `copilot-sdk-00/java` directory **is** the Copilot SDK for which this `copilot-sdk-java.instructions.md` is the instructions.

Do a deep read of the source code in `copilot-sdk-00/java`.

Do a deep read of the existing `copilot-sdk-java.instructions.md`.

Suggest any updates based on what should be changed in `copilot-sdk-java.instructions.md`, based on your findings.

### 16:51 Response

Now I have a comprehensive picture. Let me summarize the findings and suggest updates:

---

Based on my deep read of the Java SDK source code and the current copilot-sdk-java.instructions.md, here are the updates I'd suggest:

## Issues Found

### 1. Incorrect: `session.setModel()` documentation is slightly wrong
The instructions show `session.setModel(modelId)` — this is actually correct (it exists on CopilotSession), but the full signatures should be documented:
- `setModel(String model)`
- `setModel(String model, String reasoningEffort)`
- `setModel(String model, String reasoningEffort, ModelCapabilitiesOverride modelCapabilities)` *(since 1.3.0)*

### 2. Incorrect: `PreToolUseHookOutput` API
The instructions show:
```java
var decision = new PreToolUseHookOutput().setKind("allow");
```
But actually `PreToolUseHookOutput` is a **record** with static factory methods:
- `PreToolUseHookOutput.allow()`
- `PreToolUseHookOutput.deny()`
- `PreToolUseHookOutput.deny(String reason)`
- `PreToolUseHookOutput.ask()`

### 3. Missing: `CopilotClientOptions` fields not documented
These are in the source but not in the instructions:
- `setRemote(boolean)` — Mission Control integration
- `setTelemetry(TelemetryConfig)` — OpenTelemetry export *(since 1.2.0)*
- `setSessionIdleTimeoutSeconds(int)` — Idle timeout *(since 1.3.0)*
- `setExecutor(Executor)` — Custom thread pool
- `setTcpConnectionToken(String)` — TCP security token

### 4. Missing: `ToolDefinition.createSkipPermission()`
A third factory method exists *(since 1.2.0)* that skips the CLI permission request entirely. The instructions only mention `create()` and `createOverride()`.

### 5. Missing: Session listing with filters
The instructions show `client.listSessions()` but don't mention the overload with `SessionListFilter` that can filter by `cwd`, `gitRoot`, `repository`, and `branch`.

### 6. Missing: `session.log()` with URL
The instructions show `log(message, level, ephemeral)` but there's also a 4-param overload:
```java
session.log(String message, String level, Boolean ephemeral, String url)
```

### 7. Missing: MCP Server Configuration
The instructions mention `setMcpServers()` in the SessionConfig options list but don't show how to configure them. There are two types:
- `McpStdioServerConfig` — Local/stdio-based servers
- `McpHttpServerConfig` — HTTP/SSE remote servers

### 8. Missing: Cloud Sessions / Remote features
The `setRemote(boolean)` option on client options and per-session GitHub token support for cloud/content-exclusion scenarios.

### 9. Missing: `ModelCapabilitiesOverride`
Vision/image support can be controlled via model capabilities override, but this isn't documented.

### 10. Missing: `EventErrorPolicy` enum values
The instructions mention `EventErrorPolicy.SUPPRESS_AND_LOG_ERRORS` but don't list the other value: `PROPAGATE_AND_LOG_ERRORS` (which is the default).

### 11. Missing: `onLifecycle()` typed overload
There's also `onLifecycle(String eventType, SessionLifecycleHandler handler)` for filtering specific lifecycle events.

### 12. Minor: `send()` return type
`session.send()` returns `CompletableFuture<String>` (the message ID), which is worth mentioning since it can be used for correlation.

---

## Recommended Priority

**High priority** (incorrect info):
- Fix #2 (`PreToolUseHookOutput` API)

**Medium priority** (missing important features):
- Add #4 (`createSkipPermission`)
- Add #7 (MCP server configuration examples)
- Add #3 (missing client options)
- Add #5 (session list filters)

**Low priority** (nice-to-have completeness):
- Expand #1 (setModel overloads)
- Add #6 (log with URL)
- Add #9-12 (minor additions)

Would you like me to apply any or all of these updates to the file?

### 16:52 Prompt

Yes. Apply all of these.

### 16:54 Response

Created 12 todos

Now I have the full file. Let me apply all the changes:

Starting: *Fix PreToolUseHookOutput API (incorrect)* (1/12)

Replacing 84 lines with 199 lines in [](file:///e%3A/workareas/awesome-copilot-00/instructions/copilot-sdk-java.instructions.md)

```

```

Completed: *Fix PreToolUseHookOutput API (incorrect)* (1/12)

All 12 updates have been applied to copilot-sdk-java.instructions.md:

1. **Fixed** `PreToolUseHookOutput` — now uses correct static factory methods (`allow()`, `deny()`, `ask()`) instead of the incorrect `new PreToolUseHookOutput().setKind("allow")`
2. **Added** `ToolDefinition.createSkipPermission()` section (since 1.2.0)
3. **Added** 5 missing `CopilotClientOptions` fields: `remote`, `telemetry`, `sessionIdleTimeoutSeconds`, `executor`, `tcpConnectionToken`
4. **Added** `SessionListFilter` with `setRepository()`, `setBranch()`, `setCwd()`, `setGitRoot()`
5. **Expanded** `setModel()` to show all 3 overloads (model, reasoning effort, capabilities)
6. **Added** `log(message, level, ephemeral, url)` overload
7. **Added** full MCP server configuration section with `McpStdioServerConfig` and `McpHttpServerConfig` examples
8. **Added** `EventErrorPolicy` enum values with explanations
9. **Added** `onLifecycle(String eventType, handler)` filtered overload
10. **Added** note that `send()` returns `CompletableFuture<String>` (message ID for correlation)
11. **Added** `ModelCapabilitiesOverride` section with vision/limits configuration (since 1.3.0)
12. **Added** `remote` option for Mission Control / cloud session integration
13. **Bonus:** Expanded `SessionHooks` example to include all 5 hook types (`onPreToolUse`, `onPostToolUse`, `onUserPromptSubmitted`, `onSessionStart`, `onSessionEnd`)

Made changes.

### 16:54 Prompt

In the "## Core Principles" section. Add a bullet point that describes how `Optional` is used in the API.

### 16:58 Response

Searched for text `Optional` (`copilot-sdk-00` · `java/src/main/java/com/github/copilot/sdk/json/*.java`), 10 results

Searched for text `Optional` (`copilot-sdk-00` · `java/src/main/java/com/github/copilot/sdk/json/InfiniteSessionConfig.java`), 13 results

Replacing 7 lines with 8 lines in [](file:///e%3A/workareas/awesome-copilot-00/instructions/copilot-sdk-java.instructions.md)

```

```
Added the bullet point describing how `Optional<T>`, `OptionalInt`, and `OptionalDouble` are used on config class getters to distinguish "not set" from explicit values, while setters accept raw types and return `this` for fluent chaining.

Made changes.

### 16:58 Prompt

Consider this code from the Java README.

```java
public class CopilotSDK {
    public static void main(String[] args) throws Exception {
        var lastMessage = new String[]{null};

        // Create and start client
        try (var client = new CopilotClient()) {  // JDK 25+: comment out this line
        // JDK 25+: uncomment the following 3 lines for virtual thread support
        // var options = new CopilotClientOptions()
        //     .setExecutor(Executors.newVirtualThreadPerTaskExecutor());
        // try (var client = new CopilotClient(options)) {
            client.start().get();

            // Create a session
            var session = client.createSession(
                new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("claude-sonnet-4.5")).get();

            // Handle assistant message events
            session.on(AssistantMessageEvent.class, msg -> {
                lastMessage[0] = msg.getData().content();
                System.out.println(lastMessage[0]);
            });

            // Handle session usage info events
            session.on(SessionUsageInfoEvent.class, usage -> {
                var data = usage.getData();
                System.out.println("\n--- Usage Metrics ---");
                System.out.println("Current tokens: " + data.currentTokens().intValue());
                System.out.println("Token limit: " + data.tokenLimit().intValue());
                System.out.println("Messages count: " + data.messagesLength().intValue());
            });

            // Send a message
            var completable = session.sendAndWait(new MessageOptions().setPrompt("What is 2+2?"));
            // and wait for completion
            completable.get();
        }

        boolean success = lastMessage[0] != null && lastMessage[0].contains("4");
        System.exit(success ? 0 : -1);
    }
}
```

I want to get across the very important JDK 25 comment. What's the best place to encode that knowledge in the instructions?

* Apply review suggestions
2026-05-25 11:29:34 +10:00
Jakub Jareš 5cab59b03e Add visual-pr plugin — screenshot capture, annotation, and PR embedding (#1804)
* Add visual-pr plugin: screenshot capture, annotation, PR embedding, and screen recording

Four skills that teach Copilot to capture UI screenshots (Playwright + PIL),
annotate them with algorithmic label placement, embed before/after images
in PR descriptions, and record animated GIF demos.

Includes demo images showing the annotation engine on GitHub Issues.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update generated README tables and marketplace.json

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Embed annotate.py module in image-annotations skill

The full working module (annotate_image, grid_image, diff_images) is now
included as a code block so users can save it as annotate.py and import
directly. Scrubbed project-specific labels from examples.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address review feedback: mss.mss() context manager, fix RECT struct, consistent placeholder

- Use mss.mss() context manager instead of mss.MSS() (ui-screenshots, screen-recording)
- Fix broken RECT struct in window+GIF combining example (screen-recording)
- Consistent projectId placeholder in AzDO upload example (pr-screenshots)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-25 11:22:39 +10:00