Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

DMR provider ignores integer `provider_opts.context_size` (YAML integers decode as uint64), so the model starts at its maximum context

Open Beginner friendly
#4,522 3 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
82/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
docker, go, yaml
Domain
backend, tooling

Research direction

Start in pkg/model/provider/dmr/configure.go: parseContextSize calls parseInt64Value, which accepts int64/int/float64/string but not uint64 from YAML map[string]any. Add uint64 (and keep string/int paths) so context_size: 64000 is sent as context-size. Check the other numeric parser in the same file on main for the pattern. Confirm with a unit test around parseInt64Value or DMR configure if one exists; done when an unquoted integer reaches the configure request instead of nil.

Written by the indexing model from the issue text.

Description

area/config area/providers/docker-model-runner

Versions: docker-agent v1.142.0 and v1.148.0 (linux/amd64, inside a Docker Sandbox), config version 16, provider dmr (Docker Model Runner on the host, llama.cpp backend), model huggingface.co/unsloth/qwen3.8-27b-gguf:UD-Q4_K_M (context window 262144).

What happens

With

models:
  qwen:
    provider: dmr
    base_url: http://host.docker.internal:12434/engines/v1
    model: huggingface.co/unsloth/qwen3.8-27b-gguf:UD-Q4_K_M
    provider_opts:
      context_size: 64000

the context size never reaches Model Runner, and the model runs with its maximum context (262144).

Debug log (--debug):

msg="DMR provider opts" provider_opts="map[context_size:64000 runtime_flags:[...]]"
msg="DMR provider_opts parsed" ... context_size=<nil> ...
msg="Sending model configure request" ... context_size=<nil> ...
msg="Model configure completed"

GET /engines/_configure afterwards shows no context-size for the model.

Workaround / confirmation

Quoting the value works:

    provider_opts:
      context_size: "64000"

→ Sending model configure request ... context_size=64000, and GET /engines/_configure shows "context-size":64000. Passing --ctx-size 64000 in runtime_flags also works.

Cause (from the source)

parseContextSize → parseInt64Value in pkg/model/provider/dmr/configure.go accepts int64, int, float64 and string, but not uint64. The YAML decoder yields uint64 for a positive integer in a map[string]any, so the value is dropped and parseContextSize returns nil. On main, another numeric parser in the same file already handles uint64, but parseInt64Value does not.

Expected

context_size: 64000 is sent as context-size: 64000. Also, a value that is present but cannot be parsed (and a failed configure request, which is only logged at DEBUG today) could be reported as a warning instead of silently falling back to the model's default context.

Dominant language
Go
Stars
3.4k
Forks
479
Avg merge
8h 22m
Merged PRs (30d)
296

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from docker/docker-agent

All issues in docker/docker-agent

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.