Skip to content

🤖 Solers: Add provider controls and editable chat rewind - #2

Open
painterner wants to merge 5 commits into
brandlll-lee:mainfrom
painterner:feature/llm-provider-chat-workflow
Open

🤖 Solers: Add provider controls and editable chat rewind#2
painterner wants to merge 5 commits into
brandlll-lee:mainfrom
painterner:feature/llm-provider-chat-workflow

Conversation

@painterner

Copy link
Copy Markdown

What problem(s) does this PR solve?

This PR groups the Solers provider and chat workflow improvements developed since the per-provider session ID configuration change.

Changes

  • Add a per-provider option for sending the session-id header, enabled by default and shared by OpenAI Responses, Chat Completions, Anthropic, and compatible providers.
  • Add image input capability configuration with Auto, Enabled, and Disabled modes. Auto allows unknown models to try image input, while Disabled prevents image attachments and image-dependent agent flows.
  • Add conversation branching, inline editing, retry, and rewind actions for user messages.
  • Preserve a stack of reversible Agent mutations per session so rewind can restore multiple scene UndoRedo actions and file checkpoints in reverse order.
  • Preflight rewind conflicts and reject unsafe or irreversible project rewinds before applying partial changes.
  • Keep the original conversation as an audit trail and continue edited prompts in a new session branch.
  • Integrate the Solers chat sidebar as a Godot editor component and stop forcing the original Scene and FileSystem docks into a custom layout.
  • Add AI-assisted game design documentation and related README links.

Testing

No new automated tests are included in this PR. The changes were compiled and exercised locally during development.

[!INFO]
AI disclosure: This contribution was developed with AI assistance under the direction of painterner. The contributor reviewed and exercised the resulting changes.

…chat-workflow

# Conflicts:
#	modules/solers_ai/core/solers_agent_session.cpp
#	modules/solers_ai/core/solers_settings_service.cpp
#	modules/solers_ai/core/solers_tool_registry.cpp
#	modules/solers_ai/editor/solers_chat_cells.cpp
#	modules/solers_ai/editor/solers_editor_plugin.cpp
#	modules/solers_ai/tests/test_solers_provider_gateway.h

@brandlll-lee brandlll-lee left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together. The provider controls and the edit/retry workflow are useful directions, and I would like to keep those ideas. I don't think the current implementation is safe to merge yet, though.
The main blocker is project rewind. It restores multiple Godot UndoRedo actions and file checkpoints one at a time, so a failure halfway through can leave the project partially rewound. The preflight also does not validate every checkpoint and UndoRedo history involved. In Solers, project state has to remain authoritative through Godot's native UndoRedo state and validated file state. I think conversation branching should only branch the journal for now, while project reversal remains an explicit single-step operation.
There are also two data-loss cases. The new branch drops checkpoint events while retaining the messages and tool history that depended on them, and retry/edit restores the prompt but does not resubmit its mentions and attachments. Both paths can therefore appear successful while silently losing part of the original state.
The provider changes need to stay protocol-driven as well. session-id should not become a default header for every protocol, and unknown image capability should not be treated as supported. These need to come from the selected provider profile or an explicit user setting.
I would also keep the existing fixed Solers left-side host. Moving it back into a generic Godot dock changes an intentional product layout. The inline editor should reuse the existing composer and native container layout instead of adding another manually positioned editor.
This is a fairly large change across 23 files without behavior tests. Please split the unrelated design document out, narrow this PR to the provider and conversation workflow changes, and add coverage for rewind failure, branch restoration, attachments/mentions on retry, provider headers, and image capability handling.
The feature direction makes sense, but these state and lifecycle issues need to be resolved before merging. Happy to take another look once the scope is reduced🤗

@painterner

Copy link
Copy Markdown
Author

Okay, I will reconsider this logic and safety.

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.

3 participants