Tags: thekaveh/atlas
Tags
Phase B complete: 21 row files + 32 candidate one-pagers + integratio… …n matrix
Phase A complete: deps standardization + manifest-driven diagram gene… …rator
modularizes per-service configuration into services/<name>/{service.y…
…ml,compose.yml}
- replaces 1,425-line monolithic docker-compose.yml with a 52-line include:-shell that merges 19 per-service fragments
- adds services/<name>/service.yml manifests (JSON-schema-validated) with declarative source variants and 4 Python hooks for the complex cases (comfyui, weaviate, openclaw, cloud-providers)
- builds bootstrapper/services/{manifests,manifest_validator,env_assembler,hooks}.py + bootstrapper/schemas/, bootstrapper/tools/validate_fragments.py, bootstrapper/tests/ (110 tests), .github/workflows/services-lint.yml
- captures byte-equivalence baseline at bootstrapper/tests/fixtures/rendered_config_baseline.yml; full stack renders byte-identical to monolithic
- marks bootstrapper/service-configs.yml DEPRECATED but operational; bootstrapper Python refactor to read manifests is the deferred follow-up
- documents in docs/CONTRIBUTING-services.md and docs/ROADMAP.md (modularization moved to Completed)
lands LiteLLM gateway, DB-driven model catalog, and Textual wizard re… …work; audit cleanup; env-file resync - LiteLLM becomes the mandatory always-on LLM gateway; cloud providers (OpenAI / Anthropic / OpenRouter) flow through it as independent toggles alongside the Ollama upstream. - public.llms is the single source of truth for the model_list. The bootstrapper writes a stub config; the new litellm-init container renders the real config.yaml from SELECT provider, name FROM public.llms WHERE active = true. - New llm-catalog-init container UPSERTs bootstrapper/utils/llm_catalog.py into public.llms and applies wizard / .env-driven model selections on every docker compose up. Schema migration 05a switches the llms uniqueness from UNIQUE(name) to UNIQUE(provider, name). - Wizard gains live model fetches (OpenAI/Anthropic/OpenRouter /v1/models, Ollama /api/tags + ollama.com/library scrape), per-provider secret + multiselect step pairs, unified Ollama picker with [pulled] / [library] badges, Cloud APIs overview block, and a session-log tee. - Carries the canonical service key through PromptStep so the wizard's command preview emits the right --<key>-source flags (previously the preview produced invalid --llm-engine-source / --document-processor-source). - enforce_runtime_invariants() now returns a bool; start.py halts before validation when the repair-pass .env write fails (no longer silently recoverable). - _render_step switches to dataclasses.replace; wizard total step count recomputed after dynamic splice; InfoPanel.update_state propagates to the visible CloudApisRow; three-state cloud footer counts (ready / missing key / off). - CloudProvider gains explicit key and user_models_var fields; all name.lower() round-tripping removed; PROVIDERS_CLOUD in llm-catalog-init/sync-catalog.py derived at runtime from cloud_providers.py. - Drops the in-SQL Ollama seed (08-seed-data.sql) — llm-catalog-init is now the only source of truth. - Doc sync: provider-qualified SQL examples, Python 3.10+ prerequisite, Ollama pre-check behaviour, OLLAMA_CUSTOM_MODELS host-side caveat, LITELLM_DEFAULT_MODEL fallback shape, cloud-tile to cloud-provider wording, removal of obsolete _live_ollama_options references. - .env.example rebuilt as the complete inventory (258 vars, every auto-managed value annotated # AUTO-MANAGED and placed in its parent section — no more bottom-lumping on first launch). - Other polish: .gitignore narrowed under volumes/litellm/, ollama-pull :ro, number-step hint when default is None, check-kong-routes symlink cleanup, splash-row Space-toggle guard, llm-catalog-init color in palette. - Kong volumes/api/kong-dynamic.yml removed from git (now a generated artifact). Old ensure-litellm-db.sh replaced by litellm-init/scripts/init.py.