debug_data.snippets always empty on /v1/completions, even with a fully indexed repository and specific in-codebase symbols as prefix
Environment ● Tabby v0.32.0, self-hosted via Docker (official tabbyml/tabby:latest image) ● Inference backend: external OpenAI-compatible server (AMD Lemonade Server, NPU backend), exposing /v1/completions ● Model: Qwen2.5-Coder-1.5B-Instruct-NPU ● Client: VS Code extension TabbyML.vscode-tabby v1.28.0, tabby-agent v1.9.0-dev
Config (config.toml)
[model.completion.http]
kind = "openai/completion" # also reproduced with "vllm/completion"
model_name = "Qwen2.5-Coder-1.5B-Instruct-NPU"
api_endpoint = "http://<host>:13305/v1"
api_key = "***"
prompt_template = "<|fim_prefix|>{prefix}<|fim_suffix|>{suffix}<|fim_middle|>"
[model.embedding.http]
kind = "openai/embedding"
model_name = "nomic-embed-text"
api_endpoint = "http://<host>:11434/v1"Setup ● Repository connected via self-hosted GitLab integration, indexing job completed successfully (confirmed in dashboard: code index + commit history jobs both report success). ● Repository is a real, non-trivial C++ codebase (hundreds of files).
Expected behavior Per the completion service documentation, code completion should use context retrieved from the indexed repository (via BM25 and/or embedding-based retrieval) to enrich completions with relevant symbols/snippets from elsewhere in the codebase.
Actual behavior
POST /v1/completions with debug_options: { "return_snippets": true } always returns:
"debug_data": { "snippets": [] }
regardless of how specific/rare the searched symbol is.
Tested with several prefixes that are unique, indexed symbols in the codebase (e.g. woss::WossException, WossCreatorContainer) — snippets remain empty in every case.
Reproduction steps
- Add a private/self-hosted Git repository as context source, wait for indexing job(s) to complete successfully.
- Send POST /v1/completions with a segments.prefix matching a symbol that only exists in files other than the one implied by the request, and debug_options: { "return_snippets": true }.
- Observe debug_data.snippets is always [].
Source: TabbyML/tabby