- Fixed ChatMessage.tool_calls to be Optional with default None (excluded when empty)
- Added logprobs field to ChatCompletionChoice (always included as null)
- Added stats and system_fingerprint to ChatCompletionResponse
- Fixed streaming response to use delta format (not message format)
- Fixed non-streaming response to include logprobs: null
- Updated tool instructions to include 'NO explanations'
- Added pytest-asyncio markers to async tests
- All 41 tests passing
This fixes the 'Cannot read properties of undefined (reading content)' error in hollama and ensures compatibility with OpenAI clients.
- Parse model ID with format like qwen2.5-coder:7b:4bit
- Return specific error if requested config not found or doesn't fit
- Don't fall back to auto-selection when specific config requested
- Fix streaming to work even when tools are present (was forcing JSON mode)
- Fix response format: use empty list [] instead of null for tool_calls
- Add exclude_none config to ChatMessage model to match OpenAI format
- Remove tool instructions from prompt (were confusing 3B model)
- Fix tool call parsing to handle markdown code blocks properly
- Change default instances from 3 to 1 for faster debugging
- Allow 1 instance minimum in interactive config (was 2 on Mac)
- Add debug logging to track requests and responses
Fixes infinite loop issue where opencode would retry requests repeatedly
- select_optimal_model was checking HF API for available quantizations
- This caused menu to hang/slow down when changing context
- Now only checks availability when browsing or custom config
- Recommended config uses default quantizations (faster)
Updated _try_model_with_context and _try_smallest_variant_with_context:
- On Mac (use_mlx=True): Returns 3 responses by default
- On other platforms: Still calculates based on VRAM
- Memory calculation fixed for Mac (doesn't multiply by response count)
Fixes issue where recommended config showed 'Responses: 1' on Mac
The .gitignore had 'models/' which excluded both:
- The models/ cache directory at root (intended)
- The src/models/ module directory (NOT intended)
Changed to '/models/' to only exclude root-level models/ directory
while allowing src/models/ to be tracked.
This fixes the 'No module named models' error on fresh clones.