Skip to content

Conversation

@dbinky
Copy link
Owner

@dbinky dbinky commented Jan 18, 2026

Release v0.8.0

New Features

Jina v4 Embedding Model Support

  • Add support for Jina v4 embeddings (1024 dimensions, ~8GB) as optional upgrade from default v2 (768 dims, ~300MB)
  • New pm config model [v2|v4] command to view/switch embedding models
  • Install scripts now prompt for model selection when using Ollama provider
  • Dynamic dimensions and context size based on configured model

Changes

  • Model Registry - New internal/embedder/models.go with model metadata and lookup functions
  • OllamaClient - Dynamic Dimensions() and ContextSize() based on configured model
  • CLI - New pm config model subcommand for model management
  • Install Scripts - Bash and PowerShell installers prompt for v2/v4 choice

Technical Details

Model Ollama Name Size Dimensions Context
v2 (default) unclemusclez/jina-embeddings-v2-base-code ~300MB 768 8K
v4 (optional) sellerscrisp/jina-embeddings-v4-text-code-q4 ~8GB 1024 32K

Test Plan

  • All tests pass (go test -tags fts5 ./...)
  • Model registry fully tested
  • CLI command tested
  • Code review approved

🤖 Generated with Claude Code

Ryan and others added 18 commits January 15, 2026 21:18
Design for adding optional Jina v4 embeddings as an upgrade from
the default v2 model, selectable at install time.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add testing strategy with 50+ test cases covering:
- Model registry (happy path, failures, edge cases)
- Ollama client dimensions
- Config model command (success, failure, error, edge cases)
- Daemon dimension mismatch detection
- Config loading and override behavior
- End-to-end integration tests

Includes test utilities to create and TDD workflow guidance.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Comprehensive implementation plan with 15 tasks and 24 unit tests.
Each task broken into bite-sized TDD steps: write test, verify fail,
implement, verify pass, commit.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add GetModelInfo function that maps short names (v2, v4) to full Ollama
model metadata including dimensions, context size, and human-readable size.
Foundation for Jina v4 embedding support feature.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add function to look up model info by full Ollama model name instead of
short name. This enables reverse lookups when we have the full model
name from configuration but need its metadata.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add GetDimensionsForModel function that returns dimensions for a model
by full name, with DefaultDimensions (768) fallback for unknown models.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add a function to get the short name (v2, v4) from a full Ollama model
name. Returns empty string for unknown models.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update OllamaClient.Dimensions() to use GetDimensionsForModel instead of
hardcoded 768. This enables correct dimension reporting for different
embedding models like Jina v2 (768 dim) vs Jina v4 (1024 dim).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add GetContextSizeForModel() helper and OllamaClient.ContextSize() method
that returns the appropriate context window size for the configured model
(8192 for v2, 32768 for v4). Update embed() to use dynamic context size
instead of hardcoded JinaContextSize constant.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds a new subcommand `pm config model` that displays the current
embedding model being used. Shows both the short name (v2/v4/custom)
and the full Ollama model name.

Model switching (with arguments) returns "not yet implemented" error,
to be completed in Task 3.2.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add switchModel function to allow switching between embedding models
(v2/v4). The command validates the target model, checks if already
using it, deletes existing database if present (since embeddings are
incompatible between models), and updates the config.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use db.DatabaseFile constant (index.db) instead of hardcoded
pommel.db which doesnt exist. Also clean up SQLite WAL and SHM
files when deleting the database during model switch.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When selecting Local Ollama or Remote Ollama as the embedding provider,
users can now choose between:
- Standard (Jina v2 Code): ~300MB, faster, good quality
- Maximum (Jina v4 Code): ~8GB, slower, best quality

The selected model is used in both the config file generation and when
pulling the model from Ollama.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add v2/v4 Jina embedding model selection when Ollama is chosen as the
provider. Users can now choose between:
- Standard (v2): ~300MB, faster, good quality (recommended)
- Maximum (v4): ~8GB, slower, best quality

Changes:
- Add $script:SelectedModel variable to track selection
- Add Select-OllamaModel function for interactive model selection
- Call model selection in Setup-LocalOllama and Setup-RemoteOllama
- Update Write-GlobalConfig to use selected model name
- Update Install-EmbeddingModel to pull the selected model

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Code review recommended clearer help text about the consequence
of switching models (deletes existing index).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat: Add Jina v4 embedding model support
@dbinky dbinky merged commit 39aaf38 into main Jan 18, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant