Skip to content

Commit 7f5ca72

Browse files
committed
dd-3039145-cast-plan-into-issues
1 parent 84eb80c commit 7f5ca72

14 files changed

Lines changed: 3768 additions & 0 deletions
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Invoke skill `shepherd-task-create-issues-from-plan` with these inputs:
2+
3+
- REPO: github/copilot-sdk
4+
- BASE_BRANCH: edburns/1917-java-embed-rust-cli-runtime-dd-3039145
5+
- PARENT_ISSUE: 1917
6+
- PLAN_DIRECTORY: 1917-java-embed-rust-cli-runtime-remove-before-merge
7+
- PLAN_FILE_NAME: 1917-embed-cli-runtime-ignorance-reduction-plan.md
8+
- QUESTIONS_SECTION: Phase 3 — Ignorance reduction: questions to answer before writing code
9+
- IMPLEMENTATION_SECTION: Phase 4 — Implementation (the build order)
10+
- EXAMPLE_ISSUES: https://github.com/github/copilot-sdk/issues/1758,https://github.com/github/copilot-sdk/issues/1759,https://github.com/github/copilot-sdk/issues/1760,https://github.com/github/copilot-sdk/issues/1761,https://github.com/github/copilot-sdk/issues/1762,https://github.com/github/copilot-sdk/issues/1839,https://github.com/github/copilot-sdk/issues/1840,https://github.com/github/copilot-sdk/issues/1876,https://github.com/github/copilot-sdk/issues/1842,https://github.com/github/copilot-sdk/issues/1843,https://github.com/edburns/Build26-BRK206-your-agent-anywhere-multiclient-multidevice-with-github-copilot-sdk/issues/13,https://github.com/edburns/Build26-BRK206-your-agent-anywhere-multiclient-multidevice-with-github-copilot-sdk/issues/4,https://github.com/edburns/Build26-BRK206-your-agent-anywhere-multiclient-multidevice-with-github-copilot-sdk/issues/5,https://github.com/edburns/Build26-BRK206-your-agent-anywhere-multiclient-multidevice-with-github-copilot-sdk/issues/6,https://github.com/edburns/Build26-BRK206-your-agent-anywhere-multiclient-multidevice-with-github-copilot-sdk/issues/7,https://github.com/edburns/Build26-BRK206-your-agent-anywhere-multiclient-multidevice-with-github-copilot-sdk/issues/10
11+
- BASE_REMOTE: upstream
12+
- ISSUE_TYPE: Task
13+
- SUPPORTING_ARTIFACTS: 1917-java-embed-rust-cli-runtime-remove-before-merge
14+
- LOG_DIRECTORY: C:\Users\edburns\workareas\copilot-sdk\1917-java-embed-rust-cli-runtime-remove-before-merge\shepherd-task-20260729-2123
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
$timestamp = '20260729-2123'
2+
$logDirFull = 'C:\Users\edburns\workareas\copilot-sdk\1917-java-embed-rust-cli-runtime-remove-before-merge\shepherd-task-20260729-2123'
3+
New-Item -ItemType Directory -Path $logDirFull -Force | Out-Null
4+
$sessionSharePath = Join-Path $logDirFull "create-issues-session-$timestamp.md"
5+
$sessionJsonPath = Join-Path $logDirFull "create-issues-session-$timestamp.json"
6+
$sessionOtelPath = Join-Path $logDirFull "create-issues-otel-$timestamp.jsonl"
7+
$promptPath = 'C:\Users\edburns\workareas\copilot-sdk\1917-java-embed-rust-cli-runtime-remove-before-merge\shepherd-task-20260729-2123\20260729-2123-invoke-shepherd-task-create-issues-from-plan-skill.md'
8+
$prompt = Get-Content $promptPath -Raw
9+
Write-Output "[shepherd-task] Logging create-issues run to: $logDirFull"
10+
$env:COPILOT_OTEL_FILE_EXPORTER_PATH = $sessionOtelPath
11+
$copilotExit = 0
12+
try {
13+
$prompt | copilot --yolo --output-format json --share $sessionSharePath > $sessionJsonPath
14+
$copilotExit = $LASTEXITCODE
15+
}
16+
finally {
17+
Remove-Item Env:\COPILOT_OTEL_FILE_EXPORTER_PATH -ErrorAction SilentlyContinue
18+
}
19+
if ($copilotExit -ne 0) {
20+
Write-Error "[shepherd-task] FAILED: copilot exited with code $copilotExit"
21+
}
22+
else {
23+
Write-Output "[shepherd-task] Create-issues session complete."
24+
}

