Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: anthropics/claude-code-action
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.0.30
Choose a base ref
...
head repository: anthropics/claude-code-action
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.0.31
Choose a head ref
  • 6 commits
  • 23 files changed
  • 3 contributors

Commits on Jan 16, 2026

  1. fix: ensure SSH signing key has trailing newline (#834)

    ssh-keygen requires a trailing newline to parse private keys correctly.
    Without it, git signing fails with the confusing error:
    'Couldn't load public key: No such file or directory?'
    
    This normalizes the key to always end with a newline before writing.
    ashwin-ant authored Jan 16, 2026
    Configuration menu
    Copy the full SHA
    6e896a0 View commit details
    Browse the repository at this point in the history

Commits on Jan 17, 2026

  1. Configuration menu
    Copy the full SHA
    f3c892c View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2026

  1. Consolidate CI workflows into a single entry point (#836)

    * refactor: consolidate CI workflows with ci-all.yml orchestrator
    
    - Add ci-all.yml to orchestrate all CI workflows on push to main
    - Update individual workflows to use workflow_call for reusability
    - Remove redundant push triggers from individual test workflows
    - Update release.yml to trigger on CI All workflow completion
    - Auto-release on version bump commits after CI passes
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%)
    Claude-Steers: 8
    Claude-Permission-Prompts: 1
    Claude-Escapes: 0
    
    * address security review comments
    
    ---------
    
    Co-authored-by: Claude <noreply@anthropic.com>
    ashwin-ant and claude authored Jan 20, 2026
    Configuration menu
    Copy the full SHA
    ba60ef7 View commit details
    Browse the repository at this point in the history
  2. chore: bump Bun to 1.3.6 and setup-bun action to v2.1.2 (#848)

    Claude-Generated-By: Claude Code (cli/claude=100%)
    Claude-Steers: 1
    Claude-Permission-Prompts: 5
    Claude-Escapes: 1
    ashwin-ant authored Jan 20, 2026
    Configuration menu
    Copy the full SHA
    e208124 View commit details
    Browse the repository at this point in the history

Commits on Jan 21, 2026

  1. refactor: remove CLI path, use Agent SDK exclusively (#849)

    * refactor: remove CLI path, use Agent SDK exclusively
    
    - Remove CLI-based Claude execution in favor of Agent SDK
    - Delete prepareRunConfig, parseAndSetSessionId, parseAndSetStructuredOutputs functions
    - Remove named pipe IPC and sanitizeJsonOutput helper
    - Remove test-agent-sdk job from test-base-action workflow (SDK is now default)
    - Delete run-claude.test.ts and structured-output.test.ts (testing removed CLI code)
    - Update CLAUDE.md to remove named pipe references
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%)
    Claude-Steers: 2
    Claude-Permission-Prompts: 1
    Claude-Escapes: 0
    Claude-Plan:
    <claude-plan>
    # Plan: Remove Non-Agent SDK Code Path
    
    ## Overview
    Since `use_agent_sdk` defaults to `true`, remove the legacy CLI code path entirely from `base-action/src/run-claude.ts`.
    
    ## Files to Modify
    
    ### 1. `base-action/src/run-claude.ts` - Main Cleanup
    
    **Remove imports:**
    - `exec` from `child_process`
    - `promisify` from `util`
    - `unlink`, `writeFile`, `stat` from `fs/promises` (keep `readFile` - check if needed)
    - `createWriteStream` from `fs`
    - `spawn` from `child_process`
    - `parseShellArgs` from `shell-quote` (still used in `parse-sdk-options.ts`, keep package)
    
    **Remove constants:**
    - `execAsync`
    - `PIPE_PATH`
    - `EXECUTION_FILE` (defined in both files, keep in SDK file)
    - `BASE_ARGS`
    
    **Remove types:**
    - `PreparedConfig` type (lines 85-89) - only used by `prepareRunConfig()`
    
    **Remove functions:**
    - `sanitizeJsonOutput()` (lines 21-68)
    - `prepareRunConfig()` (lines 91-125) - also remove export
    - `parseAndSetSessionId()` (lines 131-155) - also remove export
    - `parseAndSetStructuredOutputs()` (lines 162-197) - also remove export
    
    **Simplify `runClaude()`:**
    - Remove `useAgentSdk` flag check and logging (lines 200-204)
    - Remove the `if (useAgentSdk)` block, make SDK call direct
    - Remove entire CLI path (lines 211-438)
    - Resulting function becomes just:
      ```typescript
      export async function runClaude(promptPath: string, options: ClaudeOptions) {
        const parsedOptions = parseSdkOptions(options);
        return runClaudeWithSdk(promptPath, parsedOptions);
      }
      ```
    
    ### 2. Delete Test Files
    
    **`base-action/test/run-claude.test.ts`:**
    - Delete entire file (only tests `prepareRunConfig()`)
    
    **`base-action/test/structured-output.test.ts`:**
    - Delete entire file (only tests `parseAndSetStructuredOutputs()` and `parseAndSetSessionId()`)
    
    ### 3. Workflow Update
    
    **`.github/workflows/test-base-action.yml`:**
    - Remove `test-agent-sdk` job (lines 120-176) - redundant now
    
    ### 4. Documentation Update
    
    **`base-action/CLAUDE.md`:**
    - Line 30: Remove "- Named pipes for IPC between prompt input and Claude process"
    - Line 57: Remove "- Uses `mkfifo` to create named pipes for prompt input"
    
    ## Verification
    1. Run `bun run typecheck` to ensure no type errors
    2. Run `bun test` to ensure remaining tests pass
    3. Run `bun run format` to fix any formatting issues
    </claude-plan>
    
    * fix: address PR review comments
    
    - Add session_id output handling in run-claude-sdk.ts (critical)
    - Remove unused claudeEnv parameter from ClaudeOptions and index.ts
    - Update stale CLI path comment in parse-sdk-options.ts
    
    Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%)
    Claude-Steers: 0
    Claude-Permission-Prompts: 0
    Claude-Escapes: 0
    Claude-Plan:
    <claude-plan>
    # Plan: Remove Non-Agent SDK Code Path
    
    ## Overview
    Since `use_agent_sdk` defaults to `true`, remove the legacy CLI code path entirely from `base-action/src/run-claude.ts`.
    
    ## Files to Modify
    
    ### 1. `base-action/src/run-claude.ts` - Main Cleanup
    
    **Remove imports:**
    - `exec` from `child_process`
    - `promisify` from `util`
    - `unlink`, `writeFile`, `stat` from `fs/promises` (keep `readFile` - check if needed)
    - `createWriteStream` from `fs`
    - `spawn` from `child_process`
    - `parseShellArgs` from `shell-quote` (still used in `parse-sdk-options.ts`, keep package)
    
    **Remove constants:**
    - `execAsync`
    - `PIPE_PATH`
    - `EXECUTION_FILE` (defined in both files, keep in SDK file)
    - `BASE_ARGS`
    
    **Remove types:**
    - `PreparedConfig` type (lines 85-89) - only used by `prepareRunConfig()`
    
    **Remove functions:**
    - `sanitizeJsonOutput()` (lines 21-68)
    - `prepareRunConfig()` (lines 91-125) - also remove export
    - `parseAndSetSessionId()` (lines 131-155) - also remove export
    - `parseAndSetStructuredOutputs()` (lines 162-197) - also remove export
    
    **Simplify `runClaude()`:**
    - Remove `useAgentSdk` flag check and logging (lines 200-204)
    - Remove the `if (useAgentSdk)` block, make SDK call direct
    - Remove entire CLI path (lines 211-438)
    - Resulting function becomes just:
      ```typescript
      export async function runClaude(promptPath: string, options: ClaudeOptions) {
        const parsedOptions = parseSdkOptions(options);
        return runClaudeWithSdk(promptPath, parsedOptions);
      }
      ```
    
    ### 2. Delete Test Files
    
    **`base-action/test/run-claude.test.ts`:**
    - Delete entire file (only tests `prepareRunConfig()`)
    
    **`base-action/test/structured-output.test.ts`:**
    - Delete entire file (only tests `parseAndSetStructuredOutputs()` and `parseAndSetSessionId()`)
    
    ### 3. Workflow Update
    
    **`.github/workflows/test-base-action.yml`:**
    - Remove `test-agent-sdk` job (lines 120-176) - redundant now
    
    ### 4. Documentation Update
    
    **`base-action/CLAUDE.md`:**
    - Line 30: Remove "- Named pipes for IPC between prompt input and Claude process"
    - Line 57: Remove "- Uses `mkfifo` to create named pipes for prompt input"
    
    ## Verification
    1. Run `bun run typecheck` to ensure no type errors
    2. Run `bun test` to ensure remaining tests pass
    3. Run `bun run format` to fix any formatting issues
    </claude-plan>
    ashwin-ant authored Jan 21, 2026
    Configuration menu
    Copy the full SHA
    49cfcf8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2316a9a View commit details
    Browse the repository at this point in the history
Loading