Removed unnecessary .boogaplus saving+loading and structure validation
Fix replace_last_reply (using 'text' as Textbox when MultimodalTextbox)
TODO: Merge message_versioning.py into chat.py (depending on how to make html_generator.py implement versioning HTML)
- Created a new module (message_versioning.py) for managing message versioning logic and data storage
- Added relevant Gradio communication in ui_chat.py
- Updated chat.py to append messages to versioning history and other history-related operations
- Updated HTML generation to include message version navigation elements
- Implemented JavaScript functions for handling message version navigation, selection, and history management
- Added relevant CSS styling (handling all three message classes is a little messy, but changing the original class structure might be problematic)
Notes:
- Doesn't always update on first load via `shared.gradio['unique_id'].select()`
- No go-to-first or go-to-last nav arrows
- Some of the methods and variables are... long-winded
- Have only tested with a couple extensions, but this _shouldn't_ break anything and should be completely backwards-compatible
- Haven't put any documentation for controls (Ctrl+Left/Right Arrow for navigation, Ctrl+Up/Down Arrow as an alternative for selection)
- The original footer buttons aren't set to full opacity when the message is selected, only the new nav container
- Output file extension is `.boogaplus` cuz it's cool
- Tried using `None` as a placeholder in the history storage dict (`null` in the JSON) instead of always saving the text to save space, but sometimes leads to client-server issues