generated from qualcomm/qualcomm-repository-template
-
Notifications
You must be signed in to change notification settings - Fork 17
Labels
enhancementNew feature or requestNew feature or request
Milestone
Description
Goal
Introduce a persistent YAML-based configuration system and a modular curses-based text UI into PatchWise.
The config system and TUI will be independent modules, designed so either can be replaced without impacting the other.
High-level plan
-
Foundation:
- Implement a YAML-based config loader in
patchwise/utils/config.py. - Support loading defaults from
default_config.yamland overlaying withuser_config.yaml. - No TUI or curses dependencies at this stage.
- Implement a YAML-based config loader in
-
Config options (phase 1):
- Start with a
log_leveloption indefault_config.yamlset to"INFO". - Allow user overrides via
user_config.yaml. - Ensure
--log-levelCLI flag takes precedence over both configs.
- Start with a
-
Config options (phase 2):
- Add an
api_key_disclaimersection to the default config. - No prompting yet — this is just config storage and merging.
- Add an
-
UI abstraction:
- Create a standalone curses module in
patchwise/utils/curses.py. - Must be generic, accepting
messageandoptionsas arguments and returning a user choice. - No direct config file access in this module.
- Create a standalone curses module in
-
Integration:
- Update
main.pyto read config at startup, decide when to prompt, and dynamically import curses only if needed.
- Update
-
Interactive config editor:
- Implement
patchwise --configto launch a menuconfig-style interface for editing user config values. - Display the merged (overlaid) config state — defaults overlaid with user values — and write changes back only to
user_config.yaml.
- Implement
Expected outcome
- PatchWise will have a robust, file-based configuration system.
- The curses TUI will be modular and swappable.
- Config values will be respected across runs and adjustable through both file edits and an interactive CLI.
Sub-issues
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request