Skip to content

Conversation

@denysvitali
Copy link

@denysvitali denysvitali commented Feb 4, 2026

Add 'None' Personality Option

Summary

This PR adds a new "None" personality option that completely disables personality injection in AI responses. When selected, the model provides purely functional responses without any personality formatting or conversational styling.

Changes

Protocol Layer

  • protocol/src/config_types.rs: Added None variant to the Personality enum
  • protocol/src/openai_models.rs: Updated personality matching logic to return None (no personality injection) when Personality::None is selected

UI Layer

  • tui/src/app.rs: Added display label for the None personality option
  • tui/src/chatwidget.rs:
    • Added Personality::None to the personality selection popup
    • Added display name and description for the None option
  • Updated snapshot test for personality selection popup

Bug Fix

  • core/src/models_manager/model_info.rs: Removed leftover personality_none field assignments that were causing compilation errors after the struct field was removed

User Impact

Users can now select "None" as a personality option, which will:

  • Return responses without any personality styling
  • Provide more direct, utilitarian output
  • Be useful for users who prefer minimal AI personality in interactions

Testing

  • Existing snapshot test updated to reflect the new personality option
  • Manual testing via the personality selection popup

Fixes #10582

denysvitali and others added 2 commits February 4, 2026 21:55
Implements the feature requested in OpenAI Codex issue openai#10582.
Users can now select 'None' personality to completely disable
personality-driven responses, making Codex behave as a purely
functional tool without any conversational personality layer.

Changes:
- Add 'None' variant to Personality enum
- Add personality_none field to ModelInstructionsVariables
- Return None (not empty string) when Personality::None is selected
- Update TUI to show 'None' option in personality popup
- Update tests and snapshots

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
The `personality_none` field in `ModelInstructionsVariables` was never used:
- Required by `is_complete()` to be `Some`
- But never read by `get_personality_message()` (returns hardcoded `None`)
- Always set to `None` in production code

Removing this dead code since `Personality::None` correctly returns `None`
via the hardcoded return in `get_personality_message()`.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link
Contributor

github-actions bot commented Feb 4, 2026

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@denysvitali
Copy link
Author

I have read the CLA Document and I hereby sign the CLA

The field was removed from ModelInstructionsVariables but these assignments weren't cleaned up.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
github-actions bot added a commit that referenced this pull request Feb 4, 2026
@denysvitali denysvitali marked this pull request as ready for review February 4, 2026 22:56
@etraut-openai
Copy link
Collaborator

We've updated our contribution guidelines to indicate that we're no longer accepting unsolicited code contributions. All code contributions are by invitation only. To read more about why we've taken this step, please refer to this announcement.

@denysvitali
Copy link
Author

LOL WTF.

@etraut-openai
Copy link
Collaborator

#10688

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.

[RESOLVED] personality should be an Option that you can set to None

2 participants