feat(*): upgrade everos 1.1.2 with per-provider onboard and model verification#103
Merged
Conversation
- Bump everos[multimodal] pin from ==1.0.1 to ==1.1.2 - Adapt MultimodalError import: everos 1.1 split it into MultimodalNotEnabledError + UnsupportedModalityError - Add _migrate_lancedb_schemas() to _acquire_embedded_everos: on LanceDBSchemaMismatchError, auto-add missing columns (e.g. deprecated_by) so upgrading users don't need to manually clear their index - Fix integration test isolation: set EVEROS_ROOT (not just EVEROS_MEMORY__ROOT) to tmp_path so MemoryRoot.default() resolves to the isolated dir; copy everos.toml + ome.toml for LLM credentials; reset _embedded_lifespan_cm between tests Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
everos >=1.1 renamed its config file from config.toml to everos.toml and dropped EVEROS_CONFIG_FILE / EVEROS_MEMORY__ROOT env vars in favour of a single EVEROS_ROOT. - configure_everos_env: set EVEROS_ROOT instead of the two removed vars; auto-rename existing config.toml -> everos.toml for users who onboarded on an older raven - _migrate_lancedb_schemas: accept test-injection kwargs so the migration logic can be unit-tested without a live everos runtime - Add TestMigrateLancedbSchemas (2 tests) covering add-columns and no-op paths - Update all config.toml references in docstrings, test fixtures, and skip messages to everos.toml - Fix integration test isolation: set EVEROS_ROOT to tmp_path, copy everos.toml + ome.toml for credentials, reset backend lifespan singleton between tests Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- add ensure_everos_home(): creates everos.toml + ome.toml from shipped templates (skip if exists), migrates legacy config.toml; called from make_backend, make_understand_media_tool, and the onboard memory step so all entry paths have a ready home dir - configure_everos_env() now only sets EVEROS_ROOT (single responsibility); file-system init moved to ensure_everos_home() - onboard memory llm: remove "reuse main model" shortcut; instead default-select the main model's provider and auto-reuse its api key, user still picks the model (can choose gpt-4.1-mini) - onboard memory llm: update example to gpt-4.1-mini, add capability floor hint in purpose text - update tests to match new onboard flow Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add per-provider capability filtering and DeepInfra provider - Fetch embed/rerank models via provider-specific APIs - Verify embedding dimension (1024) with MRL probe - Auto-select LLM provider for embed/rerank with key reuse - Auto-resolve rerank service type from provider dict - Show model recommendations, trigger immediate autocomplete popup - Filter DeepInfra rerank to Qwen3-Reranker only (protocol compat) - UI: "disable" -> "skip", dim wording, multimodal text alignment Co-authored-by: Claude (claude-opus-4-6) <noreply@anthropic.com>
Split _verify_everos_model into three peer-level verifiers dispatched by section in _config_everos_role: - _verify_everos_llm: POST /chat/completions probe - _verify_embedding_dim: dimension probe (1024 MRL check) - _verify_rerank: provider-specific rerank probe (vllm/deepinfra/dashscope) Embedding models cannot be used with the chat/completions endpoint, so a shared verifier that defaulted to chat probe was incorrect for embedding. Each role now has its own verifier with the appropriate probe and failure semantics. Co-authored-by: Claude (claude-opus-4-6) <noreply@anthropic.com>
- await table.add_columns() in _migrate_lancedb_schemas (was silently discarding the migration on AsyncTable) - catch httpx.InvalidURL in _fetch_openai_models and _try_embed so malformed base URLs return None / error string instead of crashing - guard against non-dict items in embedding probe response - simplify _probe_embedding_dim redundant branch - use EVEROS_ROOT instead of legacy EVEROS_MEMORY__ROOT in e2e test subprocess env for proper tmp-dir isolation Co-authored-by: Claude (claude-opus-4-6) <noreply@anthropic.com>
- Extract _fetch_deepinfra_models shared by _fetch_embedding_models and _fetch_rerank_models (was identical GET /models/list block) - Hoist recommendation print above the if/else models branch - Reuse a single httpx.Client across both _probe_embedding_dim calls Co-authored-by: Claude (claude-opus-4-6) <noreply@anthropic.com>
…cation - Recommend google/gemini-3-flash-preview for multimodal role - Filter model list by provider: OpenRouter uses input_modalities=image API param, others use name-pattern matching - Enable verification (POST /chat/completions) for multimodal role Co-authored-by: Claude (claude-opus-4-6) <noreply@anthropic.com>
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.
Change description
Upgrade EverOS from 1.0.1 to 1.1.2 and overhaul the onboard memory configuration step with per-provider intelligence, model verification, and UX improvements.
EverOS 1.1.2 upgrade
everos[multimodal]from 1.0.1 to 1.1.2 in pyproject.tomlconfig.toml->everos.tomlEVEROS_CONFIG_FILE+EVEROS_MEMORY__ROOTto singleEVEROS_ROOTMultimodalError->MultimodalNotEnabledError+UnsupportedModalityErrorEverOS home initialization
ensure_everos_home(): copieseveros.toml+ome.tomlfrom shipped templates on first run, with legacyconfig.tomlauto-migrationmake_backend,make_understand_media_tool, and onboard step 4LanceDB schema auto-migration
_migrate_lancedb_schemas(): detects missing columns (e.g.deprecated_by) and adds them viapyarrow_acquire_embedded_everos()catchesLanceDBSchemaMismatchError, runs migration, retries lifespanPer-provider model fetching
_EVEROS_PROVIDERSto 6 entries (add DeepInfra) withsupportscapability sets andrerank_provider/rerank_base_urlfields/embeddings/modelsfor embed,?output_modalities=rerankfor rerank,?input_modalities=imagefor multimodal/models/listwithreported_typefilter (shared_fetch_deepinfra_modelshelper)sub_type=embedding/sub_type=reranker["gte-rerank-v2"]Per-role model verification
POST /chat/completionsprobe (from PR fix(cli): verify onboard models with real probes and harden the wizard #102)dimensions=1024first, fall back to native dim check; reject models that cannot produce 1024-dim vectors/rerank), deepinfra (/{model}), or dashscope (/api/v1/services/rerank/text-rerank/text-rerank)POST /chat/completionsprobe_config_everos_roleOnboard UX improvements
prompt_toolkitpre_run_callablesIntegration test isolation
EVEROS_ROOTto tmp_path in test fixtures and e2e subprocess enveveros.toml+ome.tomlfrom real root before redirect_embedded_lifespan_cmand_embedded_lifespan_refsbetween testsType of change
Related issues (if there is)
Depends on PR #102 (merged)
Checklists
Development
Security
Code review
Co-authored-by: Claude (claude-opus-4-6) noreply@anthropic.com