HERMES-GIELIE/api
nesquena-hermes d27ef5d196 harden #5511: active provider owns its OWN providers: allowlist (complete ownership model)
Codex 5th CORE: the ownership set only covered static _PROVIDER_MODELS, not the
active provider's own config.yaml providers.<active>.models allowlist. So an
active provider defined purely via providers: (no static catalog) could be
hijacked by another slug's overlapping entry earlier in config order. Fix folds
the active provider's own providers: allowlist (list + dict shapes, copilot
excluded) into _provider_models_set — completing the ownership model so the
active provider owns its declared models from EITHER the static catalog OR its
own providers: entry. Regression test (fail-without-fix verified). 40 model_resolver
tests green.

Co-authored-by: akay64 <akay64@users.noreply.github.com>
2026-07-04 07:28:44 +00:00
..
__init__.py
agent_health.py
agent_sessions.py
auth.py
auth_oidc.py fix(#3825): harden oidc endpoint and claim validation 2026-06-30 20:59:19 -04:00
background.py feat(commands): /background, /btw slash commands + undo button + reasoning chip 2026-04-24 01:24:51 +00:00
background_process.py
clarify.py
commands.py
compression_anchor.py
config.py
crash_visibility.py
dashboard_probe.py
extensions.py fix: prefer IPv4 for extension gallery downloads to prevent timeout on broken IPv6 2026-07-03 20:26:18 +00:00
gateway_chat.py
gateway_restart.py
gateway_watcher.py
goals.py
helpers.py
kanban_bridge.py
metering.py
models.py harden #5504 on rodboev's latest head: complete the tombstone wiring + CHANGELOG 2026-07-04 05:32:51 +00:00
oauth.py
office_documents.py
onboarding.py
passkeys.py
paths.py fix(profiles): avoid config import cycle 2026-06-01 05:05:16 +00:00
plugin_providers.py
plugins.py fix(#2622): plugin card UX — legible Open button, single badge, visible toggle + reject protocol-relative tab.path 2026-06-02 03:58:02 +00:00
profiles.py
providers.py
request_diagnostics.py
rollback.py fix(#4410): pre-check workspace leaf type via lstat + close fd on non-regular (Codex gate v2) 2026-06-18 19:22:29 +00:00
route_approvals.py
route_session_list_cache.py feat: add Webhooks sidebar filter parity 2026-06-30 17:06:31 +00:00
routes.py
run_journal.py
runner_client.py
runtime_adapter.py
session_discoverability.py
session_events.py
session_export_html.py #4968: export chat to self-contained themed HTML, rebased on master 2026-07-02 02:36:09 +00:00
session_lifecycle.py
session_ops.py fix(session): preserve kept tool rows on ambiguous truncate (#5134) 2026-06-30 01:40:07 +00:00
session_recovery.py
skill_usage.py fix: remove webui-side writer to avoid conflict with agent 2026-05-27 20:57:32 +08:00
sse_chunked.py
startup.py
state_sync.py
streaming.py fix(#4251): drop dead post-repair ownership writes 2026-07-01 16:20:31 -04:00
system_health.py
terminal.py
todo_state.py
turn_journal.py
updates.py fix(updates): resolve git under macOS launchd (#5175) 2026-06-29 04:22:51 +00:00
upload.py fix(auth): enforce active-profile session IDs 2026-06-30 04:28:15 +00:00
usage.py
webui_session_db.py fix(#4767): review fixes - more edge cases 2026-06-24 18:08:50 +00:00
workspace.py
workspace_git.py
worktrees.py Harden worktree removal safeguards 2026-05-13 09:49:15 +08:00