Skip to content

fix: apply core sub-config overrides during startup parsing#2342

Open
drwicid wants to merge 2 commits intosomeengineering:mainfrom
drwicid:fix/core-commands-config-yaml-overrides
Open

fix: apply core sub-config overrides during startup parsing#2342
drwicid wants to merge 2 commits intosomeengineering:mainfrom
drwicid:fix/core-commands-config-yaml-overrides

Conversation

@drwicid
Copy link

@drwicid drwicid commented Mar 10, 2026

Description

This PR fixes a split between config presentation and runtime behavior for core sub-config overrides. Fixes #2341

Before this change, startup only merged overrides for fix.core when building CoreConfig. That meant fix.core.commands overrides could appear in configs show, but the CLI still read the unmerged command list and custom commands were not active. The startup parser now resolves overrides by config id and merges both fix.core.commands and fix.core.snapshots before parsing the runtime config objects.

This PR also keeps the YAML rendering fix for override annotations containing structured list values. That prevents configs show and config editing paths from failing when custom_commands.commands contains object entries.

Files Changed

  • fixcore/fixcore/core_config.py
    • Change startup config parsing to resolve overrides by config id.
    • Merge fix.core.commands overrides into the command config before parsing CustomCommandsConfig.
    • Merge fix.core.snapshots overrides into the snapshot config before parsing SnapshotsScheduleConfig so startup behavior stays consistent across sub-configs.
  • fixcore/fixcore/__main__.py
    • Pass the generic override getter through startup config loading.
  • fixcore/fixcore/system_start.py
    • Update helper config creation to use the new override getter signature.
  • fixcore/fixcore/config/config_handler_service.py
    • Convert list override values to strings before joining them into override annotations.
  • fixcore/tests/fixcore/core_config_test.py
    • Add regression coverage proving command and snapshot overrides are preserved in the active parsed config.
  • fixcore/tests/fixcore/config/config_handler_service_test.py
    • Keep regression coverage for YAML rendering of list-of-object overrides.

To-Dos

  • I have created tests for any new or updated functionality.
  • I ran tox successfully.

Code of Conduct

By submitting this pull request, I agree to follow the code of conduct.

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.

Core command overrides should be merged into the runtime config so custom commands become active

1 participant