fix(config): preserve model overlays across equivalent ids - #835
Merged
Merged
Conversation
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
approved these changes
Oct 3, 2026
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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-modelnow retains metadata previously stored underteam-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
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.mdandUSER.mdcollide 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 containPATH=.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.
Related Issues
Fixes #834