Skip to content
Merged
Show file tree
Hide file tree
Changes from 40 commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
a6525fb
docs: add spec and plan for list models per backend feature
beardedeagle Apr 5, 2026
bcd879a
feat: rewrite cached_models schema for (backend, provider) keying
beardedeagle Apr 5, 2026
4af2669
feat: rewrite CachedModel schema for (backend, provider) keying
beardedeagle Apr 5, 2026
097f486
test: rename CachedModel shape test to avoid banned term
beardedeagle Apr 5, 2026
aa9cc83
feat: add required-field validation to CachedModel changeset
beardedeagle Apr 5, 2026
4cc913c
feat: add identifier charset + source enum validation to CachedModel
beardedeagle Apr 5, 2026
938b3df
feat: add embedded model validations to CachedModel changeset
beardedeagle Apr 5, 2026
325fe04
test: add non-ASCII unicode test for CachedModel model_id charset
beardedeagle Apr 5, 2026
893614b
feat: add ModelRegistry.Baseline runtime-config reader
beardedeagle Apr 5, 2026
86f962c
fix: address Task 6 code review — add non-map fallback test + type doc
beardedeagle Apr 5, 2026
afe6209
feat: ship default baseline entries for claude/codex/gemini backends
beardedeagle Apr 5, 2026
3f141e9
feat: add list_models/1 callback to AgentBridge.Backend behaviour
beardedeagle Apr 5, 2026
5401cac
docs: mark Backend.model_attrs capabilities as loose by design
beardedeagle Apr 5, 2026
8d27efa
test: implement list_models/1 in TestBackend with programmable responses
beardedeagle Apr 5, 2026
290922f
test: tighten TestBackend default-response assertion
beardedeagle Apr 5, 2026
5bbfea9
feat: implement list_models/1 in BeamAgent backend via Provider
beardedeagle Apr 5, 2026
13fb54a
test: restore plan-specified test name for missing_workspace_id case
beardedeagle Apr 5, 2026
35454b1
chore: stub vault_live.ex model helpers pending Task 21 cutover
beardedeagle Apr 5, 2026
5cfa402
feat: rewrite ModelRegistry scaffold with new state struct and empty …
beardedeagle Apr 5, 2026
f77385f
feat: add ETS heir for ModelRegistry crash survival
beardedeagle Apr 5, 2026
b522544
fix: Task 12 quality review findings
beardedeagle Apr 5, 2026
4de0b31
feat: ModelRegistry boot sequence with baseline delta seed
beardedeagle Apr 5, 2026
15b26d6
fix: Task 13 quality review findings
beardedeagle Apr 5, 2026
b8f98ce
feat: ModelRegistry upsert funnel with precedence and per-row fan-out
beardedeagle Apr 5, 2026
513f268
fix: ModelRegistry upsert — ETS writes outside transaction, minor cle…
beardedeagle Apr 5, 2026
380b596
feat: ModelRegistry tick handler with per-backend scheduling and in-f…
beardedeagle Apr 5, 2026
9d14dc3
chore: promote startup_delay_ms to @enforce_keys, remove literal default
beardedeagle Apr 5, 2026
5c02689
feat: ModelRegistry probe result + DOWN handlers with exponential bac…
beardedeagle Apr 5, 2026
4adc908
fix: Task 16 Stage-2 review — harden trust boundaries and deflake tests
beardedeagle Apr 5, 2026
0141955
feat: ModelRegistry refresh/1 and refresh_all/0 on-demand probing
beardedeagle Apr 5, 2026
49e3102
fix: Task 17 Stage-2 review — harden refresh/1 trust boundaries and t…
beardedeagle Apr 5, 2026
8d8a1f2
fix: reformat handle_probe_result guard clause to satisfy format gate
beardedeagle Apr 5, 2026
47f4a1b
feat: validated configure/1 on ModelRegistry (spec I1)
beardedeagle Apr 5, 2026
6449b47
test: close configure/1 coverage gaps flagged in Stage-2 review
beardedeagle Apr 5, 2026
a899168
feat: authenticated session hook cast to ModelRegistry (spec C3)
beardedeagle Apr 5, 2026
2aee0e7
polish: address Task 19 Stage-2 Medium items
beardedeagle Apr 5, 2026
3c605da
feat: redact Provider log sites through SecretScanner (spec I8)
beardedeagle Apr 5, 2026
81aac3b
feat: wire vault_live.ex stubs to real ModelRegistry API (spec Cutove…
beardedeagle Apr 5, 2026
9c7bc70
test: add E2E integration test for ModelRegistry cutover
beardedeagle Apr 5, 2026
d323497
fix: widen load_sqlite_rows rescue to prevent restart loop on CI
beardedeagle Apr 5, 2026
7407aee
fix: increase crash survival test timeouts from 1s to 3s for CI
beardedeagle Apr 5, 2026
1edcac4
fix: address 3 Copilot review comments — probe opts injection, upsert…
beardedeagle Apr 5, 2026
79ee080
fix: remove docs/ from tracking and update .gitignore
beardedeagle Apr 5, 2026
225e0cc
fix: harden ModelRegistry — 18 review findings + 3 follow-up fixes
beardedeagle Apr 6, 2026
8e42eb0
fix: address 3 valid PR review comments — defensive probe, bounded in…
beardedeagle Apr 6, 2026
9f398e8
fix: add explicit @max_in_flight guard and clarify ETS-TRANSFER handler
beardedeagle Apr 6, 2026
4ff560a
fix: replace checkpoint stubs with loud raises, rescue at trust boundary
beardedeagle Apr 6, 2026
3d41389
revert: restore checkpoint runtime feature detection pattern
beardedeagle Apr 6, 2026
96230de
fix: implement real checkpoint save/rewind via BeamAgent.Checkpoint
beardedeagle Apr 6, 2026
67b32ea
fix: backoff-aware tick scheduling and session hook backend resolution
beardedeagle Apr 6, 2026
706fa93
fix: capability token auth for session-hook model registry writes
beardedeagle Apr 6, 2026
fa62fdd
fix: increase crash survival test timeouts from 3s to 5s for OTP 28 CI
beardedeagle Apr 6, 2026
04caf57
fix: address 4 Copilot review findings — atom backend, typespec, modu…
beardedeagle Apr 6, 2026
5da6402
test: add atom backend test for backend_to_provider/1 normalization
beardedeagle Apr 6, 2026
d9edfd8
fix: show backend column instead of redundant provider in models table
beardedeagle Apr 6, 2026
08d95cc
feat: replace hardcoded chat model picker with ModelRegistry-powered …
beardedeagle Apr 6, 2026
1f048d6
docs: update ChatLive moduledoc for ModelRegistry-powered model selec…
beardedeagle Apr 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions config/runtime.exs
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,42 @@ if config_env() == :prod do
#
# See https://hexdocs.pm/swoosh/Swoosh.html#module-installation for details.
end

# ── MonkeyClaw.ModelRegistry Baseline ────────────────────────
#
# Baseline entries seed the registry at boot so the agent has a
# floor of known models before any probe runs. Entries are
# structurally validated by MonkeyClaw.ModelRegistry.Baseline.load!/0
# and then trust-boundary validated by CachedModel.changeset/2 inside
# the registry's upsert funnel. Users can override or extend this
# list in their own runtime.exs without rebuilding the release.
config :monkey_claw, MonkeyClaw.ModelRegistry.Baseline,
entries: [
%{
backend: "claude",
provider: "anthropic",
models: [
%{model_id: "claude-opus-4-6", display_name: "Claude Opus 4.6", capabilities: %{}},
%{model_id: "claude-sonnet-4-6", display_name: "Claude Sonnet 4.6", capabilities: %{}},
%{
model_id: "claude-haiku-4-5-20251001",
display_name: "Claude Haiku 4.5",
capabilities: %{}
}
]
},
%{
backend: "codex",
provider: "openai",
models: [
%{model_id: "gpt-5", display_name: "GPT-5", capabilities: %{}}
]
},
%{
backend: "gemini",
provider: "google",
models: [
%{model_id: "gemini-2.5-pro", display_name: "Gemini 2.5 Pro", capabilities: %{}}
]
}
]
Loading
Loading