github docker/docker-agent v1.92.0

latest release: v1.93.0
5 hours ago

This release adds session context referencing and 1Password secret caching, fixes silent failures on empty/reasoning-only agent turns, and resolves environment variable substitution in model configuration fields.

What's New

  • Adds a session_context toolset with list_sessions and read_session tools, allowing agents to reference previous sessions as context
  • Adds WithRoot option to worktree creation to decouple from the global data directory
  • Caches op:// secret resolutions and coalesces concurrent lookups to avoid redundant op CLI invocations

Bug Fixes

  • Fixes silent failure when the runtime receives empty or reasoning-only turns; these are now surfaced instead of dropped
  • Fixes whitespace-only turns being treated as valid output, which could cause re-entry loops
  • Fixes ${env.X} references in model and base_url config fields not being substituted before being sent to providers
  • Fixes ${env.X} placeholders not being accepted in the base_url schema validation
  • Fixes empty agent responses on OpenAI-compatible providers caused by multiple consecutive system messages; consecutive system messages are now merged on the openai_chatcompletions path (scoped to openai_chatcompletions endpoints)
  • Fixes os.Chmod in Registry.Write breaking non-owner callers by making the permission tightening best-effort
  • Fixes a data race on the defaultRegistry pointer by switching to atomic.Pointer
  • Fixes ${env.VAR} not being normalized before os.ExpandEnv in filesystem path expansion
  • Fixes a transient failure when promoting a worktree directory under concurrency

Technical Changes

  • Extracts themeRegistry struct to eliminate global state and enable parallel-safe tests
  • Introduces Registry struct in runregistry to replace process-global directory state
  • Removes process-global clock and ID variables from pkg/session, moving them into per-session fields
  • Introduces Resolver type in userid and injects cagent ID source in httpclient for parallel-safe tests
  • Replaces package-level globals with dependency injection across multiple packages to enable parallel-safe tests
  • Enables t.Parallel() across ~337 test functions in the test suite
  • Makes ${env.X} the canonical variable-expansion syntax in documentation and example YAML files

What's Changed

  • docs: update CHANGELOG.md for v1.91.0 by @docker-read-write[bot] in #3314
  • refactor: introduce Resolver type in userid and inject cagent ID source in httpclient for parallel-safe tests by @dgageot in #3321
  • chore: bump direct Go dependencies by @dgageot in #3315
  • refactor: extract themeRegistry struct for parallel-safe tests by @dgageot in #3316
  • refactor(runregistry): introduce Registry struct and tighten dir permissions by @dgageot in #3317
  • feat(worktree): add WithRoot option to decouple from global data dir by @dgageot in #3318
  • feat(1password): cache op:// resolutions and coalesce concurrent lookups by @dgageot in #3322
  • fix: make chmod in Registry.Write best-effort to avoid breaking non-owner callers by @dgageot in #3323
  • fix: eliminate themeRegistry data race and TOCTOU window by @dgageot in #3324
  • refactor: remove process-global clock/ID vars from pkg/session by @dgageot in #3319
  • fix(config): substitute ${env.X} in model and base_url fields by @Sayt-0 in #3304
  • refactor: replace test-mutated globals with dependency injection by @dgageot in #3326
  • docs: make ${env.X} the canonical variable-expansion syntax (+ fixes) by @dgageot in #3325
  • test: enable t.Parallel() across the test suite by @dgageot in #3328
  • feat(session_context): reference previous sessions as context by @Sayt-0 in #3320
  • test: enable t.Parallel() in environment, config, and sessioncontext tests by @dgageot in #3329
  • fix(#3145): empty agent response from multiple system messages on OpenAI-compatible providers by @Sayt-0 in #3327

Full Changelog: v1.91.0...v1.92.0

Don't miss a new docker-agent release

NewReleases is sending notifications on new releases.