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: docker/docker-agent
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.46.0
Choose a base ref
...
head repository: docker/docker-agent
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.47.0
Choose a head ref
  • 15 commits
  • 22 files changed
  • 3 contributors

Commits on Apr 14, 2026

  1. fix: use low reasoning effort instead of omitting it for NoThinking

    OpenAI reasoning models (o-series, gpt-5) always reason internally;
    omitting the reasoning parameter does not disable reasoning -- it uses
    the model's default effort. Those hidden reasoning tokens count against
    max_output_tokens, so with a small budget (e.g. title generation) the
    model can exhaust all tokens on reasoning and return empty visible text.
    
    When NoThinking is set, explicitly send reasoning_effort: low so the
    model spends as few output tokens as possible on reasoning. We use
    "low" rather than "minimal" because older models (o3-mini, o1) only
    accept low/medium/high.
    
    Also normalize the reasoning field in the VCR request matcher so
    cassettes recorded with or without reasoning config still match.
    
    Fixes #2318
    trungutt committed Apr 14, 2026
    Configuration menu
    Copy the full SHA
    c9f14c7 View commit details
    Browse the repository at this point in the history
  2. fix: increase title generation token budget for reasoning models

    The previous budget of 20 max_output_tokens was sufficient for
    non-reasoning models, but reasoning models (o-series, gpt-5) include
    hidden reasoning tokens in that same budget. Even with low effort,
    20 tokens is too tight -- the model can exhaust them on reasoning and
    produce no visible title text.
    
    Raise the budget to 256, which gives reasoning models enough room for
    low reasoning overhead plus a short title.
    
    Refs #2318
    trungutt committed Apr 14, 2026
    Configuration menu
    Copy the full SHA
    34cb957 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2026

  1. Configuration menu
    Copy the full SHA
    4b23da4 View commit details
    Browse the repository at this point in the history
  2. fix: move reasoning token budget floor to OpenAI provider

    Keep titleMaxTokens at 20 for non-reasoning models. The OpenAI client
    now enforces a minimum output-token budget (256) only when NoThinking
    is set on a reasoning model, where hidden reasoning tokens would
    otherwise starve the visible text.
    trungutt committed Apr 16, 2026
    Configuration menu
    Copy the full SHA
    5b00c42 View commit details
    Browse the repository at this point in the history
  3. fix: repair malformed JSON in edit_file tool call arguments

    LLMs occasionally generate structurally invalid JSON for edit_file
    arguments when the text payload contains characters that confuse brace
    counting (YAML, Dockerfiles, shell scripts). The most common pattern is
    an extra closing brace or bracket near the end of the arguments.
    
    Go's json.Unmarshal scanner rejects this before any custom UnmarshalJSON
    method runs, so the existing double-serialization fix never fires for
    these cases.
    
    Add tryRepairEditFileJSON which iteratively removes the offending
    character at the json.SyntaxError offset (up to 3 rounds), handling
    extra }, extra ], stray backslash-n, and stray backslash before quotes.
    
    Replace NewHandler with a custom editFileHandler that calls
    ParseEditFileArgs (which does repair then unmarshal) before delegating
    to handleEditFile. Update all other call sites (ACP filesystem handler,
    TUI rendering) to use ParseEditFileArgs as well.
    trungutt committed Apr 16, 2026
    Configuration menu
    Copy the full SHA
    092285f View commit details
    Browse the repository at this point in the history
  4. docs: update CHANGELOG.md for v1.46.0

    Automated changelog update for release v1.46.0
    
    Assisted-By: Docker Agent
    github-actions[bot] committed Apr 16, 2026
    Configuration menu
    Copy the full SHA
    6cf4a62 View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2026

  1. Merge pull request #2455 from docker/changelog/v1.46.0

    docs: update CHANGELOG.md for v1.46.0
    dgageot authored Apr 17, 2026
    Configuration menu
    Copy the full SHA
    8ca294e View commit details
    Browse the repository at this point in the history
  2. Merge pull request #2412 from trungutt/fix/2318-gpt5-title-generation

    fix: title generation fails with OpenAI reasoning models
    dgageot authored Apr 17, 2026
    Configuration menu
    Copy the full SHA
    03a22ec View commit details
    Browse the repository at this point in the history
  3. Add thinking_display provider_opt for Anthropic models

    Claude Opus 4.7 hides thinking content by default. Add a new
    
    `thinking_display` provider option for Anthropic models accepting
    
    `summarized`, `display`, or `omitted` to control whether thinking
    
    blocks are returned in responses. It applies to both adaptive/
    
    effort-based thinking budgets and explicit token budgets, on both
    
    the standard and Beta Anthropic APIs.
    
    Example:
    
        models:
    
          opus-4-7:
    
            provider: anthropic
    
            model: claude-opus-4-7
    
            thinking_budget: adaptive
    
            provider_opts:
    
              thinking_display: summarized
    
    While here, consolidate all thinking-related helpers into a dedicated
    
    `pkg/model/provider/anthropic/thinking.go` file and extract two helpers
    
    (`applyThinkingConfig` / `applyBetaThinkingConfig`) so the inline
    
    thinking setup in the two streaming entry points collapses to a single
    
    method call each. `client.go` shrinks from 892 to 723 lines with no
    
    behaviour change.
    
    Updates the JSON schema, provider docs, and the thinking_budget example,
    
    and adds unit tests for the new helpers (apply*, adjustMaxTokensForThinking,
    
    interleavedThinkingEnabled, anthropicThinkingDisplay).
    
    Assisted-By: docker-agent
    dgageot committed Apr 17, 2026
    Configuration menu
    Copy the full SHA
    4b6f252 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #2452 from trungutt/fix/edit-file-malformed-json

    fix: repair malformed JSON in edit_file tool call arguments
    dgageot authored Apr 17, 2026
    Configuration menu
    Copy the full SHA
    1e6975e View commit details
    Browse the repository at this point in the history
  5. Merge pull request #2451 from dgageot/board/add-thinking-display-conf…

    …ig-to-opus-4-7-657e4d3f
    
    Add thinking_display provider_opt for Anthropic models
    dgageot authored Apr 17, 2026
    Configuration menu
    Copy the full SHA
    42ca212 View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2026

  1. shell: fix hang when a tool command backgrounds a child process

    When a shell command backgrounds a grandchild (e.g. `docker run ... &`),
    the grandchild inherits the stdout/stderr pipe fds created by exec.Cmd
    for non-*os.File writers. cmd.Wait() then blocks until EOF on those
    pipes, which never comes while the grandchild holds them open — making
    the tool call hang until the configured timeout (observed wedging an
    eval run for minutes after the agent ran a detached `docker run`).
    
    Set cmd.WaitDelay to 500ms in runNativeCommand so that once the direct
    shell child has exited, Go force-closes the pipe read ends and Wait()
    returns promptly. The grandchild is left untouched — exactly what the
    user's `&` intended.
    
    Add two regression tests covering the plain backgrounded-child case
    and the detached (setsid) variant where the process-group kill
    fallback cannot rescue us.
    
    Assisted-By: docker-agent
    dgageot committed Apr 18, 2026
    Configuration menu
    Copy the full SHA
    35bb084 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #2462 from dgageot/fix-shell-bg

    shell: fix hang when a tool command backgrounds a child process
    dgageot authored Apr 18, 2026
    Configuration menu
    Copy the full SHA
    6ce280c View commit details
    Browse the repository at this point in the history
  3. bump direct Go dependencies

    Bumps the following direct dependencies:
    
    - charm.land/bubbletea/v2 v2.0.5 -> v2.0.6
    - github.com/anthropics/anthropic-sdk-go v1.36.0 -> v1.37.0
    - github.com/aws/aws-sdk-go-v2 v1.41.5 -> v1.41.6
    - github.com/aws/aws-sdk-go-v2/config v1.32.14 -> v1.32.16
    - github.com/aws/aws-sdk-go-v2/credentials v1.19.14 -> v1.19.15
    - github.com/aws/aws-sdk-go-v2/service/bedrockruntime v1.50.4 -> v1.50.5
    - github.com/aws/aws-sdk-go-v2/service/sts v1.41.10 -> v1.42.0
    - github.com/go-git/go-git/v5 v5.17.2 -> v5.18.0
    - github.com/openai/openai-go/v3 v3.31.0 -> v3.32.0
    - modernc.org/sqlite v1.48.2 -> v1.49.1
    
    Assisted-By: docker-agent
    dgageot committed Apr 18, 2026
    Configuration menu
    Copy the full SHA
    faedf57 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2026

  1. Merge pull request #2463 from dgageot/board/update-go-direct-dependen…

    …cies-f372e52e
    
    bump direct Go dependencies
    dgageot authored Apr 19, 2026
    Configuration menu
    Copy the full SHA
    c4c635f View commit details
    Browse the repository at this point in the history
Loading