‎1917-java-embed-rust-cli-runtime-remove-before-merge/shepherd-task-20260729-2123/create-issues-session-20260729-2123.md‎

Lines changed: 2827 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
[
2+
{
3+
"linked": true,
4+
"number": 2143,
5+
"subsection": "4.1 — Parent POM restructure",
6+
"id": 5015126571,
7+
"body_verified": true,
8+
"title": "[Java] Embed Rust CLI runtime 4.1: Parent POM restructure to multi-module reactor",
9+
"url": "https://github.com/github/copilot-sdk/issues/2143",
10+
"body_file": "issue-bodies/01-parent-pom-restructure-body.md"
11+
},
12+
{
13+
"linked": true,
14+
"number": 2144,
15+
"body_verified": true,
16+
"url": "https://github.com/github/copilot-sdk/issues/2144",
17+
"body_file": "issue-bodies/02-platform-detection-utility-body.md",
18+
"title": "[Java] Embed Rust CLI runtime 4.2: Platform detection utility",
19+
"subsection": "4.2 — Platform detection utility",
20+
"id": 5015131550
21+
},
22+
{
23+
"subsection": "4.3 — Native binary extraction and caching",
24+
"url": "https://github.com/github/copilot-sdk/issues/2145",
25+
"body_file": "issue-bodies/03-native-binary-extraction-caching-body.md",
26+
"body_verified": true,
27+
"title": "[Java] Embed Rust CLI runtime 4.3: Native binary extraction and caching",
28+
"linked": true,
29+
"id": 5015132410,
30+
"number": 2145
31+
},
32+
{
33+
"title": "[Java] Embed Rust CLI runtime 4.4: JNA binding interface and implementation",
34+
"subsection": "4.4 — JNA binding interface and implementation",
35+
"body_file": "issue-bodies/04-jna-binding-interface-impl-body.md",
36+
"body_verified": true,
37+
"linked": true,
38+
"url": "https://github.com/github/copilot-sdk/issues/2146",
39+
"number": 2146,
40+
"id": 5015133322
41+
},
42+
{
43+
"subsection": "4.5 — FFI runtime host and transport streams",
44+
"body_file": "issue-bodies/05-ffi-runtime-host-transport-streams-body.md",
45+
"id": 5015134150,
46+
"linked": true,
47+
"number": 2147,
48+
"title": "[Java] Embed Rust CLI runtime 4.5: FFI runtime host and transport streams",
49+
"body_verified": true,
50+
"url": "https://github.com/github/copilot-sdk/issues/2147"
51+
},
52+
{
53+
"id": 5015134913,
54+
"body_file": "issue-bodies/06-transport-integration-copilot-client-body.md",
55+
"linked": true,
56+
"number": 2148,
57+
"title": "[Java] Embed Rust CLI runtime 4.6: Transport integration with CopilotClient",
58+
"url": "https://github.com/github/copilot-sdk/issues/2148",
59+
"body_verified": true,
60+
"subsection": "4.6 — Transport integration with CopilotClient"
61+
},
62+
{
63+
"id": 5015135684,
64+
"body_file": "issue-bodies/07-native-binary-download-classifier-jar-body.md",
65+
"linked": true,
66+
"body_verified": true,
67+
"subsection": "4.7 — Native binary download and classifier JAR module",
68+
"title": "[Java] Embed Rust CLI runtime 4.7: Native binary download and classifier JAR module",
69+
"url": "https://github.com/github/copilot-sdk/issues/2149",
70+
"number": 2149
71+
},
72+
{
73+
"url": "https://github.com/github/copilot-sdk/issues/2150",
74+
"number": 2150,
75+
"body_verified": true,
76+
"id": 5015136599,
77+
"title": "[Java] Embed Rust CLI runtime 4.8: E2E integration test",
78+
"body_file": "issue-bodies/08-e2e-integration-test-body.md",
79+
"subsection": "4.8 — E2E integration test",
80+
"linked": true
81+
},
82+
{
83+
"linked": true,
84+
"id": 5015137411,
85+
"body_verified": true,
86+
"title": "[Java] Embed Rust CLI runtime 4.9: CI workflow updates",
87+
"url": "https://github.com/github/copilot-sdk/issues/2151",
88+
"number": 2151,
89+
"body_file": "issue-bodies/09-ci-workflow-updates-body.md",
90+
"subsection": "4.9 — CI workflow updates"
91+
}
92+
]
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
## Overview
2+
3+
Convert the single-module `java/pom.xml` into a multi-module Maven reactor. Move the existing SDK code into a `sdk/` subdirectory while preserving its GAV (`com.github:copilot-sdk-java`).
4+
5+
**This is task 4.1 of 9 in the implementation plan.** Tasks are assigned, completed, and merged serially in this listed order.
6+
7+
**Branch:** `edburns/1917-java-embed-rust-cli-runtime-dd-3039145` on `upstream`
8+
9+
## Plan and supporting resources
10+
11+
On the `edburns/1917-java-embed-rust-cli-runtime-dd-3039145` branch, the directory `1917-java-embed-rust-cli-runtime-remove-before-merge` contains the plan (`1917-embed-cli-runtime-ignorance-reduction-plan.md`) and supporting resources (spikes, prototypes, diagrams).
12+
13+
**Read the entire plan before working.**
14+
15+
## Relevant plan sections to carefully re-read
16+
17+
- **Section 3.1 — Maven module structure for per-platform classifier JARs** — Resolution: Option B — hybrid multi-module reactor. The reactor structure is:
18+
```
19+
java/
20+
├── pom.xml (parent, packaging=pom, new GAV: com.github:copilot-sdk-java-parent)
21+
├── sdk/
22+
│ └── pom.xml (existing SDK, KEEPS GAV: com.github:copilot-sdk-java)
23+
├── copilot-native/
24+
│ └── pom.xml (new GAV: com.github:copilot-sdk-java-runtime)
25+
├── copilot-native-all/
26+
│ └── pom.xml (optional monolithic: com.github:copilot-sdk-java-runtime-all)
27+
```
28+
Key decisions: the existing `copilot-sdk-java` GAV is preserved (no breaking change); the parent POM is `packaging=pom` and internal-only; no dependency from `copilot-sdk-java` to `copilot-sdk-java-runtime`.
29+
- **Section 4.1 — Parent POM restructure** (the primary task description)
30+
- **TDD discipline for all implementation steps** — every step must follow test-driven workflow: write tests first, implement until green, refactor, gate before proceeding.
31+
32+
## Deliverables
33+
34+
### Files to create
35+
36+
1. **`java/pom.xml`** — New parent POM (`com.github:copilot-sdk-java-parent`, `packaging=pom`). Declares `<modules>` for `sdk`, `copilot-native`, and `copilot-native-all`. Centralizes shared properties, plugin versions, and `copilot.sdk.root` path. The `copilot-native` and `copilot-native-all` modules do NOT need to exist yet — they are created in later tasks. Include them in `<modules>` commented out or in a profile, so the reactor builds with just `sdk` for now.
37+
38+
### Files to move
39+
40+
2. **Existing `java/pom.xml` → `java/sdk/pom.xml`** — Add `<parent>` pointing to `copilot-sdk-java-parent`. Preserve existing GAV `com.github:copilot-sdk-java`. All existing source, test, and resource paths must resolve correctly from the new `java/sdk/` location.
41+
3. **Existing `java/src/` → `java/sdk/src/`**
42+
4. **Existing `java/config/` → `java/sdk/config/`** (or keep at `java/config/` and reference via `${project.parent.basedir}/config/` — choose whichever keeps paths simpler)
43+
44+
### Files to update
45+
46+
5. **`justfile`** — Update `java/` paths to `java/sdk/` where needed.
47+
6. **`.github/workflows/java-sdk-tests.yml`** — Update working directory references from `java/` to `java/sdk/` or `java/` as appropriate for the reactor.
48+
7. **Any other workflows referencing `java/pom.xml`** — search `.github/workflows/` for references to `java/pom.xml` or `java/` build commands and update them.
49+
50+
## Gating tests and criteria
51+
52+
All of the following must pass before this task is considered complete:
53+
54+
1. **Reactor build:** `mvn clean verify` from `java/` runs the full reactor successfully.
55+
2. **SDK-only build:** `mvn -pl sdk clean verify` from `java/` builds and tests the SDK exactly as before the restructure.
56+
3. **All existing tests pass:** Every existing unit test and integration test passes without modification (unless path changes require adjustment).
57+
4. **CI workflows work:** The updated workflow YAML files reference the correct directories and would run correctly.
58+
5. **GAV preservation:** The SDK artifact's GAV remains `com.github:copilot-sdk-java` — no consumer-visible change.
59+
6. **Spotless compliance:** `mvn spotless:check` passes.
60+
61+
## Out of scope
62+
63+
- Creating the `copilot-native` or `copilot-native-all` module directories or POMs (tasks 4.7 and later).
64+
- Any native binary handling, JNA dependencies, or FFI code.
65+
- Changes to Java source code (only build/project structure changes).
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
## Overview
2+
3+
Convert the single-module `java/pom.xml` into a multi-module Maven reactor. Move the existing SDK code into a `sdk/` subdirectory while preserving its GAV (`com.github:copilot-sdk-java`).
4+
5+
**This is task 4.1 of 9 in the implementation plan.** Tasks are assigned, completed, and merged serially in this listed order.
6+
7+
**Branch:** `edburns/1917-java-embed-rust-cli-runtime-dd-3039145` on `upstream`
8+
9+
## Plan and supporting resources
10+
11+
On the `edburns/1917-java-embed-rust-cli-runtime-dd-3039145` branch, the directory `1917-java-embed-rust-cli-runtime-remove-before-merge` contains the plan (`1917-embed-cli-runtime-ignorance-reduction-plan.md`) and supporting resources (spikes, prototypes, diagrams).
12+
13+
**Read the entire plan before working.**
14+
15+
## Relevant plan sections to carefully re-read
16+
17+
- **Section 3.1 — Maven module structure for per-platform classifier JARs** — Resolution: Option B — hybrid multi-module reactor. The reactor structure is:
18+
```
19+
java/
20+
├── pom.xml (parent, packaging=pom, new GAV: com.github:copilot-sdk-java-parent)
21+
├── sdk/
22+
│ └── pom.xml (existing SDK, KEEPS GAV: com.github:copilot-sdk-java)
23+
├── copilot-native/
24+
│ └── pom.xml (new GAV: com.github:copilot-sdk-java-runtime)
25+
├── copilot-native-all/
26+
│ └── pom.xml (optional monolithic: com.github:copilot-sdk-java-runtime-all)
27+
```
28+
Key decisions: the existing `copilot-sdk-java` GAV is preserved (no breaking change); the parent POM is `packaging=pom` and internal-only; no dependency from `copilot-sdk-java` to `copilot-sdk-java-runtime`.
29+
- **Section 4.1 — Parent POM restructure** (the primary task description)
30+
- **TDD discipline for all implementation steps** — every step must follow test-driven workflow: write tests first, implement until green, refactor, gate before proceeding.
31+
32+
## Deliverables
33+
34+
### Files to create
35+
36+
1. **`java/pom.xml`** — New parent POM (`com.github:copilot-sdk-java-parent`, `packaging=pom`). Declares `<modules>` for `sdk`, `copilot-native`, and `copilot-native-all`. Centralizes shared properties, plugin versions, and `copilot.sdk.root` path. The `copilot-native` and `copilot-native-all` modules do NOT need to exist yet — they are created in later tasks. Include them in `<modules>` commented out or in a profile, so the reactor builds with just `sdk` for now.
37+
38+
### Files to move
39+
40+
2. **Existing `java/pom.xml` → `java/sdk/pom.xml`** — Add `<parent>` pointing to `copilot-sdk-java-parent`. Preserve existing GAV `com.github:copilot-sdk-java`. All existing source, test, and resource paths must resolve correctly from the new `java/sdk/` location.
41+
3. **Existing `java/src/` → `java/sdk/src/`**
42+
4. **Existing `java/config/` → `java/sdk/config/`** (or keep at `java/config/` and reference via `${project.parent.basedir}/config/` — choose whichever keeps paths simpler)
43+
44+
### Files to update
45+
46+
5. **`justfile`** — Update `java/` paths to `java/sdk/` where needed.
47+
6. **`.github/workflows/java-sdk-tests.yml`** — Update working directory references from `java/` to `java/sdk/` or `java/` as appropriate for the reactor.
48+
7. **Any other workflows referencing `java/pom.xml`** — search `.github/workflows/` for references to `java/pom.xml` or `java/` build commands and update them.
49+
50+
## Gating tests and criteria
51+
52+
All of the following must pass before this task is considered complete:
53+
54+
1. **Reactor build:** `mvn clean verify` from `java/` runs the full reactor successfully.
55+
2. **SDK-only build:** `mvn -pl sdk clean verify` from `java/` builds and tests the SDK exactly as before the restructure.
56+
3. **All existing tests pass:** Every existing unit test and integration test passes without modification (unless path changes require adjustment).
57+
4. **CI workflows work:** The updated workflow YAML files reference the correct directories and would run correctly.
58+
5. **GAV preservation:** The SDK artifact's GAV remains `com.github:copilot-sdk-java` — no consumer-visible change.
59+
6. **Spotless compliance:** `mvn spotless:check` passes.
60+
61+
## Out of scope
62+
63+
- Creating the `copilot-native` or `copilot-native-all` module directories or POMs (tasks 4.7 and later).
64+
- Any native binary handling, JNA dependencies, or FFI code.
65+
- Changes to Java source code (only build/project structure changes).
66+

0 commit comments

Comments
 (0)