fix: use Keyword.get for API key to respect explicit nil, add ecto.migrate to test alias

- DeepSeek.complete: use Keyword.get/3 instead of || so passing api_key: nil
  is respected even when DEEPSEEK_API_KEY env var is set (nil is explicit
  'no key', not 'use default'). Also fixed base_url and model for consistency.
- test alias: add ecto.migrate after ecto.load so Oban migrations are applied,
  fixing 'Found version 12, but version 14 is required' on oban 2.23
This commit is contained in:
Graham McInitre 2026-07-16 09:31:11 -05:00
parent 02f6d816de
commit b038094dc4
2 changed files with 4 additions and 4 deletions

View file

@ -19,9 +19,9 @@ defmodule Towerops.LLM.DeepSeek do
@impl true
def complete(messages, opts \\ []) do
cfg = Application.get_env(:towerops, __MODULE__, [])
api_key = opts[:api_key] || cfg[:api_key]
base_url = present(opts[:base_url]) || present(cfg[:base_url]) || @default_base_url
model = present(opts[:model]) || present(cfg[:model]) || @default_model
api_key = Keyword.get(opts, :api_key, cfg[:api_key])
base_url = present(Keyword.get(opts, :base_url, nil)) || present(cfg[:base_url]) || @default_base_url
model = present(Keyword.get(opts, :model, nil)) || present(cfg[:model]) || @default_model
if blank?(api_key) do
{:error, :missing_api_key}

View file

@ -183,7 +183,7 @@ defmodule Towerops.MixProject do
setup: ["deps.get", "ecto.setup", "assets.setup", "assets.build"],
"ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
"ecto.reset": ["ecto.drop", "ecto.setup"],
test: ["ecto.create --quiet", "ecto.load --quiet --skip-if-loaded", "test"],
test: ["ecto.create --quiet", "ecto.load --quiet --skip-if-loaded", "ecto.migrate --quiet", "test"],
"assets.setup": ["tailwind.install --if-missing", "esbuild.install --if-missing"],
"assets.build": ["compile", "tailwind towerops", "esbuild towerops"],
"assets.deploy": [