Pulling dev into production#42
Open
github-actions[bot] wants to merge 12 commits into
Open
Conversation
- lib/env.sh: use export "${name?}" to suppress SC2163 false positive
on indirect variable export (semantics unchanged)
- tests/pinecone_adapter_test.sh: remove unused CAPTURED_DATA variable (SC2034)
- tests/qdrant_adapter_test.sh: remove unused CAPTURED_DATA variable (SC2034)
All 26 tests pass; shellcheck exits 0.
ingo_vector_upstash_embed_jsonl was calling the legacy ingo_upsert_line shim in embed.sh, which then called ingo_vector_upstash_upsert_line_impl back in the same file. Replace the round-trip with a direct call to ingo_vector_upstash_upsert_line_impl. Update path_key_collision_test to pre-load the vector dispatch layer and mock ingo_vector_upstash_upsert_line_impl instead of the shim. Suppress SC2094 false positives in all three adapter embed_jsonl loops (basename of the loop variable is not a write to the input file). Extend CI shellcheck glob to include lib/vector/*.sh so adapter files are linted on every push.
Any vector backend (ChromaDB, Redis, Weaviate, custom REST) can now be wired into ingo without touching core code: INGO_VECTOR_BACKEND=chroma \ INGO_VECTOR_ADAPTER=/opt/adapters/chroma.sh \ ingo query "question" Changes: - lib/vector.sh: replace hard-coded case dispatch with dynamic function resolution via _ingo_vector_load_adapter and _ingo_vector_slug; backend names with hyphens are supported (slug maps hyphens to underscores); unknown backends print available built-ins and hint at INGO_VECTOR_ADAPTER - lib/vector/generic.sh: new built-in adapter that talks to any REST API via INGO_VECTOR_URL / INGO_VECTOR_TOKEN / configurable paths — zero code required for simple custom backends - docs/adapter-contract.md: three-function contract, HTTP helper notes, reference implementations table, and minimal starter template - tests/external_adapter_test.sh: 6 new tests covering external load, missing file error, unknown backend hint, hyphenated name, generic adapter doctor, and generic adapter missing-env error
Adds a pluggable embedder module (lib/embedder.sh) that produces float vectors from plain text via Ollama, OpenAI, Voyage, Cohere, or Together AI. When INGO_EMBEDDING_MODE=external, ingo calls the configured embedder before reaching the adapter — enabling pure vector DBs (Turbopuffer, LanceDB, MongoDB Atlas, pgvector) without any server-side embedding. New optional adapter contract functions: - ingo_vector_<name>_upsert_vector_jsonl: upsert pre-vectorized JSONL - ingo_vector_<name>_query_vector: ANN query with a float array Built-in implementations in generic.sh and qdrant.sh (qdrant doctor no longer requires INGO_VECTOR_MODEL when INGO_EMBEDDING_MODE=external). Embedder doctor integrated into bin/ingo doctor when mode is external. 12 new tests in tests/embedder_test.sh; all tests and shellcheck pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated promotion PR from dev to master