From c7ad2ca68ac1a65ce11bb87787e851db8f67f0bf Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Sun, 26 Apr 2026 18:25:39 +0200 Subject: [PATCH] backend: require OLLIE_BACKEND/OLLIE_MODEL; no silent ollama default - NewWithName and newFromEnv now error when OLLIE_BACKEND is unset instead of falling back to ollama silently - createSession reads OLLIE_MODEL as fallback when model= is not given - Update test to assert error on missing OLLIE_BACKEND Co-Authored-By: Claude Sonnet 4.6 --- pkg/backend/new.go | 6 +++--- pkg/backend/new_test.go | 11 ++++------- pkg/store/session.go | 3 +++ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pkg/backend/new.go b/pkg/backend/new.go index 1b04dbf..d2fb7ab 100644 --- a/pkg/backend/new.go +++ b/pkg/backend/new.go @@ -59,13 +59,13 @@ func New() (Backend, error) { // NewWithName constructs a Backend for the given backend name, loading // env-file defaults for API keys/URLs but ignoring OLLIE_BACKEND. -// If name is empty, falls back to OLLIE_BACKEND / "ollama". +// If name is empty, falls back to OLLIE_BACKEND; errors if neither is set. func NewWithName(name string) (Backend, error) { loadEnvFile(paths.CfgDir() + "/env") if name == "" { name = os.Getenv("OLLIE_BACKEND") if name == "" { - name = "ollama" + return nil, fmt.Errorf("no backend specified: set OLLIE_BACKEND or pass backend= to the session") } } return newBackend(name) @@ -76,7 +76,7 @@ func newFromEnv(envFile string) (Backend, error) { which := os.Getenv("OLLIE_BACKEND") if which == "" { - which = "ollama" + return nil, fmt.Errorf("OLLIE_BACKEND is not set") } return newBackend(which) diff --git a/pkg/backend/new_test.go b/pkg/backend/new_test.go index eaf54aa..e7c8367 100644 --- a/pkg/backend/new_test.go +++ b/pkg/backend/new_test.go @@ -31,14 +31,11 @@ func clearEnv(t *testing.T, keys ...string) { } } -func TestNewFromEnv_DefaultOllama(t *testing.T) { +func TestNewFromEnv_NoBackendErrors(t *testing.T) { clearEnv(t, "OLLIE_BACKEND", "OLLIE_OLLAMA_URL") - b, err := newFromEnv("/nonexistent") - if err != nil { - t.Fatal(err) - } - if b.Name() != "ollama" { - t.Errorf("name = %q; want ollama", b.Name()) + _, err := newFromEnv("/nonexistent") + if err == nil { + t.Fatal("expected error when OLLIE_BACKEND is unset, got nil") } } diff --git a/pkg/store/session.go b/pkg/store/session.go index 5ad200f..7c1ad7f 100644 --- a/pkg/store/session.go +++ b/pkg/store/session.go @@ -357,6 +357,9 @@ func (s *SessionStore) createSession(args []string) error { return fmt.Errorf("backend: %w", err) } + if modelOverride == "" { + modelOverride = os.Getenv("OLLIE_MODEL") + } if modelOverride != "" { be.SetModel(modelOverride) }