Skip to content

fix(config): preserve model overlays across equivalent ids - #835

Merged
0xKT merged 1 commit into
EverMind-AI:mainfrom
loading2332:fix/model_overlay_alias_merge
Oct 3, 2026
Merged

0xKT merged 1 commit into
EverMind-AI:mainfrom
loading2332:fix/model_overlay_alias_merge

Conversation

@loading2332

Copy link
Copy Markdown
Contributor

Summary

Preserve a model's existing label, description, and tags when a partial metadata update uses an equivalent model ID. For example, adding a reasoning capability to hosted-vllm/team-model now retains metadata previously stored under team-model.

Match overlay rows by the same model identity used for model-list deduplication. Consolidate equivalent keys on update, preserve the reader's existing last-row precedence for duplicate aliases, and honor explicit field clearing without reviving stale values. Add configuration and RPC regressions for these cases.

Type

  • Fix
  • Feature
  • Docs
  • CI / tooling
  • Refactor
  • Other

Verification

  • uv run pytest tests/test_config_update_providers.py tests/test_rpc_model.py -q: 393 passed.

  • uv run ruff check raven/config/update_providers.py tests/test_config_update_providers.py tests/test_rpc_model.py: passed.

  • uv run ruff format --check raven/config/update_providers.py tests/test_config_update_providers.py tests/test_rpc_model.py: passed.

  • git diff --check: passed.

  • The temporary-home RPC reproduction from the linked issue now retains the label and description while adding the requested capability. The initial seven regression cases failed before the fix.

  • env -u NO_COLOR make ci: lint stages passed; Python tests finished with 27033 passed, 120 skipped, and 3 failures. The gate stopped at Python tests, so later frontend test/build and core-wheel stages were not reached:

    • tests/test_simulation_scenario.py::test_a_fresh_trial_refreshes_the_subagent_homes_before_it_runs: user.md and USER.md collide on the local case-insensitive filesystem.
    • tests/test_simulation_suite.py::test_a_stopped_run_is_marked_in_its_record_and_finished_with_its_evidence: descendant discovery relies on Linux /proc, unavailable on macOS.
    • tests/test_shell_background.py::test_the_background_child_gets_the_baseline_env_not_the_host_env: the returned background-command output does not contain PATH=.
  • The two simulation failures also reproduce on an unchanged main snapshot. The background-command failure also reproduces in the same checkout with the only changed production file restored to main; the committed fix was restored afterward. It passes in the separate snapshot, so its environment/path sensitivity remains unresolved.

  • Relevant tests pass locally

  • Relevant lint / type checks pass locally

  • User-facing docs or screenshots are updated when needed

No documentation or UI changes are needed for this correction to the existing partial-update behavior.

Risk

Equivalent overlay keys are consolidated only when that model's metadata is updated. Existing duplicate rows retain their current effective precedence; unrelated models are unchanged. No new dependencies, schema fields, or network requests are introduced. Revert this change to restore the previous writer behavior; the resulting configuration remains compatible with the previous schema.

  • Security impact considered
  • Backward compatibility considered
  • Rollback path is clear for risky changes

Related Issues

Fixes #834

Merge partial metadata updates by model identity and remove equivalent overlay keys while preserving the effective row precedence.

Co-authored-by: Codex <noreply@openai.com>
@0xKT
0xKT merged commit 322582f into EverMind-AI:main Oct 3, 2026
21 checks passed
@0xKT

0xKT commented Oct 3, 2026

Copy link
Copy Markdown
Member

Thanks @loading2332 for the clear report in #834 and for the fix! The standalone repro script made this easy to verify, and the regression tests fail against the previous writer exactly as they should. Merged in 322582f.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: preserve model metadata when updating an equivalent model ID

2 participants