Bug Description
ov reindex --regenerate triggers Semantic queue processing (queue counter increments) but LLM-generated overview/abstract content is never written to .overview.md / .abstract.md files — they remain as [Directory overview is not generated] placeholders.
The Semantic queue consumer runs (processed count increments) but the VLM is never called and no content is written.
Version
- Server: OpenViking v0.3.13 (released 2026-04-29, running as
openviking-server)
- CLI:
ov v0.3.11.dev0 (Python package)
- Embedding model:
v5-small-retrieval-Q8_0.gguf (local GGUF, confirmed working — 17,357 vectors in VikingDB)
- VLM model:
nvidia_nim/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning via https://integrate.api.nvidia.com/v1
- Python: 3.10+
- OS: Linux
Reproduction Steps
1. Add a resource and wait for embeddings to complete
# Add any directory resource
ov add-resource ~/finance_dict/
# Monitor — embeddings complete but LLM overviews are never generated
ov status
2. Trigger reindex with --regenerate
TARGET_URI="viking://resources/finance_dict/What_Are_Zombie_Companies__Understanding__5707d2ba"
ov reindex --regenerate --wait "$TARGET_URI"
# Output: {"status": "success", "enqueued_count": 1}
3. Observe Semantic queue processes items
# Before reindex:
# [queue] Semantic: 0 processed
# After reindex:
# [queue] Embedding: 15377 | Semantic: 4 processed | Semantic-Nodes: 4 processed
4. Check output files — still placeholders
$ cat ~/.ovk_workspace/viking/default/resources/finance_dict/.../.overview.md
# What_Are_Zombie_Companies__Understanding__5707d2ba
[Directory overview is not generated]
$ cat ~/.ovk_workspace/viking/default/resources/finance_dict/.../.abstract.md
[Abstract not generated]
Expected Behavior
After ov reindex --regenerate --wait, the .overview.md and .abstract.md files should contain LLM-generated content (L0 abstract ~100 tokens, L1 overview ~2k tokens).
The OpenAPI spec at crates/ov_cli/src/commands/reindex.rs states:
"If regenerate=True, also regenerates L0/L1 summaries via LLM before re-embedding"
Actual Behavior
- Semantic queue processes 4 items (increments from 0 → 4)
.overview.md and .abstract.md are touched (mtime updated to reindex time)
- File contents remain placeholder strings:
[Directory overview is not generated] / [Abstract not generated]
ov status shows VLM model calls are not tracked in the [models] section (only the embedding GGUF model appears)
- No VLM API calls are made (NVIDIA NIM dashboard confirms zero calls for this model during reindex)
Root Cause Hypothesis
The semantic queue consumer runs and marks items as processed=4, but appears to skip the VLM generation step. Possible causes:
- Semantic processor has a guard that skips content writing — the
generate_content or overview_type=auto logic may be disabled/broken in v0.3.13
- Workspace write path mismatch — semantic processor writes to a different workspace path than the one being read
- VLM client initialization failure in semantic worker — VLM client is initialized for embedding pipeline but not for summarization pipeline in the semantic worker
- Silent VLM failure — VLM API call returns an error that is swallowed silently by the semantic processor
Verification: VLM Works Directly
The NIM nemotron model works correctly when called directly:
curl -s -X POST https://integrate.api.nvidia.com/v1/chat/completions \
-H "Authorization: Bearer <key>" \
-H "Content-Type: application/json" \
-d '{"model":"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning","messages":[{"role":"user","content":"What are zombie companies?"}],"max_tokens":50}'
# Response: valid JSON with coherent text — VLM is functional
Additionally, vikingbot (which uses the same OpenViking server with the same nemotron config) successfully calls the VLM for chat — proving the API key is real and the VLM integration works in the bot pipeline.
Queue State Snapshot
[queue] (healthy)
+----------------+---------+-------------+-----------+----------+--------+-------+
| Queue | Pending | In Progress | Processed | Requeued | Errors | Total |
+----------------+---------+-------------+-----------+----------+--------+-------+
| Embedding | 0 | 0 | 15377 | 11792 | 0 | 15377 |
| Semantic | 0 | 0 | 4 | 0 | 0 | 4 |
| Semantic-Nodes | 0 | 0 | 4 | 0 | 0 | 4 |
| TOTAL | 0 | 0 | 15381 | 11792 | 0 | 15381 |
+----------------+---------+-------------+-----------+----------+--------+-------+
[vikingdb] (healthy)
+------------+-------------+--------------+--------+
| Collection | Index Count | Vector Count | Status |
+------------+-------------+--------------+--------+
| context | 1 | 17357 | OK |
+------------+-------------+--------------+--------+
[models] (healthy)
Embedding Models:
+------------------------------+----------+-------+--------+------------+--------+
| Model | Provider | Calls | Prompt | Completion | Total |
+------------------------------+----------+-------+--------+------------+--------+
| v5-small-retrieval-Q8_0.gguf | openai | 3614 | 143287 | 0 | 143287 |
+------------------------------+----------+-------+--------+------------+--------+
# NOTE: No VLM model entries — VLM was never called during reindex
Additional Context
- This is a regression — embeddings were completed (17,357 vectors) and
reindex --regenerate is the intended way to generate LLM overviews for pre-existing resources
- The resource
finance_dict contains ~6100 markdown files that all have embeddings but zero LLM overviews
- All
.overview.md / .abstract.md files were created as empty placeholders at ingest time
Bug Description
ov reindex --regeneratetriggers Semantic queue processing (queue counter increments) but LLM-generated overview/abstract content is never written to.overview.md/.abstract.mdfiles — they remain as[Directory overview is not generated]placeholders.The Semantic queue consumer runs (processed count increments) but the VLM is never called and no content is written.
Version
openviking-server)ovv0.3.11.dev0 (Python package)v5-small-retrieval-Q8_0.gguf(local GGUF, confirmed working — 17,357 vectors in VikingDB)nvidia_nim/nvidia/nemotron-3-nano-omni-30b-a3b-reasoningviahttps://integrate.api.nvidia.com/v1Reproduction Steps
1. Add a resource and wait for embeddings to complete
2. Trigger reindex with
--regenerate3. Observe Semantic queue processes items
4. Check output files — still placeholders
Expected Behavior
After
ov reindex --regenerate --wait, the.overview.mdand.abstract.mdfiles should contain LLM-generated content (L0 abstract ~100 tokens, L1 overview ~2k tokens).The OpenAPI spec at
crates/ov_cli/src/commands/reindex.rsstates:Actual Behavior
.overview.mdand.abstract.mdare touched (mtime updated to reindex time)[Directory overview is not generated]/[Abstract not generated]ov statusshows VLM model calls are not tracked in the[models]section (only the embedding GGUF model appears)Root Cause Hypothesis
The
semanticqueue consumer runs and marks items asprocessed=4, but appears to skip the VLM generation step. Possible causes:generate_contentoroverview_type=autologic may be disabled/broken in v0.3.13Verification: VLM Works Directly
The NIM nemotron model works correctly when called directly:
Additionally,
vikingbot(which uses the same OpenViking server with the same nemotron config) successfully calls the VLM for chat — proving the API key is real and the VLM integration works in the bot pipeline.Queue State Snapshot
Additional Context
reindex --regenerateis the intended way to generate LLM overviews for pre-existing resourcesfinance_dictcontains ~6100 markdown files that all have embeddings but zero LLM overviews.overview.md/.abstract.mdfiles were created as empty placeholders at ingest time