Skip to content

Add global model profile override, UI improvements, and prompt refinements #151

Merged
presstab merged 5 commits into
masterfrom
global_modelprof
Jun 27, 2026
Merged

Add global model profile override, UI improvements, and prompt refinements #151
presstab merged 5 commits into
masterfrom
global_modelprof

Conversation

@presstab

Copy link
Copy Markdown
Owner

This pull request introduces several enhancements across the codebase. The most notable additions are a new /modelprofile setall command 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

  • Global model profile override: Users can now set all model profiles to use the same model with a single command (/modelprofile setall <model_name>). In the TUI settings screen, a “Use Model for All” button provides the same functionality.
  • Delete untracked files from Git overview: When an untracked file is selected in the unstaged files list, the “Reset” button changes to “Delete”. Clicking it prompts for confirmation before removing the file from disk, making cleanup of new files safer and more convenient.
  • Resizable command input: A small dot (•) in the border title of the command input area can be dragged vertically to adjust the input height, allowing users to view or type longer commands without scrolling.

A Closer Look at the Changes

  • Code Refinements & Improvements

    • The create_steps.md prompt used for code generation plans was fully rewritten to require a strict JSON structure (steps and use_context). This eliminates free‑form prose and makes the plan output machine‑parseable.
    • The salvage_response.md and select_command.md prompts were updated with clearer JSON schemas, explicit field descriptions, and common failure patterns (e.g., missing closing quotes, unescaped backslashes). The final_action field was renamed to final_command for consistency.
    • The plan_phase.py now passes json_output=True to the LLM call, ensuring the plan response is always valid JSON.
  • New Functionality

    • Model profile management:
      • Added update_all_profiles() method to ModelProfileManager that assigns the same model to every profile.
      • Added _handle_setall in modelprofile.py command handler and updated help text to include setall.
      • In the TUI, ModelSelectionModal and ModelProfileScreen were extended with a “Use Model for All” button; selecting a model from the modal dispatches the setall command.
    • Git delete for untracked files:
      • The GitOverviewWidget now detects if the selected unstaged file is untracked and changes the reset button label to “Delete”.
      • Pressing “Delete” shows a confirmation prompt via core_app.ui.prompt_for_deletion() before calling os.remove(). Success/failure notifications are shown and the widget refreshes.
    • Command input resizing:
      • CommandTextArea overrides 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.
      • A RESIZE_HANDLE_DOT constant and formatting helpers keep the handle visible even when the border title is set externally.
      • History is now capped at 20 entries (MAX_HISTORY) and the latest entries are always preserved.
  • Bug Fixes

    • Fixed an issue where setting the border title externally could lose the resize handle marker; __setattr__ now automatically appends it.
    • The TUI thread update handler (on_thread_update) was adjusted to avoid assuming the updated thread is the active one, preventing unnecessary view switches.
  • Other Updates

    • AGENTS.md now explicitly states that agents should not write or run tests unless asked by the user.
    • The select_command.md examples and rule descriptions were corrected to use final_command in place of final_action.
    • Minor help text updates in help.py now document the setall subcommand for /modelprofile.

Generated by JrDev AI using deepseek-v4-flash

presstab added 5 commits June 27, 2026 11:40
- 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.
@presstab presstab merged commit cd8d174 into master Jun 27, 2026
8 checks passed
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.

1 participant