This commit introduces the `doImport` function, which allows importing
the content of a file directly into the "auto" chat session.
The imported content is added as a `ChatEntry` from GEMINI, structured
as a `ToolCall` with the name "Shell" and the file content as the input.
This allows external command outputs to be seamlessly integrated into
the chat history for context.
- Refactor the 'printCodeSnippet' function to draw a complete,
correctly padded box around the code.
- Each line is now padded with spaces to ensure the right border
aligns perfectly at the terminal width.
- Fix a bug where the format string for the right-aligned prefix
was being printed literally instead of being evaluated.
- The user message prefix now displays the timestamp and author
correctly.
- Refactor the 'printRightAligned' function to print the author
prefix line *before* the content.
- This fixes a bug where the prefix was incorrectly appearing after
the message body.
- Refactor the 'printContent' function to align user messages to
the right side of the terminal.
- Gemini messages remain left-aligned.
- This provides a clearer visual distinction in the conversation flow.
- Refactor the word-wrapping algorithm in 'printContent' to
ensure every line of conversational text is correctly
prepended with a tab character.
- This fixes the issue where only the first line of a wrapped
paragraph was being indented.
- Refactor the 'printContent' function to provide a cleaner layout.
- The author and timestamp prefix now appear on their own line.
- All subsequent lines of content are indented with a standard tab
and wrapped correctly to the terminal width.
- Add a new 'printContent' function to handle word wrapping for the
main conversational text in the detailed playback view.
- This ensures that long lines of text are correctly wrapped to the
terminal width, improving readability.
- Implement a new 'listEntries' function that provides a one-line
summary for each entry within a chat topic.
- The 'showChat' function (triggered by 'playback --uuid') now
calls this new summary view.