Add global model profile override, UI improvements, and prompt refinements #151
Merged
Conversation
- Add "Use Model for All" button to model profile settings to apply a selected model across all profiles - Implement vertical resizing for the command input widget via a draggable border title handle - Update terminal output widget to integrate the new resize handle functionality
- update create_steps, salvage_response, and select_command prompts to strictly require json output - standardize response schema and rename final_action to final_command for clarity - modify plan_phase to explicitly request json output from the llm
Introduces the /modelprofile setall <model> command to update every profile to use a specified model. Includes validation, error handling, and updated help documentation.
Agents should not write or run tests unless explicitly asked to do so by the user.
549569e to
9551a94
Compare
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.
This pull request introduces several enhancements across the codebase. The most notable additions are a new
/modelprofile setallcommand that applies a single model to every profile at once, along with matching TUI buttons for streamlined configuration. The Git overview widget now supports deleting untracked files directly, and the command input area has become resizable via a drag handle in its border title. Several core prompts have been updated to enforce structured JSON output and improve parsing reliability. A note was also added to the agent testing guidelines clarifying when agents should write or run tests.What This Means for Users
/modelprofile setall <model_name>). In the TUI settings screen, a “Use Model for All” button provides the same functionality.A Closer Look at the Changes
Code Refinements & Improvements
create_steps.mdprompt used for code generation plans was fully rewritten to require a strict JSON structure (stepsanduse_context). This eliminates free‑form prose and makes the plan output machine‑parseable.salvage_response.mdandselect_command.mdprompts were updated with clearer JSON schemas, explicit field descriptions, and common failure patterns (e.g., missing closing quotes, unescaped backslashes). Thefinal_actionfield was renamed tofinal_commandfor consistency.plan_phase.pynow passesjson_output=Trueto the LLM call, ensuring the plan response is always valid JSON.New Functionality
update_all_profiles()method toModelProfileManagerthat assigns the same model to every profile._handle_setallinmodelprofile.pycommand handler and updated help text to includesetall.ModelSelectionModalandModelProfileScreenwere extended with a “Use Model for All” button; selecting a model from the modal dispatches thesetallcommand.GitOverviewWidgetnow detects if the selected unstaged file is untracked and changes the reset button label to “Delete”.core_app.ui.prompt_for_deletion()before callingos.remove(). Success/failure notifications are shown and the widget refreshes.CommandTextAreaoverrides mouse handlers (_on_mouse_down,_on_mouse_move,_on_mouse_up) to detect clicks on a small dot in the border title and initiate vertical drag‑resize.RESIZE_HANDLE_DOTconstant and formatting helpers keep the handle visible even when the border title is set externally.MAX_HISTORY) and the latest entries are always preserved.Bug Fixes
__setattr__now automatically appends it.on_thread_update) was adjusted to avoid assuming the updated thread is the active one, preventing unnecessary view switches.Other Updates
AGENTS.mdnow explicitly states that agents should not write or run tests unless asked by the user.select_command.mdexamples and rule descriptions were corrected to usefinal_commandin place offinal_action.help.pynow document thesetallsubcommand for/modelprofile.Generated by JrDev AI using deepseek-v4-flash