Expand codegen agentic fix workflow to also fix java.ts#102
Conversation
…ma changes --- ## Summary Updates the Java code generator and handwritten SDK/test code to handle the `@github/copilot` 1.0.35 schema format, which changed from inline nested type definitions to `$ref` references pointing to `#/definitions/` entries. Without this fix, regenerated types were missing fields and the build failed. 75 files changed, 616 insertions(+), 1836 deletions(-) ## Changes ### Code generator (`scripts/codegen/java.ts`) - Added `resolveRef()` helper to dereference `$ref` pointers in JSON schemas. - Added `pendingStandaloneTypes` map to collect types referenced via `$ref` and generate them as top-level Java files instead of nested records. - Added `generatePendingStandaloneTypes()`, `generateStandaloneEnum()`, and `generateStandaloneRecord()` to emit the new standalone types. - Updated all property/field generation paths to resolve `$ref` before inspecting type, enum, or nested-object shapes. ### Regenerated files (`src/generated/java/`) - ~65 generated source files updated — nested inner records/enums replaced by standalone types (e.g. `McpServer`, `Plugin`, `Skill`, `Tool`, `Model`, `AccountQuotaSnapshot`, `DiscoveredMcpServer`, `UIElicitationSchema`, `UIElicitationResponseAction`, `ModelCapabilitiesOverride`, etc.). - Several numeric fields changed from `double` to `Long` (`PingResult`, `SessionShellExecParams`, model capability limits). - New RPC API class `ServerMcpConfigApi` and `SessionPermissionsApi` added. ### Handwritten source (`CopilotSession.java`) - Updated all type references from old nested types to new standalone types (e.g. `SessionMcpListResultServersItem` → `McpServer`). ### Test files (5 files) - **`GeneratedRpcRecordsCoverageTest.java`** — Replaced all nested type references with standalone types; fixed `double` → `Long` constructors. - **`GeneratedEventTypesCoverageTest.java`** — Updated event type name set. - **`GeneratedRpcApiCoverageTest.java`** — Updated `workspace` → `workspaces`, added `SessionLogLevel`, new API classes. - **`RpcWrappersTest.java`** — `session.workspace` → `session.workspaces`. - **`SessionEventDeserializationTest.java`** — Updated JSON keys for `compactionTokensUsed` (`input` → `inputTokens`, `output` → `outputTokens`, `cachedInput` → `cacheReadTokens`). ### Dependency bump - `@github/copilot` 1.0.24 → 1.0.35 in `scripts/codegen/package.json`. - **`.github/workflows/update-copilot-dependency.yml`** — After codegen and PR creation, `mvn verify` is run. On failure, the agentic fix workflow is triggered. Includes a polling loop that waits for the fix to complete and runs a final verification. ## Design The pipeline follows a two-workflow pattern: 1. **Trigger workflows** (`codegen-check.yml`, `update-copilot-dependency.yml`) detect failures and dispatch the agentic fix. 2. **Fix workflow** (`codegen-agentic-fix.lock.yml`) runs under gh-aw guardrails with scoped permissions, network firewall, and MCP gateway. It checks out the branch, reproduces the failure, applies fixes to handwritten code only, and pushes via `push-to-pull-request-branch` safe-output. Key constraints enforced on the agent: - Never modify `src/generated/java/`, `pom.xml`, `scripts/codegen/`, or `.github/` - Maximum 3 fix attempts before escalating via PR comment - Must run `mvn spotless:apply` before committing - Only pushes if `mvn verify` passes ## Testing - All workflow files pass `actionlint` with zero errors - The `codegen-agentic-fix.lock.yml` was successfully compiled by `gh aw compile v0.68.3` - End-to-end testing will occur when this PR and #94 are both merged — Dependabot PR #99 (bump `@github/copilot` 1.0.24 → 1.0.35) already exists and its Codegen Check is failing as expected
---
## Summary
Updates the `codegen-agentic-fix` gh-aw workflow so the agent can modify
`scripts/codegen/java.ts` when schema changes require code generator fixes,
not just handwritten SDK/test code. This reflects the lesson learned from
the 1.0.35 update: when `@github/copilot` schemas change structurally
(e.g. inline types → `$ref` references), the code generator itself must
be updated before the generated output is correct.
## Changes
### Modified files
- **`.github/workflows/codegen-agentic-fix.md`** — Rewrote the agent prompt:
- Added architecture overview explaining the codegen pipeline
- Added Step 2 (Diagnose) to distinguish codegen vs handwritten failures
- Added Step 3 (Fix code generator) with instructions to read schemas,
fix `java.ts`, and re-run generation
- Expanded constraints: `java.ts` is now explicitly allowed; blanket
`scripts/codegen/` ban replaced with targeted rules
- Added prominent warning against directly editing `src/generated/`
- Documented common schema change patterns ($ref, field type changes,
renamed properties) from the 1.0.35 experience
- **`.github/workflows/agentics-maintenance.yml`** — Lockfile regenerated
by `gh aw compile` (updated hash for changed manifest)
- **`.github/aw/actions-lock.json`** — Updated by `gh aw compile`
There was a problem hiding this comment.
Pull request overview
This PR updates the agentic “codegen-agentic-fix” workflow prompt so automation can fix scripts/codegen/java.ts when schema changes require generator updates, and includes the resulting downstream schema/codegen updates (dependency bump + regenerated Java RPC/event types) plus test adjustments.
Changes:
- Expanded
.github/workflows/codegen-agentic-fix.mdinstructions to explicitly allow and guide fixes inscripts/codegen/java.ts. - Updated gh-aw maintenance artifacts (
agentics-maintenance.yml,.github/aw/actions-lock.json) after recompilation. - Bumped
@github/copilotinscripts/codegen/package.jsonand updated/generated Java RPC + session event types (with corresponding test updates).
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/codegen-agentic-fix.md | Agent prompt updated to allow code generator fixes and guide diagnosis/regeneration |
| .github/workflows/agentics-maintenance.yml | Regenerated gh-aw maintenance workflow |
| .github/aw/actions-lock.json | Updated gh-aw action pins (added setup-cli entry) |
| scripts/codegen/package.json | Bumped @github/copilot schema dependency used by codegen |
| src/test/java/com/github/copilot/sdk/generated/rpc/GeneratedRpcApiCoverageTest.java | Updated tests for renamed RPC namespaces/types (e.g., workspaces, SessionLogLevel) |
| src/test/java/com/github/copilot/sdk/RpcWrappersTest.java | Updated wrapper namespace field assertion (workspaces) |
| src/generated/java/com/github/copilot/sdk/generated/rpc/UsageMetricsModelMetricUsage.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/UsageMetricsModelMetricRequests.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/UsageMetricsModelMetric.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/UsageMetricsCodeChanges.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/UIElicitationSchema.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/UIElicitationResponseAction.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/UIElicitationResponse.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ToolsListResult.java | Refactored to reuse standalone Tool type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/Tool.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SkillsDiscoverResult.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SkillsDiscoverParams.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SkillsConfigSetDisabledSkillsParams.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/Skill.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ShellKillSignal.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionWorkspacesReadFileResult.java | New generated session RPC result |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionWorkspacesReadFileParams.java | New generated session RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionWorkspacesListFilesResult.java | New generated session RPC result |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionWorkspacesListFilesParams.java | New generated session RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionWorkspacesGetWorkspaceParams.java | New generated session RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionWorkspacesCreateFileParams.java | New generated session RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionWorkspacesApi.java | New generated session-scoped workspaces API wrapper |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionUsageGetMetricsResult.java | Refactored to reuse standalone metric types |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionUiHandlePendingElicitationParams.java | Refactored to reuse standalone elicitation response types |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionUiElicitationResult.java | Refactored to reuse standalone elicitation action enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionUiElicitationParams.java | Refactored to reuse standalone elicitation schema type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionUiApi.java | Updated doc text for elicitation |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionSkillsListResult.java | Refactored to reuse standalone Skill type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionShellKillParams.java | Refactored to reuse standalone ShellKillSignal enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionShellExecParams.java | Updated timeout numeric type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionRpc.java | Updated session RPC namespaces (auth/name/instructions/workspaces) |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionPluginsListResult.java | Refactored to reuse standalone Plugin type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionPermissionsSetApproveAllResult.java | New generated session permissions RPC result |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionPermissionsSetApproveAllParams.java | New generated session permissions RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionPermissionsResetSessionApprovalsResult.java | New generated session permissions RPC result |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionPermissionsResetSessionApprovalsParams.java | New generated session permissions RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionPermissionsApi.java | Added new generated session permissions wrapper methods |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionNameSetParams.java | New generated session name RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionNameGetResult.java | New generated session name RPC result |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionNameGetParams.java | New generated session name RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionNameApi.java | New generated session name wrapper |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionModelSwitchToParams.java | Refactored to reuse standalone model capability override types |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionModeSetParams.java | Refactored to reuse standalone SessionMode enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionModeApi.java | Updated wrapper signatures for mode namespace |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionMode.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionMcpOauthLoginResult.java | New generated session MCP OAuth RPC result |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionMcpOauthLoginParams.java | New generated session MCP OAuth RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionMcpOauthApi.java | New generated session MCP OAuth wrapper |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionMcpListResult.java | Refactored to reuse standalone McpServer type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionMcpApi.java | Added generated oauth sub-namespace |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionLogParams.java | Refactored to reuse standalone SessionLogLevel enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionLogLevel.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionInstructionsGetSourcesResult.java | New generated session instructions RPC result |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionInstructionsGetSourcesParams.java | New generated session instructions RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionInstructionsApi.java | New generated session instructions wrapper |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionHistoryTruncateResult.java | Updated numeric type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionHistoryCompactResult.java | Refactored context window type + numeric type changes |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsWriteFileParams.java | Updated numeric type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsStatResult.java | Updated time types + added error field |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsSetProviderParams.java | Refactored to reuse standalone conventions enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsSetProviderConventions.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsReaddirWithTypesResult.java | Refactored entries type + added error field |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsReaddirWithTypesEntryType.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsReaddirWithTypesEntry.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsReaddirResult.java | Added error field |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsReadFileResult.java | Added error field |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsMkdirParams.java | Updated numeric type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsErrorCode.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsError.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionFsAppendFileParams.java | Updated numeric type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionExtensionsListResult.java | Refactored to reuse standalone Extension type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionAuthGetStatusResult.java | New generated session auth RPC result |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionAuthGetStatusParams.java | New generated session auth RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionAuthApi.java | New generated session auth wrapper |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionAgentSelectResult.java | Refactored to reuse standalone AgentInfo type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionAgentReloadResult.java | Refactored to reuse standalone AgentInfo type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionAgentListResult.java | Refactored to reuse standalone AgentInfo type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/SessionAgentGetCurrentResult.java | Refactored to reuse standalone AgentInfo type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ServerSkillsConfigApi.java | New generated server skills config wrapper |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ServerSkillsApi.java | New generated server skills wrapper |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ServerSkill.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ServerRpc.java | Added generated skills namespace |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ServerMcpConfigApi.java | Added enable/disable methods |
| src/generated/java/com/github/copilot/sdk/generated/rpc/Plugin.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/PingResult.java | Updated numeric types |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ModelsListResult.java | Refactored to reuse standalone Model type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ModelPolicy.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ModelCapabilitiesSupports.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ModelCapabilitiesOverrideSupports.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ModelCapabilitiesOverrideLimitsVision.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ModelCapabilitiesOverrideLimits.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ModelCapabilitiesOverride.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ModelCapabilitiesLimitsVision.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ModelCapabilitiesLimits.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ModelCapabilities.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ModelBilling.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/Model.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/McpServerStatus.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/McpServerSource.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/McpServer.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/McpDiscoverResult.java | Refactored to reuse standalone discovered server type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/McpConfigEnableParams.java | New generated RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/McpConfigDisableParams.java | New generated RPC params |
| src/generated/java/com/github/copilot/sdk/generated/rpc/InstructionsSourcesType.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/InstructionsSourcesLocation.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/InstructionsSources.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/HistoryCompactContextWindow.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ExtensionStatus.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/ExtensionSource.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/Extension.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/DiscoveredMcpServerType.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/DiscoveredMcpServerSource.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/DiscoveredMcpServer.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/AuthInfoType.java | New generated RPC enum |
| src/generated/java/com/github/copilot/sdk/generated/rpc/AgentInfo.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/AccountQuotaSnapshot.java | New generated RPC type |
| src/generated/java/com/github/copilot/sdk/generated/rpc/AccountGetQuotaResult.java | Refactored to reuse standalone quota snapshot type |
| src/generated/java/com/github/copilot/sdk/generated/WorkspaceFileChangedOperation.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/WorkingDirectoryContextHostType.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/WorkingDirectoryContext.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/UserMessageEvent.java | Refactored agent mode enum + added new fields |
| src/generated/java/com/github/copilot/sdk/generated/UserMessageAgentMode.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/ToolExecutionCompleteResult.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/ToolExecutionCompleteEvent.java | Refactored to reuse standalone result/error types |
| src/generated/java/com/github/copilot/sdk/generated/ToolExecutionCompleteError.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/SystemMessageRole.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/SystemMessageMetadata.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/SystemMessageEvent.java | Refactored to reuse standalone role/metadata types |
| src/generated/java/com/github/copilot/sdk/generated/SkillsLoadedSkill.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/ShutdownType.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/ShutdownModelMetricUsage.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/ShutdownModelMetricRequests.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/ShutdownModelMetric.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/ShutdownCodeChanges.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/SessionWorkspaceFileChangedEvent.java | Refactored to reuse standalone operation enum |
| src/generated/java/com/github/copilot/sdk/generated/SessionStartEvent.java | Refactored to reuse standalone working directory context types |
| src/generated/java/com/github/copilot/sdk/generated/SessionSkillsLoadedEvent.java | Refactored to reuse standalone skill type |
| src/generated/java/com/github/copilot/sdk/generated/SessionResumeEvent.java | Refactored to reuse standalone working directory context types |
| src/generated/java/com/github/copilot/sdk/generated/SessionPlanChangedEvent.java | Refactored to reuse standalone operation enum |
| src/generated/java/com/github/copilot/sdk/generated/SessionMcpServersLoadedEvent.java | Refactored to reuse standalone server summary type |
| src/generated/java/com/github/copilot/sdk/generated/SessionMcpServerStatusChangedEvent.java | Refactored to reuse standalone status enum |
| src/generated/java/com/github/copilot/sdk/generated/SessionHandoffEvent.java | Refactored to reuse standalone handoff types |
| src/generated/java/com/github/copilot/sdk/generated/SessionExtensionsLoadedEvent.java | Refactored to reuse standalone extension types |
| src/generated/java/com/github/copilot/sdk/generated/SessionEvent.java | Added new event subtypes to sealed hierarchy |
| src/generated/java/com/github/copilot/sdk/generated/SessionCustomAgentsUpdatedEvent.java | Refactored to reuse standalone agent metadata type |
| src/generated/java/com/github/copilot/sdk/generated/SessionContextChangedEvent.java | Refactored host type + added repositoryHost |
| src/generated/java/com/github/copilot/sdk/generated/SessionCompactionCompleteEvent.java | Refactored to reuse new compaction token usage type |
| src/generated/java/com/github/copilot/sdk/generated/PlanChangedOperation.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/PermissionRequestedEvent.java | Added new promptRequest field |
| src/generated/java/com/github/copilot/sdk/generated/PermissionCompletedResult.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/PermissionCompletedKind.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/PermissionCompletedEvent.java | Refactored to reuse standalone permission result type; added toolCallId |
| src/generated/java/com/github/copilot/sdk/generated/McpServersLoadedServerStatus.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/McpServersLoadedServer.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/McpServerStatusChangedStatus.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/McpOauthRequiredStaticClientConfig.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/McpOauthRequiredEvent.java | Refactored to reuse standalone static client config |
| src/generated/java/com/github/copilot/sdk/generated/HookEndEvent.java | Refactored to reuse standalone error type |
| src/generated/java/com/github/copilot/sdk/generated/HookEndError.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/HandoffSourceType.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/HandoffRepository.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/ExtensionsLoadedExtensionStatus.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/ExtensionsLoadedExtensionSource.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/ExtensionsLoadedExtension.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/ElicitationRequestedSchema.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/ElicitationRequestedMode.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/ElicitationRequestedEvent.java | Refactored to reuse standalone requested schema + mode |
| src/generated/java/com/github/copilot/sdk/generated/ElicitationCompletedEvent.java | Refactored to reuse standalone completed action enum |
| src/generated/java/com/github/copilot/sdk/generated/ElicitationCompletedAction.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/CustomAgentsUpdatedAgent.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/CompactionCompleteCompactionTokensUsedCopilotUsageTokenDetail.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/CompactionCompleteCompactionTokensUsedCopilotUsage.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/CompactionCompleteCompactionTokensUsed.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/CommandsChangedEvent.java | Refactored to reuse standalone command type |
| src/generated/java/com/github/copilot/sdk/generated/CommandsChangedCommand.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/CapabilitiesChangedUI.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/CapabilitiesChangedEvent.java | Refactored to reuse standalone UI capability type |
| src/generated/java/com/github/copilot/sdk/generated/AutoModeSwitchRequestedEvent.java | New generated session event |
| src/generated/java/com/github/copilot/sdk/generated/AutoModeSwitchCompletedEvent.java | New generated session event |
| src/generated/java/com/github/copilot/sdk/generated/AssistantUsageQuotaSnapshot.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/AssistantUsageEvent.java | Refactored to reuse standalone quota snapshot and copilot usage types |
| src/generated/java/com/github/copilot/sdk/generated/AssistantUsageCopilotUsageTokenDetail.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/AssistantUsageCopilotUsage.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/AssistantMessageToolRequestType.java | New generated session-event enum |
| src/generated/java/com/github/copilot/sdk/generated/AssistantMessageToolRequest.java | New generated session-event type |
| src/generated/java/com/github/copilot/sdk/generated/AssistantMessageEvent.java | Refactored to reuse standalone tool request type |
Copilot's findings
Files not reviewed (1)
- scripts/codegen/package-lock.json: Language not supported
- Files reviewed: 8/199 changed files
- Comments generated: 2
| ### Step 5: Push fixes | ||
|
|
||
| After `mvn verify` passes, commit the changes and use the `push_to_pull_request_branch` safe-output tool to push to PR #${{ inputs.pr_number }}: | ||
| After `mvn verify` passes, commit all changes and use the `push_to_pull_request_branch` safe-output tool to push to PR #${{ inputs.pr_number }}: | ||
|
|
||
| ```bash | ||
| git add -A | ||
| git commit -m "Fix build failures after codegen update | ||
| git commit -m "Fix codegen and build failures after @github/copilot update | ||
|
|
||
| Automated fix applied by codegen-agentic-fix workflow." | ||
| ``` | ||
|
|
||
| Then call the `push_to_pull_request_branch` tool to push your commits to the PR branch. | ||
|
|
There was a problem hiding this comment.
The prompt refers to calling the push_to_pull_request_branch safe-output/tool, but earlier in the file the safe-outputs section defines push-to-pull-request-branch (kebab-case). If safe-output names must match exactly, this inconsistency can break the workflow or confuse the agent. Make the naming consistent (prefer the snake_case form that the compiled lock workflow uses) and update references accordingly.
There was a problem hiding this comment.
Fixed in 9c80cc9 — changed push-to-pull-request-branch and add-comment (which had the same inconsistency) to push_to_pull_request_branch and add_comment respectively in the safe-outputs section to match the snake_case references used in the document body.
| "dependencies": { | ||
| "@github/copilot": "1.0.24", | ||
| "@github/copilot": "^1.0.35", | ||
| "json-schema": "^0.4.0", |
There was a problem hiding this comment.
The PR description focuses on expanding the codegen-agentic-fix workflow, but this PR also changes the codegen dependency version (@github/copilot) which triggers large generated-code updates. Please update the PR description to explicitly call out the dependency bump / regeneration impact (or split into separate PRs) so reviewers understand why generated sources and tests changed.
There was a problem hiding this comment.
The PR description should be updated to include a note about the @github/copilot dependency bump from 1.0.24 to ^1.0.35 and the resulting regenerated code changes. Since I don't have a tool to directly edit the PR body, the author should add something like:
Also includes: Bumps
@github/copilotinscripts/codegen/package.jsonfrom1.0.24to^1.0.35, which triggered regeneration of the Java sources undersrc/generated/java/viascripts/codegen/java.ts.
to the "Changes" section of the PR description.
…c-fix.md Agent-Logs-Url: https://github.com/github/copilot-sdk-java/sessions/b6a75ef1-fd8c-4a1b-ac77-589593f6dc9e Co-authored-by: edburns <75821+edburns@users.noreply.github.com>
Related to #93.
Summary
Updates the
codegen-agentic-fixgh-aw workflow so the agent can modifyscripts/codegen/java.tswhen schema changes require code generator fixes,not just handwritten SDK/test code. This reflects the lesson learned from
the 1.0.35 update: when
@github/copilotschemas change structurally(e.g. inline types →
$refreferences), the code generator itself mustbe updated before the generated output is correct.
Changes
Modified files
.github/workflows/codegen-agentic-fix.md— Rewrote the agent prompt:fix
java.ts, and re-run generationjava.tsis now explicitly allowed; blanketscripts/codegen/ban replaced with targeted rulessrc/generated/renamed properties) from the 1.0.35 experience
.github/workflows/agentics-maintenance.yml— Lockfile regeneratedby
gh aw compile(updated hash for changed manifest).github/aw/actions-lock.json— Updated bygh aw compile